Выбрать главу

В 2005 году несколько разработчиков, включая моего собеседника, предложили более системный подход: последовательная разработка WinNT-совместимого ядра и WinNT-совместимых драйверов. Вероятно, прогресс надо отсчитывать именно с этого момента.

– Сейчас многое приходится переделывать, – рассказывает Алексей. – С другой стороны, за прошедшее время была наработана какая-то известность, какое-то имя. Мы стараемся сохранить максимальную свободу для разработчиков, но при этом хотим, чтобы проект двигался не хаотично или по кругу, а в каком-то направлении. И без некоторого жесткого влияния здесь уже не обойтись, поэтому иногда я вынужден принимать такие решения, которые могут быть не очень популярными, но в конечном итоге работают на благо проекта.

Мы разговаривали перед выпуском очередного релиза – версии 0.3.3. Я попросил Алексея рассказать, что там будет интересного для "простого смертного":

– Улучшилась стабильность. Система не будет падать, если ее включить на пять часов, на десять часов – даже если компьютер подключен к Интернету и на нем запущен mIRC. Однако пользователям, вероятно, интереснее другое: появилось что-то вроде менеджера пакетов в Linux-системах – он скачивает из Интернета инсталлятор, распаковывает и устанавливает. Там перечислены приложения, которые заведомо работают в ReactOS – список набрался довольно внушительный и включает в себя как открытые, так и закрытые программы. Штука совсем простая (не такая, как в Debian и других Linux-дистрибутивах), но производит хорошее впечатление.

Я задумываюсь о том, что от ОС сейчас, по сути, не так много и нужно. Если стабильно работает какой-то современный браузер (тот же Firefox), то это уже дает огромные возможности. Впрочем, предположение о том, что ReactOS кто-то использует на практике, Алексей отвергает категорически: "до продакшн-стадии еще далеко". Тем не менее, пользу проект приносит – если не конечным юзерам, то сообществу разработчиков.

Пользователи

ReactOS очень активно пользуется наработками и кодом других открытых проектов – в первую очередь, Wine (реализация Win32 API для поддержки Windows-приложений), Linux Kernel (некоторые драйверы), Samba (общий доступ к ресурсам). Наличие свободной кодовой базы позволяет не изобретать велосипеды там, где они уже изобретены. С другой стороны, наработки самого ReactOS приносят пользу всему сообществу уже на текущем этапе. Например, долгое время основным способом получить под Linux безопасный доступ к NTFS-разделам с возможностью записи было использование «родного» Windows-драйвера. (Сейчас разработан полностью свободный ntfs-3g.) Чтобы запустить его под Linux, использовалась «обертка», представляющая собой ядро ReactOS, из которого убрали все лишнее и заставили компилироваться и запускаться под Linux.

Алексей вспоминает еще одну историю:

– Я периодически ищу упоминания «ReactOS» в блогах и форумах – интересно ведь, что люди о нас говорят. Вот один разработчик драйверов пишет: "Я посмотрел в исходники ReactOS и посмотрел в «утекшие» исходники Windows. Так в ReactOS все намного лучше откомментировано! Зачем мне исходники Windows? Я теперь в ReactOS смотрю!" Мы долго по этому поводу смеялись.

Если есть интерес с чьей-то стороны, то обычно есть и помощь: в Linux сейчас множество заинтересованных компаний вкладывает огромные деньги – в основном в виде кода и труда разработчиков, в чьи обязанности входит участие в свободных проектах. ReactOS пока не достиг этого этапа, но…

– Есть одна компания… Наш разработчик из Швеции делает в ReactOS реализацию DirectX. У него есть определенные соглашения с одной фирмой, которая разрабатывает, кажется, чипы к графическим акселераторам – и, в частности, занимается разнообразным кодированием видео. И вот им зачем-то нужны наши DLL, и они возвращают нам свои доработки этих DLL через этого разработчика. Но действуют на условиях неразглашения своего участия – не хотят, чтобы мы писали "этот код предоставлен фирмой такой-то". Видимо, не хотят принимать на себя ответственность. Я подозреваю, что наш код используется и другими компаниям, но об этом никто громко не говорит.

Еще одна заманчивая точка приложения – образование. Возможность заглянуть в код операционки, реализующий возможности Windows, в этом контексте трудно переоценить.

– У нас заинтересованность в этом есть. Было несколько людей (не из России), которые хотели сделать у себя курс занятий по архитектуре NT. Они не участвовали в майкрософтовских образовательных программах и хотели базироваться на ReactOS. Но пока до практической стадии никто не дошел.

Разработчики

Я прошу Алексея рассказать о разработчиках.

– Географически в основном народ из Европы: Германия, Франция, Австрия. Из России активных участников немного – человека три-четыре. В основном это молодые люди, лет двадцати пяти. У нас был разработчик из Канады – сейчас ушел – его имя Алекс Йонеску (Alex Ionescu). Он был самый молодой – девятнадцать лет. Немного эксцентричный, зато внес значительный вклад по ядру. Есть один интересный участник – ему уже за пятьдесят, он вносит существенный вклад в Win32. Он из Америки, но придерживается довольно необычных взглядов – когда я с ним общался, не мог поверить, что он значительно нас старше. Большинство людей, работающих с ReactOS, занимаются либо разработкой драйверов, либо системной разработкой в Windows или Linux. Есть еще люди, которые работают над приложениями – но они в основном делают какой-то простенький вклад, приложения типа Character map, которые, в общем-то, не очень и нужны.

Я продолжаю недоумевать: "Зачем это разработчикам? Just for fun, как сказал Линус Торвальдс?"

– Большинство людей работают на опыт и на свое имя. Человека четыре в последнее время ушли в разные фирмы… из них трое в Microsoft – их там принимают просто "на ура". Или вот, например, у одного человека была курсовая: "разработать графический редактор". Ну, он его и разработал. Под ReactOS. Многие наблюдатели со стороны удивлялись: "В ReactOS работают над графическим редактором! Зачем?! У вас еще ядро не работает как следует!" Приходилось отвечать, что если человек хочет что-то сделать, нам не жалко. Все равно курсовик пишет, а так двойная польза получается.