Kernel-Experimente

  • Ich hab mal mit der Kernelprogrammierung n bisschen rumexperimentiert, bis jetzt ist das rausgekommen: http://nw-os.square7.ch/nKernel.zip
    Es ist der Sourcecode, aber schon fertig kompiliert, recht umfangreiche Readme.txt liegt bei. Zur Zeit kanns:
    -
    - Ne Shell anzeigen
    - Gross- / Kleinschreibung unterscheiden
    - Die Uptime anzeigen
    - Herunterfahren
    Ich kümmer mich vll noch um nen einfaches FAT-Dateisystem und dann um nen VGA-Treiber, der Einstiegspunkt ist schon vorbereitet
    Vielleicht will sich ja mal jemand den Code anschauen, Teile sind aus verschieden Coding-Tutorials, aber Keyboard-Support und die Shell hab ich größtenteils selbst gebastelt.

    EDIT: Wichtig: Downloads sind jetzt bei http://nw-os.square7.ch/files.html

    Spoiler anzeigen


    Haupt-Laptop:
    Dell Vostro 3560 - i7-3632QM, 6GB
    Rechenknechte:
    Lenovo - i5, 4GB
    Medion - Pentium Dual Core, 3GB
    IBM T60 - Core Duo, 2GB
    Lenovo T400 - Core2Duo, 2GB
    Server:
    Sony - Pentium M, 512MB
    Unbenutzt:
    Noname - Celeron D, 1GB

    Einmal editiert, zuletzt von niwax (21. Juni 2010 um 16:41)

  • Ganz nett, auch wenn es zum "vielleicht will sich ja mal jemand den Code anschauen" noch nützlich wär, wenn du ne Liste der Dateien geben könntest, die auch wirklich von dir stammen.

    Nach kurz ausprobieren:

    - Die Hilfe-Seite verwirrt bissl weil die Befehle da in Grossschreibung stehen, aber klein geschrieben werden müssen.
    - Weil ich selber etwas Erfahrung in "Shell"-Schreiben hab: Deine Shell hat Probleme mit Befehlen die über die Zeile hinausgehen. Bei langen Eingaben gibts sogar nen Buffer-Overflow ;) Aber Zeileneingaben ist eh ne Bitch, bei Linux verwenden die meisten Tools da extra ne Bibliothek für (libreadline), weils schlicht nicht so einfach ist.
    - Shutdown funktionert bei mir nicht, meint "Invalid Opcode" (hab qemu aber selber aufgerufen)
    - Ne Funktion für Zahlenformatierung wär nett, damit du bei Uptime vorstehende Nullen machen kannst (00:08:03 anstatt 0:8:3) - bzw. bin ich mir nicht sicher, ob die scrn.c das sogar anbietet.

  • Ich schau mal, ob ich das mit der Uptime gleich fixe. Sgane, was von mir ist geht eher schlecht, ich habe die einzelnen Dateien aus Bran's Kernel Coding Tutorial, dann in eigene Ordner verfrachtet und mit dem erweiter was ich brauche, zum Beispiel itoa(), das Gegenstück von atoi(). Ich habe auch noch mehr Header erstellt um das alles etwas zu ordnen. die Befehle in der Shell sind komplett von mir, die Shell eig auch, am Anfang wars eiinfach nur ne Eingabezeile, aus der man sogar beliebig löschen konnte.
    EDIT:
    Also, habs mal nen paar Sachen gefixt, in der Zip ist jetzt auch ne change.txt:

    Spoiler anzeigen


    Ursprung
    ==========
    - Bran's Kernel Development Tutorial

    14.06.2010
    ==========
    - Projektstart
    - Eigene Shell und Befehle erstellt
    - VFD-Treiber, nWemu und Grub hinzugefügt
    - Support für Groß- und Kleinschreibung eingefügt
    - Funktion itoa() als Gegenstück zu atoi()
    - ScanCode-Verarbeitung in kb.c geändert

    10.06.2010
    ==========
    - Offizieller Projektstart
    - Uptime hinzugefügt
    - Uptime-Anzeige gefixt
    - Bug gefixt, der erlaubt, die Befehlszeile zu löschen
    - nMake hinzugefügt
    - Ordner erstellt + sortiert
    - Neue Header erstellt
    - Dateien logisch getrennt
    - Boot & Shutdown-Funktionen eingeführt
    - Delay() hinzugefügt
    - nVGA-Treiber-Unterstützung eingefügt
    - Uptime- & Shutdown-Befehl hinzugefügt
    - Main.c vereinfacht
    - Anzeige während des Bootens
    - Versionsnummern werden unterstützt
    - Bug bei der Anzeige unbekannter Befehle behoben
    - "Bootscreen" verbessert
    - Bug behoben, der bekannte Befehle ausführt und trotzdem als unbekannt ausgibt
    - Bug behoben, bei dem statt der nVGA-Version der Speicherbereich von GetVGAVersion() ausgegeben wird
    - Schreibfehler in GetVGAVersion() behoben

    Wichtig: Downloads sind jetzt bei nFile - Online-Dateimanager , im Ordner nKernel. Da gibts auch den gesamten Quellcode zum Online angucken. Ich werds immer mal aktualisieren. Alte nKernel-Versionen gibt auch, da staht dann das Datum in der Zip dabei.

    Spoiler anzeigen


    Haupt-Laptop:
    Dell Vostro 3560 - i7-3632QM, 6GB
    Rechenknechte:
    Lenovo - i5, 4GB
    Medion - Pentium Dual Core, 3GB
    IBM T60 - Core Duo, 2GB
    Lenovo T400 - Core2Duo, 2GB
    Server:
    Sony - Pentium M, 512MB
    Unbenutzt:
    Noname - Celeron D, 1GB

    Einmal editiert, zuletzt von niwax (21. Juni 2010 um 16:40)

  • Also nFile - Online-Dateimanager ist mal wieder Tagesaktuell, es gibt von jedem Tag, an dem ich weitercode ne neue Zip und alle Codedateien entpackt zum Online anschauen und einzeln runterladen.
    EDIT: So, die letzten Entwicklungen sind jetzt auch on

    Spoiler anzeigen


    Haupt-Laptop:
    Dell Vostro 3560 - i7-3632QM, 6GB
    Rechenknechte:
    Lenovo - i5, 4GB
    Medion - Pentium Dual Core, 3GB
    IBM T60 - Core Duo, 2GB
    Lenovo T400 - Core2Duo, 2GB
    Server:
    Sony - Pentium M, 512MB
    Unbenutzt:
    Noname - Celeron D, 1GB

    Einmal editiert, zuletzt von niwax (25. Juni 2010 um 16:50)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!