Eigenes OS?
-
Sehr gut!
Erhard Henkes schrieb:
Dieser konkrete Fall ist erledigt, weil der Threadersteller glücklicherweise den Weg in den IRC gefunden hat.
Ja, es muss Marc++us wirklich sehr ärgern, dass er den IRC nicht überwachen und kontrollieren kann. :p
Ansonsten: [Gefällt mir]
-
Marc--us schrieb:
Ja, es muss Marc++us wirklich sehr ärgern, dass er den IRC nicht überwachen und kontrollieren kann. :p
Mein Blutdruck steigt bei sowas keinen Millimeter.
-
Wir sind Marc++us für die Bereitstellung dieses herrlichen Subforums sehr dankbar. Die Registrierungspflicht erfolgte zu Beginn in Absprache mit unserer Community. Ich hoffe, dass wir nun dauerhaft darauf verzichten können. Im Mittelpunkt wird nach wie vor unser nun seit vier Jahren erfolgreiches Projekt PrettyOS stehen.
qemu 1.3 läuft bei mir auf Win XP fehlerlos. Damit ist 0.14.1 nun obsolet. Neben OHCI und UHCI ist EHCI ebenfalls enthalten. Alle drei usb-Treiber-Varianten sind in PrettyOS funktionsfähig (OHCI u. UHCI machen noch bisher unverstandene Probleme auf echter Hardware laufen aber auf Emulatoren, EHCI läuft gut auf echter Hardware) enthalten. Das neue xHCI fehlt noch.
Der ATA-Treiber läuft inzwischen. Emulierte HDD, z.B. auf VBox, funktionieren.
-
Nun ist wohl ein Punkt erreicht, an dem PrettyOS relativ stabil bleibt. Könnte der richtige Zeitpunkt sein, es genauer als Ganzes zu beschreiben.
Edit (18.08.): Wohl doch noch zu früh. Im usb-Bereich fehlt noch die Behandlung von Hubs, und Konzepte werden dort gerade hinterfragt.
Zum Thema Registrierungspflicht kann man bisher festhalten, dass der Wegfall keine ernsthaften Probleme generiert hat. Dafür tauchen typische Anfängerfragen auf, und einigen konnte bereits wirksam geholfen werden. Vielleicht sind das genau die Progger, die irgendwann bei PrettyOS ganz vorne mitmischen.
-
das Thema usb-Hub wurde nun auch erfolgreich angegangen! Wenn der Anfang gemacht ist und man eine gute Testbasis hat (für usb 1.1 Hubs geht qemu 1.3), dann kommt man auch vorwärts. Infos erhält man aus der usb 2 spec, chap. 11.
-
Endlich sind wir durchgedrungen zu den Ports am Hub. Das sind die Meilensteine beim OS Development. Das war mir einen Screenshot wert.
http://www.henkessoft.de/Sonstiges/usbHub.JPG
-
Heute haben wir mit 3 Hubs und 2 Sticks verschiedene Formationen (3 oder 4 Ebenen) getestet (alles Hardware, alles usb2). Eine echte Freude, wenn man dann die Sticks im device manager sieht und Files davon laden kann.
-
Nun verfügt unser PrettyOS auch über eine eigene website: http://prettyos.de
-
Zur Zeit wird das Thema Verzeichnisse in Filesystemen angepackt. Für FAT12/16/32 gibt es nun ein createDir, das die Erstellung von Unterverzeichnissen erlaubt. Als Befehl nehmen wir die alte DOS-Anweisung md bzw. mkdir. Wieder ein wichtiger Meilenstein.
-
xHCI wurde begonnen (xhci.h/c). Der Controller wurde bereits mittels MMIO "eingehängt". Als Emulator fungiert - wie damals bei EHCI (ehci.h/c) - die Software VMware Player.
-
Beschäftigt man sich mit einem usb-Treiber wie für das aktuelle xHCI, das usb3 in "Super Speed" ermöglicht, so sind die Anforderungen an das OS bereits hoch. Schwachstellen wie das nicht-funktionierende APIC und fehlender Ausdruck von 64-bit-Variablen werden nun spürbar. Für MSI-X benötigen wir APIC-IO. So greift eins ins andere.
-
Die Entwicklung des xHCI Treibers geht gut voran. Event Ring und Command Ring funktionieren und wurden auf Hardware (Testrechner mit usb3-Steckkarte in PCIe-Slot) getestet. Der noch fehlende MSI-X Interrupt-Mechanismus wurde testweise durch Polling ersetzt, um die Entwicklung der xHCI-Strukturen und -Abläufe voran zu bringen. Mit xHCI erhält unser Hobby-OS ein recht aktuelles Feature, das die Kette UHCI, OHCI, EHCI nun um die Basis für Superspeed vervollständigt.
-
I/O und local APIC wurden nun ebenfalls in Angriff genommen. Leider geraten dabei manche Emulatoren ins Stocken. Interessante Aufgaben.
-
Fehler wurde behoben. Local APIC timer läuft nun auf Hardware und Emulatoren korrekt. APIC ist damit für weitere Experimente einsatzfähig.
-
Auf Basis APIC und MSI (nicht MSI-X!) kann nun die Entwicklung von xHCI und usb3 weiter verfolgt werden.
-
Transaktionen/Transfers für usb3 als Frames konfiguriert.
-
Frohe Weihnachten!
Ein Dankeschön an alle Entwickler und Unterstützer unseres Hobby-OS. es geht nicht mehr in Riesenschritten voran, dennoch gab es auch in 2013 einige interessante Weiterentwicklungen, z.B.:
- AC97
- User Programm "devmgr" hat den Kernel deutlich verschlankt
- ATA-HDD-Treiber
- usb-Hub ist integriert
- md bzw. mkdir für FAT12/16/32 erstellt Unterverzeichnis
- xHCI ergänzt nun UHCI, OHCI, EHCI
- I/O APIC und local APIC mit MSIDas Forum wurde nun für nicht registrierte Personen frei geschaltet, um Barrieren zu beseitigen, und wir haben eine eigene Website http://www.prettyos.de als zentrale Information geschaffen.
-
Das Projekt PrettyOS ist nun 5 Jahre alt. So langsam kommt wieder mehr Bewegung in das Development. Es gibt mehr als 10 sichtbare Konsolen (so viele man möchte). xHCI erhält seine Interrupts nun vollständig (APIC und MSI sind uns noch etwas fremd). ACPI läuft grundsätzlich.
Hoffentlich geht es so munter weiter.
-
In vmware ist heute in xhci/usb3 ein Übergang von "enabled" zu "addressed" gelungen. Das ist der erste Schritt im Umgang mit dem usb-Device. Bei xhci läuft das via TRB auf dem Command-Ring. Der Transferring am EP0 muss dazu dennoch schon bereit sein. Das ist nun gelungen! Dies sind die positiven Momente im OS-Development. Man bastelt über Wochen und Monate, kämpft sich durch specs, testet gemäß try & error, versucht durchzuhalten, und dann ist er da, der Erfolg, in Form eines Success, eines Resultats oder eines Übergangs von a nach b. Alles kleine Dinge, die wie in einem großen Puzzle perfekt zusammenspielen müssen.
Nun fehlt noch der Schritt die Hardware zu überzeugen. Das wird gelingen!
-
Heute hat der test-PC (mein alter Rechner, der von echter Floppy bis usb3-Steckkarte alles Mögliche aufweist) den Adressierungsvorgang unterstützt. Das zeigt, dass Hardware die Forderungen der Spezifikation viel ernster nimmt als die Emulatoren, deren Entwickler offenbar zufrieden sind, wenn der Vorgang überhaupt vollständig abläuft.