Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Themen - Krendor

Seiten: [1]
1
Hallo Kollegen der Hobbybetriebssystementwicklung,

nach langer Zeit steige ich nun wieder in die Betriebssystementwicklung ein und habe auch schon eine Vorstellung davon, was mein Betriebssystem können soll. Die Featureliste ist schon recht lange, aber nur, weil ich alles im Detail erwähne. Zusammengefasst in folgende Begriffe:
Paging, multithreading, Inter process communication, vga text modus, shell, porting gcc + standard c lib, executing elf files, read cdrom, read/write hdd, FAT12/16/32 und iso9660.
Damit sollte man schon etwas arbeiten können. Später kann man das ganze ja um Sound, netzwerk, acpi, usw. erweitern.

Jetzt langsam zu meiner Frage. Ich will nur sicher gehen, dass ich keinen Denkfehler mache. Ich definiere Interfaces (C++) für die Treiber und die Treiber implementieren diese dann. Z.B. gibt es ein Interface FAT12 oder meinetwegen auch FAT allgemein, und für jedes Filesystem wird dann ein Objekt dieses Interfaces angelegt. Die Treiber laufen also im Ring 0, also im Kernel. Die Treiber liegen als ELF Relocation Datei vor und werden vom Kernel geladen. Es gibt 4 Funktionen, die implementiert werden müssen: GetInfo gibt z.B. zurück, was für ein Treiber das überhaupt ist | getInstance gibt ein Object des Treibers zurück (das sich an das Interface hält), Initialize and Release sind wohl selbsterklärend. GRUB2 lädt nur die Treiber als Module, die für das nachladen weiterer Treiber nötig sind. Der Kernel geht die Module durch, schaut nach was für ein Treiber es ist, löst die Relocations auf, und kann ihn dann nutzen. Für Anwenderprogramme in Ring 3 gibt es dann eine eigene API, die per Interrupt mit dem Kernel kommuniziert.

Habe ich dabei irgendwas übersehen?

Viele Grüße
Krendor
2
Hallo,

ich werde in nächster Zeit aktiv an dem VGA Artikel der WIKI schreiben. Da dies mein erster Beitrag ist, würde ich mich über Lob und Kritik sehr freuen.

Viele Grüße
Sebihepp
3
Offtopic / WIKI erweitern
« am: 25. June 2009, 15:48 »
Hallo,

ich habe leider noch nicht viel Ahnung, wie genau eine WIKI funktioniert.
Aber ich würde gerne ein paar Dinge hinzufügen. Ein Tutorial für VGA
zum Beispiel. Natürlich achte ich darauf, alle Quellen anzugeben.

Ist das möglich, oder wie funktioniert das?

Viele Grüße
Sebastian
4
Offtopic / Keine Aktivierungsmail bei AOL
« am: 15. May 2009, 14:52 »
Hallo,

endlich habe ich es geschafft, mich zu registrieren und zu aktivieren.
Ich versuche nun schon seit mehr als 2 Jahren in dem Forum hier
mitzuwirken. Leider bekam ich nie eine Mail als AOL user. Auch nicht,
nachdem ich sie mir erneut zuschicken lies. Im Spam-Ordner war auch
nix (Ausserdem habe ich den Filter deaktiviert).

Jetzt endlich fand ich die Möglichkeit, die Mailadresse zu ändern.  :-D
Ich habe mir einfach eine weitere Mailbox bei GMX gemacht.

Ich spiele jetzt seit etwa 3 Jahren auf dem Gebiet der hardwarenahen
Programmierung herum und habe bereits kleinere Programme geschrieben,
die alle ohne ein OS laufen. Einmal ein Programm zum auslesen des
ersten Sektors der Festplatte (MBR) und der Diskette, ein Anderes spielt
mit Hilfe des Speakers eine kleine Melodie (Hymne der Zeit, Zelda Ocarina of
Time) ab, ... . Demnächst will ich auch ein kleines OS schreiben. Kleiner als DOS. Ich bin gerade dabei das zu Planen. Ich dachte natürlich an HD und
FD support (vorerst nur FAT), Tonausgabe per Speaker, 25x80x16 Farben
Textmodus, und natürlich das ausführen von Programmen. Das OS soll
natürlich im ProtectedMode mit Singletasking laufen. Nun versuche ich das
alles zu Ordnen und mir einen Plan zu machen, welche Module ich aufteile.

Mein Name ist Sebastian, ich bin jetzt 22 Jahre alt und wohne in Heidelberg
(BW). Ich studiere jetzt Informatik im 2. Semester.

Herr Gott S.., das blöde Textfeld springt nach der Eingabe immer wieder nach oben. Was soll das!?

Viele Grüße
Sebihepp
Seiten: [1]

Einloggen