минимальный). Но вскоре время, которое он мог отдавать проекту, сильно сократилось – фактически он был только на email-связи для каких-то экстренных вопросов. Вот здесь удивительный момент – все это время проект жил и развивался сам собой, за счет энтузиазма разработчиков (грубо говоря: один сломал – другой исправил). Чисто с программистской точки зрения, это идеал для работы: выбирай то, что интересно, сроков никто не ставит, сам выбираешь способ реализации. Все бы хорошо, но в результате каждый продвигал что-то свое, и вместо того, чтобы сделать как надо, 'подтачивал напильником' под то, что уже было реализовано. Взяли некоторые идеи от Windows, и сделали некое ядро – наполовину из идей NT, наполовину из своих идей. Написали для него драйверы, которые зависели от всех его глюков. И Win32 API взяли из Wine. А потом столкнулись с тем, что все это глючит, и систему невозможно развивать, потому что все сделано на примитивном уровне. Начали перерабатывать ядро – при этом полетели все драйвера – они не были рассчитаны на такую работу, их с Windows никто не тестировал.

В 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 работают над графическим редактором! Зачем?! У вас еще ядро не работает как следует!' Приходилось отвечать, что если человек хочет что-то сделать, нам не жалко. Все равно курсовик пишет, а так двойная польза получается.

Сам Алексей учится в аспирантуре, и тема его диссертации, что неудивительно, связана с операционными системами. Участие в ReactOS, таким образом, позволяет совмещать 'приятное с полезным'. Однако это не единственная и даже не основная причина участия.

– У меня есть свои цели. Во-первых, просто интересно – я туда пришел ради идеи: Linux уже есть, а можно Microsoft еще подложить небольшую свинью и сделать открытую «ЭнТю». К тому же, мне кажется, что это перспективная вещь. Уже сейчас есть люди, заинтересованные в этой системе (коммерчески). Но мы не торопимся с этим – хотим вывести ее на более высокий уровень – потому что как только начнется коммерция, начнутся и претензии.

Реверс

Претензии, впрочем, уже начались. В начале прошлого года вокруг ReactOS разразился небольшой скандал: проект был обвинен в том, что заимствует дизассемблированный код Windows. Рассказ Алексея на эту тему напоминает детективную историю.

– Это было организовано небольшой группой лиц. По каким причинам – для нас осталось неизвестным. Несколько наших разработчиков решили пойти против всех остальных. Ситуация была следующая: мы периодически проводим различные исследования – например, взяли загрузочный сектор от Windows, дизассемблировали, написали комментарии и залили в SVN-репозитарий. А есть наш собственный бутсектор – он с ним никак не коррелирует. Но, как факт – виндовый бутсектор с комментариями у нас лежит

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату