Aktuelles Ziel von dem OS



  • Was ist eigentlich das aktuelle Ziel von eurem OS? Für ein kleines first steps Lernsystem ist es wahrscheinlich schon lang zu komplex. Habt ihr neue Ziele definiert? Ist wahrscheinlich auch schwierig, weil als Alternative zu Linux wollt ihr euch wahrscheinlich auch nicht positionieren.
    Ich hab das Gefühl, dass es im Moment so läuft, dass die paar Entwickler, die schon länger dabei sind (nur zwei?), einfach ein bisschen was machen, was ihnen grad Spass macht. Sucht ihr neue Entwickler? So rein theoretisch wäre ein bisschen Kernelhacking ab und zu vielleicht interessant, aber es ist noch nicht mal klar, ob sich das in irgendeiner Weise lohnt.



  • Was ist eigentlich das aktuelle Ziel von eurem OS? Für ein kleines first steps Lernsystem ist es wahrscheinlich schon lang zu komplex. Habt ihr neue Ziele definiert? Ist wahrscheinlich auch schwierig, weil als Alternative zu Linux wollt ihr euch wahrscheinlich auch nicht positionieren.

    Über den Zustand eines "first steps Lernsystems" ist es natürlich schon hinaus. Es geht allerdings trotzdem darum, ein verständliches (Erhard würde sagen: "didaktisches") Betriebssystem zu entwickeln, das als Basis für Experimente und Weiterentwicklungen, als Anschauungsbeispiel, etc. nutzbar ist.
    Konkurrenz zu Linux werden wir nie darstellen, also brauchen wir es auch nicht zu versuchen ;).

    Ich hab das Gefühl, dass es im Moment so läuft, dass die paar Entwickler, die schon länger dabei sind (nur zwei?), einfach ein bisschen was machen, was ihnen grad Spass macht.

    Das ist nicht ganz falsch. Es soll ja auch Spaß machen.

    Sucht ihr neue Entwickler? So rein theoretisch wäre ein bisschen Kernelhacking ab und zu vielleicht interessant, aber es ist noch nicht mal klar, ob sich das in irgendeiner Weise lohnt.

    Ja, wir suchen Entwickler! Inwieweit sich das "lohnt" muss jeder selbst wissen - es ist schließlich ein Freizeitprojekt. Ich jedenfalls habe eine ganze Menge dabei gelernt, in der Hinsicht hat es sich für mich auf jeden Fall gelohnt.
    Wenn Du dazustoßen möchtest, gerne. Ein großer Teil der Kommunikation läuft über IRC (euirc.net, #PrettyOS), schau doch einfach mal rein.



  • Mr X schrieb:

    Inwieweit sich das "lohnt" muss jeder selbst wissen - es ist schließlich ein Freizeitprojekt.

    Lohnen war keine besonders klare Formulierung... Wie soll ich das sagen, ich kann gut verstehen, warum das dir und Erhard noch Spass macht. Es ist mir aber noch nicht ganz klar, warum das anderen Spass machen würde 😉
    Gibt es eine Roadmap? Eine Übersicht offener Punkte? Ich meine sogar, dass ich vor einer Weile sowas ähnliches schon mal gesehen hätte, aber ich kann mich grad nicht erinnern.
    "Lohnen" auch in der Hinsicht, ob es irgendwie Sinn macht, da was neues anzufangen, oder ob das ganze nach paar Monaten sowieso wieder auf Eis gelegt wird. Ist es gewollt, irgendwelche neuen Features einzubauen, oder ist das Hauptziel, die bestehenden stabiler zu bekommen?

    Das war nur bedingt auf mich selbst bezogen... Ich bin skeptisch, ob ich die Zeit und Motivation tatsächlich finde, auch wenn ichs grundsätzlich interessant finden würde. Das Problem ist, dass ich sehr vieles interesant finde 🙂
    Aber wenn mir einen Link zum Download + Einleitung zum Bauen/Einrichten raussucht, würde ich zumindest gern mal reinschauen.



  • Der beste Einstieg: http://www.prettyos.de

    Links zu allgemeinen Informationen: http://henkessoft.de/OS_Dev/OSDEV Ressourcen.html

    TODO List für neues Release : http://sourceforge.net/p/prettyos/code/HEAD/tree/trunk/Source/documentation/NextRelease.txt

    Allgemeine Dokumentation:
    http://sourceforge.net/p/prettyos/code/HEAD/tree/trunk/Source/documentation/PrettyOS.odt

    Tutorial aus dem PrettyOS entstanden ist: http://henkessoft.de/OS_Dev/OS_Dev1.htm

    Interessant wäre auch folgendes:
    - Booten über Netzwerk (mit PXE)
    - Neue User-Programme (hier sind Ideen gefragt)
    - USB-Keyboard und -Maus (bisher geht nur PS/2) einbinden
    - RamDisk funktionsfähiger machen (gerade auch für PXE)
    - EHCI async scheduler weiter beschleunigen
    - Grafische Oberfläche wurde begonnen, wartet auf Fortsetzung
    - andere USB Devices außer Mass Storage
    - CDI weiter nutzen (bisher nur für fremden Netzwerkkartentreiber genutzt)



  • Aber wenn mir einen Link zum Download + Einleitung zum Bauen/Einrichten raussucht, würde ich zumindest gern mal reinschauen.

    Repository: http://svn.code.sf.net/p/prettyos/code/trunk

    Dort liegt ein Floppy-Image drin, dass man in allen gängigen Emulatoren starten kann. Zum selbst compilieren werden NASM und GCC/Clang (unter Windows als Crosscompiler, siehe hier: https://www.c-plusplus.net/forum/289304) benötigt. Dann "make all" ausführen, bzw. über build.bat oder die VS-Projektmappe den Build starten.



  • Ok, ich habs zumindest schon mal gebaut und in Virtual Box laufen lassen.

    Erste Idee für ein Usertool: pwd
    Wenn ich ifconfig eingebe, kommt Broken free: ... => file not found
    Die Schrift schaut in Virtual Box komisch aus, leicht verzerrt. Liegt aber wahrscheinlich an Virtual Box.

    Wie debuggt ihr da rum? Ich weiß zwar, was Linus Torvalds von Kernel Debuggern hält, aber ich debugge eigentlich schon ganz gern...

    Irgendeine Idee, was ein Anfänger erstmal machen könnte, um irgendwie reinzukommen?



  • Freut mich, dass das Bauen von PrettyOS gelingt. Print Working Directory (pwd) bzw. chdir ist eine gute Idee!

    Am besten kommst Du in den chat und stellst Fragen.

    Welcher Bereich interessiert dich denn am meisten?
    Bootloader (Assembler), Kernel, Treiber (z.B. Netzwerk, usb, Filesystem, ...), User-Programme?



  • IRC hab ich schon ewig nicht mehr benutzt... Wann ist normalerweise jemand da?

    Mich würd wohl am ehesten Kernel Entwicklung interessieren. In konkrete Hardware werd ich mich jetzt wohl nicht reindenken wollen, also wohl keine Treiber. Das einfachste wäre wohl fürs erste, paar Befehle wie pwd oder chdir zu implementieren. Das kann ich mir mal anschauen. Ich schau morgen vielleicht mal in eueren Channel.



  • IRC hab ich schon ewig nicht mehr benutzt... Wann ist normalerweise jemand da?

    Jetzt an den Weihnachtsfeiertagen wird nicht viel los sein, aber grundsätzlich bin ich die meiste Zeit tagsüber da.

    Wenn ich ifconfig eingebe, kommt Broken free: ... => file not found

    Broken free sollte nicht passieren, kann ich leider hier auch nicht reproduzieren. Du kannst ja mal das Makro _BROKENFREE_DIAGNOSIS_ in os.h aktivieren und schauen, was passiert. Dann sollte die Zeile angegeben werden von dem free(), das fehlschlägt.

    Wie debuggt ihr da rum? Ich weiß zwar, was Linus Torvalds von Kernel Debuggern hält, aber ich debugge eigentlich schon ganz gern...

    Hauptsächlich über Textausgaben via Bildschirm oder serielle Schnittstelle. Manchmal auch mit dem Debugger von Virtual Box (hier steht, wie man den aktiviert: http://www.lowlevel.eu/wiki/VirtualBox#Debugger).



  • Tagsüber schlafe ich oder bin in der Arbeit 😉

    Tja, da müsste man jetzt debuggen... Das kaputte free kommt aus fat.c, Zeile 1056. Passiert auch nicht immer, hauptsächlich wenn ich
    ls
    pwd
    ifconfig

    eingebe, kommt es dann beim ifconfig. Geht also vorher was kaputt. Hängt vielleicht mit dem Cache zusammen, aber ich kenn den Code ja nicht.

    Virtual Box Debugger aktivieren, und dann?
    Hab sowas gefunden:

    http://sysprogs.com/VisualKernel/tutorials/virtualbox/

    Versteh nicht ganz, wie die Integration in VS funktioniert. Macht ihr das so ähnlich oder debuggt ihr dann auf Assembler Ebene? Hab ich früher mit Bochs gemacht, aber damals war der komplette Code der mich interessiert hat auch in Assembler geschrieben, das war einfacher.



  • Ich benutze den VBox-Debugger nur, um mir die Register ausgeben zu lassen, einen Stacktrace (die Adressen kann man mit documentation/kernel.map dann Funktionen zuordnen) oder Geräteinfos zu kriegen. Wie das geht, steht in dem lowlevel Artikel bzw. im "help"-Befehl.

    fat.c, z. 1056 ist schonmal eine hilfreiche Info, auch wenn ich auf Anhieb keinen Fehler dort sehe. Leider kann ich auch mit dieser Abfolge von Befehlen das Problem nicht reproduzieren. Welcher Compiler, welche VBox-Version?