Последняя релизная версия ReactOS 0.4.15 выпущена 21 марта 2025 г. В ней было сделано множество улучшений, чтобы она могла грузиться на реальном железе, а не только в виртуальной машине. А в начале октября 2025 Вадим Галянт выпустил экспериментальную сборку ReactOS, специально предназначенную для отработки загрузки операционной системы на реальном оборудовании, совместимым с Windows XP (NT5.x).

В конце статьи приведены ссылки на скачивание и порядок создания загрузочной флешки.

Список оборудования, на котором была протестирована загрузка до рабочего стола

Ноутбуки

1. Fujitsu Siemens Lifebook S7110 - 2007 год выпуска
2. Asus K42D -2010 г
3. Samsung RV515 - 2011 г.
4. Toshiba Satellite Pro L300 PSLB1E-02200HRU 2008 г.
5. ASUS A8Sr - 2007 г.
6. Fujitsu Siemens Lifebook E780 core I5-2010 г
7. ASUS Eee PC - 2007 г.
8. HP Compaq Presario CQ61 - 2009 г.
9. Dell inspiron 14-5447 - 2014 г.
10. HP ElitBook 2540p - 2010 г.

Десктопы

1. Asus m5a97 2012 г.
2. NF650iSLIT-A 2007 г.
3. VIA P4M266-8237 Celeron 2,26 (2001 г. ??)
4. ASUS P5K PRO (2007 г.)
5. GA-P35-S3G (2007 г.)
6. Foxconn 661 7MI
7. ASUS M2N-MX (2007 г.)
8. MSI FM2-A55M-E33 (MS-7721) (2012 г.)
9. ECS P35T (2007 г.)
10. GA -780T-D3L (2011 г.)

Часть скриншотов..

На каком оборудовании не загрузилось (примеры)

1. Dell Latitude 5480 core i5-7300

Lenovo ThinkCentre M71e

HP ElitBook2570


Немного истории

В 2020 году Вадим предложил дорожную карту по разработке ядра ReactOS ( ReactOS development roadmap (for the kernel) ) с тем, чтобы заложить основу для работы ReactOS на реальном железе с поддержкой приложений и драйверов для NT5.x (Windows XP).
Сокращения:
MM - менеджер памяти
CC - менеджер системного кэша
PNP - менеджер plug and play
PO - менеджер электропитания
HAL - Hardware Abstraction Layer
ACPI — Advanced Configuration and Power Interface
PIC — Programmable Interrupt Controller
APIC — Advanced Programmable Interrupt Controller
UP — Uniprocessor
MP — Multiprocessor

Предполагался следующий порядок разработки или доработки уже существующего.

1 - Memory и Сache менеджеры
( Диспетчер кэша (Cache Manager) в операционной системе Windows XP обеспечивает кэширование данных — временное сохранение часто используемых файлов в кэш-памяти для быстрого доступа
Менеджер памяти (Memory Manager) в операционной системе Windows XP управляет ресурсами памяти — выделяет и освобождает память для разных процессов и приложений.)
Задачи:
1.1.1 - основная задача на этом этапе - это избавление от MEMORYAREA, использование структур SECTION и SEGMENT вместо PROS_SECTION_OBJECT и MMSECTION_SEGMENT. Соответственно код для поддержки работы секций необходимо будет изменить и добавить отсутствующую функциональность.
1.1.2 - добавление инициализации системного кэша и недостающих функций для него.
1.1.3 - коррекция MmAccessFault() и всех связанных функций
1.1.4 - тестирование, отладка, форматирование кода
1.2.1 - СС менеджер, по-всей видимости, должен быть фактически обновлён, так использует другие структуры..
1.2.2 - тестирование, отладка, форматирование кода
1.3.1 - на этом этапе должна быть реализована подкачка страниц. Этот этап может быть реализован позже.
1.3.2 - тестирование, отладка, форматирование кода

2 - HAL
Задачи:
2.1.1 - ACPI APIC UP HAL (halaacpi.dll) изменить и добавить недостающий функционал для процессора и APIC контроллера.
2.1.2 - тестирование, отладка, форматирование кода
2.1.3 - после завершения разработки перевести "LiveCD" на halaacpi;
2.2.1 - ACPI APIC MP HAL (halmacpi.dll) (нужна поддержка MP)
2.3.1 - ACPI PIC HAL (halacpi.dll)
2.4.1 - Non-ACPI PIC HAL (hal.dll)
2.5.1 - Non-ACPI APIC UP HAL (halapic.dll)
2.6.1 - Non-ACPI APIC MP HAL (halmps.dll)
2.7 - после окончания разработки объединить все HALs в один (если это будет необходимо).

3 - PNP менеджер
Задачи:
3.1 — добавить библиотеку arbiter;
3.2 — скорректировать и дополнить библиотеку RTL "rangelist.c" (отсутствует поддержка пересекающихся диапа��онов);
3.3 - добавить\заменить Windows-совместимые Device Node Status Flags 
3.4 - переделать подсистему инициализации
3.5 - переделать подсистему нумерации устройств
3.6 - переделать подсистему удаления устройств
3.7 - переделать подсистему работы с аппаратными ресурсами
3.8 - проанализировать и возможно изменить подсистему интерфейса с User-mode PnP подсистемой
3.9 - тестирование, отладка, форматирование кода

4 - PO менеджер
Задачи:
4.1 Текущий функционал предельно минимален, так как для виртуальных машин он не обязателен, UNIMPLEMENTEDs гораздо больше чем IMPLEMENTED... Нужен анализ и добавление необходимого функционала, а также корректировка процедуры завершения работы ОС.

5 - Драйверы
Задачи:
5.1 Проверка совместимости драйверов между ОС:
Протестированы некоторые драйверы NT в ReactOShttps://docs.google.com/spreadsheets/d/1xvsjmEFZ9euM5uSlIDB3s1S_2xmgI7HtnHN22yZFfUw/htmlview#
Протестированы некоторые ROS в NT OShttps://docs.google.com/spreadsheets/d/1xvsjmEFZ9euM5uSlIDB3s1S_2xmgI7HtnHN22yZFfUw/htmlview#
5.2 - для драйвера pcix требуется arbiter-библиотека, этот драйвер должен стать основным вместо текущего pci
5.3 - для драйвера acpi необходимо добиться совместимости с NT, в частности, из DriverEntry () сделать вызов HalInitPowerManagement () для создания интерфейса с HAL.
5.4 - добавить "drivers\storage\ftdisk.sys"
5.5 - добавить "drivers\storage\partmgr.sys"
5.6 - добавить недостающий функционал в NTFS, а также возможность загрузки ОС с разделов NTFS.

Все это сделано для одной цели: ReactOS не должна быть «ОС только для Virtual Box».

Что сделано (в первом приближении) на сегодняшний момент согласно этой дорожной карте, и что пока не реализовано

Работа по данной дорожной карте продолжалась около 4 лет
(Ядро начал копать когда закончил USB (2018 кажется) (с) Вадим Галянт) ;-)

Были переработаны
MM и СС менеджеры (MM не полностью, поддержка подкачки не делалась, PAE тоже)
HAL (сделан только одноядерный ACPI Т.е. ACPI APIC UP (halaacpi.dll) )
PNP менеджер (в том числе добавлена библиотека arbiter)
(PNP менеджер - пока что не отработано удаление устройств. Хотя поддержка извлечения USB устройства работает. )
PO менеджер (по минималке вообще... )
Не сделаны NTFS + соответствующий функционал CC.

Разработаны\доработаны и протестированы драйверы
scsi.sys
pcix.sys
acpi.sys
ftdisk.sys
partmgr.sys
usbser.sys

В результате проделанной работы обеспечена возможность загрузки ReactOS на совместимом железе до рабочего стола.

Что дальше.

На следующем этапе планируется обеспечить возможность установки сторонних драйверов, совместимых с WindowsXP.
Что предстоит сделать .

Доработать код RunOnce

Три этапа

1) Installing enumerated devices
2) Installing legacy devices
3) Install enumerated devices triggered by legacy devices

На этом этапе надо доработать весь механизм установки и удаления драйверов. "Будет правильно работать этот механизм - будут и драйверы устанавливаться." Поэтому в ближайших планах доработка umpnpmgr, setupapi, setup... В конечном итоге в диспетчере устройств REactOS устройства должны отображаться аналогично диспетчеру в WindowsXP. Сейчас это не так

Немного о применяемых методах обратной разработки и отладки

Hot-patching

См. https://github.com/vgalnt/reactos/commits/hooklib/

Этот метод основан на  https://techcommunity.microsoft.com/t5/windows-kernel-internals-blog/hotpatching-on-windows/ba-p/2959541?lightbox-message-images-2959541=326748i3F5F15E6EE2BD030Но
"Functions in NT 5.x executables (exe dll sys) generated by the MSVC compiler have hot-patch points. Why do Windows functions all begin with a pointless MOV EDI, EDI instruction?
This can be used to hooking the functions you need to explore the NT. For example, for tracing functions, examining function parameters, examining structures, and for other purposes."

Для поиска функции используются данные из файла .pdb (вместо информации из таблицы адресов Hotpatch (HPAT) в PE-образе). Таким образом можно отслеживать функции, изучать структуры, сравнивая их до и после вызова исходной функции. Ещё один вариант использования — замена исходной функции на собственную для тестирования в реальных («боевых») условиях. Действительно, во время разработки драйвера (или библиотеки DLL, или ядра) часто невозможно проверить весь файл, потому что другие функции ещё не реализованы. 

Процесс выглядит примерно следующим образом: из нужного символьного файла (.pdb) с помощью утилиты «dbh.exe» (входит в состав «Средств отладки для Windows» (WinDbg)) создаётся список функций. Затем, после удаления «мусора», запускается HookHelp.exe (приложение командной строки, анализирующее выходной файл перечисления DBH). Результат — несколько файлов, основные из которых — «ntfs_hooks.c», «ntfshooks.def», «ntfs_hooks.reg» (пример для ntfs).

  1. Файл *.c содержит функции-заглушки, которые после горячей замены будут выполняться вместо исходных и из которых они будут вызываться. Их можно редактировать для конкретных нужд.

  2. Файл *.def содержит список этих новых функций для экспорта из драйвера хука.

  3. Из файла *.reg информация добавляется в реестр гостевой системы Windows. Драйвер хука использует этот список для горячего обновления. Примеры на снимках экрана.

После сборки драйверы хуков (и *.reg) копируются в виртуальную машину и устанавливаются через cmd. После перезагрузки подключается отладчик, драйверы хуков запускаются раньше остальных драйверов Windows, чтобы DriverEntry мог обработать их позже.
Патчинг происходит уже в памяти (бинарные файлы не затрагиваются)."

Kernel Debug Network

Проработана возможность отладки по сети используя kdnet (Kernel Debug Network Adapter)
Доступен вариант Реактос собранный с помощью MSVC 2010. Для этого варианта добавлена возможность отладки по сетевому кабелю (kdnet). Список доступных контроллеров (из W8.1) 

На данный момент протестированы три драйвера

  1. Vendor ID 8086, Intel Corporation (kd_02_10ec.dll)

  2. Vendor ID 10EC, Realtek Semiconductor Corp. (kd_02_8086.dll)

  3. Vendor ID 14E4, Broadcom (kd_02_14e4.dll)

Дополнительная информация в файле "kdnet\kdnet ROS\reard.me.txt" архива "kdnet.zip".
(ссылка ниже)

Отладка по сети возможна для сборки VC и в файлы (до трёх, по мере загрузки), помимо отладки через сом порт и вывода отладочной информации на экран.

Собрано три варианта iso для каждого компилятора - GCC и MSVC
(LiveCD.iso, BootCD.iso, Hybridcd.iso)

Порядок создания загрузочной флешки и установки ReactOS.

Для удобства установки была разработана утилита ReactOS boot flash wizard.

Утилита позволяет скачивать требуемые iso файлы, и с помощью Rufus создавать загрузочную флешку.
Список iso файлов

Релиз 0.4.15
LiveCD ReactOS-0.4.15-x86-release.iso
BootCD ReactOS-0.4.15-x86-release.iso

Ночные сборки 0.4.16
https://iso.reactos.org/bootcd/latest-x64-msvc-win-dbg
https://iso.reactos.org/bootcd/latest-x86-msvc-win-dbg
https://iso.reactos.org/bootcd/latest-x86-gcc-lin-dbg
https://iso.reactos.org/bootcd/latest-x86-gcc-lin-rel
https://iso.reactos.org/livecd/latest-x64-msvc-win-dbg
https://iso.reactos.org/livecd/latest-x86-gcc-lin-rel
https://iso.reactos.org/livecd/latest-x86-msvc-win-dbg
https://iso.reactos.org/livecd/latest-x86-gcc-lin-dbg

Экспериментальную сборку 0.4.14 VG для тестирования загрузки на реальном оборудовании
https://wenda.rip/ROSVGISO/livecdVC.zip
https://wenda.rip/ROSVGISO/bootcdVC.zip
https://wenda.rip/ROSVGISO/livecdGCC.zip
https://wenda.rip/ROSVGISO/bootcdGCC.zip

Варианты создания загрузочной флешки:

1. С помощью утилиты "Rufus" установить нужный ISO файл на USB флешку (MBR и FAT).
Под Windows 7 для сборок 0.4.15 и 0.4.16 я использовал форк Rufusа https://github.com/Alex313031/rufus-win7/releases
По слухам лучше использовать фле��ки размером меньше 8 Гб. Удобнее флешки с индикацией, чтобы понимать что с ней происходит.
2. Для экспериментальной версии 0.4.14VG необходимо дополнительно использовать сторонние драйвера ahcix86.sys (3.3.1540.33) и iaStor.sys (11.2.0.1006)
Драйвер ahcix86.sys необходим для правильной работы приложений, использующих драйвер контроллера жёстких дисков (AHCI Compatible Controller Driver for Windows family). Он обеспечивает нативный доступ к портам SATA контроллеров, работающих в режиме AHCI (Advanced Host Controller Interface).
Драйвер iaStor.sys (Intel SATA Storage Device RAID Controller) нужен для управления контроллерами жёстких дисков SATA. Это компонент программного обеспечения Intel Application Accelerator Driver.
Файлы драйверов ahcix86.sys и iaStor.sys можно скачать по ссылке
https://wenda.rip/ahcix86v3.3.1540.33.zip
https://wenda.rip/iastor11.2.0.1006.zip

В сборках по этим ссылкам драйвера ahcix86.sys и iaStor.sys уже включены!
https://wenda.rip/ROSVGISO/livecdVC.zip
https://wenda.rip/ROSVGISO/bootcdVC.zip
https://wenda.rip/ROSVGISO/livecdGCC.zip
https://wenda.rip/ROSVGISO/bootcdGCC.zip

Если вы используете другие сборки, то необходимо добавить ahcix86.sys и iaStor.sys на флешку, в папку '..\system32\drivers\'.

Для работы с iso файлами можно использовать программу UltraISO
https://www.ezbsystems.com/ultraiso/download.htm

Полностью архив версии 0.4.14 VG можно скачать по ссылке
https://disk.yandex.ru/d/ZJIAK0Zmcp999g
Он содержит файлы
для VC - msvc_pdb.zip kdnet.7z livecd.zip hybridcd.zip bootcd.zip
для GCC - livecd.zip hybridcd.zip bootcd.zip
a также исходники ReactOS-0.4.14-vgal.zip

Ссылка на GitHub версии 0.4.14 VG - https://github.com/vgalnt/reactos/commits/releases/0.4.14-vgal/
Ссылка на GitHub основной версии https://github.com/reactos/reactos

Из последних новостей - Начальный этап исследования WDDM в ReactOS
от The_DarkFire_ | 7 октября 2025 г.