Artikel-Schlagworte: „OS“

Ausgrabungsfund: Der alte OS Dev Blog

Dienstag, 17. Juni 2008

Hallo allerseits!

Die alten Hasen von euch kennen vielleicht noch den Vorgänger diese Blogs: Den OS Dev Blog. Ich habe zu Testzwecken das alte Xairro wieder zum Laufen gebracht und den alten Blog wiedergefunden. Die wenigen Beiträge sollen nicht verschütt gehen, deshalb liste ich sie hier nocheinmal chronologisch auf:

GRUB und C, es klappt vom 07.06.2007

GRUB und C, diese Kombination aus dem beliebten Multi-Boot-Loader und der mächtigen Programmiersprache sollten eigentlich einen komfortablen und einfachen Einstieg in die Welt der Betriebssystemprogrammierung bieten. Eigentlich. Theoretisch könnte man nahezu ohne Assembler auskommen (für den Anfang)…

Leider hat sich das alles als nicht ganz so einfach herausgestellt, es war ein Kampf gegen die Maschine. Bis ich von den kleinen Syntaxfehlern bis zu den größeren Logikfehlern alles zusammengebastelt hatte, viel mir ein Stein vom Herzen, jetzt konnte es los gehen.

Seit dem ist noch nicht viel Zeit vergangen, aber ich konnte komfortabel Funktionen für die Textausgabe auf dem Bildschirm, eine Kopierfunktion für den Arbeitsspeicher etc. schreiben. Das ist nicht viel, Eingabegeräte werden bis jetzt noch vollkommen ignoriert und auch die Protected-Mode-Dinge sind noch nicht vorhanden, nicht mal eine GDT. Es gibt noch viel zu tun, ich habe Unmengen an Plänen…

Mein jetziger Kernel heißt einen momentan nur mit einem lila Text im VGA-Text-Modus willkommen;)

printf und va_list’s vom 12.06.2007

Jetzt hat mich der Teufel gepackt! Der printf-Befehl und va_list’s. Ich wollte gerne soetwas wie printf programmieren. Also musste ich erstmal erfahren, wie man eine beliebige Anzahl von Parametern an eine Funktion übergibt. Nach langem befragen von teilweise unhöflichen Besserwissern habe ich in einem deutschen Channel die Antwort bekommen: va_list’s. Die muss ich jetzt erstmal implementieren, dann geht es an die printf-Funktion. Im Moment geht es leider nicht ganz so flott voran:(

Hilfe vom 21.06.2007

Uff, im Moment schaffe ich nichts. Das will alles nicht so, wie ich will. Aber es gibt einiges zu tun.

Ich muss nun Keyboardfunktionen schreiben, das will nicht wirklich, im Moment. Dies ist mal wieder eine Situation, wo man sich eine Fehlermeldung wünscht.

Aber wenigstens heute morgen habe ich etwas geschafft: Ich habe in unserem Forum OS-Development-Kategorien angelegt. Und das aller Beste ist: http://www.xairro.de/content/view/83/7/, das ist ein Artikel zum Thema Betriebssystementwickelung mit vielen Infos, schaut selber.

Ferien vom 05.07.2008

Im Moment sind Ferien, ich komme zu nichts, will alles nicht so recht gelingen. Ich habe nichts geschafft, seit dem letzten Posting. Hoffentlich bekomme ich iwann mal Hilfe von jemandem, der das drauf hat. Für mich ist das ziemlich schwer, ohne Hilfe, ich bin nicht mal erwachsen. Aber kommt Zeit kommt Mitstreiter. Genießt eure Ferien auch!

Interrupts, Interrupts und noch mehr Interrupts vom 02.08.2008

Trotz der Ferien habe ich mich jetzt schon wieder an das OS gewagt und habe mich nun ein bisschen weiter mit dem Protected Mode auseinandergesetzt. Genaugenommen waren es bloß Interrupts mit denen ich mich auseinandergesetzt habe… Ich habe nun verstanden, wie Interrupts im Protected Mode funktionieren, aber das Umsetzen war ein Problem. Wie immer habe ich per Textoberfläche von Ubuntu (Linux) mit dem Editor “nano” gearbeitet. Ich hätte aber soooo gut Copy & Paste gebrauchen können, ich habe schließlich die 32 Exception-Interrupts des Prozessors + die 16 PIC-Interrupts eintragen müssen, der Code dabei ist nahezu immer gleich, das war ziemlich anstrengend^^ Aber jetzt bin ich soweit. Die Softwareinterrupts funktionieren, das habe ich getestet. Dann wollte ich aber die Hardwareinterrupts testen, das wollte ich mit dem Timer des PITs realisieren, hab schön ne Routine für IRQ 0 geschrieben - aber es funktionierte nicht. Nichts passierte. Ich weiß nicht, ob es an meiner PIT-Programmierung oder an meiner PIC-Programmierung liegt :P Was solls, ich habe einen Fortschritt gemacht, den Fehler finde ich wann anders. Ich freu mich schon total auf später, wenn alles immer abstrakter wird, dann wird das programmieren wohl einfacher, ich komme in bekanntes Gebiet und weiß, was zu tun ist. Bis bald, PowerProgrammer

Die IRQs… vom 06.09.2007

Nach einer kleinen Programmierpause habe ich wieder damit angefangen, womit ich das letzte mal aufgehört hatte: Mit den IRQs. Und, ja, ich habe mehr oder weniger den Fehler gefunden… Das ist ziemlich peinlich. Ich hatte nämlich mit

cli
hlt

die Interrupte deaktiviert (und den Prozessor angehalten). Dann kann das natürlich nicht klappen. Stundenlange Fehlersuche umsonst, grrr^^ Jedenfalls klappt es jetzt mehr oder weniger, allerdings rattert der Text “CBCBCBCBCBCBCBCBCBCBCBCBCB…” flott den Bildschirm herunter anstatt jede Sekunde mal Testweise einen Punkt auf den Bildschirm zu zeichnen. Das Pröblemchen: Ich weiß nicht, wo dieses ganze “BC” herkommt. Joa, mal sehen, das werde ich dann beim nächsten mal beseitigen… Aber ich bin weitergekommen und nur das zählt:)

Der Sprung ins Nirwana… vom 11.09.2007

Jetzt weiß ich wenigstens, wo ungefähr der Fehler mit dem “cb” liegt. Es lag an meinem IRQ-Handler. Dieser sollte in der Theorie einen Timerhandler aufrufen… In der Theorie… Praktisch allerdings springt der Prozessor aber wo ganz anders hin, wo er nichts zu suchen hat. Dort steht der Code zum Ausgeben von “cb”. Allerdings weiß ich nicht, wo er da hinspringt und wieso er das überhaupt macht:D:D:D Da muss ich nochmal auf Fehlersuche gehen.

Jetzt fragt ihr euch sicher, wie es momentan mit dem Xairro OS aussieht. Das ist eine berechtigte Frage. Leider habe ich im Moment nicht ganz so viel Zeit. Xairro ist neu herausgekommen und ich musste Python lernen und mich in das Framework Django einarbeiten etc. Aber es wird sicher weitergehen. Yarca, ich werde dir nicht folgen! Ich bleibe beim OS Deven!