Warum entwickelt ihr ein Forum OS (Pretty OS)


  • Mod

    Vor etwa 1 1/2 Jahren hab ich zusammen mit Tobiking EHCI und die Anfänge von USB aufgesetzt. Nun wird das Ganze auf ein solides abstraktes Fundament transferiert. Es ist einfach toll zu sehen, wie das eigene OS alle möglichen Arten von usb-Devices mittels u/o/ehci ansteuern kann. Wir freuen uns schon auf die Umsetzung von xHCI und USB 3.0.

    Netzwerk und USB sind Datenwege, die den Umgang mit einem OS wirklich zur Freude machen. Aus Entwicklersicht ist das allerdings alles recht komplex, aber man lernt die Zusammenhänge von Grund auf kennen. Dies ist durch nichts ersetzbar.



  • Wie sieht es nun aus mit PrettyOS?


  • Mod

    Gut! http://prettyos.de 🙂

    xhci/usb3 ist ebenfalls schon am Werkeln. Wir könnten noch einige talentierte Entwickler (asm, C, C++ für user) brauchen. Einfach im chat melden.


  • Mod

    Wir freuen uns schon auf die Umsetzung von xHCI und USB 3.0.

    Das war im Sept. 2011 ein fast schon übermütiger Satz. Inzwischen läuft xhci mit usb-Sticks. Als Basis mussten wir noch ACPI und APIC aufsetzen. Für die IOAPIC Redirection Table muss man selbst die individuellen Innereien von Chipsätzen wie PIIX3 oder ICHx auslesen. Das ist eine Ebene, die das Ganze recht komplex macht.


  • Mod

    Zur Zeit ist USB ein immer noch stark beherrschendes Thema. Wir versuchen die gesamte Bandbreite von o/uHCI über eHCI bis xHCI am Laufen zu halten, was bisher gut gelingt. Inzwischen können wir mit dem xHCI-Modul mit low/full/high/super-Speed Kontakt aufnehmen. Die Architektur und Funktionsweise von xHCI unterscheidet sich grundlegend von den anderen drei HCI-Modulen. Aufgaben und Möglichkeiten zur Weiterentwicklung ergeben sich im Treiberbereich ständig neu. Zur Zeit sind dies z.B. die Einbindung von Human Interface Devices und der usb-Floppy (UFI). Man muss nicht alles machen, was möglich ist. Dafür ist unser Team noch zu klein. Wie auch immer, im Bereich usb haben wir für Interessierte eine Menge zu bieten, lernen aber gerne auch von anderen dazu.



  • Wozu die Arbeit schrieb:

    Ich habe im entsprechenden Subforum dazu leider keinen Sticky Thread gesehen
    der bschreibt: warum weshalb wieso.
    Es gibt doch schon x tausend OS, wozu dann noch eins?

    Wegen https://www.c-plusplus.net/forum/331184 vielleicht.


  • Mod

    Es gibt verschiedene Ebenen. Das sollte man streng unterscheiden, hat nichts mit Geldverdienen zu schaffen.

    Die erste Ebene ist die Benutzung eines Systems. TV, Smartphone, Auto, Mikrowelle, Fotokamera, ... Da hilft nur die Wechselwirkung zwischen Anlernen/Nachmachen, Handbuch, Fragen, Erfahrung.

    Die nächste Ebene sind Programme auf der Userebene. In Java, C#, C++, C usw. Dazu benötigt man Informatikgrundkenntnisse und die zugehörige Programmiersprache sowie Tools. Einer der Gründe für dieses Forum hier.

    Geht man tiefer, so kommt man zum OS. Das kann für einen PC, ein Mobile oder einen Roboter sein. Dazu gehört auch der Bereich der Firmware. In Autos, Flugzeugen, aber auch in der Waschmaschine, im Telefon, ...

    Noch tiefer wird es richtig interessant. Neue Hardware, neue Programmiersprachen, neue Prozessoren, ... Hier entscheidet sich die Zukunft. Wer hier die Nase vorne hat, macht das Rennen.

    Nicht jeder hat die Zeit und die Kraft sich ein eigenes OS zu schaffen oder gar mehr. Daher bin ich sehr zufrieden, dass es mir gelungen ist "PrettyOS" zu schaffen und daran mit anderen Interessierten weiter entwickeln zu können. Die Grundlage ist inzwischen hervorragend. 🙂


  • Mod

    Momentan beschäftige ich mich mit der Erfassung von Videostreaming-Daten aus Webcams am usb2-Port (z.Z. mit ehci periodic scheduler). Da lernt man eine Menge über die konkreten Möglichkeiten der Datenverarbeitung bei Bildern/Videos, z.B. die Steuerung einer Webcam oder das Umsetzen des YUYV-Formats in das inzwischen übliche RGB-Format. Nebenbei beherrscht man auch das periodic scheduling in ehci (oder später xhci). Man könnte sagen, wen interessieren schon webcams, oder was hat Treiberprogrammierung mit OS-Developemnt zu schaffen? Argumente etwas nicht anzupacken gibt es immer zuhauf, davon lässt isch ein OS-Developer nicht entmutigen. Einfach eintauchen und selbst alles machen zu können/müssen, das ist Tüftler-Paradies und -Hölle zugleich. 😉
    So etwas kann man kaum aus dem Stand angehen. Hierzu benötigt man die notwendige Erfahrung und ein in möglichst vielen Belangen stabiles OS. Wir speichern z.B. große Bilddatenmengen auf einem usb-Stick. Da müssen die Einzelkomponenten des OS zuverlässig funktionieren und - wenn möglich - rasch ablaufen.

    Wir freuen uns schon auf das neue xhci-Modul in VBox. Emulatoren beschleunigen die Entwicklung ungemein. Allerdings möchte man, dass der entwickelte Code auch "auf Blech" - also einem test-PC - läuft.

    Die Kosten dieses Hobbys sind übrigens gering. Man benötigt etwas Hardware wie Sticks, Hubs, Webcams usw., aber das bewegt sich in einem erschwinglichen Rahmen. Die entscheidende Investition ist die Zeit zum Nachdenken, Entwickeln, Testen, Fehlersuchen und Diskutieren mit Gleichgesinnten. Von letzteren gibt es nicht viele, man steht also vielfach alleine auf weiter Flur. Gut oder schlecht? Ich finde, es ist ein Segen. 👍



  • Ich hatte früher mal ein eigenes Betriebssystem zu Zeiten von MSDOS entwickelt, da ich mit MSDOS höchst unzufrieden war und wesentlich bessere Betriebssysteme kannte. Jedes Betriebssystem hatte seine Stärken und Schwächen. Ich pickte mir alle Rosinen da heraus und baute daraus ein eigenes Betriebssystem mit Multitasking, Multiusing mit verbesserten Schutzmechanismen usw., die zu der Zeit noch nicht vorhanden waren. Das ganze realisierte ich sogar mit Turbo-Pascal und Assembler unter MSDOS! Die Betriebssysteme, die ich damals kannte, waren BS2000, Cyber NOS, Vax VMS, UNIX und das superschreckliche Steinzeitbetriebssystem MSDOS! Auch für verschiedene Prozessoren wie beispielsweise den angenehmen 68000, wo der Intel-Prozessor gegenüber von der Architektur die reinste Katastrophe war, habe ich ein Betriebssystem entwickelt. Damals war so etwas modern! Ich hatte einen PC zu der Zeit bedient, das hardware-mäßig mehr leistete als das extrem beschränkte MSDOS, wo man auf sehr umständliche Weise wegen der irrsinnigen Intel-Architektur auf Arbeitsspeicher zugreifen mußte, die jenseits von 1 MByte lagen. (High Memory). Es gab kein Multitasking und auch kein Multiusing. Als Windows auf den Markt kam, gab es die Eieruhrzeit, weil es kein echtes präemptives Multitasking hatte. Erst mit Windows 95 wurde es eingeführt. Da war es sehr praktisch, wenn man ein eigenes Betriebssystem hatte, was mehr leistete. Inzwischen sind neuere Prozessoren auf den Markt, wo es mir unter den Fingern juckt, wieder ein neues Betriebssystem zu schreiben. Die Schwierigkeit heutzutage ist, durch die vielen Geräte entsprechende Informationen zu gewinnen, um Treiber hierfür zu entwickeln! Früher wurde mehr über die Interna von Geräten veröffentlicht. Denken wir an die extreme Vielzahl von Graphikkarten, wo oft kein Standart vorhanden ist, muß man für jede mögliche Grafikkarte einen Treiber schreiben. Da hofft man schon, daß man eine Norm findet, damit die Treiber sich nicht so aufblähen. Ein guter Ansatz wäre, wenn der Hauptprozessor für sehr wichtige Ein- und Ausgabegeräte ein Teil der Arbeit abnehmen würde.


  • Mod

    Denken wir an die extreme Vielzahl von Graphikkarten, wo oft kein stan**** vorhanden ist, muß man für jede mögliche Grafikkarte einen Treiber schreiben.

    Ja, das ist richtig. Wir verwenden momentan den minimalen Standard VESA BIOS Extensions (VBE), was natürlich heute nicht mehr befriedigt.
    https://www.henkessoft.de/OS_Dev/Bilder/0_0_1_118_drawstring_bitmap.PNG

    Für die Netzwerkkarten gilt das gleiche, wenn es dort auch weniger Typen gibt.

    @w_ciossek: Vielleicht hast Du Lust bei PrettyOS einzusteigen. Seine Stärke ist usb. Schau einfach mal auf https://www.prettyos.de und/oder im chat vorbei.



  • Danke, das reizt mich sehr. Ähnlich wie Linus Torwalds mit Hilfe einer Schar von Studenten über das Internet Linux entwickelt hatte, könnte man das bei PrettyOs ebenfalls solches bewerkstelligen und so einen Pool schaffen, wo alles Wissen zu diesen Thema zusammenkommt. Ich bin auch dabei, ein Buch in PDF-Form parallel zu meiner Betriebssystementwicklung zu schreiben, damit Anfänger hierzu, sofern sie Lust haben ein solches System zu entwickeln, ermuntert werden. Ich habe mit cygwin unter Windows als auch unter Linux die gleichen Entwicklungswerkzeuge, so daß man die gleichen Befehle sowohl unter Windows als auch unter Linux verwenden kann.
    Ich muß mich allerdings noch sehr in diese Materie wieder einarbeiten, da ich nicht mehr auf den neuesten Stand bin. Das gilt insbesondere für die neue Hardware. Auch reizt es mich, für verschiedene Prozessoren ein Betriebssystem zu entwickeln, da ich früher einmal für den 68000 programmiert hatte und dessen Maschinensprache sehr genial empfand.


Anmelden zum Antworten