# ReactOS

ReactOS is een opensourceproject dat als doel heeft om een besturingssysteem te maken dat vergelijkbaar is met Windows NT (NT 4.0) en Windows Server 2003 (NT 5.2). Compatibel betekent in dit geval met name dat bestaande programma's en drivers moeten werken. In een later stadium wordt ook naar compatibiliteit met Windows Vista (NT 6.0) gekeken. De ontwikkeling van het project bevindt zich echter nog in de alfafase. ReactOS wordt verspreid onder de GPL en de LGPL.

## Geschiedenis

Rond 1996 startte een groep opensourceontwikkelaars een project dat FreeWin95 heette. Doel van dit project was binaire en API-compatibiliteit met Windows 95, een opensource-Windowskloon dus. Het project kwam echter nooit uit de ontwerpfase.
Tegen het einde van 1997 waren er nog steeds geen resultaten. Jason Filby werd projectcoördinator en riep iedereen op die nog steeds op de lijst stond om het project nieuw leven in te blazen. Men streefde nu naar compatibiliteit met de NT-kernel en naar geschreven code in plaats van eindeloos gepraat. De projectnaam ReactOS werd gekozen, omdat men het oneens was/is met het monopolie dat Microsoft had gecreëerd. Het project startte in februari 1998 met de ontwikkeling van de kernel en de basale drivers.
De eerste paar jaar van ReactOS verliepen vrij moeizaam, ondanks de grote hoeveelheid code die al geschreven was. Slechts enkele ontwikkelaars wisten namelijk hoe je een kernel moest schrijven. Het was de tijd dat er maar enkele mensen waren die de eerste moeilijke stapjes maakten. Een paar jaar later, toen de kernel steeds completer en stabieler begon te worden en toen er basale drivers geschreven werden, die de IDE-apparaten en het toetsenbord bedienden, werden ook steeds meer mensen in de mogelijkheid gesteld om mee te doen aan de ontwikkeling.

## Functionaliteit

In 2004 is de kernel een stuk volwassener geworden, veel API's zijn inmiddels compleet genoeg voor verdere ontwikkeling. Er is veel werk verricht in de bibliotheken. Er is basale netwerkcode, maar deze is dan nog niet functioneel. Een basale vorm van de Graphics Device Interface en een VGA-grafische driver bieden nu de mogelijkheid om een GUI te draaien. Het aantal ontwikkelaars groeit gestaag.
Versie 0.2 van ReactOS kan diverse Win32-programma's draaien, inclusief Kladblok (een simpele tekstverwerker), Regedit (de registereditor), cmd (Opdrachtprompt) en een groot aantal andere programma's en een paar eenvoudige spelletjes.
Vanaf versie 0.3 is het mogelijk om met de Firefox-webbrowser op het internet te surfen. Versie 0.3.15 voegde verbeterde ondersteuning voor USB. Onder meer muizen, toetsenborden en opslagapparaten worden ondersteund.
Sinds versie 0.3.17 ondersteunt ReactOS ook lezen van NTFS-volumes.

## Toekomst

In de toekomst zal ReactOS verbeteringen bevatten op het gebied van multimedia, plug-and-play-hardware en de GUI.
Ook Java en .NET (via Mono) staan op de planning. Na de ondersteuning van meerdere gebruikers zal er naar ondersteuning voor Terminal Services en Remote desktop worden gekeken. Hiervoor zullen XRDP, VNC en rdesktop worden gebruikt.
Het doel voor ReactOS 1.0 is om een stabiele subset te hebben van Windows Workstation. Deze zal ondersteuning hebben voor netwerken via TCP/IP, het gebruiken en hosten van Windows-shares via CIFS, OpenGL, DirectX en ondersteuning voor Windowsdrivers via WDM.

## Redenen voor een Windows-kloon

De redenen om het ReactOS-project te starten waren zeer vergelijkbaar met de redenen waarom Linux ontwikkeld is: om een bruikbaar, vrij, besturingssysteem te hebben, lijkend op een eerder systeem waaraan de gebruikers gewend zijn (Unix/Minix in het geval van Linux, Windows in het geval van ReactOS). Een andere zeer belangrijke reden was de mogelijkheid tot het porten van ReactOS naar andere CPU-architecturen, waardoor ReactOS in principe ook op andere hardware te draaien is. Naast de x86 build zijn ook de x86-64 en ARM builds in ontwikkeling.
Betrouwbaarheid, subsystemen, bestandssysteemdrivers, services en het register zijn volgens de ReactOS-ontwikkelaars goed geïmplementeerd in de NT-kernel. Die is verkozen boven de Win9x kernel, die op MS-DOS is gebaseerd en gebruikt wordt in Windows 95, 98 en Me. Verbeteringen kunnen echter niet door buitenstaanders aangebracht worden in de Microsoft-software, omdat de broncode niet openbaar is. De ReactOS-ontwikkelaars willen dit probleem oplossen door een vergelijkbaar opensourcebesturingssysteem te maken.

## Samenwerking met Wine

Het ReactOS-team werkt samen met het Wine-project. Met Wine kan een Linux/UNIX-gebruiker in zijn systeem Windows-programma's draaien. Wine heeft in 2008 zijn symbolische 1.0 versie uitgebracht, hoewel niet alles perfect werkt doen veel applicaties het prima. ReactOS streeft echter naar maximale compatibiliteit met Windows.
Er zijn slechts enkele Wine-DLL's die in ReactOS niet gebruikt kunnen worden. Dit zijn: NTDLL, USER32, KERNEL32, GDI32, en ADVAPI. De rest van de DLL's kunnen met het ReactOS-project gedeeld worden.
Ontwikkelaars van het project denken dat de combinatie van GNU/Linux en Wine het Windows-platform nooit in zijn geheel kan vervangen. Volgens hen heeft ReactOS veel meer potentieel, met name als het gaat om drivers, die Wine niet kan benaderen.

## Hardwarevereisten

* 64 MB RAM (aanbevolen 256 MB)
* IDE- of SATA-hardeschijf
* FAT16/FAT32-bootpartitie
* VGA-compatibele videokaart
* Standaard toetsenbord (USB of PS/2)
* Standaard computermuis (PS/2, serieel of USB)
De ondersteunde hardware is beperkt.

## Externe link

* (en) Officiële website
* ↑ ReactOS 0.4.14 released.
* ↑ DistroWatch.com: ReactOS. distrowatch.com. Geraadpleegd op 31 oktober 2023.
* ↑ (en) ReactOS 0.3.15 Begins Supporting USB Mice
* ↑ (en) Phoronix - ReactOS Finally Supports Reading NTFS Volumes
* ↑ (en) WINE - ReactOS
* ↑ (en) Installing ReactOS
* ↑ (en) Supported Hardware