ReactOS

ReactOS
ReactOS
ReactOS logo.svg
Bildschirmfoto
Reactos-0-3-9.png
ReactOS auf Deutsch
Basisdaten
Entwickler ReactOS-Team & Mitwirkende
Version 0.3.13 (Alpha)
(22. März 2011)
Abstammung \ ReactOS (NT)
Architekturen x86; AMD64, PowerPC und ARM in Entwicklung
Lizenz GPL
Sonstiges Sprachen: Deutsch uvm.
Website www.reactos.org/de

ReactOS (vom englischen react für „reagieren“ und Operating System für „Betriebssystem“), auch kurz ROS genannt, ist ein Softwareprojekt zur Entwicklung eines freien Betriebssystems gleichen Namens. Kennzeichnend ist das Ziel vollständiger Binär-Kompatibilität zu Microsoft Windows.

Inhaltsverzeichnis

Überblick

ReactOS und die Win32-API in verschiedenen Betriebssystemen.

ReactOS hat das Ziel, zum Kernel von Windows NT kompatibel zu werden, wodurch es möglich ist, Programme und Treiber 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.

Das Betriebssystem ist größtenteils unter der GNU GPL lizenziert worden, einige seiner Bestandteile jedoch unter der LGPL oder BSD-Lizenz.

Ein Problem stellt das Erreichen der Binärkompatibilität zu Windows dar, da einige API-Aufrufe, die von vielen Programmen eingesetzt werden, nicht öffentlich dokumentiert sind. Außerdem müssen für ReactOS fast alle Teile komplett neu programmiert werden, da nichts von zum Beispiel Linux oder BSD übernommen oder anderweitig genutzt werden kann. Eine Ausnahme stellen hier jedoch die von Unix unabhängigen Bibliotheken des Wine-Projektes dar, welche problemlos übernommen werden können.

Geschichte

Das Projekt wurde 1996 als „FreeWin95“ ins Leben gerufen und sollte nur zu Windows-95-Programmen kompatibel sein. Nachdem es in einer längeren Spezifikationsphase 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 ist dagegen schon benutzbar, sie basiert auf dem IP-Stack von FreeBSD. Am Einbau der USB- und dazugehörigen Plug-and-Play-Funktionalität wird gearbeitet.

Am 8. Januar 2007 wurde die erste 4.000-€-Spendenkampagne gestartet und am 11. Februar 2007 mit einer Summe von 4.450 € beendet. Das Geld wird hauptsächlich für die Serverpflege und Steigerung des Bekanntheitsgrades 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 und Open-Source-Software in Brüssel (FOSDEM).

Anfang 2009 wurde der bisherige Entwicklungsplan (Roadmap) von der Website entfernt. Inzwischen liegt eine neue Planung bis Version 0.5 vor.[1] Insbesondere werden nun keine Angaben mehr dazu gemacht, wie hoch die Kompatibilität zu Windows (in Prozentangaben) einzelner kommender ReactOS-Betaversionen sein wird oder welche Anwendungen in konkreten Betaversionen unterstützt werden. Die Entwicklung von freien NTFS-Treibern ist offenbar so weit fortgeschritten, dass er für Version 0.5 angekündigt wird, auch andere Treiber wie ext2fsd für das ext2- und ext3-Dateisystem wurden bereits angekündigt.[2]

Nach dem alten Projektplan sollte bereits Version 0.5 Betastatus bekommen und ReactOS die produktive Arbeit mit den wichtigsten Standardanwendungen unterstützen. Die früheren Kompatibilitätstests und Optimierungen für Mozilla Firefox und OpenOffice.org, die derzeitige Arbeit an einer neuen verbesserten Benutzeroberfläche[3] und das Ziel der Implementierung von Druckdiensten und WDM-Treiberunterstützung in den 0.5-Versionen zeigen, dass an diesem Ziel festgehalten wird. Auch an einer Zusammenführung von Boot-CD (für Installation) und Live-CD (erste Setup-Stufe im grafischen Modus, bereits 0.4) wird offenbar festgehalten.

Bei den nachfolgenden Versionen soll vor allem mit dem Ziel am Kernel gearbeitet werden, die „Beta“-Entwicklungsphase mit einer stabilen 1.0-Version abzuschließen. ReactOS soll dann den Anforderungen an einen produktiven Einsatz als windowskompatibles Betriebssystem genügen.

Am 16. Januar 2010 äußerte sich Aleksey Bragin,[4] zurzeit Koordinator des Projekts, über konzeptionelle Schwächen des Win32-Subsystems und plant ein alternatives 32-Bit-Subsystem mit dem Ziel, einem funktionsfähigen System näher zu kommen. Demnach soll das Win32-Subsystem, dessen Softwaredesign Windows näher ist als dem von Wine, temporär durch ein neues Subsystem ergänzt werden, das auf aktuellem Wine-Quellcode beruhen soll (im Gegensatz zu den veralteten Versionen, die im derzeitigen Win32-Subsystem verwendet werden), anstatt diese neu zu entwickeln. Das bisherige Subsystem wird bis auf Weiteres parallel im Hintergrund weiterentwickelt.[5][6] Nicht von der Neuerung betroffen ist der bisherige Grafiktreiber, der im Vergleich zu X Window von Wine mit Syscalls zum Kernel Mode Win32k effizientere Grafikaufrufe ermöglicht.

Versionen

Legende: Alte Version Ältere Version; noch unterstützt Aktuelle Version Aktuelle Vorabversion Zukünftige Version
Version Veröffentlichung Anmerkungen
Ältere Version; nicht mehr unterstützt: 0.1.0 2. Februar 2003 Erste von CD installierbare Version, noch ohne grafische Oberfläche. Einige Kommandozeilenwerkzeuge sind verfügbar. Dateioperationen wie Kopieren und Löschen funktionieren nur unzuverlässig.
Ältere Version; nicht mehr unterstützt: 0.2.0 25. Januar 2004 Beginn der an den Windows-Explorer und die Taskleiste angelehnten grafischen Oberfläche. Sehr instabil.
Ältere Version; nicht mehr unterstützt: 0.2.2 28. April 2004 Verbesserungen an der grafischen Oberfläche und deren Stabilität.
Ältere Version; nicht mehr unterstützt: 0.2.5 5. Januar 2005 Stabilerer Kernel und viele kleine Verbesserungen.
Ältere Version; nicht mehr unterstützt: 0.2.6 10. April 2005 Neben OpenOffice.org 1.x erstmals auch namhafte Spiele (Deus Ex, Unreal Tournament) per Software Rendering startbar.
Ältere Version; nicht mehr unterstützt: 0.2.7 21. August 2005 Abgleich der Header-Datei-Struktur mit Windows und fast vollständige Lokalisierung. Meldet sich zwecks Kompatibilität zu neueren Programmen als Windows 2000 SP4 statt NT 4.
Ältere Version; nicht mehr unterstützt: 0.2.8 30. Oktober 2005 Wichtige, vorbereitende Schritte zu funktionierendem USB, der Installation von Programmen und Behebung einiger Darstellungsfehler der Oberfläche.
Ältere Version; nicht mehr unterstützt: 0.2.9 22. Dezember 2005 Verbesserte Hardwareerkennung und ACPI, stark verbesserte API-Unterstützung.
Ältere Version; nicht mehr unterstützt: 0.3.0 28. August 2006 Verbesserte Netzwerk- (Internetprotokoll) und PnP-Unterstützung u.v.m.
Ältere Version; nicht mehr unterstützt: 0.3.1 10. März 2007 sehr viele Fehlerbehebungen und Verbesserungen, Winlogon-Implementierung, besserer Bootmanager
Ältere Version; nicht mehr unterstützt: 0.3.3 12. September 2007 sehr viele Fehlerbehebungen, Win32-Kernel-Module z. T. neu geschrieben, umfangreiche Änderungen am DirectX-System. Version 0.3.2 wurde übersprungen, da mehrere komplexe Probleme eine termingerechte Veröffentlichung verhinderten.
Ältere Version; nicht mehr unterstützt: 0.3.4 22. Januar 2008 Kompatibilität mit NT 5.2 (Windows 2003) verbessert, Usermode-DLLs aus dem aktuellen Wine-Projekt synchronisiert, neuer Remote-Desktop-Client, OpenOffice.org läuft besser, fortschreitende Regionalisierung, neuer PnP-Treiber für Maus und Tastatur, wesentliche Fehlerbereinigungen, v. a. von PnP und im Hinblick auf künftige komplexe Anwendungen, Übersetzungen
Ältere Version; nicht mehr unterstützt: 0.3.5 30. Juni 2008 Bessere Integration der Usermode-DLLs und des Win32-Subsystems, Unicode-Portierung aus dem ICU-Projekt, verschiedene Verbesserungen an Sicherheit, Stabilität und Kompatibilität (u. a. von Visual Studio-Kompilierungen)[7] sowie umfangreiche 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, Kernelverbesserungen (APC, Timer, Memory-Manager), verschiedene Verbesserungen am Win32-Subsystem, Synchronisierung der Usermode-DLLs mit Wine sowie weitere Verbesserungen im Bereich Speicherverwaltung, Netzwerk und Internationalisierung.[8]
Ältere Version; nicht mehr unterstützt: 0.3.7 4. November 2008 Fehlerbereinigungen, Kompatibilität und Stabilität. Darunter Kernelverbesserungen, Netzwerkstapelspeicher (Stack), Win32-Subsystem und x64-Prozessorarchitektur[9]
Ältere Version; nicht mehr unterstützt: 0.3.8 4. Februar 2009 Fehlerbereinigung in Kernel Kerndiensten, Win32-Subsystem-Verbesserungen, Fehlerbehebung in Basis-Gerätetreibern, Synchronisation mit Wine, RTL-Verbesserungen und verschiedene kleinere Fehlerbehebungen und Erweiterungen in Systemanwendungen und Buildsystem[10]
Ältere Version; nicht mehr unterstützt: 0.3.9 26. April 2009 Optimierungen von Speicherbedarf (32 MByte), Netzwerkstapel und Geschwindigkeit, Sicherheitscheck für den Objekt-Manager verbessert, Treiberkompatibilität erhöht, provisorische Soundunterstützung durch Kernel Streaming und Erweiterung der Kommandozeile, verschiedene Fehlerbereinigungen (v. a. GDI und Zeichen-Engine)[11]
Ältere Version; nicht mehr unterstützt: 0.3.10 5. Juli 2009 Verbesserte Sound-Unterstützung, SATA-Festplattenunterstützung, USB-Maus- und USB-Tastatur-Unterstützung, Unterstützung weiterer Netzwerkkarten und ein Zeichenprogramm
Ältere Version; nicht mehr unterstützt: 0.3.11 16. Dezember 2009 Weitgehend neu entwickelte Speicherverwaltung und verbesserte Windowskompatibilität auf Anwendungs- und Systemebene; Maßstab dafür waren insbesondere Browsen mit Firefox 3 und funktionierendes OpenOffice.org (dieses Ziel wurde erreicht)
Ältere Version; nicht mehr unterstützt: 0.3.12 20. Oktober 2010 Viele Fehlerbereinigungen bei Speichermanagement, grundlegenden Hardwarezugriffen und weitere Verbesserungen im Bereich des Systemkernmodus (Kernel Mode), darunter Ersatz oder Verbesserungen an „Legacy Modes“, d. h. an den Standardtreibern, die zum Zweck der Abwärtskompatibilität lediglich die wichtigsten Funktionen an essentieller Hardware unterstützen. Viele Fehler wurden bereinigt, die schon lange existieren, aber erst durch die Entwicklungsarbeit an anderer Stelle entdeckt worden sind.
Aktuelle Version: 0.3.13 22. März 2011 Verbesserte Speicher- und Audiomixer-Verwaltung sowie Grafikunterstützung, größere Unterstützung von SATA-Geräten, die Kompatibilität zu Anwendungen wurde erhöht. Wie auch in den vorherigen Versionen wurden viele Fehler bereinigt.[12][13]

Anmerkung: Einige Entwicklungsschritte werden regelmäßig mit jedem neuen Release durchgeführt, wie etwa allgemeine Fehlerbereinigungen, Synchronisierung der DLL-Bibliotheken des Wine-Projekts, Treiberaktualisierungen usw.

Aktuelle Entwicklung

Derzeit werden immer noch grundlegende Systemkomponenten verbessert, um das Zusammenspiel mit Systemkomponenten auf höherer Ebene zu verbessern. Beispielsweise wird im Newsletter Nr. 70 von Ende März 2010 beschrieben, wie problematisch die Timeoutfehler des UniATA-Treibers für die Datenkommunikation mit den angeschlossenen Geräten sind. Für deren Behebung rechnen die Entwickler noch mit erheblicher Entwicklungsarbeit. Weiterhin wird die weitere Entwicklung an Plug and Play- und ACPI-Komponenten noch weitere Ergänzungen am eigenen Bootloader nach sich ziehen. Die Entwickler rechnen derzeit noch damit, dass durch Verbesserungen an Systemtreibern und Dienstprogrammen auch weiterhin unentdeckte Fehler in Systemkernkomponenten entdeckt werden.[14]

Anfang Januar 2010 wurde bekannt, dass die USB-Unterstützung neu implementiert wird. Derzeit wird der EHCI-Hostcontroller neu entwickelt, danach der USB Stack.[15]

Weiterhin wird derzeit die Unterstützung von DVB-T-Fernsehen entwickelt. Funktionierender Fernsehempfang ist trotz des frühen Entwicklungsstadiums sinnvoll, da sich durch diese Anwendung der Praxistest und das Zusammenspiel einer Vielzahl von Video- und Audiokomponenten dokumentieren und analysieren lässt und dadurch die weitere Entwicklung unterstützt wird.[14]

Status

Das Projekt befindet sich zurzeit noch in der Alpha-Phase, weshalb ReactOS für den alltäglichen Gebrauch kaum zu empfehlen ist.

  • Bootzeit und Installationszeit – Momentan noch deutlich unter der eines frisch installierten Windows, was auch noch am wesentlich geringeren Funktionsumfang liegt. Die Installation benötigt auf vielen Systemen nur wenige Minuten.
  • Geschwindigkeit – Die Geschwindigkeit des fertigen Systems ist derzeit noch schwer abschätzbar. Durch die noch unvollständige Windows-Funktionalität ist ReactOS zurzeit noch vergleichsweise schnell und kompakt. Trotz allem haben Leistungsoptimierungen in der momentanen Entwicklungsphase nur geringe Priorität.
  • Stabilität – Sie soll der von Windows nicht nachstehen. Dem frühen Alpha-Status des Projekts ist aber auch der Umstand geschuldet, dass die Entwickler ihren Fokus noch nicht auf solche Aspekte lenken. Die Anzahl der Blue-Screens konnte inzwischen deutlich verringert werden, es treten aber je nach verwendetem Rechner noch teils häufige Abstürze auf.
  • Sicherheit: Die Herausforderung für die Entwickler liegt darin, trotz angestrebter Kompatibilität keine Sicherheitslücken des Vorbildes „nachzubauen“.
  • Binärkompatibilität: Die Entwicklung grundlegender Systemtreiber ist bereits weit fortgeschritten, auch einige wenige Fremdtreiber der Gerätehersteller sind in der Kompatibilitätsliste als stabil eingetragen. Stabil arbeitende Standardanwendungen sind derzeit vor allem OpenOffice.org 2.0.2, MS Office 2003, Softmaker Office 2006 und Firefox 3.6, sowie grundlegende Dienstprogramme (z. B. 7-Zip) und bereits eine größere Reihe an Spielen, wie etwa Paintball 2, Quake III oder Civilization II[16]
  • Testmöglichkeiten – Wer zum Testen von ReactOS eine Installation vermeiden möchte, findet eine bootbare Live-CD jeder Version vor. Versiertere Tester und Entwickler verwenden aber zumeist eine virtuelle Maschine, die allerdings auch Geschwindigkeitseinbußen mit sich bringt. Hierzu stehen vorgefertigte Qemu- und VMware-Images zur Verfügung.

Hardware-Anforderungen

Die Hardware-Anforderungen von ReactOS erlauben die Nutzung auf älterer Hardware. So kommt es durchaus noch mit Prozessoren der ersten Pentium-Generation zurecht. Der Speicherbedarf wurde durch Behebung einiger Fehler in der Speicherverwaltung auf 32 MB gesenkt.[11][17] Die Funktionsfähigkeit auf realer Hardware ist aufgrund des Alphastatus noch stark eingeschränkt, grundsätzlich funktioniert ältere Hardware besser als neuere. ReactOS bietet IDE- und SATA-Unterstützung. Es werden keine USB-Geräte, außer USB-Tastatur und USB-Maus, unterstützt.

Einige verwendbare Programme können jedoch höhere Anforderungen an die Hardware stellen.

Rechtliche Fragen

Infolge einer projektinternen Diskussion wurde die Weiterentwicklung am 26. Januar 2006 kurzzeitig gestoppt. Um sicherzustellen, dass die bei der Entwicklung angewandten Verfahren zur Re-Implementierung undokumentierter Windows-Funktionen durch Reverse Engineering mit dem US-amerikanischen Urheberrecht in Einklang stehen, wurde eine vollständige Durchsicht des Quelltextes – ein so genanntes Code-Audit – begonnen, das erst im Dezember 2007 fertiggestellt wurde. Zu Beginn des Code-Audits wurde auf der Projekt-Webseite ein Zähler platziert, anhand dessen sich Interessierte über den Fortgang des Code-Audits informieren konnten. Der Zähler zeigte an, wie viel Prozent des ReactOS-Codes bereits durchgearbeitet wurden. Das Audit schwankte vor Beendigung des Audits mehrere Monate lang um die 96-%-Marke. Der Grund dafür war, dass sich die Entwickler die komplexesten Aufgaben bis zuletzt aufgehoben hatten und bei fehlerhaftem Code fallweise sogar entschieden hatten, Teile des Codes vollkommen neu zu schreiben.[18]

Strittig war, ob und wie während des Audits die Entwicklung des Betriebssystems weitergeführt werden soll. Anfang Februar sprach sich eine deutliche Mehrheit für ein Verfahren aus, bei welchem parallel zum Audit die Entwicklung am alten Code fortgeführt wird. Nach diesem Plan wird erst die übernächste Version 0.4 ausschließlich überprüften Quelltext enthalten. Der von einer kleineren Entwicklergruppe favorisierte Plan sah demgegenüber eine vollständige Sperrung des alten Codes und eine Löschung der ReactOS-Veröffentlichungen von den Download-Servern vor. Weiterentwicklung hätte nach diesem Plan ausschließlich am bereits geprüften Code erfolgen dürfen, was zu mehrmonatigen Verzögerungen geführt, jedoch die Rechtssicherheit maximiert hätte.[19]

Im Zuge dieser Entwicklung haben mehrere Entwickler das Projekt verlassen.

Zuvor waren im November 2004 erstmals rechtliche Konflikte mit einem den Quelltext plagiierenden Projekt aufgetreten. Daher wurde die Bildung eines „Legal Defense Fund“ geplant, mit dessen Hilfe die juristischen Interessen von ReactOS vertreten werden sollen.

Siehe auch

  • Captive – Das Projekt verwendet Teile von ReactOS, um Schreibzugriff auf das proprietäre Dateisystem NTFS durch andere Betriebssysteme als Windows zu ermöglichen.
  • E/OS – Eine Linux-Distribution, die sich zum Ziel gesetzt hatte, Programme von Microsoft Windows, Mac OS X, OS/2 und DOS zu unterstützen. Die Entwicklung wurde jedoch eingestellt.
  • FreeDOS – Open-Source-Projekt mit dem Ziel MS-DOS nachzuprogrammieren
  • Haiku – Open-Source-Projekt mit dem Ziel, das eingestellte Betriebssystem BeOS nachzuprogrammieren

Weblinks

 Commons: ReactOS – Album mit Bildern und/oder Videos und Audiodateien
Wikibooks Wikibooks: ReactOS-Kompendium – Lern- und Lehrmaterialien

Einzelnachweise

  1. Roadmap des Projekts (englisch)
  2. Entwickler-FAQ auf der Projektseite (abgerufen am 13. Dezember 2009)
  3. Newsletter Nr. 67 vom 9. Dezember 2009
  4. Vorstellung von Arwinss des Projektkoordinator Aleksey Bragin vom 16. Januar 2010 (englisch)
  5. ARWINSS – The new Windows subsystem for ReactOS/Windows – Präsentation über Arwinss (PDF-Datei; 900 kB; englisch)
  6. Newsletter Nr. 68 vom 22. Januar 2010
  7. Newsletter Nr. 41 vom 15. Mai 2008
  8. Newsletter Nr. 44 vom 6. August 2008
  9. Angaben des Newsletters vom 4. November 2008
  10. Angaben der News vom 4. Februar 2009
  11. a b Angaben der News vom 26. April 2009
  12. ReactOS 0.3.13 Veröffentlicht – Meldung bei ReactOS, vom 22. März 2011
  13. Windows-Nachbau: ReactOS 0.3.13 verbessert Grafikunterstützung – Artikel bei Golem.de, vom 28. März 2011
  14. a b Newsletter Nr. 70 von Z98 vom 31. März 2010, englisch
  15. ReactOS-Entwicklerwiki: USB Stack (Statusangabe: 8. Januar 2010), englisch
  16. ReactOS: Kompatibilitätsliste (englisch)
  17. Installing ReactOS
  18. FOSDEM-Interview mit Aleksey Bragin
  19. ReactOS Newsletter Nr. 11 vom 2. Februar 2006

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • ReactOS — ReactOS …   Википедия

  • ReactOS — Le menu « Démarrer » de ReactOS Famille …   Wikipédia en Français

  • Reactos — Bildschirmfoto …   Deutsch Wikipedia

  • ReactOS — Saltar a navegación, búsqueda ReactOS …   Wikipedia Español

  • Reactos — Le menu « Démarrer » de ReactOS Type de noyau …   Wikipédia en Français

  • ReactOS — es un proyecto de código abierto para crear un sistema operativo compatible con aplicaciones y controladores de Windows NT. Parte de su código está basado en el proyecto WINE …   Enciclopedia Universal

  • ReactOS — infobox OS name = ReactOS caption = ReactOS 0.3.4 showing the Start Menu developer = ReactOS Foundation source model = Free software latest release version = 0.3.6 latest release date = release date and age|2008|08|06 kernel type = Hybrid kernel… …   Wikipedia

  • Reactos — …   Википедия

  • FreeWin95 — ReactOS Bildschirmfoto …   Deutsch Wikipedia

  • React OS — ReactOS Bildschirmfoto …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”