Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
класс литературы (см. например, процитированную выше книгу Свена<br />
Шрейбера).<br />
Впрочем, разработчики <strong>Linux</strong> не избежали тех сложностей, с которыми<br />
столкнулись их коллеги из мира Windows. Как бы хороша и<br />
всеобъемлюща ни была открытая ОС, проблема эмуляции удачливого<br />
коммерческого конкурента возникла давно и до сих пор не сходит с<br />
повестки дня. Не удивительно, что именно проект WINE (www.winehq.<br />
org) стал точкой соприкосновения разработчиков <strong>Linux</strong> и ReactOS.<br />
Значительная часть кода WINE может использоваться в ReactOS (и<br />
наоборот), и некоторые программисты из группы ReactOS одновременно<br />
работают и над WINE.<br />
Знакомство<br />
Операционная система ReactOS (последняя версия – 0.3.3) доступна<br />
для скачивания на сайте проекта (www.reactos.org) и на <strong>LXFDVD</strong>. На<br />
сайте ReactOS красуется картинка с ReactOS CD в фирменной упаковке,<br />
но если вы и в правду захотите иметь такой диск, вам придется сделать<br />
его самостоятельно. ReactOS доступен в виде образа установочного CD,<br />
образа «живого» CD, позволяющего загрузить систему без установки<br />
на компьютер или в виде предустановленных пакетов для эмуляторов<br />
QEMU и VMWare (для знакомства с ReactOS я выбрал последний вариант).<br />
Можно, разумеется, собрать систему самому из исходных текстов,<br />
причем это совсем не сложно.<br />
Скорость загрузки ОС соответствует ее размерам (то есть, значительно<br />
превышает скорость загрузки Windows). В процессе загрузки<br />
на экране появляется эмблема ReactOS (Рис. 1), затем перед нами<br />
предстает рабочий стол, выполненный в классическом стиле Windows<br />
95/NT. На кнопке Пуск вместо эмблемы Microsoft изображена, естественно,<br />
эмблема ReactOS. В самом начале работы в глаза бросился<br />
неприятный штрих – операционная система предложила установить<br />
драйвер какого-то устройства, которое она сама не смогла опознать.<br />
Откуда в предустановленной виртуальной среде появилось неизвестное<br />
устройство, я не понял, но должен отметить, что окно мастера<br />
установки драйверов очень похоже на аналогичное окно Windows.<br />
Простим разработчикам мелкие огрехи графического интерфейса вроде<br />
меню, которые не всегда вовремя исчезают с поверхности рабочего<br />
стола, – все это проблемы роста, которые, я уверен, будут устранены<br />
когда разработчики совладают с «начинкой» системы. Структура<br />
меню кнопки «Пуск», естественно, напоминает структуру аналогичного<br />
меню Windows, хотя и в упрощенном варианте. В меню есть разделы<br />
Programs, My Documents и Settings. В разделе игр находим стандартные<br />
для Windows «Сапер» и «Солитер». Если ReactOS все еще не подходит<br />
для высокопроизводительного офисного труда, то самые популярные<br />
убийцы рабочего времени уже на месте (Рис. 2).<br />
Говорить о производительности и стабильности системы в сравнении<br />
с Windows или <strong>Linux</strong>, разумеется, еще слишком рано. Пока что о<br />
зрелости разработки ReactOS можно судить по количеству поддерживаемых<br />
программ. Firefox (Рис. 3) работает в ReactOS почти без проблем<br />
(я, правда, устанавливал его без расширений и Google Toolbar),<br />
ReactOS<br />
Уровни документированности Windows<br />
API<br />
Клонирование Windows может быть увлекательным делом, в своем роде. Иногда анализ работы<br />
системы превращается в детективное расследование. Разумеется, всем программистам приходится<br />
искать ошибки в своих (а иногда, и чужих) программах. Эта работа тоже требует некоторых<br />
навыков из арсенала Шерлока Холмса. Однако в случае с проприетарными системами детективная<br />
аналогия становится еще более очевидной, поскольку программист, изучающий такую систему,<br />
часто вынужден искать то, что было вполне сознательно спрятано от его глаз коллегами «с<br />
той стороны баррикад». Свен Шрейбер делит интерфейсы программирования Windows на четыре<br />
категории, согласно степени документированности:<br />
1 Официально документированные. Описание этих API можно найти в SDK, DDK и MSDN.<br />
2 Полудокументированные. Вы не найдете описания этих API в официальной литературе<br />
Microsoft, но входящие в них функции и типы данных можно встретить в общедоступных заголовочных<br />
файлах и примерах программ из тех же SDK и DDK.<br />
3 Недокументированные, но не скрытые. Упоминание этих функций и типов данных не встречается<br />
ни в литературе Microsoft, ни в доступных исходных текстах, но их можно «выудить» из<br />
различных компонентов системы с помощью специальных инструментов (например, отладчика<br />
Kernel Debugger).<br />
4 Полностью скрытые. Эти API и компоненты так хорошо запрятаны, что обнаружить их можно<br />
только с помощью обратной инженерии и инъекции кода. Как правило, скрытые API связаны с<br />
очень специфичными механизмами работы Windows, знание которых вряд ли понадобится разработчику<br />
эмуляторов наподобие WINE, но может пригодиться тем, кто клонирует ОС Windows<br />
(и, конечно, всевозможным злоумышленникам).<br />
впрочем, судя по всему, разработчики ReactOS «затачивали» свою<br />
систему под этот браузер. Opera устанавливается и запускается, но<br />
загружать web-страницы, увы, не может. Архиватор WinRAR не только<br />
установился в системе, но и отлично справлялся со своими обязанностями<br />
(следует правда, отметить некоторые огрехи отображения<br />
графического интерфейса, имевшие место как в WinRAR, так и в неработоспособной<br />
Opera).<br />
Список приложений, с которыми дружит ReactOS, конечно, не<br />
исчерпывается приведенным выше. На сайте проекта можно найти<br />
экранные снимки, демонстрирующие запуск OpenOffice.org (хотя,<br />
поскольку речь идет об эмуляции Windows, демонстрация Microsoft<br />
Office выглядела бы внушительнее), Macromedia Flash Player, Nero<br />
Burning Rome и даже Unreal Tournament (первой версии). Для работы с<br />
локальными файлами в ReactOS есть ReactOS Explorer и WineFile. Есть<br />
в системе и свой собственный web-браузер, который пока что бесконечно<br />
далек от IE. Любопытно отметить наличие в ReactOS четырех<br />
рабочих столов, кнопки переключения между которыми расположены<br />
на панели задач. Тот, кто подумает, что разработчики ReactOS украли<br />
идею нескольких рабочих столов у <strong>Linux</strong>, ошибется. В Windows эта концепция<br />
реализована уже давно, только средства переключения между<br />
рабочими столами по умолчанию не установлены.<br />
Майк Сондерс в обзоре Syllable (LXF78) как-то отметил быстроту<br />
загрузки системы. ReactOS тоже загружается очень быстро, но, учитывая<br />
небольшое число реализованных системных компонентов, радо-<br />
Рис. 1. (слева)<br />
Так стартует<br />
ReactOS.<br />
Рис. 2. (справа)<br />
Наши любимые<br />
программы.<br />
Январь 2008 <strong>Linux</strong> <strong>Format</strong> 51