Betriebssystem in C

Status
Nicht offen für weitere Antworten.

Piesbruhder

Mitglied
Hallo Leute,
Ich brauche mal wieder Hilfe. Im ersten Moment denkt ihr bestimmt,
dass das hier das falsche Forum sei aber dem ist nicht so (jedenfalls
nicht eindeutig, finde ich). Zuerst schildere ich mal die Situation:

Ich versuche, nur aus Spaß, ein kleines Betriebssystem zu schreiben.
Ich habe jetzt einen Bootsector fertig. Er bootet und bleibt dann
stehen. Weil mir Assembler aber zu mühsam ist, würde ich gerne in C
(bzw. C++) weitermachen.

Frage:
Geht das? Wenn ja, was muss ich tun, damit das Assembler-Programm in
C-Programm aufruft? Wenn es nicht geht, ab welchem Punkt kann ich dann
C benutzen?


Ich hoffe es kann mir wie immer jemand helfen und danke schonmal für
die Antworten.

Gruß, Piehsbruhder :)
 
Ja - und nein. Du brauchst auf jeden Fall Assembler für den Bootsektor, weil der Bootloader genau 512 Bytes gross sein muss. Der Bootloader ruft dann den eigentlichen Betriebssystemkernel auf - in meinem Tutorial war das beides in eins.

Wenn ja, was muss ich tun, damit das Assembler-Programm in
C-Programm aufruft?
Erstmal musst Du bedenken, dass Du ja vorher kein Betriebssystem hast. Das Problem dabei ist, dass die Standard-Funktionen (printf, scanf, ...) abhängig vom installierten Betriebssystem sind. Das heisst also, die können wir nicht gebrauchen und müssen uns das alles selber schreiben. :rolleyes:
Die Bildschirmausgabe musst Du demnach direkt in den Grafikspeicher schreiben, was aber eigentlich gar nicht so besonders schwer ist. Wenn das funktioniert, kannst Du das C-Programm mit gcc so compilieren, dass der Einsprungpunkt vom Kernel (in C) genau die Speicheradresse ist, die vom Bootloader aufgerufen wird.

An Assembler kommst Du aber so oder so erstmal nicht vorbei, weil Du für den Zugriff auf die einzelnen Geräte nun mal sehr hardwarenah programmieren musst. Und dazu reicht C leider nicht ganz aus.
C++ kannst Du zwar genau so nehmen, aber macht eigentlich keinen Sinn, weil Du für die grundlegenden Funktionen des Systems und den Kernel keine OOP brauchst. ;)
 
hmmmm also so schwer od. schlimm ist Assembler nun auch nicht.

Schau dir mal meine Dokumentation über Betriebssysteme und Assembler Programmierung an, auch unter dem Gesichtspunkt, dass du bei der C Systemprogrammierung nicht an Inline Assembler vorbeikommst.

FDOS Betriebssystem und Dokumentation
 
Betriebssystem programmieren

Hallo

ich würde gerne mehr zu diesem Thema wissen.Also wenn mir einer von euch etwas mehr davon erzählen könnte.
Übrigens Tappi dein Link funktioniert nicht und Dario deiner auch nicht.

Vielen Dank im vorraus

Fabian
 
Status
Nicht offen für weitere Antworten.

Neue Beiträge

Zurück