ReactOS

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
ReactOS
ReactOS logo.svg
ReactOS screenshot.png
ReactOS
Разработчик

ReactOS Foundation

Семейство ОС

Windows NT

Последняя тестовая версия

0.3.14 — 7 февраля 2012

Поддерживаемые платформы

x86, x86-64[1], ARM[1]

Тип ядра

Гибридное ядро

Лицензия

GNU General Public License и др.

Состояние

альфа-версия

Веб-сайт

www.reactos.org

ReactOS — международный проект свободной и бесплатной операционной системы с открытым кодом. ReactOS не является точным клоном Windows, но операционной системой, совместимой с приложениями и драйверами Microsoft Windows (Windows NT версии 5.x и выше — Windows 2000 и далее). Разработчики ReactOS сотрудничают с программистами Wine и mingw64[2].

По состоянию на декабрь 2011 года проект всё ещё находится на незавершенной стадии внутреннего альфа-тестирования, хотя некоторые цели проекта уже достигнуты и работает целый ряд Windows-приложений. Различные части ReactOS лицензированы под GNU General Public License, GNU Lesser General Public License и BSD License. В 2008 году были начаты работы над портированием ReactOS на другие архитектуры: x86-64 и ARM[1].

Содержание

[править] История появления

В начале 1996 года группа разработчиков свободного программного обеспечения объявила о начале проекта FreeWin95, целью которого была разработка свободного клона системы Windows 95. Проект забуксовал в нескончаемых дискуссиях о дизайне системы. К концу 1997 проект всё ещё не принёс никаких результатов. Чтобы оживить проект, цель изменили на клонирование Windows NT, а название — на ReactOS. В феврале 1998 года проект стартовал.

Разработчики операционной системы синхронизируют код с проектом Wine. В январе 2010 координатор проекта Алексей Брагин предложил[3] альтернативу большой части подсистемы Win32 — Arwinss, базирующуюся на Wine, и поэтому имеющую большую совместимость и способную иметь большую стабильность. Данное решение НЕ предназначено для полного замещения оригинальной реализации Win32 подсистемы, и может быть неактуально после завершения работ над ReactOS Win32 подсистемой. Arwinss использует архитектурные решения как Wine так и Windows NT в надлежащих местах для правильной реализации функционала. Также, в результате, будут «бесплатные» (то есть затраты времени на их применения сравнительно малы) обновления из Wine’а (протестированные).

В дополнение появляется возможность поддержки удаленного X сервера, что очень удобно для полной замены Wine, используя вместо него ReactOS+Arwinss в виртуальной машине (той же KVM например), при которой будет использоваться общая с Wine подсистема Win32[4].

[править] Функциональность

По состоянию на июль 2009 года ядро ReactOS было достаточно стабильным, проделана огромная работа над совместимостью с аппаратной частью, многие API реализованы для высокоуровневой разработки и имеется базовый GUI. В ReactOS есть ReactOS Explorer, который является базовой оболочкой для операционной системы, сходной с Windows Explorer. Начиная с версии 0.2, ReactOS способна запускать многие Win32-приложения, как стандартные для Windows (текстовый редактор Notepad, редактор реестра Regedit, командный интерпретатор cmd), так и написанные вне Microsoft (например, текстовый процессор AbiWord, игры Quake, Quake II и клон игры Minesweeper, использующий Wine). Сообщается, что некоторые игры, например Unreal Tournament и Deus Ex, работают в режиме программного рендеринга. OpenGL работает лишь с некоторыми незначительными трудностями посредством драйвера nVidia или программной реализации Mesa 3D. Но в связи с отсутствием спонсора и немногочисленности команды разработчиков активность проекта не столь высока.


[править] История версий

В версии 0.2.8 ассортимент выполняемых приложений был расширен. В частности, нормально работают офисный пакет OpenOffice.org, игры Unreal Tournament и Deus Ex. Ведётся работа над улучшением поддержки звуковых карт и USB. Работает текстовый браузер Lynx и DCOM-компонента браузера Mozilla Firefox, позволяющая графически отображать страницы. Добавлена поддержка файловой системы Ext2 и системного загрузчика GRUB, что позволяет ReactOS сосуществовать с Linux. Началась работа над plug and play и над поддержкой WDM.

Начиная с версии 0.2.8 ReactOS может определять, работает ли он внутри виртуальной машины VMware, и устанавливать SVGA-драйвер из набора VMware Tools ISO для повышения производительности GUI.

Начиная с версии ReactOS 0.3.0, имеется полноценная поддержка TCP/IP.

В версии 0.3.1 начата работа по переписыванию некоторых модулей ядра, HAL, загрузчика FreeLdr. Были обновлены и добавлены переводы частей системы и приложений для французского, итальянского и норвежского языков. Обновлены шрифты DejaVu до версии 2.13. Добавлено новое приложение Download! для простой установки свободных программ.

История изменений в последних версиях системы:

[править] Версия 0.3.3

включившая в себя в основном изменения в ядре, подтянула общий уровень совместимости ещё ближе к NT 5.2. Также была повышена стабильность многих модулей ядра, в частности — win32k.

[править] Версия 0.3.4

выпущена 22 января 2008 года:

  • Новый, переработанный менеджер конфигураций (Cm — Config Manager), с улучшенной совместимостью с NT 5.2
  • Поддержка инструкций SSE / SSE2;
  • Новый драйвер клавиатуры и мыши, поддерживающий горячее подключение устройств (Plug and Play);
  • Из проекта wine полностью синхронизированы все dll библиотеки, работающие на пользовательском уровне;
  • Начальная поддержка RPC и IDL, которая в дальнейшем послужит базой для обеспечения работы сервисов и комплексных программ, подобных Microsoft Office;
  • Значительные улучшения и оптимизации быстродействия в коде библиотеки user32;
  • Улучшение библиотеки gdi32 в плане совместимости с Windows;
  • Расширение функций, поддерживаемых shell32, улучшена работа апплетов панели управления, добавлен клиент удалённого доступа к рабочему столу (remote desktop client).
  • Большая работа проведена в области перевода текста в элементах интерфейса на различные языки и расширение языковых и региональных настроек.

[править] Версия 0.3.5

выпущена 30 июня 2008 года:

  • Обновление загрузчика (FreeLdr): некоторые части были полностью переписаны для лучшей совместимости и последующей поддержки кода
  • Исправлены проблемы с ошибками типа «повреждение памяти» (запись за пределы выделенного буфера) для кучи и пулов
  • Ядро: исправлено множество критических ошибок во всех разделах ядра, переписан код ранней инициализации менеджера памяти
  • Подсистема Win32: общие улучшения различных частей подсистемы, включая компоненты как режима пользователя, так и режима ядра
  • Переработаны ключевые части базовой CRT библиотеки для улучшения совместимости
  • Улучшения в интерпретаторе командной строки (cmd.exe), особенно в области исполнения batch-скриптов
  • Шрифты заменены на более точно соответствующие метрике шрифтов, применяемых в ОС Windows.
  • Улучшение интернационализации: реализовано переключение раскладок клавиатуры, работает апплет панели управления «Региональные настройки», первая стадия установки доступна в переводах на многие языки, добавлены новые раскладки клавиатуры
  • Работа над практически всеми драйверами и программами, апплетами панели управления и динамическими библиотеками DLL для достижения лучшей совместимости и улучшения функциональности.

[править] Версия 0.3.6

выпущена 6 августа 2008 года:

  • Поддержка других архитектур: улучшения в ARM версии, начало поддержки архитектуры x86-64
  • Уменьшение необходимой загрузчику FreeLdr памяти для загрузки ReactOS
  • Возможность выгрузки драйверов
  • Множество исправлений и улучшения ядра (доставка APC, таймер, большая работа над архитектурно-независимыми частями менеджера памяти)
  • Поддержка большего количества Win32 приложений благодаря исправлению реализации кучи в RTL (например, инсталляторы, основанные на Inno Setup, приложения Delphi, и др.)
  • Исправления ошибок и устранение утечек памяти в сетевом стеке
  • Дальнейшее развитие подсистемы Win32, большинство библиотек DLL режима пользователя синхронизированы с Wine

[править] Версия 0.3.7

выпущена 4 ноября 2008 года:

  • Улучшение поддержки архитектуры x86-64
  • Запуск проекта по реализации поддержки компилятора MSVC
  • Улучшение работы и исправления подсистем ядра: Configuration Manager, IO Manager, KE, Memory Manager, Object Manager, Process Manager
  • Устранение утечек памяти и увеличение функциональности сетевого стека
  • Исправления драйвера файловой системы, нацеленные на повышение совместимости с системой кеширования в Windows NT

[править] Версия 0.3.8

выпущена 4 февраля 2009 года:

  • Исправления ошибок и улучшения в базовых сервисах ядра (напр. реестр, примитивы синхронизации такие, как guarded mutex, поддержка ввода-вывода и др.)
  • Дан старт инициативе по исправлению оставшихся двух модулей ядра, дающих больше всего проблем: Менеджер памяти, поддержка кэширования и API драйверов файловых систем, и другого кода, зависящего от Mm
  • Внедрение нового механизма Портируемого SEH (сокращенно PSEH 2.0), который намного ближе по синтаксису и работе к SEH, реализуемому компилятором
  • Исправлено несколько довольно старых ошибок (таких, как проблемы с работой LiveCD при наличии жесткого диска с несколькими разделами, отображение графика загрузки процессора в менеджере задач, и т. п.)
  • Исправления отрисовки графики
  • Реализована минимальная версия протокола KernelDebugger, позволяющая использовать базовую функциональность отладчика MS WinDbg
  • Улучшения в библиотеках CRT и RTL
  • Решён ряд проблем в системных драйверах: NPFS, CDFS, FASTFAT, FS REC, SCSIPORT
  • Улучшения в видео-драйвере для поддержки реального железа
  • Дальнейшая работа над подсистемой Win32
  • Дальнейшая работа над поддержкой MSVC
  • Исправления в инструментарии для сборки (как часть проекта по поддержке компилятора MSVC)
  • Взаимное обновление базовых утилит и модулей с Wine

[править] Версия 0.3.9

выпущена 26 апреля 2009 года:

  • Снижены минимальные требования памяти до 32 Мб. В теории сейчас ReactOS можно установить имея 24 Мб ОЗУ и запускать всего-лишь с 20 Мб оперативной памяти
  • В ядре реализован новый, более быстрый интерфейс отображения гиперпространства («Hyperspace Mapping») что дало прирост производительности более, чем на 300 %
  • Улучшения в проверках безопасности в менеджере объектов повышают производительность на 500 %. Особенно это заметно при работе с реестром или большими файлами
  • Решены различные проблемы NDIS и AFD, что улучшило совместимость с драйверами сетевых карт и закалило сетевой стек
  • Предварительная поддержка звука через новый сервис Kernel Streaming. Теперь стало возможным использовать драйвер ac97 через новую библиотеку Port Class для воспроизведения звука используя программу winamp
  • Большая работа проделана над интерпретатором командной строки, чтобы сделать его более совместимым. Теперь он может исполнять сложные скрипты, включая Среду Сборки ReactOS (ReactOS Build Environment)
  • Множество улучшений в части GDI, работающей в режиме ядра и отвечающей за отрисовку изображений
  • Синхронизация большинства DLL с проектом Wine

[править] Версия 0.3.10

выпущена 5 июля 2009 года:

  • Добавлена возможность работы с разделами размером больше 8 гигабайт
  • Добавлена возможность установки на любой из четырёх первичных разделов диска
  • Базовая поддержка контроллеров SerialATA и Enhanced ATA
  • Базовая поддержка клавиатур и мышей USB
  • Существенно улучшена поддержка сетевых карт (подтверждена корректная работа 20-ти различных сетевых карт)
  • Более надежная работа в сети
  • Добавлен аналог приложения MS Paint
  • Первоначальная поддержка компилятора Microsoft Visual C
  • Улучшение использования системных ресурсов
  • Синхронизация большей части библиотек и общей части кода подсистемы Win32 с проектом Wine

[править] Версия 0.3.11

выпущена 16 декабря 2009 года:

  • Переписана библиотека kdcom, что улучшило встроенную поддержку WinDBG.
  • Добавлена поддержка китайского и корейских шрифтов.
  • Улучшена поддержка различных приложений, таких как Opera, OpenOffice, Firefox 3.5, VLC1.1 и Skype.
  • Добавлена игра «пасьянс Паук».
  • Произведена синхронизация с некоторыми компонентами из Wine.

(Данный список включает лишь наиболее значимые изменения, с полным списком можно ознакомиться на официальном сайте)

[править] Версия 0.3.12

выпущена 20 октября 2010 года:

  • Диспетчер памяти — Над диспетчером памяти продолжает усердно трудиться команда ARM, заменившая каждый компонент, кирпичик за кирпичиком, сохраняя при этом функциональность старого диспетчера.
  • Поддержка немаскируемых прерываний (NMI) — Теперь ReactOS способна обрабатывать немаскируемые прерывания и выводить Red Screen of Death, что крайне полезно для отслеживания аппаратных ошибок, обнаруживаемых процессором или чипсетом. Кроме того, была введена поддержка нестандартных вызовов немаскируемых прерываний, что актуально для некоторых серверных систем.
  • Переписан обработчик ловушек — Почти весь код обработки ошибок процессора, ловушек, исключений и системных вызовов теперь написан на C, а не на ассемблере. Большинство устаревших и/или более не используемых блоков кода было деактивировано, а также код, используемый для отладки и значительно снижающий производительность системы, теперь отключен по умолчанию. Кроме того, порты системы для архитектуры x64 и ARM включают гораздо больше такого кода.
  • EMS — Была частично реализована поддержка системы аварийного управления (Emergency Management System). Поддерживаются флаги загрузки, документированные Microsoft, отладочные данные отправляются в последовательный порт.
  • Совместимость с PnP — В код были внесены различные изменения, позволяющие улучшить работу с оборудованием и поддержку загрузки сторонних драйверов.
  • Улучшения в ACPI — Команда ARM разработала базовые драйвера, необходимые для поддержки батарей и драйверов UPS/батарей сторонних производителей, включая поддержку спецификации ACPI Composite Battery (композитные батареи).
  • Новый драйвер PCI-X — Команда ARM неспешно работала над новым драйвером шины PCI. Ранее, ReactOS использовала очень простой, и, по большей части, усеянный «заглушками» драйвер шины PCI с отсутствующей поддержкой большинства функций реальных шин PCI, мостов PCI-to-PCI, и т. д.
  • Поддержка SxS — Был добавлен совместный (side-by-side) код, а также функции загрузки и поиска манифест-файлов. Это большой шаг вперёд для обеспечения совместимости с современными приложениями, использующими эту технологию.
  • Таймер и поддержка обработки сообщений были переписаны. Неправильная обработка внеочередных системных сообщений приводила к зависаниям некоторых приложений, поэтому код обработки сообщений был переписан.
  • Сборка для архитектуры x64 — Хотя порт для платформы x64 по-прежнему на ранней стадии из-за ограниченных возможностей ядра, большинство основных проблем со сборкой решены и весь необходимый функционал уже добавлен в ядро.

[править] Версия 0.3.13

выпущена 22 марта 2011 года:

  • Реализовано переключение режимов экрана «на лету», а также улучшена совместимость с видеодрайверами.
  • Исправлено несколько ошибок в графике.
  • Менеджер кучи полностью переписан, добавлены отладочные средства для «отлова» операций, выходящих за дозволенные границы.
  • Улучшено управление линиями в аудиомиксере. Теперь звуки в приложениях перестали искажаться из-за наложений аудиолиний.
  • Огромная работа по исправлению ошибок в пользовательской подсистеме (user subsystem), в том числе, улучшение поддержки ввода с помощью мыши, сообщений и таймеров.
  • Исправлены различные проблемы в приложениях Firefox и Thunderbird.
  • Исправлена группа ошибок в установщике ОС.
  • Улучшена поддержка приложений, теперь в ReactOS работают: Stellarium 0.10.2, LHelp, winpcap, FlashPlayer 10.1 и Mono 2.8, OllyDbg 1.10, Xenon 2000, VLC 1.1.5, Foobar 2000, Skype 4.0.0.
  • Поддерживается всё больше устройств SATA.
  • Исправлено множество тестовых случаев.
  • Множество улучшений диспетчера памяти, исправляющих ошибки, и приближающих его к менеджеру памяти NT.

[править] Версия 0.3.14

выпущена 7 февраля 2012 года:

  • ACPI — Поддержка усовершенствованного интерфейса конфигурации и управления электропитанием теперь активируется автоматически при использовании ACPI HAL (уровня аппаратных абстракций), и обеспечивает возможность функционирования кнопок питания, а также функцию полного отключения питания системы.
  • LwIP — В кодовую базу ReactOS был добавлен новый драйвер TCP/IP, созданный на основе библиотеки LwIP, что привело к значительному увеличению стабильности и производительности сетевого стека системы, а также открыло возможность реализации поддержки IPv6 в будущем.
  • Совместимость с MSVC — ReactOS теперь можно собрать, используя компилятор от Microsoft, получив при этом полностью работоспособные образы установочного и livecd дисков.
  • Поддержка Scatter/Gather DMA — Система теперь поддерживает операции Scatter/Gather DMA, что значительно увеличивает совместимость с драйверами сетевых адаптеров, написанными для систем NT 5.1 и более поздних версий.
  • Улучшения в оболочке. Слияние программного кода, созданного в процессе переписывания библиотеки shell32 на язык C++, с основной кодовой ветвью проекта привело к множеству архитектурных усовершенствований, которые в будущем послужат нам основой для работы над новой оболочкой Проводника.
  • Специальный пул — Так называемый «специальный пул» был создан для проверки правильности использования пула памяти ядра.
  • Поддержка тем оформления — В ReactOS теперь имеется инфраструктура, необходимая для использования тем оформления пользовательского интерфейса и оболочки, что позволяет пользователям устанавливать и использовать темы, отличные от классической темы оформления Windows.
  • Wi-Fi — Весьма заметным достижением является то, что ReactOS теперь поддерживает беспроводные сети и способна подключаться к открытым сетям, а также к сетям, использующим шифрование WEP.

[править] Аудит кода

17 января 2006 года в списке рассылки разработчиков ReactOS (ros-dev) Хартмут Бирр заявил, что он покидает проект, поскольку, по его мнению, код ReactOS содержит элементы, полученные путём дизассемблирования Microsoft Windows.[5] В результате разработчики решили временно отключить доступ всем не-разработчикам к коду ReactOS. Поскольку ReactOS является свободным ПО, эти действия вызвали негативный отклик в сообществе свободного ПО.

Доступ к средствам разработки был вскоре восстановлен. Хотя обвинения не были доказаны, 8 марта 2006 года разработчики ReactOS начали собственный аудит всего кода, отвечающего за совместимость с Microsoft Windows. Чтобы убедиться, что в ReactOS нет частей, написанных кем-то, кто мог видеть утёкший из Microsoft код или проводил обратную разработку напрямую, ведущими разработчиками ReactOS было отдано распоряжение о полной проверке всего исходного кода.

Также было решено проверять, какие участки кода могли бы быть результатом непосредственной обратной разработки, и заставить всех разработчиков подписать соглашение о том, что они будут использовать результаты обратной разработки лишь косвенно.[6] Ожидается, что это замедлит разработку, заставляя разработчиков переписывать уже готовые участки кода, попавшие под подозрение. Проверка будет проводиться путём закрытия «грязных» участков кода до тех пор, пока они не будут полностью проверены.[7]

Поскольку большая часть исходного кода уже проверена, разработка ReactOS в этих областях может продолжаться. Таким образом проверка кода может производиться параллельно с разработкой и поддержкой проекта, так что темпы развития ReactOS риску не подвергаются.

На сентябрь 2007 года проверка была завершена на 99,5 % и оставалось только 49 закрытых файлов. 23 сентября было решено убрать с главной страницы сайта ReactOS индикатор завершённости проверки.[8] Это было мотивировано тем, что проверка не затрагивает конечных пользователей, тестеров или второстепенных разработчиков, а также тем, что процесс создания прочной и легальной основы для исходного кода ReactOS и стандартов разработки не может быть адекватно отражён обычным индикатором и будет продолжаться всё время существования проекта. Информация о проверке и её история по-прежнему свободно доступны на сайте.

В настоящий момент проверка завершена полностью и все файлы разблокированы.

[править] WÔÔS

Дмитрий Медведев с представителем WOOS (на основе ReactOS)

Участниками проекта ReactOS зарегистрирована торговая марка WÔÔS[9]. В настоящее время часть из них стремится получить государственное финансирование проекта, с целью создания стартапа WooS.NET [10] и продвижения ReactOS под брендом WÔÔS в качестве национальной операционной системы.


Ученик одиннадцатого класса Марат Каратов на встрече с президентом РФ представил на компьютере ReactOS. http://www.reactos.org/ru/news_page_67.html

[править] См. также

[править] Примечания

[править] Ссылки

[править] Фан-сайты и сообщества

[править] Обзоры

[править] Блоги разработчиков

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Участие
Печать/экспорт
Инструменты
На других языках