ReactOS hat das Ziel, zum Kernel von Windows NT kompatibel zu werden, wodurch es möglich werden soll, Programme und Gerätetreiber für Windows NT und dessen Nachfolger wie zum Beispiel XP, Server 2003 und 7 zu verwenden. Dazu wird unter anderem die Programmierschnittstelle Win32 nachgebildet.
Der Stand der Unterstützung ist ungefähr auf dem Stand des Jahres 2003. Ältere Software lässt sich oft nicht installieren; oft sind die Installer in 16 Bit geschrieben, was ReactOS nicht unterstützt. Neuere Programme laufen oft noch nicht, da die Unterstützung neuer Funktionen aus neuen Windows-Versionen oft noch nicht implementiert wurde.[3]
Das Betriebssystem wurde größtenteils unter der GNU GPL lizenziert, einige seiner Bestandteile stehen jedoch unter der LGPL oder unter der BSD-Lizenz.
Ein Problem beim Erreichen der Binärkompatibilität zu Windows ist, dass einige API-Aufrufe, die von vielen Programmen eingesetzt werden, nicht öffentlich dokumentiert sind. Außerdem müssen für ReactOS fast alle Teile neu programmiert werden, da beispielsweise nichts von Linux und nur wenig von BSD übernommen oder anderweitig genutzt werden kann. Eine Ausnahme sind jedoch die von Unix unabhängigen Bibliotheken des Wine-Projektes, sodass diese in ReactOS übernommen werden.[4]
Geschichte
Das Projekt wurde 1996 als „FreeWin95“ ins Leben gerufen und sollte nur zu Windows-95-Programmen kompatibel sein. Es knüpfte damit an ein vergleichbares Projekt an, das zum Ziel hatte, MS-DOS nachzuprogrammieren und als Open-Source-Projekt mit dem Namen FreeDOS bekannt wurde. Es ist heute ein brauchbarer DOS-Nachbau, aber mit heutiger Windows-Software nicht kompatibel. Nachdem FreeWin95 in einer längeren Spezifizierungsphase hängen geblieben war, belebte 1998 Jason Filby als Projektkoordinator das Projekt neu, das seither als ReactOS bekannt ist. Dabei wurde die Kompatibilität zu Windows NT als neues Projektziel festgelegt.
Lange Zeit war das ReactOS-Team mit der Entwicklung des Kernels beschäftigt, so dass kaum ein Erfolg sichtbar wurde. Mit dem Erscheinen von Version 0.2 bot ReactOS erstmals eine grafische Benutzeroberfläche. Dadurch wurde die Presse verstärkt auf ReactOS aufmerksam. Die Unterstützung von Java-, OS/2- und DOS-Programmen wurde auf die Agenda gesetzt, bisher jedoch nicht weiter verfolgt. Eine Implementierung der Internetprotokollfamilie, basierend auf dem IP-Stack von FreeBSD, war dagegen bereits benutzbar.
Am 8. Januar 2007 wurde die erste 4000-Euro-Spendenkampagne gestartet und am 11. Februar 2007 mit einer Summe von 4450 Euro beendet. Das Geld wird hauptsächlich für die Serverpflege und die Steigerung der Bekanntheit von ReactOS verwendet. So erhoffen sich die Programmierer, durch ein steigendes öffentliches Interesse am Projekt neue Entwickler und Tester anzulocken.
Das Projekt präsentierte sich am 25. Februar 2007 erstmals beim jährlichen Treffen europäischer Entwickler von freier Software in Brüssel (FOSDEM).
Anfang 2009 wurde die bisherige Roadmap durch eine neue Planung bis Version 0.5 ersetzt.[5] Die Entwicklung von freien NTFS-Treibern ist für Version 0.5 angekündigt.[6]
Am 16. Januar 2010 äußerte sich Alexei Bragin,[7] damals Koordinator des Projekts, über konzeptionelle Schwächen des Win32-Subsystems und entwarf ein alternatives 32-Bit-Subsystem, um einem funktionsfähigen System näher zu kommen. Das Win32-Subsystem, dessen Softwaredesign Windows näher ist als dem von Wine, soll temporär durch ein neues Subsystem ergänzt werden, das auf Wine-Quellcode beruht (im Gegensatz zu veralteten Versionen im derzeitigen Win32-Subsystem), anstatt diese neu zu entwickeln.[8][9]
Nicht von der Neuerung betroffen ist der bisherige Grafiktreiber, der im Vergleich zu X Window von Wine mit Systemaufrufen zum Kernelmodus Win32k effizientere Grafikaufrufe ermöglicht.
2014 wurde die neue Desktop-UmgebungReactOS-Explorer – ein freier Nachbau des Windows-Explorers – freigegeben.[10] Dieser ersetzte den (englisch) als ROS explorer oder auch old explorer bezeichneten Vorgänger, der am ursprünglichen Windows-Explorer und am noch älteren Dateimanager angelehnt war.[11] ReactOS-Aktualisierungen werden jeweils im Abstand von drei Monaten veröffentlicht.
Google Summer of Code
Seit dem Jahr 2006[12] nimmt ReactOS am Google Summer of Code (GSoC)-Projekt teil. Beim GSoC 2011 wurden vier ReactOS-Projekte fertiggestellt, darunter ein TCP/IP-Treiber auf Basis von lwIP (lightweight IP),[13][14] und ein GDI-Schrifttreiber.
Am 1. Mai 2012 wurde eine 30.000-Euro-Spendenkampagne gestartet[15] und Ende des Jahres mit einer Spendensumme von 14.392 Euro abgeschlossen.[16]
Projekt Thorium Core Cloud Desktop
Im Dezember 2013 wurde ein Thorium Core Cloud Desktop genanntes Cloud-Computing-Projekt auf Basis von ReactOS auf der Crowdfunding-Plattform Kickstarter zur Einwerbung von 120.000 US-Dollar gestartet, das am Ende der zweimonatigen Kampagne mit nur zirka 40 Prozent des geplanten Betrags scheiterte.[17]
Projekt ReactOS Community Edition
Vom 2. April bis 1. Juni 2014 lief eine zweite Crowdfunding-Kampagne auf Indiegogo zur Finanzierung einer ReactOS Community Edition mit einem angestrebten Spendenziel von 50.000 US-Dollar. Für die jeweils drei am meisten durch die Community gewählten Windows-Anwendungen und Geräte soll mit dem Geld volle Kompatibilität ermöglicht werden.[18] Die Kampagne wurde als Teilerfolg mit einem Betrag von $25.141 abgeschlossen.[19]
Auszeichnungen und Förderungen
Im Juni 2013 wurde ReactOS als SourceForge-Projekt des Monats ausgezeichnet.[20]
Lobbyarbeit in Russland
Die russische ReactOS Foundation unternahm von 2007 bis zu ihrer Auflösung 2015 mehrere Versuche, ReactOS als möglichen Ausweg aus der Abhängigkeit Russlands von ausländischen Softwareanbietern zu positionieren. Diese Versuche zeigten jedoch keine Ergebnisse.
Das ausführlichste Treffen fand 2007 mit dem nationalistischen Hardliner Wiktor Alksnis statt, der zu dieser Zeit die Partei Rodina in der föderalen Duma vertrat.[21]
2011 nutzten Vertreter der Stiftung einen Besuch des damaligen Präsidenten Medwedew in einer Schule, um ihn mit dem Projekt bekanntzumachen.[22] 2012 wurde ReactOS beim Seliger-Treffen dem inzwischen wiedergewählten Wladimir Putin vorgeführt.[23]
Am 1. April 2015 nahm Entwickler und Stiftungsvertreter Alexei Bragin an einem Expertentreffen des russischen Telekommunikationsministeriums zum Thema Schutz vor Importsoftware teil. Dort belegte das von Bragin vorgestellte „Projekt zur Entwicklung eines Client-Betriebssystems auf Basis von ReactOS“ im Bereich Client-Betriebssysteme den zweiten von drei Plätzen.[24][25]
Versionen
Version
Veröffentlichung
Anmerkungen
Ältere Version; nicht mehr unterstützt: 0.1.0
2. Februar 2003
Erste von CD installierbare Version, ohne Grafische Benutzeroberfläche. Dateioperationen wie Kopieren und Löschen funktionieren noch nicht zuverlässig[26]
Viele Fehlerbehebungen, Winlogon-Implementierung, besserer Bootmanager
Ältere Version; nicht mehr unterstützt: 0.3.3
12. September 2007
Fehlerbehebungen, Win32-Kernelmodule zum Teil neu geschrieben, Änderungen am DirectX-System; Version 0.3.2 wurde übersprungen.
Ältere Version; nicht mehr unterstützt: 0.3.4
22. Januar 2008
Kompatibilität mit NT 5.2 (Windows 2003) verbessert, Usermode-DLLs vom Wine-Projekt synchronisiert, neuer Remote-Desktop-Client, OpenOffice.org läuft besser, Regionalisierung, PnP-Treiber für Maus und Tastatur, Übersetzungen
Ältere Version; nicht mehr unterstützt: 0.3.5
30. Juni 2008
Bessere Integration der Usermode-DLLs und des Win32-Subsystems, Unicode-Portierung vom ICU-Projekt, Verbesserungen an Sicherheit, Stabilität und Kompatibilität (u. a. von Visual Studio-Kompilierungen)[35] sowie Ergänzungen in der Regionalisierung und in den Übersetzungen
Ältere Version; nicht mehr unterstützt: 0.3.6
6. August 2008
Unterstützung der ARM-Architektur, Beginn der x64-Unterstützung, APC, Timer, Memory-Manager, Verbesserungen am Win32-Subsystem, Synchronisierung der Usermode-DLLs mit Wine, verbesserte Speicherverwaltung, Netzwerk[36]
Ältere Version; nicht mehr unterstützt: 0.3.7
4. November 2008
Kernelverbesserungen, Stack, Win32-Subsystem und x64-Prozessorarchitektur[37]
Ältere Version; nicht mehr unterstützt: 0.3.8
4. Februar 2009
Korrekturen der Kernel-Dienste, im Win32-Subsystem, in Gerätetreibern, Synchronisation mit Wine, RTL-Verbesserungen, Erweiterungen in Systemanwendungen und im Buildsystem[38]
Ältere Version; nicht mehr unterstützt: 0.3.9
26. April 2009
Geringerer Speicherbedarf (32 MB), verbesserter Netzwerkstack, Sicherheitsprüfung im Objektmanager, Treiberkompatibilität erhöht, Audiounterstützung durch Kernel-Streaming, Erweiterung des Befehlszeileninterpreters, GDI und Zeichenverarbeitung korrigiert[39]
Ältere Version; nicht mehr unterstützt: 0.3.10
5. Juli 2009
Bessere Audiounterstützung, SATA-Festplattenunterstützung, erweiterte USB-Unterstützung für Maus und Tastatur, Unterstützung weiterer Netzwerkkarten und ein Zeichenprogramm
Ältere Version; nicht mehr unterstützt: 0.3.11
16. Dezember 2009
Neue Speicherverwaltung, bessere Windows-Kompatibilität, vor allem mit Firefox 3 und OpenOffice.org
Ältere Version; nicht mehr unterstützt: 0.3.12
20. Oktober 2010
Korrekturen an Speicherverwaltung, Hardwarezugriff und Kernel Mode, Verbesserungen für Gerätetreiber,[40] d. h. an den Standardtreibern, die zum Zweck der Abwärtskompatibilität nur die wichtigsten Funktionen an essentieller Hardware unterstützen.
Ältere Version; nicht mehr unterstützt: 0.3.13
22. März 2011
Verbesserte Speicher- und Audiomixer-Verwaltung sowie Grafikunterstützung, bessere Unterstützung von SATA-Geräten[41][42]
Ältere Version; nicht mehr unterstützt: 0.3.14
7. Februar 2012
WLAN-Unterstützung (bis zu WEP), Steigerung von Netzwerkdurchsatz und -stabilität mit neuem TCP/IP-Treiber LwIP, Unterstützung von Desktopmotiven; ReactOS ist nun mit MSVC erstellbar[43][44]
Ältere Version; nicht mehr unterstützt: 0.3.15
30. Mai 2013
USB-2.0-Unterstützung (u. a. mit EHCI) für Eingabegeräte und Massenspeicher;[45] verbesserte SATA-Unterstützung
Ältere Version; nicht mehr unterstützt: 0.3.16
6. Februar 2014
CSRSS aktualisiert, Netzwerkkartentreiber (RTL8139 Chips), integriertes Theme, Wine-Bibliothek Version 1.7.1
Ältere Version; nicht mehr unterstützt: 0.3.17
6. November 2014
frühe Version von NTVDM, bessere Hardwareunterstützung
Netzwerktreiber für VMs, Unterstützung für NEC-PC-9800-Computer, Wine-Aktualisierung auf Version 4.18[61]
Legende:
Alte Version
Ältere Version; noch unterstützt
Aktuelle Version
Aktuelle Vorabversion
Zukünftige Version
Allgemeine Fehlerbereinigungen, Synchronisierung der DLL-Bibliotheken des Wine-Projektes und Treiberaktualisierungen werden mit jeder freigegebenen Version durchgeführt.
Entwicklung
Der Quelltext von ReactOS ist hauptsächlich in C geschrieben. Der (ReactOS-)Explorer[11] und das Sound-System sind in C++ implementiert. Das Projekt nutzt MinGW zur Übersetzung (oder Kompilierung) und arbeitet mit dessen Entwicklern zusammen.
Abhängigkeiten
ReactOS nutzt, wo es sinnvoll ist, Quelltexte anderer Open-Source-Projekte wie Haiku, WINE und FreeBSD, um ein stabileres System zur Verfügung zu stellen.
Wine
In ReactOS werden Teile des Wine-Projekts genutzt, die die Win32-API implementieren.
Da Wine auf Linux ausgerichtet ist, werden für ReactOS die Windows-Komponenten NTDLL, USER32, KERNEL32, GDI32 und ADVAPI neu geschrieben.
Netzwerktreiber
Im Rahmen des Google Summer of Codes 2011 entwickelte ein Student einen neuen Netzwerk-Stack auf Basis von lwIP.[62]
USB
Teile des USB-Treibers wurden von Haiku übernommen.[63]
Dateisystem
2014 wurde ext2-Unterstützung implementiert, was das System von den FAT32-Limitierungen weitestgehend befreit.[64] 2016 wurde ext3/4, UFS und das ReiserFS implementiert.[65][66] Seit 2018 unterstützt ReactOS das Linux-Dateisystem Btrfs. Für die Unterstützung des Dateisystems wurde der freie Dateisystemtreiber WinBtrfs genutzt.[67][68]
Es existieren IRC-Chats und Diskussionsforen zum Austausch zwischen Nutzern und Entwicklern in Englisch als auch auf Deutsch. In Deutschland wird diese Online-Community unter anderem durch den ReactOS Deutschland e. V. repräsentiert.[73] Die im ReactOS-Wiki aufgeführte im russischen Saransk registrierte ReactOS Foundation[74] wurde 2015 aufgelöst.[75] Einige der Entwickler sind regelmäßig auf den Chemnitzer Linux-Tagen oder LinuxTagen in Berlin vertreten. Die Entwickler kommen einmal im Monat zu einer Besprechung im Chat zusammen, eine Zusammenfassung des Protokolls wird der offiziellen Website veröffentlicht.[76] Über die Jira-Weboberfläche kann jedermann Fehlerberichte oder Vorschläge (englisch bug reports oder feature requests) einreichen.
Status
Das Projekt befindet sich in der Alpha-Phase. Es ist noch nicht für den Alltagsgebrauch vorgesehen.[77] Die Entwickler empfehlen die Installation in einer virtuellen Maschine. Offiziell unterstützt werden QEMU, VirtualBox und VMware.[77][78]
Die Hardwareunterstützung ist bisher eingeschränkt. Abseits von Treibern für den Betrieb in einer virtuellen Maschine gelten nur einige Treiber von Geräteherstellern als stabil.[79] Auch Eigenentwicklungen von einigen Software-Subsystemen von Microsoft wie die Speech-API sind noch nicht verfügbar. Andere, wie z. B. Sound-System, sind bislang nur teilweise implementiert (z. B. kein MIDI). Stabil arbeitende Standardanwendungen sind unter anderem VLC media player, Softmaker Office 2006 und Firefox sowie grundlegende Dienstprogramme (z. B. 7-Zip) und Spiele wie Paintball 2,Quake III Arena, Globulation 2 oder Civilization II.
ReactOS bietet derzeit nur sehr eingeschränkte Unterstützung von Mehrkernprozessoren (SMP), nahezu alle Berechnungen werden nur auf einem Kern durchgeführt.[80]
Hardwareanforderungen
ReactOS begnügt sich bereits mit älterer Hardware. Mit neuerer Hardware ist es oft nicht kompatibel. Unterstützt werden x86-Prozessoren der Pentium-Generation oder neuer. ReactOS benötigt 96 MB Arbeitsspeicher, die Entwickler empfehlen jedoch 256 MB. Zur Installation werden 650 MB Speicherplatz benötigt. Für Tests werden 5 GB oder mehr empfohlen. Die Grafikkarte muss VGA-kompatibel sein und die VESA BIOS Extension 2.0 implementieren.[81]
Rechtliche Fragen
Um eine Urheberrechtsverletzung und juristische Konflikte zu vermeiden, darf ReactOS kein abgeleitetes Werk vom Vorbild Windows sein. Deshalb wurde die Weiterentwicklung am 26. Januar 2006 kurzzeitig gestoppt. Damit die angewandten Verfahren zur Re-Implementierung undokumentierter Windows-Funktionen durch Reverse Engineering das US-amerikanische Urheberrecht nicht verletzen, wurde der Quelltext bis zum Dezember 2007 durch ein Audit überprüft.[82] Es wurden Regeln aufgestellt, nachdem ausschließlich Reinraum-Implementierungen, wie in den Vereinigten Staaten zulässig, erlaubt seien. Nicht den Anforderungen entsprechender Quelltext muss reimplementiert werden. Es wurden Statuten zum Umgang mit geistigem Eigentum aufgestellt. Entwickler, die teilweise Einsicht in den Windows-Quelltext hatten, durften fortan nicht mehr zu den betroffenen Stellen im Quelltext beitragen.[83]
Mitarbeiter von Microsoft äußerten Zweifel, dass es sich tatsächlich um eine freie und unabhängige Reimplementierung des NT-Kernels handelt, da sie markante Teile des Quelltextes wiedererkannten. Sie vermuten, dass Teile aus dem Windows Research Kernel übernommen wurden, der an Universitäten lizenziert wurde und von dem zahlreiche Leaks im Netz kursieren.[84]
Weblinks
Commons: ReactOS – Sammlung von Bildern, Videos und Audiodateien
↑ abReactOS Explorer (englisch) – Seite im ReactOS-Wiki, letzte Änderung am 16. August 2016 (abgerufen am 11. Dezember 2016)
↑Google Summer of Code 2006. Abgerufen am 18. Oktober 2013 (englisch): „This is a page lists the students and organizations that participated in the Google Summer of Code 2006 program. […] ReactOS“
↑Виктор Имантович Алкснис schrieb: 2007-06-06 16:38:00 Виктор Имантович Алкснис v_alksnis2 2007-06-06 16:38:00: Знакомство с проектом ReactOS. Abgerufen am 8. April 2019.