Компьютерра, 2007 № 34 (702) - страница 16

Шрифт
Интервал

стр.


Впрочем, по выражению лица видно, что прогрессом на этом направлении Алексей доволен. Он вообще полон оптимизма. Об успехах говорить не стесняется, даже если эти успехи могут вызвать у слушателя улыбку или недоумение – как с тем же "синим экраном". На обычном PC, впрочем, система работает значительно лучше – можно запустить текстовый редактор (AbiWord), браузер (Firefox) и вообще довольно внушительный список приложений. Они даже будут работать. Пока ОС не «упадет» – а это рано или поздно случится, ибо версия – "ранняя альфа", и до практического ее применения конечными пользователями еще далеко.

ReactOS – свободный «клон» Windows NT и ее потомков (в число которых входит и Vista). Иными словами, участники проекта пытаются в свободное от остальных дел время переписать "с нуля" систему, на которую гигантская корпорация потратила уже несколько десятков лет работы (и страшно подумать, сколько человеко-лет). Конечно, в такой формулировке задача выглядит столь же грандиозно, сколь и безнадежно. Впрочем, не все так плохо.


– На самом деле, эта задача сравнительно просто решается, – оптимистично замечает Алексей. – Вот смотрите: в свое время был Unix, потом появился GNU (задуманный как свободный клон Unix – И.Щ.), в котором ядра не было, а потом появился Линус, который вовремя сказал: "У меня есть ядро, совместимое с GNU". И все пошло. У нас ситуация похожая. Есть куча драйверов – практически подо все. И есть не море, а целый океан win32-софта. И мы просто делаем ядро, совместимое и с тем, и с другим.

История

Решают эту "простую задачу" участники ReactOS вот уже 10 лет. Начало было положено еще в 1996 году – тогда проект назывался FreeWin95, но в конце 97-го года он был переориентирован на разработку WinNT-совместимого ядра и получил современное название.


– Нас часто спрашивают: "почему проект развивается столько времени, а прогресса пока немного?" – говорит Алексей, рассказывая об истории ReactOS. – С самого начала все было довольно интересно поставлено: были координаторы по разным областям (например: kernel coordinator, media coordinator, web coordinator, win32 subsystem coordinator и т. д.), но из-за острой нехватки людей фактически координаторы были просто разработчиками, которые с течением времени уставали и уходили. Бессменным оставался только первый координатор проекта – Джейсон Филби (Jason Filby). В начале он очень активно им занимался, ездил на выставки, налаживал связи (вообще этим он, конечно, заложил хорошую базу, даже несмотря на то, что в то время прогресс по фактической реализации был минимальный). Но вскоре время, которое он мог отдавать проекту, сильно сократилось – фактически он был только на email-связи для каких-то экстренных вопросов. Вот здесь удивительный момент – все это время проект жил и развивался сам собой, за счет энтузиазма разработчиков (грубо говоря: один сломал – другой исправил). Чисто с программистской точки зрения, это идеал для работы: выбирай то, что интересно, сроков никто не ставит, сам выбираешь способ реализации. Все бы хорошо, но в результате каждый продвигал что-то свое, и вместо того, чтобы сделать как надо, "подтачивал напильником" под то, что уже было реализовано. Взяли некоторые идеи от Windows, и сделали некое ядро – наполовину из идей NT, наполовину из своих идей. Написали для него драйверы, которые зависели от всех его глюков. И Win32 API взяли из Wine. А потом столкнулись с тем, что все это глючит, и систему невозможно развивать, потому что все сделано на примитивном уровне. Начали перерабатывать ядро – при этом полетели все драйвера – они не были рассчитаны на такую работу, их с Windows никто не тестировал.


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


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


стр.

Похожие книги