AboutROS
Содержание
[убрать]ReactOS - ОС с открытым исходным кодом на основе архитектуры NT
Этот доклад готовился для CC'2008 (а позже был прочитан ещё на LVEE) вы
Небольшое введение (слайд 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 начали писать «не вчера», но несмотря на то, что «идея» проекта появилась достаточно давно, активное написание кода и его «утряска» идет только последние несколько лет. Ходят слухи, что скоро появится и бета-версия. ;-)
Уже написано огромное число кода, темпы разработки постоянно растут, идет портирование на другие процессорные архитектуры, за последние полгода выпущено «почти» 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 очень сильно завязаны на переменные ядра, поэтому перед использованием их нужно пропатчить.