ReactOS | |
---|---|
Разработчик | ReactOS Foundation |
Семейство ОС | Windows NT |
Первый выпуск | 20 июля 1998 |
Последняя версия |
0.4.14-release (17 декабря 2021) |
Последняя тестовая версия |
0.4.15-dev-8538-gc2b295f (16 августа 2024) |
Менеджеры пакетов | Менеджер приложений ReactOS (RAPPS) |
Поддерживаемые языки | английский, немецкий, русский, китайский, итальянский и чешский |
Поддерживаемые платформы | x86 и x86-64 |
Тип ядра | гибридное |
Лицензия | GNU GPL[1] и GNU LGPL[1] |
Состояние | активное |
Репозиторий исходного кода | github.com/reactos/react… |
Веб-сайт | reactos.org (англ.) |
Медиафайлы на Викискладе |
ReactOS — международный проект свободной и бесплатной операционной системы с открытым кодом, совместимой с приложениями и драйверами Windows (Windows NT версии 5.x и выше — Windows 2000 и далее), при этом не являющейся точным клоном Windows. Разработчики ReactOS сотрудничают с разработчиками Wine[2] и MinGW[3].
Проект находится на незавершённой стадии альфа-тестирования с 1998 года[4]. На сегодняшний момент многие приложения Windows (например, Adobe Reader 6.0, OpenOffice.org[5]) в системе уже работают.
Различные части системы лицензированы под GNU GPL, GNU LGPL и лицензией BSD.
Элементы системы в основном созданы на языке программирования Си, а некоторые из них, такие как ReactOS File Explorer, написаны на C++. ReactOS частично покрывает возможности Windows API и имеет версию, портированную для архитектуры AMD64[6]. Проект ReactOS, как часть экосистемы свободных программ, сотрудничает со многими другими FOSS-проектами[7][8], в первую очередь, с проектом Wine Project, который разрабатывает программу Wine для Unix-подобных операционных систем, которая могла бы открывать приложения Windows.
В начале 1996 года группа разработчиков свободного программного обеспечения объявила о начале проекта FreeWin95[9][10][11], целью которого была разработка свободного клона системы Windows 95. Проект остановился на дискуссиях об архитектуре системы. К концу 1997 года проект всё ещё не принёс никаких результатов. Чтобы оживить проект, цель изменили на клонирование Windows NT[12], а новое название было придумано в беседе в IRC — ReactOS. В феврале 1998 года проект стартовал.
По состоянию на конец 2010-х годов разработчики трудятся над компонентами системы. В связи с отсутствием спонсора и немногочисленностью команды разработчиков активность проекта невысока.
Несколько раз предпринимались попытки портировать ReactOS на различные архитектуры, но на текущий момент поддерживаются только версии для x86 и x86-64[13].
Релиз ReactOS 0.4.7, вышедший 6 декабря 2017 года, стал седьмым выпуском, подготовленным после перехода проекта к более оперативному формированию релизов — не раз в год, а раз в три месяца и первым после перехода проекта с Subversion на Git и GitHub[14][15].
С использованием открытости системы периодически создаются форки на основе ReactOS, которые спустя некоторое время после создания, как правило, забрасываются.
В 2011 году, в качестве попытки привлечь инвестиции, предполагался выпуск коммерческой версии ReactOS под брендом WooS (подобно тому как Red Hat является коммерческой версией Fedora), которая позиционировалась авторами как альтернатива легковесной Windows XP, утратившей поддержку корпорацией Microsoft[25].
В апреле 2014 ReactOS анонсировала Indiegogo-кампанию по сбору денег для запуска ReactOS Community Edition, базирующийся на ReactOS-0.4. Данной кампании необходимо было собрать 50 000 $ для разработки. Предполагалось, что она будет поддерживать приложения и драйверы для многих устройств. 1 июня 2014 кампания завершилась с итогом в 25 141 $[26][27].
Проект ReactOS организовал хакатон с 7 по 12 августа 2015 в немецком городе Ахен[28].
Второй хакатон был организован с 14 по 18 августа 2017 в немецком городе Кёльне[29].
Третий и четвёртый хакатоны были организованы в Берлине с 16 по 21 августа 2018[30], и с 15 по 20 августа 2019[31] соответственно.
Проект восемь раз принимал участие в Google Summer of Code — в 2006[32], 2011 и с 2016 по 2022 год[33].
По состоянию на май 2016 года была проделана работа над совместимостью с аппаратной частью, многие API были реализованы для высокоуровневой разработки, графическая оболочка ReactOS — ReactOS Explorer — была переписана в соответствии с проводником Windows Server 2003[34].
Начиная с версии 0.2, ReactOS способна запускать многие Win32-приложения: как поставляемые с Windows (текстовый редактор «Блокнот», редактор реестра Regedit, командный интерпретатор cmd), так и сторонние (например, текстовый процессор AbiWord, Adobe Reader, OpenOffice.org, свободный архиватор PeaZip, игры Quake, Quake II и клон игры сапёр, использующий Wine).
Сообщается, что некоторые игры, например Unreal Tournament и Deus Ex, работают в режиме программного рендеринга. OpenGL работает с незначительными трудностями посредством драйвера Nvidia или программной реализации Mesa 3D. В начале 2016 года удалось запустить игру Half-Life 2, использующую DirectX 9[35].
Во время ReactOS Hackfest 2015 была показана поддержка печати.
В 2015—2017 годах была расширена поддержка файловых систем. Кроме FAT32 и CDFS, в ReactOS была добавлена поддержка NTFS (только чтение), Ext2, BtrFs, ReiserFS, UFS, UDF, NFS и ISO.[36].
На Google Summer Of Code 2018 Виктор Переверткин добавил возможность загрузки ReactOS с BtrFS.
Начиная с версии 0.2.8 ассортимент выполняемых приложений был расширен. В частности, нормально работают офисный пакет OpenOffice.org, игры Unreal Tournament и Deus Ex. Ведётся работа над улучшением поддержки звуковых карт и USB. Работает текстовый браузер Lynx и DCOM-компонент браузера Mozilla Firefox, позволяющий графически отображать страницы. Добавлена поддержка файловой системы ext2 и системного загрузчика GRUB, что позволяет ReactOS работать на одном компьютере с Linux. Началась работа над Plug and Play и над поддержкой Windows Driver Model.
Версия | Дата выхода | Информация о версии |
---|---|---|
0.0.7 | 20 июля 1998 | Первый выпуск |
0.0.8 | 24 августа 1998 | Добавлена начальная поддержка юникода. |
0.0.9 | 28 августа 1998 | Исправления в менеджере памяти; Улучшения в менеджерах объектов и ввода-вывода |
0.0.10 | 5 сентября 1998 | Начат драйвер IDE; Переписана часть менеджера памяти; Исправлена загрузка модулей; Внесены исправления в DPC и драйвер клавиатуры |
0.0.11 | 13 сентября 1998 | Исправления ошибок; Улучшена поддержка файловых систем |
0.0.12 | 4 октября 1998 | Начальная поддержка многозадачности; Исправления в системных вызовах; Исправлена компиляция библиотеки kernel32; Исправлена ошибка с неверным сегментом состояния задачи; Добавлена поддержка секций; Начата реализация APC |
0.0.13 | 9 ноября 1998 | Исправление ошибок |
0.0.14 | 6 июня 1999 | ReactOS полностью перешла на формат исполняемых файлов PE |
0.0.15 | 20 января 2000 | Значительные улучшения в ядре системы |
0.0.16 | 4 августа 2000 | Повышена стабильность ядра; Значительные улучшения в системных библиотеках; Работа с консолью вынесена в CSRSS; Значительно переделана консоль; Начата реализация именованных каналов; Улучшены драйвера VGA и FAT, HAL, менеджер ввода-вывода, менеджер памяти; Улучшена поддержка LPC |
0.0.17 | 9 февраля 2001 | Начата реализация сканирования шины PCI; Добавлена основная поддержка NDIS 3.0; Добавлена поддержка multiboot; Начата реализация указателя мыши |
0.0.18 | 1 августа 2001 | Начата реализация DIB; Начата реализация Plug and Play для шины ISA; Реализована поддержка прямого доступа к памяти |
0.0.19 | 5 марта 2002 | Слой аппаратных абстракций отделён от ntoskrnl; Добавлена поддержка структирированной обработки исключений; Завершена поддержка виртуальной памяти; Исправления в драйвере шины PCI; Начата работа над подсистемой POSIX |
0.0.20 | 6 августа 2002 | Исправления в реестре; Исправления в системе управления потоками; Реализован новый механизм монтирования; Значительные улучшения в драйверах файловых систем; Начата работа над поддержкой подсистемы OS/2, улучшена подсистема POSIX; В загрузчик добавлена поддержка LBA |
0.0.21 | 31 октября 2002 | Исправления в менеджере памяти, менеджере объектов; Начата работа над загрузкой с CD-диска; Значительные улучшения в win32k; Начата реализация драйвера для сетевых карт NE2000 |
0.1.0 | 1 февраля 2003 | Первая версия, которая могла загружаться с CD-диска; Первая версия, в которой ReactOS может быть скомпилирован в ReactOS; Значительные улучшения в ядре |
0.1.1 | 30 марта 2003 | Улучшен диспетчер ввода-вывода; Значительные улучшения в win32k |
0.1.2 | 2 июля 2003 | Улучшения в коде, используемом драйверами, позволившие использовать некоторые сторонние видео драйверы |
0.1.3 | 30 августа 2003 | Улучшения и исправления ошибок в win32k |
0.1.4 | 8 октября 2003 | Начата реализация OpenGL и драйвера для файловой системы NTFS; Улучшено ядро |
0.1.5 | 13 ноября 2003 | Проведена подготовительная работа для поддержки DirectDraw; Переписан драйвер PS/2-мыши; Реализована графическая консоль; Улучшена поддержка DMA |
0.2.0 | 25 января 2004 | Первая версия с работающим графическим интерфейсом пользователя; Значительные улучшения практически во всех компонентах системы; Начата работа над драйвером VBE; Драйвер CD-дисководов поддерживает смену диска в дисководе |
0.2.1 | 3 марта 2004 | Исправления ошибок |
0.2.2 | 27 апреля 2004 | Стало возможно запустить AbiWord и IrfranView. Использование видеодрайвера VBE. |
0.2.3 | 26 июня 2004 | Улучшения в ядре, win32k и сетевой подсистеме |
0.2.4 | 13 сентября 2004 | Множество улучшений, связанных с отладкой как системы, так и отдельных приложений; Исправлено большое количество ошибок |
0.2.5 | 2 января 2005 | Добавлен блокнот из Wine, добавлено приложение время/дата |
0.2.6 | 9 апреля 2005 | Поддержка ускорения для NVIDIA OpenGL |
0.2.7 | 21 августа 2005 | Новая командная строка, добавлена первая стадия установщика |
0.2.8 | 29 октября 2005 | Переписан CSRSS; ReactOS может определять, работает ли он внутри виртуальной машины VMware, и устанавливать SVGA-драйвер из набора VMware Tools ISO для повышения производительности графики |
0.2.9 | 22 декабря 2005 | Исправления ошибок |
0.3.0 | 27 августа 2006 | Первая версия, официально поддерживающая работу с сетью |
0.3.1 | 10 марта 2007 | Добавлен менеджер приложений, начато переписывание ядра; Улучшен загрузчик системы |
0.3.2 | пропущен | Была создана ветвь кода, однако эта версия так и не была выпущена |
0.3.3 | 12 сентября 2007 | Улучшения в ядре и win32k |
0.3.4 | 22 января 2008 | Переписана поддержка реестра и технологии Plug and Play, добавлена поддержка технологий SSE и SSE2, проведена большая работа по переводу системы; Начата работа по поддержке удалённого вызова процедур |
0.3.5 | 30 июня 2008 | Исправления ошибок в загрузчике системы, исправлено множество критических ошибок во всех разделах ядра, переписан код ранней инициализации менеджера памяти |
0.3.6 | 7 августа 2008 | Исправления ошибок и устранение утечек памяти в сетевом стеке; Множество исправлений и улучшения в ядре; Проведена синхронизация большей части кода wine, используемого в ReactOS с последней версией wine; Улучшения в ARM-версии, начата работа над x86-64 версией; |
0.3.7 | 4 ноября 2008 | Улучшена поддержка x86-64; Значительные улучшения в Менеджере конфигурации, Менеджере ввода-вывода, функциях ядра, Менеджере памяти, Менеджере объектов, Менеджере процессов; Исправления в драйверах файловых; Проведена синхронизация большей части кода wine, используемого в ReactOS с последней версией wine |
0.3.8 | 4 февраля 2009 | Исправления ошибок и улучшения в базовых сервисах ядра; Введён PSEH; Исправлена поддержка жёстких дисков с несколькими разделами в LiveCD; Решён ряд проблем в системных драйверах |
0.3.9 | 26 апреля 2009 | Минимально необходимо 24 МБ оперативной памяти, добавлена начальная поддержка звука; Решены различные проблемы NDIS и AFD, что улучшило совместимость с драйверами сетевых карт; Проведена синхронизация большей части кода wine, используемого в ReactOS с последней версией wine |
0.3.10 | 5 июля 2009 | Добавлены начальная поддержка SATA, USB-клавиатур/мышек, возможность работы с разделами размером больше 8 гигабайт; Существенно улучшена поддержка сетевых карт; Проведена синхронизация большей части кода wine, используемого в ReactOS с последней версией wine |
0.3.11 | 16 декабря 2009 | Переписан kdcom; Добавлены шрифты для китайского и корейского языка; Улучшена совместимость; Улучшена поддержка звука; Проведена синхронизация большей части кода wine, используемого в ReactOS с последней версией wine |
0.3.12 | 20 октября 2010 | Переписаны обработчики ловушек, таймеров и событий; Добавлена поддержка немаскируемого прерывания; Улучшена поддержка технологии PnP; Заменён драйвер шины PCI на более совершенный |
0.3.13 | 22 марта 2011 | Полностью переписан диспетчер кучи, в него были добавлены дополнительные возможности отладки для обнаружения доступа к памяти вне границ выделенного для производимой операции блока; Увеличено количество поддерживаемых SATA-устройств; Исправлены проблемы с графикой; Добавлена возможность динамической смены видеорежима и улучшена совместимость видеодрайверов; улучшено управление линиями аудиомикшера; Улучшена обработка данных от мыши, а также поддержка сообщений и таймеров; Произведено множество улучшений в диспетчере памяти. |
0.3.14 | 7 февраля 2012 | ACPI включён по умолчанию, Добавлены поддержка Wi-Fi (незащищённый и с WEP-шифрованием), поддержка тем оформления, новый драйвер TCP/IP[37] (на базе библиотеки LwIP), поддержка Scatter/Gather DMA, переписан shell32 |
0.3.15 | 30 мая 2013 | Начальная поддержка USB-клавиатур, мышей, а также устройств хранения данных; Полностью переписанная подсистема управления сессиями; Добавлена поддержка AHCI за счёт обновления драйвера UniATA; Новый диспетчер памяти принял на себя почти все функции по управлению памятью; Начальная поддержка отладки компонентов ReactOS при помощи windbg; Улучшения, созданные на основе результатов тестирования системы при помощи среды тестирования приложений AutoHotKey; Исправления ошибок, найденных по результатам сканирования утилитой Driver Verifier во встроенных драйверах. |
0.3.16[38] | 6 февраля 2014 | Переписан CSRSS, начато переписывание shell32, улучшена поддержка тем оформления. В состав системы добавлен новый драйвер для сетевых карт на основе чипа RTL8139. Обновлён драйвер UniATA. |
0.3.17[39] | 5 ноября 2014 | Включение в состав системы NTVDM — эмулятора, обеспечивающего поддержку большого количества 16-битных приложений; устранение багов; ReactOS успешно загружается в Virtual PC 2007 |
0.4.0[40] | 16 февраля 2016 | Улучшения в shell32, достаточные для нормальной работы новой версии ReactOS Explorer, переход на новую версию ReactOS Explorer; Улучшения в драйверах USB, звуковой и сетевой подсистемах; Поддержка файловых систем ext2/3/4 как на чтение, так и на запись; Поддержка файловой системы NTFS для чтения; Улучшения в работе на виртуальных машинах, в том числе в поддержке гостевых дополнений[41]. |
0.4.1[42] | 17 мая 2016 | Значительное улучшение поддержки SxS и Microsoft Visual C++ Redistributable Packages[43]; Улучшение поддержки драйверов видеокарт[44]. Поддержка файловой системы Btrfs. |
0.4.2 | 16 августа 2016 | Обновление внешних зависимостей (WINE, UniATA), исправления в графической оболочке и файловом проводнике, поддержка чтения и записи разделов с файловыми системами ReiserFS и UFS, добавлен набор утилит unixutils. |
0.4.3 | 16 ноября 2016[45] | Осуществлён переход на новую библиотеку с реализацией API Winsock. Исправлено более 200 ошибок[46]. |
0.4.4 | 16 февраля 2017[47] | Обновлён русский и турецкий перевод, добавлен японский язык, исправлено более 100 ошибок[48]. |
0.4.5 | 18 мая 2017[49] | Усовершенствована графическая подсистема, обеспечен запуск MS Office 2010, добавлена базовая реализация NTLM[50]. |
0.4.6 | 1 сентября 2017[51] | Увеличена надёжность работы с буфером обмена. Закрыто 399 отчётов об ошибках[52]. |
0.4.7 | 6 декабря 2017[53] |
|
0.4.8 | 14 апреля 2018[55] |
|
0.4.9 | 23 июля 2018[57] |
|
0.4.10 | 6 ноября 2018[58] |
|
0.4.11 | 4 марта 2019[59] |
|
0.4.12 | 23 сентября 2019[60] |
|
0.4.13 | 10 апреля 2020[61] |
|
0.4.14 | 16 декабря 2021[62] |
|
0.4.15 | ||
0.5.0 | Бета-версия; полная поддержка WDM-драйверов на уровне Windows 2003; поддержка чтения и записи файловой системы NTFS; совместимость с большинством программ для Windows XP и 2003 | |
Старая версия Последняя версия Планируемая версия |
Большая часть операционной системы написана на Си, но ReactOS Explorer и некоторые другие компоненты — на C++. ReactOS можно скомпилировать из исходных кодов при помощи различных компиляторов, в частности GCC из пакета MinGW, Clang[63], а также Microsoft C/C++ из Microsoft Visual Studio.
Разработчики стремятся сделать систему совместимой с Windows NT версии 5.2 (Windows Server 2003) и добавить поддержку для большинства оборудования и приложений[64]. В будущем планируется совместимость с более новыми версиями Windows.
Ядро системы написано полностью самостоятельно, а для обеспечения «схожести» с архитектурой WinNT использована информация только из открытых источников. Весь поступающий в проект код подвергается тщательной проверке на предмет возможного нарушения авторских прав[65].
Реализация OpenGL по умолчанию использует программный рендеринг через драйвер Mesa3D. Поддержка DirectX реализуется через WineD3D — обертку, транслирующую функции DirectX в OpenGL. Реализации GDI и GDI+ основаны на коде Wine[66].
Число участников проекта постоянно растёт, на 21 июня 2020 года в проекте участвуют 30 активных разработчиков, большинство из них живёт в странах Европы[65][67].
Для отстаивания интересов проекта был создан фонд «ReactOS Deutschland e.V.», расположенный в Германии. Кроме того, раньше существовал «Фонд активизации киберпространства „РеактОС-Фонд“», зарегистрированный в России, однако с 2015 года он ликвидирован.[68]
ReactOS использует части кода Wine для реализации Windows API. В чистом виде Ntdll, user32, kernel32, gdi32 и advapi32 не могут быть использованы проектом из-за архитектурных различий, сниппеты из них используются в обоих проектах. ReactOS использует собственное NT-подобное ядро, а Wine использует *nix-ядра.
В январе 2010 года координатор проекта Алексей Брагин предложил[69] альтернативу большой части подсистемы Win32 — Arwinss, базирующуюся на Wine, и поэтому имеющую большую совместимость и способную иметь большую стабильность. Данное решение не предназначено для полного замещения оригинальной реализации Win32-подсистемы, и может быть неактуально после завершения работ над собственной подсистемой Win32 в ReactOS. Arwinss использует архитектурные решения как Wine, так и Windows NT в надлежащих местах для правильной реализации функциональности. Также в результате периодически будут поступать протестированные «бесплатные» (то есть затраты времени на их применения сравнительно малы) обновления из Wine.
В дополнение появляется возможность поддержки удалённого X-сервера, что удобно для полной замены Wine, используя вместо него связку ReactOS+Arwinss в виртуальной машине (например, KVM), при которой будет использоваться общая с Wine подсистема Windows API[70].
17 января 2006 года в списке рассылки разработчиков ReactOS (ros-dev) Хартмут Бирр заявил, что он покидает проект, поскольку, по его мнению, код ReactOS содержит элементы, полученные путём дизассемблирования Microsoft Windows[75]. В результате разработчики решили временно отключить доступ всем неразработчикам к коду ReactOS. Поскольку ReactOS является свободным ПО, эти действия вызвали негативный отклик в сообществе свободного ПО.
Доступ к средствам разработки был вскоре восстановлен. Хотя обвинения не были доказаны, 8 марта 2006 года разработчики ReactOS начали собственный аудит всего кода, отвечающего за совместимость с Windows. Чтобы убедиться, что в ReactOS нет частей, написанных кем-то, кто мог видеть утёкший из Microsoft код или проводил обратную разработку напрямую, ведущими разработчиками ReactOS было отдано распоряжение о полной проверке всего исходного кода.
Также было решено проверять, какие участки кода могли быть результатом непосредственной обратной разработки, и заставить всех разработчиков подписать соглашение о том, что они будут использовать результаты обратной разработки лишь косвенно[76]. Ожидается, что это замедлит разработку, заставляя разработчиков переписывать уже готовые участки кода, попавшие под подозрение. Проверка будет проводиться путём закрытия «грязных» участков кода до тех пор, пока они не будут полностью проверены[77].
На сентябрь 2007 года проверка была завершена на 99,5 % (оставалось только 49 закрытых файлов). 23 сентября было решено убрать с главной страницы сайта ReactOS индикатор завершённости проверки[78]. Это было мотивировано тем, что проверка не затрагивает конечных пользователей, тестеров или второстепенных разработчиков, а также тем, что процесс создания прочной и легальной основы для исходного кода ReactOS и стандартов разработки не может быть адекватно отражён обычным индикатором и будет продолжаться всё время существования проекта. Информация о проверке и её история по-прежнему свободно доступны на сайте.
В настоящий момент проверка завершена полностью и все файлы разблокированы.
Участниками проекта ReactOS были зарегистрированы в России товарные знаки[79][80]. Коллектив разработчиков стремится получить финансирование от российского правительства для создания стартапа[81] и продвижения ReactOS под собственным брендом в качестве российской национальной операционной системы.
Операционная система ReactOS была продемонстрирована политику Виктору Алкснису[82], который выступает за снижение зависимости учебных заведений от продукции Microsoft. Во время визита президента Дмитрия Медведева в среднюю школу в селе Верхнерусское в Ставропольском крае ему была продемонстрирована работа ReactOS[83].
C 1 по 9 июля 2012 года Александр Речицкий и Марат Каратов презентовали проект на Селигере в смене «Инновации и техническое творчество». В результате проект ReactOS занял 3 место в номинации «лучший IT-проект» в промежуточных итогах, а 5 ноября вышел в полуфинал[84][85] Зворыкинской премии. 31 июля 2012 года Марат Каратов встретился с президентом Российской Федерации Владимиром Путиным и продемонстрировал работу прототипа ReactOS[86].
2 июня 2015 года Министерство связи Российской Федерации включило ReactOS в план импортозамещения программного обеспечения по направлению «Клиентские операционные системы / Серверные операционные системы» в качестве проектов «Создание операционной системы с открытым исходным кодом на базе ReactOS для ПК, ноутбуков и других мобильных устройств», «Создание операционной системы с открытым исходным кодом на базе ReactOS для серверов» при поддержке Фонда «РеактОС», МГТУ им. Н. Э. Баумана, ООО «Параллелз Рисерч» и др.[87].
{{cite news}}
: Проверьте значение даты: |archive-date=
(справка)Фан-сайты и сообщества
Блоги разработчиков