Eigenes OS?
-
Macht die Zeile: jmp dword 0x08:0x300060 ; offset 0x60 in kernel.elf
in boot2.asm sinn wenn der Kernel in 0x40000 liegt und kein ELF-Format mehr ist?Nein, natürlich nicht. Völliger Blödsinn.
Da ist beim Hochladen Stage 2 durcheinander geraten.
Da muss alles genau passen. Auch die Namen stehen mehrfach im Code.
Kleiner Fehler bei Änderungen: alles kaputt.Bitte alles weg werfen und erneut downloaden:
http://www.henkessoft.de/OS_Dev/Downloads/94.zip (neu upgeloadet)(habe jetzt auch etwas mehr Platz geschafft für anderen Compiler, der "dickeren" Code produziert.)
Selbst downgeloadet, extrahiert und getestet: OK.
-
Erhard Henkes schrieb:
Kleiner Fehler bei Änderungen: alles kaputt.
Irgendwo habe ich mal einen Spruch gehört, Assembler Funktionen seien verdammt schnell, man müsse aber beim Programmieren der Assembler Funktionen verdammt langsam denken...
-
Ja, das stimmt wirklich.
Klappt das bei Dir mit der Version 94? Dank FAT 12 kann man jetzt aus mehreren Versionen alles schön vermischen, spätestens auf der Floppy.
Wer keine Floppy hat, gibts natürlich auch virtuell (VFD).
-
Erhard Henkes schrieb:
Klappt das bei Dir mit der Version 94? Dank FAT 12 kann man jetzt aus mehreren Versionen alles schön vermischen, spätestens auf der Floppy.
Ja es klappt. Man muss aber natürlich drauf achten, dass Stage 1 und 2 zusammen passen. Wenn man ein altes Stage 1 oder 2 mit anderen Adressen benutzt kann das schnell schief gehen.
Erhard Henkes schrieb:
Wer keine Floppy hat, gibts natürlich auch virtuell (VFD).
Unter Linux gibt es losetup
-
Na, wenn das soweit klappt (bei Vers. 94 ist sogar initrd-Filesystem dabei, das bisher nicht überall lief), ist es wohl an der Zeit, sich nun den Themen Device-Treiber "Floppy Disk" sowie dem File-Format "FAT 12" zu widmen und First und Second Stage Bootloader auszubauen.
-
Memory Detection klappt nun auch mit dem Second Stage Bootloader, der sich momentan so darstellt:
..EDIT: includes wurden überarbeitet. Gemeinsames BPB für Stage1 und Stage2 ausgegliedert. Floppy-Motor wurde nun auch ausgeschaltet.
Das ist m.E. eine brauchbare Basis für die weitere Entwicklung.
-
Erhard Henkes schrieb:
ist es wohl an der Zeit, sich nun den Themen Device-Treiber "Floppy Disk" sowie dem File-Format "FAT 12" zu widmen...
ah, endlich gehts los mit dem OS *daumen_hoch*
kannst ja das hier als grundlage für 'nen FAT-treiber nehmen: http://elm-chan.org/fsw/ff/00index_e.html
-
endlich gehts los mit dem OS *daumen_hoch*
Ich sagte doch, dass Du etwas Geduld mitbringen musst. Jedes OS wandert im gewissen Sinne durch eine autistische Phase. Bei PrettyOS wurde das durch Verweigern der "Gehhilfe" GRUB noch vertieft. Der Kontakt zur Außenwelt gehört bei vielen Entwürfen im Sinne eines Mikrokernels nicht wirklich zum Systemkern, sondern wird an den User-Space delegiert. Nun wird sich PrettyOS allerdings verstärkt öffnen, sowohl gegenüber dem User als auch dem Computerumfeld.
Damit ist allerdings auch die wirklich spannende Phase vorbei.
Nun verstehe ich Autisten.Danke für den interessanten Link!
-
Nachdem die Version 97 (incl. initrd) überall stabil läuft, habe ich dies nun auch beschrieben.
Besonders interessant finde ich die Analyse der Datenstrukturen auf Diskette mit dem Hex-Editor: http://www.henkessoft.de/OS_Dev/Bilder/FAT12_HexEditor.PNG
Man erkennt sehr schön den Bootsektor, FAT1, FAT2, die Root-Directory und dahinter die Daten. Eine Analyse der Clusterketten in der FAT zeigt die Linked List (folgt noch). Damit wird das Ganze sehr klar und konkret.
-
^^wieso willste eigentlich FAT12 und nicht gleich FAT16 nehmen?
-
Na ja, ich überlasse die Formatierung noch MS Windows. Der Format-Befehl von MS Windows 98, ME und XP wird eine Diskette immer mit FAT12 und nur alle anderen Laufwerke mit FAT32 bzw. NTFS formatieren. Der Format-Befehl von MS DOS und MS Windows 95A, der nur FAT12 und FAT16 kennt, formatiert eine Diskette mit FAT12 und alle anderen Laufwerke mit FAT16. Daher ist FAT12 das zu erwartende Format, in der unsere Daten mit einem copy BOOT2.SYS A:\BOOT2.SYS bzw. copy CKERNEL.SYS A:\CKERNEL.SYS auf Diskette übertragen und dort abgelegt werden. Mir gefällt das Umgehen mit halben Bytes auch nicht, wäre bei 16 Bit einfacher.
-
Ich habe nun noch diese Abbildung hinzugefügt, damit die - prinzipiell einfachen - Zusammenhänge und Berechnungsformeln klar werden: http://www.henkessoft.de/OS_Dev/Bilder/FAT1_FAT2_Root.PNG
-
Ich habe gerade mal etwas in dem Tutorial gelesen über das OS und hab mir mal aus spass direkt das Programm Bochs runtergeladen ( hab zwar noch n Disketten Laufwerk aber die Diskette sind nicht mehr so gut ^^ ) funktionierte auch sofort alles mit dem Kernel.bin am Anfang.
Aber jetzt würde mich mal interessieren wie viele Leute an dem Tutorial mit arbeiten, das ist ja wahnsinn wie viel da steht da kann man eine menge lernen.
-
n1 schrieb:
Ich habe gerade mal etwas in dem Tutorial gelesen über das OS und hab mir mal aus spass direkt das Programm Bochs runtergeladen ( hab zwar noch n Disketten Laufwerk aber die Diskette sind nicht mehr so gut ^^ ) funktionierte auch sofort alles mit dem Kernel.bin am Anfang.
Aber jetzt würde mich mal interessieren wie viele Leute an dem Tutorial mit arbeiten, das ist ja wahnsinn wie viel da steht da kann man eine menge lernen.
naja das sind doch alles basics, die lernst du in jedem informatik erstsemester
-
O_o Glaub ich nicht^^
-
n1 schrieb:
O_o Glaub ich nicht^^
Die Theorie wird schon in den ersten beiden Semestern behandelt. Dabei wird nur nicht auf technische Besonderheiten einer bestimmten Architektur eingegangen. Aufbau/Funktionsweise einer CPU, Assembler (nicht unbedingt x86), Speicher-/Ressourcenmanagement, Scheduling, sind alles Themen die dran kommen.
-
Aber jetzt würde mich mal interessieren wie viele Leute an dem Tutorial mit arbeiten
Ich arbeite bisher alleine an diesem Tutorial, seit etwa Mitte März diesen Jahres. Schön wäre es, wenn sich so eine Art OS Community bilden würde, habe diesbezüglich aber keine klaren Vorstellungen.
naja das sind doch alles basics, die lernst du in jedem informatik erstsemester
Man hört zumindest davon. Ob man es rein theoretisch versteht, ist allerdings eine andere Sache. Aus den flüchtigen Universitäts-Skripten, die man so im Internet findet, könnte ich allerdings kein OS zimmern. Selbst mit dem Tanenbaum in der Hand ist dies nicht möglich. Man benötigt "echte" Vorbilder. Linux hatte Minix, DOS hatte CP/M als Vorbild, so sieht das aus.
Mich freut es, wenn ich mitbekomme, dass junge Leute mit etwa 13 - 15 Jahren diesbezüglich konkret los legen und nicht nur zu Konsumenten von fertigen OS, Programmen und Spielen werden. Ich denke dies ist die Hauptzielgruppe. Daher schreibe ich das Tutorial auch in Deutsch und nicht in Englisch.
Die Theorie wird schon in den ersten beiden Semestern behandelt. Dabei wird nur nicht auf technische Besonderheiten einer bestimmten Architektur eingegangen.
Die technischen Besonderheiten, gerade bei 80x86, sind aber genau der Clou! Grau, grau ist alle Theorie.
Ich würde übrigens empfehlen, parallel mit der Programmierung eines kleinen "Roboters" wie ASURO oder Nibo zu beginnen, damit man auch µC als Vergleich kennen lernt:
http://www.henkessoft.de/Roboter/ASURO.htm
http://www.henkessoft.de/Roboter/Nibo.htm
-
Ich weiß, dass das Thema hier zu genüge durchgekaut wurde. Aber gerade ich als jemand, der in deiner Zielgruppe liegt, frage ich mich doch, ob es denn gerade so sinnvoll ist, ständig vom eigentlichen Kern abzulenken, nur weil der liebe x86er unbedingt auf seine Extrawurst besteht.
Das Anschalten des A20-Gates - beispielsweise - könnte sich, ob der nicht unbedingt offensichtlichen Notwendigkeit dieses Gefrickels, für so manchen zum Stolperstein entwickeln. In dieselbe Nische schlägt da auch das gesamte Umschalten zwischen PM / RM usw. usf.
Trotzdem muss ich dir ein dickes Lob aussprechen.
Dein Tutorial ist eine unglaublich willkommene Abwechslung zu den teilweise sehr schwer auffindbaren und verstreuten Informationen zum Thema im Netz.
Weiter so
-
Danke für das positive Feedback! Es ist eine abwechslungsreiche und interessante Materie, aber auch verflixt viel Arbeit, die Zusammenhänge verständlich und dennoch auf das Wesentliche konzentriert darzustellen. Für konkrete konstruktive Anregungen bin ich dankbar.
-
Für konkrete konstruktive Anregungen bin ich dankbar.
In Sachen fachlicher Korrektheit kann dir die "Forenprominenz" ja bestens zur Seite stehen. Was das Hauptproblem der Didaktik angeht, so kann ich eigentlich keine wirklichen Kritikpunkte finden. Allgemein würde ich dir - zumindest was meinen Standpunkt angeht - dazu raten, nicht mit Theorie und Hintergrundinformation zu geizen. Absätze überspringen und im Notfall nachlesen kann man jederzeit, aber nichts ärgert mich mehr, als wenn ein Detail ungeklärt bleibt oder nicht erwähnt wird.