Цю статтю потрібно повністю переписати відповідно до стандартів якості Вікіпедії. Ви можете допомогти, переробивши її. Можливо, сторінка обговорення містить зауваження щодо потрібних змін.(грудень 2018)
Близько 1996, група розробників почали проєкт під назвою FreeWin95, метою якого було створення операційної системи, клонуWindows 95. Проєкт застряг на дискусії про дизайн системи. На кінець 1997, проєкт все ще не мав результатів. Члени проєкту вимагали переглянути проєкт, і мета проєкту була замінена на Windows NT, а назва проєкту — на ReactOS. Проєкт ReactOS був розпочатий з розробки ядра і базових драйверів в лютому 1998.
На даний час ReactOS має за мету домогтись сумісності з Windows XP/2003 а не з старим NT 4.[1]
Функціональність
Станом на липень 2009 року ядро ReactOS досить стабільне, багато API реалізовано для високорівневої розробки і є базовий GUI. Особливістю ReactOS є Провідник ReactOS, який є базовою оболонкою для ReactOS, схожою на Провідник Windows.
З 2006 року проєкт перебуває у фазі alpha (до цього — pre-alpha), тому ReactOS ще зарано рекомендувати для повсякденного використання. Починаючи з версії 0.2, ReactOS може запускати багато Win32-додатків, як стандартні для Windows (текстовий редактор Notepad, редактор реєстру Regedit, командний інтерпретатор cmd), так і написані поза межами Microsoft (наприклад, текстовий процесор AbiWord, ігри Quake, Quake II и клон гри Minesweeper, що використовує Wine). Але через відсутність спонсора і невелику команду розробників активність проєкту не дуже висока. Перехід на стадію бета заплановано у версії 0.5
Перша версія, що встановлюється з CD, ще без графічного інтерфейсу. Доступно кілька інструментів командного рядка. Операції з файлами (такі як копіювання і видалення) функціонують ненадійно.
Більш стабільне ядро і багато маленьких поліпшень. Є підтримка звуку, що працює для деяких карт і достроково додано код для роботи мережі. Було продемонстровано скріншот текстового браузера Lynx, що відображає сторінку, хоча все ще потрібна певна доробка. Також додана підтримка для файлової системиExt2 (ці вихідні коди ще не включені до складу основної гілки) і системного завантажникаGRUB, дозволяючи ReactOS співіснувати з розділами Linux.
Важливі підготовчі кроки до робочого USB, інсталяції програм і ліквідація декількох помилок графічного інтерфейсу. USB 'запозичується' з Cromwell. Розпочато роботу над Plug&Play.
Розпочата робота по переписуванню деяких модулів ядра, HAL, завантажника FreeLdr. Оновлені і додані переклади (в тому числі і українські). Оновлені шрифти DejaVu до версії 2.13 Доданий новий застосунок Download! для завантаження і установки вільних програм.
Версія 0.3.2 була пропущена через серйозні проблеми із старими несумісними драйверами. В новій версії усунено дуже багато помилок, система стала суттєво стабільнішою в порівнянні з минулими версіями. Більшість основних модулів стали сумісними з NT5, ядро поліпшено і наблизилось в багатьох областях до NT 5.2. Розпочата повна переробка підсистеми Win32. Відбулись поліпшення в багатьох базових застосунках і аплетах панелі керування.
Підтримка інструкцій SSE / SSE2. Новий драйвер клавіатури і миші, що підтримує (Plug and Play). Покращення бібліотеки gdi32 в плані сумісності з Windows та ін.
Зменшення необхідної завантажувачу FreeLdr пам'яті для завантаження ReactOS. Можливість вивантаження драйверів. Виправлення помилок і усунення витоків пам'яті в мережевому стеку та ін.
Початок роботи над підтримкою компілятора MSVC. Покращення підртимки архітектури x86-64. Покрашення роботи і виправлення підсистем ядра: Configuration Manager, IO Manager, KE, Memory Manager, Object Manager, Process Manager. Усунення витоку пам'яті і збільшення функціональності мережевого стека.
Виправлення помилок і покращення в базових сервісах ядра (напр. реєстр, процедури сисемної інформації, примітиви синхронізації, такі як guarded mutex, підтримка вводу-виводу та ін.). Дано старт ініціативі щодо виправлення останніх двох модулів ядра, що дають найбільше проблем: Менеджер Пам'яті, підтримка кешування і API драйверів файлових систем, і іншого коду, що залежить від Mm. Впровадження нового механізму Переносної Структурованої Обробки Винятків (скорочено PSEH 2.0), який набагато ближчий синтаксично до SEH, що реалізується компілятором. Виправлено декілька досить старих помилок (таких, як проблеми з роботою LiveCD за наявності жорсткого диска з кількома розділами, відображення графіка завантаження процесора в менеджері завдань). Виправлені різні проблеми відмальовки GDI. Реалізована мінімальна open-source версія протоколу KernelDebugger, що дозволяє використовувати базову функціональність налагоджувача MS WinDbg. Покращення в бібліотеках CRT та RTL. Вирішено ряд проблем в системних драйверах: NPFS, CDFS, FASTFAT, FS_REC, SCSIPORT. Покращення відео-драйвера для кращої підтримки реального заліза. Продовження роботи над підсистемою Win32. Продовження роботи над підтримкою MSVC. Виправлення в інструментарії для збирання (також в рамках роботи з підтримки MSVC). Обновлені до останніх версій спільні з Wine базові утиліти та компоненти.
Зменшені мінімальні вимоги пам'яті до 32Mb. Теоретично, в наш час[коли?] ReactOS може бути встановлений при наявності 24Mb пам'яті і запущений з лише 20Mb. В ядрі реалізований новий, більш швидкий інтерфейс відображення гіперпростору (Hyperspace Mapping Interface), що дало приріст швидкості понад 300 %. Покращення в перевірці безпеки в Менеджері Об'єктів в ядрі збільшує продуктивність на 500 %. Це особливо помітно при роботі з реєстром чи великими файлами. Вирішені різні проблеми NDIS і AFD, що збільшило сумісність з драйверами мережних карт та зміцнило мережевий стек. Попередня підтримка звуку через новий сервіс Kernel Streaming. Тепер стало можливим використати драйвер ac97 через нову бібліотеку Port Class щоб слухати музику через winamp. Велика кількість роботи була зроблена над командним рядком щоб зробити його більш сумісним. Тепер він може виконувати складні сценарії (скрипти), включаючи наше Середовище Збирання (Build Environment). Багато поліпшень в частині GDI, яка працює в режимі ядра, покращили роботу графічного рушія у межах усієї кольорової гами. Синхронізація більшості usermode DLLs від Wine.
Усунена нездатність працювати з розділами розміром більше 8Gb. Додана можливість установки на будь-який з чотирьох основних розділів. Первинна підтримка контролерів SerialATA та розширена підтримка ATA
Первинна підтримка USB клавіатур та мишок. Значно покращена підтримка мережевих карт (20 різних мережевих карт були успішно випробувані). Підвищена стабільність мережі. Було введено клон додатка MS paint. Первинна підтримка компіляції для MSVC. Кращий перерозподіл використання системних ресурсів. Синхронізація більшості usermode DLLs від Wine та деякої частини коду підсистеми Win32, яка є спільною з Wine.
Переписана kdcom kernelmode бібліотека, яка стала більш сумісною з версією від Microsoft. Це дозволяє покращити вбудовану підтримку WinDbg. В інструменти для збирання була додана підтримка завантажуваних з затримкою dlls, що забезпечує можливість затримки завантаження для відвантажених бібліотек. Додана підтримка китайського та корейського шрифтів. Написаний новий обробник для установки та отримання загальносистемних параметрів (дивіться SystemParametersInfo API), тепер роблячи його більш завершеним та сумісним з реалізацією в Windows. Покращена підтримка різних програм включаючи Opera, OpenOffice, Firefox 3.5, VLC1.1 та Skype. Для розваги, була додана гра Солітер Павук. Синхронізація більшості usermode DLLs від Wine та деякої частини коду підсистеми Win32, яка є спільною з Wine.
Майбутнє
У найближчих планах випуск нової версії 0.3.14 (має з'явитися у 2011 році) а після неї перехід на серію релізів 0.4.х. Ця серія релізів буде останньою серією альфа-версій ReactOS. Починаючи з версії 0.4 ReactOS буде підтримувати мережевий протокол SMB, програмне вимкнення та перезавантаження комп'ютера, всі драйвери, написані для ReactOS будуть працювати в Windows, USB клавіатури і миші, з'явиться можливість встановлення системи на ext2 розділ. Також появиться працездатна версія нової користувацької оболонки (explorer).
Розробники ReactOS працюють над поліпшенням GUI, додаванням роботи мережі, мультимедіа, підтримки Plug&Play устаткування, підтримка Java і .NET (через Mono). Заготівки для підсистем DOS, OS/2 і POSIX також будуть зроблені, подібно до підсистем Windows NT.
Аудит вихідних кодів
З 8 березня2006 триває аудит тобто перевірка розробниками ReactOS вихідних кодів ОС у зв'язку з підозрою одного з розробників у використанні коду, отриманного шляхом дизасемблювання Windows (див. його лист [Архівовано 4 червня 2012 у Archive.is]).
Станом на вересень2007, аудит вихідних кодів завершено на 99.5%.
На даному етапі існують проблеми з підтримкою мов з нелатинськими алфавітами і не реалізовано перемикач розкладок клавіатури. Однак українська розкладка реалізована.
Пов'язані проєкти
ReactOS співпрацює з проєктом Wine стосовно динамічних бібліотек (DLL), більшість яких може бути спільною у ReactOS і Wine.
Оскільки ReactOS все ще на альфа-стадії розробки, рекомендовано працювати
під управлінням програмного забезпечення, що емулює вищезгадані апаратні засоби, наприклад Virtual PC, VMware, QEMU або Bochs, однак його використання пов'язане із втратою продуктивності (тобто швидкості роботи).
Встановлення
Стандартна процедура встановлення ReactOS з CD нагадує перший етап встановлення Microsoft Windows NT версій 3-5.
Також доступні LiveCD кожної офіційної версії та скомпільованої збірки релізів зі стовбура SVN.
Крім того, можна встановити ReactOS без CD, зкомпілювавши її з вихідних кодів у вказану папку.