AboutROS

Материал из Русский WINE
Перейти к: навигация, поиск

ReactOS - ОС с открытым исходным кодом на основе архитектуры NT

Этот шаблон доклада (готовился для CC'2008, а позже был прочитан ещё на LVEE) который можно использовать в качестве основы "общего" рассказа о проекте ReactOS.

Небольшое введение (слайд 2)

Нас почему то очень часто спрашивают кому и зачем нужна ReactOS.

Уже долгое время известная свободная ОС — GNU/linux, «готова для десктопа», но количество пользователей почему то значительно меньше того, чем могло бы быть. Можно долго спорить, что «не так» и пробовать "переделать пользователя" под ОС, а можно просто дать пользователям то, к чему они привыкли, но уже свободное. Успех и популярность таких приложений, как Firefox и OpenOffice вселяет надежду, что если не пытаться «ломать» пользователей, то преимущества свободного ПО они поймут значительно быстрее. ;-)

Давайте попробуем представить, какой должна быть идеальная ОС для “простого пользователя”? Что будет, если собрать людей, далеких от IT, и спросить, что они хотят от ОС? Большинство из них скажет, что в основном Windows (2000/XP) их устраивает — хотя бы потому, что ничего другого они не видели (а есть еще и те, кто вообще не задумывался о том, что существуют и другие ОС). Итак, какие могут быть требования?

Во-первых, нужна стабильная работа. Кое-кто еще помнит, как жутко глючили Win9X/ME и скажет, что стабильность у (ветки) WinNT, более, чем достаточная. Кстати, архитектуру WinNT придумывали (и писали) не в Microsoft, как многие думают. (А “улучшения” MS, по мнению некоторых, сильно ее испортили. Во-вторых, все хотят совместимости. Причем не только, со своим старым ПО и принтерами-сканерами, но и .... так сказать, совместимости со своими привычками. “Простой пользователь” не захочет переучиваться — для многих из них даже Windows “осилить” не просто, а о *nix и думать бесполезно.

В-третьих, никто не захочет платить за “операционную систему своей мечты”. Причем, захотят не просто, чтобы она была бесплатной, а чтобы гарантированно оставалась бесплатной. И еще желательно, чтобы был выбор между разными производителями. И еще, при необходимости, возможность заглянуть в исходный код. Наиболее полно отвечает этим требованием свободное ПО.

В итоге, мы видим, что сегодня для “простого пользователя” нужна виндоус, но только OpenSource. И мы готовы (через некоторое время ;-) ) им такую ОС дать.

Что такое ReactOS? (3 слайд)

Ядро ReactOS написано полностью самостоятельно, а для обеспечения «схожести» с архитектурой WinNT использована информация только из открытых источников. Весь поступающий в проект код, подвергается тщательной проверке на предмет возможного нарушения авторских прав.

«Внутри» ReactOS похожа на NT, и некоторые функции поддерживают даже самые новые (например, API NT6 появились, когда Vista была только бета-версией). В настоящее время разработчики ориентируется на Windows XP/2003, но нужно понимать,что реализация некоторых механизмов в ReactOS и Windows может значительно различаться.

Число участников проекта постоянно увеличивается, сейчас в проекте участвуют около 35 активных разработчиков, большинство из них живут в странах Европы. Наряду с талантливыми «любителями» код пишут и профессиональные программисты.

ReactOS начали писать «не вчера», но несмотря на то, что «идея» проекта появилась достаточно давно, активное написание кода и его «утряска» идет только последние несколько лет. Ходят слухи, что скоро появится и бета-версия. ;-)

Уже написано огромное число кода, темпы разработки постоянно растут, есть порты на другие процессорные архитектуры (ARM, Power), за последние полгода выпущено «почти» 3 релиза. Текущая версия 0.3.6.

Исходный код (4 слайд)

ReactOS это проект, который интегрирован в общемировое OpenSource-движение. Везде, где возможно мы стараемся использовать сторонний открытый код, сотрудничать с разработчиками другого свободного ПО, писать для них багрепорты и патчи.

Основная часть «стороннего» кода взята из WINE, по-сути, ReactOS - это WINE на «нашем» NT-подобном ядре. И хотя «отдача» обратно в WINE происходит (пока?) не так интенсивно, как хотелось бы, мы надеемся что в перспективе, польза от ROS для WINE будет значительной.

Вот «на вскидку» несколько других проектов, код из которых использован в ROS:

Исходный код (5 слайд)

Из-за большого размера исходных кодов и требований Win32, нашими разработчиками был сделан ряд патчей и улучшений в:

  • Заголовочных файлах MinGW DDK.
  • Патчи для MinGW GCC и Binutils.
  • Патчи для QEmu и KQEmu.

С поддержкой бОльшего количества специализированных Win32 API, требуется импортировать больше библиотек, особенно для API секьюрити и поддержки GDI+.

Тем не менее, мы не будем включать те приложения, или те API, которых нет в Windows.

Что нам не нравится в Windows? (6 слайд)

  • Содержит ряд плохих решений, принятых во время истории 16-битной Windows 9x, но сохраненных из-за совместимости.
  • Содержит огромное количество «hacks» для поддержки плохо-написанных приложений и драйверов от сторонних разработчиков.
  • Содержит плохие решения, принимаемые в силу разных корпоративных причин (DRM, Driver Signing, ...).
  • Содержит много ошибок в прилагаемом ПО (Internet Explorer / Windows Media Player / Outlook Express).
  • Плохие решения по безопасности (пользователи по умолчанию работают в режиме Администратора, и т.п.), что подрывает архитектурную безопасность и надежность.
  • Закрытый исходный код, дорогостоящий, плохо документированный в области системной архитектуры (в сравнении с конкурирующими FOSS операционными системами).
  • Большинство возможностей по расширению не документируются, и не открыты для сторонних разработчиков.

Соответственно, мы надеемся (и будем очень стараться) избежать вышеописанного «особенностей» в ReactOS.

Текущий статус (7 слайд)

Большие части ядра уже совместимы с Windows 2003 SP1: Executive, Kernel Core (планировщик, диспетчер, прерывания, и т.д.), HAL, LPC, управление потоками и процессами, и поддержка I/O (кроме PnP). Другие части вообще не коррелируют с дизайном NT, в частности Cache Controller, Memory Manager.

Пользовательские приложения сейчас поддерживаются в ограниченном виде – только некоторые программы: Firefox, Thunderbird, OpenOffice, и т.д. Теоретически, ReactOS поддерживает как-минимум те программы, которые работают в Wine.

Драйвера тестируются реже, но вероятные проблемы: Некоторые драйвера используют разные трюки, зависящие от смещений, конкретных мест в памяти и переменных, специфичных для NT. Другие драйвера зависят от разницы в реализации PnP (синхронная или асинхронная). Плохая поддержка файловых систем из-за большой разницы в Memory Manager / Cache Controller.Видео драйвера от NVidia очень сильно завязаны на переменные ядра, поэтому перед использованием их нужно пропатчить.

ReactOS
Search.png
Доклады
О ReactOSARWINSSЧеЗа
Информация Новости Выпуски новостейПереводы блоговНовости проектаВидеоReactOS на ХабреUSB от Вадима Галянта
Разработка Руководство по программированиюОтсутствующая функциональностьВетви разработкиКомпоненты системыReactOS и WineПлан работРазработчикиСовместимость с dll WindowsНаиболее значимые изменения за годИспользуемые проектыGoogle Summer of CodeИзвестные проблемы
Порты AMD64ARMXboxPowerPC
Компоненты Файловые системыРежим совместимостиОтчеты об ошибкахПечатьUSBЯдро
Загрузчик Восстановление MBRЗагрузка из GRUBПараметры загрузки
Прочее ARWINSSПриложения в ReactOSОформление ReactOSКоординаторы"Пасхальные яйца"Монетизация
Другое Типы ядерFreeWin95
Помощь
RAM-диск ReactOS по PXEс жесткого диска
Разработка Стиль написания кодаСтандарты RC-файловРабота с документациейВенгерская нотацияGNU Indent • [ Subversion : ветвислияниеиспользование TortoiseSVN ] • Основы переводаОтправка патчей
Репорты Отладка в VirtualBoxОтладка на экранДобавление программы в менеджер приложенийОтправка отчетов
Отладка Com0comGDBKdbgRossym.gdbRoswin.gdbWinDBGРуководство по WinDBGВключение трассировки ядраКоды DPRINTУдалённый отладчик ReactOS
Сборка CMakeRBuildФайлы RBuildАвтоматическое копирование файловСборка MINGW-w64Сборка модулейСреда сборки
Тестирование VirtualBoxVMwareQEMUHyper-VНеобходимый объём дискаПеренос файлов на виртуальный дискУстановка ReactOSУстановка драйверов
Сеть Общие папкиSambaNFS
Игры Установка DirectPlay
Обновление ReactOSЗагрузочная флешкаЧем можно помочь проектуСоздание нового пользователяЗвук и сеть в VirtualBoxСъемка и публикация видеоIRC-каналСторонние компоненты
Обзоры ОболочкаNTVDMWOWCommunity Edition