Warum entwickelt ihr ein Forum OS (Pretty OS)


  • Mod

    Gerade die Entwicklung und Diskussionen der letzten beiden Monate sind wirklich in gewisser Weise begeisternd. Man lernt und ist gleichzeitig kreativ. Der härteste Lehrmeister ist übrigens die Hardware. Qemu und Co. ist da eindeutig zu lasch. 😉



  • Hallo,

    Erhard Henkes schrieb:

    Der härteste Lehrmeister ist übrigens die Hardware.

    Wenn Du das nicht möchtest solltest Du entweder auf einer anderen Plattform aufsetzen (und nicht auf dem x86-Scheiß) oder Du entwickelst gleich eine eigene Plattform nach Deinen Wünschen und Vorstellungen (ob das dann aber wirklich der leichtere Weg ist darf bezweifelt werden).

    Erhard Henkes schrieb:

    Qemu und Co. ist da eindeutig zu lasch. 😉

    Was ich eher als Bug von Qemu und Co. ansehen würde. 😉

    Grüße
    Erik


  • Mod

    Als bei Cuervo, Tobiking und mir auf den PCs EHCI / USB 2.0 erstmalig komplett gelaufen ist, das war so ein Moment, der für die Mühe belohnt. 🙂
    Man lernt überdies eine Menge an Details, an die man als normaler User oder Programmierer nicht heran geht. Das öffnet Horizonte und schafft ein grundlegendes Verständnis für Windows, Linux & Co.


  • Mod

    x86-Scheiß

    Das sehe ich als übertrieben an. Die grundlegenden Dinge hat man schnell im Griff. Problematisch sind eher die komplexen Bereiche, wie z.B. USB oder Netzwerk. Das hat mit x86 wenig zu schaffen.


  • Mod

    Nach einem Jahr weiterer Entwicklung sehe ich das noch gleich. x86 macht derzeit noch Sinn, da es in modernen PCs noch verbaut/implementiert wird. ARM ist noch zu wenig verfügbar. Das Problem ist nicht x86, sondern grundsätzlich die Fehlersuche und unterschiedliche Testbasen im Team.


  • Mod

    EHCI/USB läuft (kann aber noch optimiert werden), TCP läuft stabil. Als Netzwerkkarten haben wir RTL8139 und PCNET bisher, beide im Emulator Qemu vorhanden. Nun werkeln wir eher an den Grenzen zwischen Kernel, User-Land und LAN/Internet, eine sehr interessante Phase. Für mich ist es spannend, das Netzwerk in Aktion zu sehen, dass wir Byte für Byte aufgesetzt haben und deshalb auch wirklich im Ablauf und Zusammenspiel verstehen.

    PrettyOS ist im Codeaufbau noch immer gut verständlich, allerdings schon recht komplex im Zusammenspiel seiner Komponenten. Dennoch sehen wir, dass Einsteiger in die Materie mit unserem "Baukasten" ihre eigenen Versuche realisieren und eigene Entwicklungsideen in die Tat umsetzen können. Dieses Feedback motiviert und entlohnt für viele Mühen und verletzende Kritiken.

    PrettyOS ist inzwischen ein handfestes und immer wieder begeisterndes Projekt geworden mit einer Reihe engagierter "Developer". 🙂


  • 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