AboutROS
Содержание
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 очень сильно завязаны на переменные ядра, поэтому перед использованием их нужно пропатчить.