Startseite | Info | Community | Entwicklung | meinReactOS
|
ReactOS Entwicklung > Entwickler FAQEntwickler FAQEntwickler FAQ (häufig gestellte Fragen) über ReactOS. Falls Sie generelle Fragen haben, dann lesen Sie bitte die Benutzer FAQ.
AllgemeinWie wird der unvermeidbare "Microsoft"-Text innerhalb von ReactOS verhindert?Wir glauben, dass dies unter "fair use" fällt. Es ist auch nicht notwendig, außer in der Registry. Werden Treiber, die für Windows entwickelt wurden, in ReactOS funktionieren?Es gibt bereits Treiber, von denen bekannt ist, dass diese funktionieren. Aber zum aktuellen Zeitpunkt gibt es dazu leider keine endgültige Antwort, da viele Funktionen im Kernel noch nicht implementiert wurden. Was brauche ich, um ReactOS aus dem Quelltext zu übersetzen?Bitte besuchen Sie unsere Build Environment-Seite für Informationen dazu, wie Sie den ReactOS aus dem Quelltext selbst übersetzen können. Warum helft ihr nicht einfach dem WINE-Projekt?Derzeit arbeiten wir sehr eng mit dem WINE-Projekt zusammen. WINE hat wahrscheinlich mehr Gemeinsamkeiten mit ReactOS als mit Linux. Das WINE-Projekt hat das Ziel, einer freien Implementierung der Windows-API innerhalb von WineServer. Es gibt nur wenige WINE-DLLs, welche nicht in ReactOS verwendet werden können. Dazu zählen NTDLL, USER32, KERNEL32, GDI32 und ADVAPI; Der Rest der WINE-DLLs kann auch von ReactOS verwendet werden. Wir haben verschiedene Entwickler die in beiden, dem WINE-Projekt und ReactOS aktiv sind, welche unter anderem an Lösungen der gegenseitigen Kompatabilität der beiden Projekte arbeiten. Unserer Ansicht nach kann Linux in Kombination mit WINE niemals ein vollständiger Ersatz für Microsoft(R) Windows(R) NT sein. ReactOS hat das Potential für einen sehr viel höheren Grad an Kompatabilität, vor allem für Microsoft(R) Windows(R) NT Treiber - um welche sich WINE nicht kümmert. Welche IDE sollte ich zur Entwicklung von ReactOS verwenden?Siehe Eine IDE verwenden für Informationen zu unterstützten Editoren. Was ist mit dem sogenannten SEH-Problem?Strukturierte Ausnahme Behandlung (SEH) wird bei der Programmierung von ReactOS verwendet, wie es auch bereits bei der Entwicklung für OS/2 oder Microsoft(R) Windows(R) NT verwendet wurde. SEH ist ein Spiel, welches zwischen dem Betriebsystem und dem Übersetzer (Compiler) gespielt wird (Schlüsselwörter: __try, __except, __finally). ReactOS selbst kann mit SEH umgehen und bietet die Infrastruktur. Jedoch kann der bis jetzt verwendete GNU-Compiler keinen SEH-tauglichen Code erzeugen. Dadurch kann derzeit niemand einen Treiber oder ein Program, welches SEH verwendet, mit dem GNU-Compiler erzeugen.
Grafik SubsystemWarum ist das Grafik-Subsystem nicht in Ring 3, sondern in Ring 0?Die kurze Antwort: Weil es Microsoft so gemacht hat und wir das Ziel der Treiberkompatibilität verfolgen, deswegen machen wir es auch so. Warum hat Microsoft die GUI in Ring 0 realisiert?Weil es erhebliche Vorteile in der Geschwindigkeit bringt. Gegenüber einem GUI-Server, welcher in einem eigenen Prozess läuft, entstehen hier keine Geschwindigkeitsverluste durch einen Wechsel zwischen Ring 3 und Ring 0 bei Nutzung der GUI. Das macht die Architektur zwar weniger sauber und wenn die GUI abstürzt, dann wird das ganze System mitgezogen. Die selbe Diskussion lief bereits in Redmond als die GUI in den Kernel verlagert wurde mit Microsoft(R) Windows(R) NT 4. Dort kam man aber zu dem Entschluss, dass die GUI ziemlich ausgereift ist und deswegen nichts schieflaufen sollte, solange keine defekten Treiber geladen wurden. Außerdem wären die Konsequenzen annähernd die gleichen, wenn die GUI im User-Mode laufen würde. Hat ReactOS die selben Sicherheitsprobleme wie Microsoft(R) Windows(R) NT?Microsoft(R) Windows(R) NT und dessen Nachfolger sind sichere Systeme. Wir glauben, dass Microsoft ein sicheres System unsicher gemacht hat, indem nicht immer die richtigen Entscheidungen getroffen wurden. Zum Beispiel wird in Windows XP jedem Benutzer standardmäßig ein Konto mit Administratorrechten eingerichtet. Einige Dienste sind schlecht implementiert und oft wird auch die einfache Handhabung über die Sicherheitsaspekte gestellt. Diese Prioritäten können wir in ReactOS neu festlegen. Was problematisch werden könnte ist, dass Microsoft Software-Hersteller nicht dazu gezwungen hat, dass deren Produkte mit normalen Benutzerrechten laufen müssen. Welche GUI kann ich verwenden?
Um dies zu beantworten, sollte man betrachten, wie die GUI Funktionen in Microsoft(R) Windows(R) NT/ReactOS funktionieren:
DateisystemeReactOS verwendet Dateisystem-Treiber, genau wie es bei Microsoft(R) Windows(R) NT getan wird. Aus diesem Grund wird die IFS (Installierbares Dateisystem)-Schnittstelle verwendet. Deswegen wird ReactOS fähig sein, IFS-Treiber zu laden und zu verwenden. Derzeit ist ReactOS noch nicht in der Lage, die Microsoft(R) Windows(R) NT-nativen IFS-Treiber zu verwenden. Aber in Zukunft wird ReactOS auch den nativen NTFS-Treiber verwenden können. Kann der FAT32-Dateisystemtreiber von FreeDOS verwendet werden?ReactOS besitzt seit einiger Zeit bereits Support für FAT32. Es besteht kein Bedarf einen anderen Treiber zu verwenden. Unterstützt ReactOS VFAT und lange Dateinamen?ReactOS hat native Unterstützung für lange Dateinamen und Unicode. Es liegt am Dateisystemtreiber wie er damit umgeht. Der FAT-Treiber der mit ReactOS geliefert wird kann mit VFAT (= langen Dateinamen) auf FAT umgehen. Warum verwendet ihr nicht ext2/3 anstatt NTFS?Weil NTFS eine wichtige Funktion ist, welche irgendwann unterstützt werden sollte. Ext2/3 ist sicherlich ein Thema für uns, aber es gibt bereits Projekte, welche das Ziel haben, einen ext2/3 Treiber für NT zu entwickeln. Wir werden diese Treiber verwenden, sobald sie gut genug sind. Wo kann ich ext2/3-IFS Treiber für NT bekommen?Sie können diese hier bekommen: http://uranus.it.swin.edu.au/~jn/linux/ext2ifs.htm http://sys.xiloo.com/projects/projects.htm#ext2fsd http://ashedel.chat.ru/ext2fsnt/. Kann ich bei der Programmierung von Dateisystemtreibern helfen?Ja, es gibt eine Menge Arbeit bei den Dateisystemtreibern. Aber es ist nicht leicht, diese zu programmieren. Es wird gesagt, dass es schwer ist Treiber zu programmieren, aber Dateisystemtreiber sind die Königsdisziplin. Falls Sie ein richtiger Kernel-Entwickler sind, dann besuchen Sie unsere Mailing Liste (ros-dev) und machen Sie sich bekannt (in englischer Sprache). Können wir auch ext2/3 benutzen anstatt mit NTFS herumzuspielen?Natürlich, es liegt an Ihnen, welches Dateisystem Sie benutzen wollen. Zur Zeit sind aber weder ext2/3- oder unser NTFS-Dateisystemtreiber dazu geeignet, um lesen und schreiben zu können. Daher ist dort noch eine Menge an Arbeit zu verrichten, also bleibt im Moment nur der FAT-Dateisystemtreiber. Warum verwendet ihr nicht die Quellen des Linux-NTFS Projektes?Die Quellen sind nützlich, aber wie alle anderen NTFS Implementierungen (außer die Microsoft(R) Varianten) fehlt Ihnen die Möglichkeit, Daten zu schreiben. Und es gibt große Gebiete von NTFS, welche unbekannt/undokumentiert sind. Wir arbeiten mit diesen zusammen - bzw. zur Zeit - benutzen wir deren Code. Zur Zeit genießt NTFS keine hohe Priorität, so dass aktive Beiträge in diesem Gebiet eher selten sind. Wie wichtig ist die NTFS-Unterstützung, damit ReactOS Erfolg haben wird?Das ReactOS Projekt wird NTFS-Unterstützung irgendwann als Priorität haben, aber derzeit existiert dazu kein wichtiger Grund. NTFS ist primär ein Dateisystem, also wäre der einzige Grund, um es zu haben, der physische Zugriff auf NTFS-formatierte Partitionen einer installierten Festplatte unter Verwendung von ReactOS. Andere Dateisysteme werden in der Lage sein, die erweiterten Funktionen von NTFS (Journalling, ACLs, Kompression, Hard-Links, usw.) zu verwenden, falls strikte NTFS Kompatibilität keine Voraussetzung werden sollte. Software, die auf CD- oder DVD-Medien (ISO-9660 oder UDFS), Disketten (FAT) oder externen Medien wie USB-Sticks, MMC/SD-Karten liegt, wird auch meist mit FAT formatiert. Somit besteht auch für diese kein Zwang für NTFS. Die JFS Quelltexte (auch für OS/2) sind frei zum Download erhältlich. Warum verwendet ihr nicht JFS als Standard-Dateisystem für ReactOS?Es ist bereits ein Dateisystemtreiber geplant. Da JFS ein modernes Dateisystem mit Funktionen für Journalling, großen Dateien und Partitionen, ACLs, erweiterten Attributen und Hard Links ist, würde es gut zu ReactOS passen. Wir arbeiten daran, aber weitere Hilfe ist stets willkommen. Wie geht ihr mit der Unterscheidung von Groß-/Kleinschreibung (z.B. bei ext2) um?Die Groß-/Kleinschreibung ist kein Problem des Dateisystems selbst, sondern liegt in der Verantwortung des dazugehörigen Treibers. Der Objekt Manager, welcher den ganzen Namensraum unterstützt, unterstützt Groß-/Kleinschreibung nativ. Der Dateisystemtreiber bekommt ein Attribut übergeben, welches er richtig behandeln muss. Ein portierter Dateisystemtreiber muss dazu in der Lage sein, beides zu unterstützen, zwischen Groß/Kleinschreibung zu unterscheiden, oder nicht zu unterscheiden. Funktioniert ein 64-bit Dateisystem auf einer 32-bit Architektur?Ja, die 64-bit sind nur für die Adressierung auf dem Speichermedium zuständig. Dies hat nichts mit den ausführbaren Dateien zu tun, welche auf dem Dateisystem liegen. Die ausführbaren Dateien haben so viele Bits wie das Betriebsystem selbst hat. Welche Dateisysteme werden von ReactOS derzeit unterstützt?FAT(12/16/32) inklusive VFAT, ISO-9660 - CD-ROM, NPFS - named pipe file system (internes Dateisystem), MSFS - mailslot file system (internes Dateisystem) Welche Dateisysteme wird ReactOS unterstützen?Unser Ziel ist es, so viele Dateisysteme wie möglich zu unterstützen. Dateisystemtreiber können entwickelt werden, besonders die Dateisysteme welche es bereits für Linux gibt. Aber es ist wirklich sehr schwierig einen richtig arbeitenden/verhaltenden Dateisystemtreiber zu programmieren. Es sind bereits höhere Dateisysteme wie ext3, NTFS oder JFS geplant. Ich habe eine Idee, warum verwerft ihr nicht einfach die Laufwerksbuchstaben?
Das ist eine alte Idee. Welche Microsoft wahrscheinlich schon selbst hatte, aber sie haben es nicht umgesetzt bis jetzt. Im ReactOS-Team wurde auch darüber nachgedacht, aber bis jetzt wurde keine entgültige Entscheidung darüber getroffen. Es existieren zum Beispiel Ideen wie ein speicherbasiertes anwachsendes Dateisystem, oder den Namensraum des Objekt Managers direkt Win32 zur Verfügung zu stellen, oder Laufwerkswörter, aber alle Vorschläge haben Nachteile. Was ist ein Redirector?Das ist eine spezielle Form von Dateisystemtreibern. Es wird kein echtes Festplatten-Dateisystem verwendet, stattdessen basiert es auf dem Netzwerk Stack des Kernels und bietet meistens ein entferntes Dateisystem an (zum Beispiel SMB-Freigaben). Was ist ein Dateisystem Erkenner?Ein echter Dateisystemtreiber ist sehr schwergewichtig. Ihn einfach zu laden nur um zu sehen, dass dort keine Partition ist, könnte eine Menge Zeit verschwenden. Aus diesem Grund hat Dave Cutler einen sogenannten Erkennungstreiber erfunden. Diese sind mehr oder weniger Bestandteil der Treiberarchitektur. Der Treiber wird geladen und sucht nach Partitionen, der dazugehörige Dateisystem-Treiber ist dann in der Lage diese zu lesen. Wenn also eine Partition gefunden wird, dann wird der echte Dateisystemtreiber geladen, welcher dann die Partition lädt.
DebuggenWie kann ich eine 'unhandled exception' im 'user mode' nachvollziehen?Der log kann ungefähr so aussehen: (KERNEL32:process/create.c:328) Process terminated abnormally due to unhandled exception (KERNEL32:process/create.c:329) Address: 761a13e0 (KERNEL32:process/create.c:334) Frames: (KERNEL32:process/create.c:338) 761a2be9 Gucken Sie einfach in reactos/baseaddress.cfg, um die nächst niedrigere Adresse zu finden, welche der angezeigten Adresse entspricht. Öffnen sie die .map Datei zu der dazugehörigen DLL in einem Editor und und suchen Sie nach dem 'Offset'. |
If the translation of the English language of this page appears to be outdated or incorrect, please check-out the English page and report or update the content.