OS-Compiler

Kyoko

Erfahrenes Mitglied
Hi,
ich wololote frage ob es einen Compiler zur Betriebssystem-'rogrammierung gibt? Ich hab mal was von so nem Teil gehört.
Danke im vorraus für eure Antwort.
 
Was meinst du mit OS-Compiler?!

Man compiliert Quelltext von Programmiersprachen und das gibt dann das OS, nicht umgekehrt..

Also wenn du einer für Assembler brauchst:
Netwide Assembler: NASM

Für C / C++: GCC

Wenn du unter Windows arbeitest:
http://www.domae.ch -> Downloads dort kannst du dir ein Developper-Packet downloaden.


mfg
 
Damit meine ich einen Compiler mit dem man leicht eine OS schreiben kann, weil er nur Systerm-Unabhängige Befehle hat.
 
Ein Compiler hat keine "Befehle", so wie Du es jetzt meinst. Wenn Du ein OS schreiben willst, nimmst Du z.B. eine Kombination aus C und ASM, mit nicht all zu vielem Aufwand kannst Du Dir ein eigenes kleines Programm bauen, welches den Rechner starten kann (im weitesten Sinne ein OS ;) ).

Der Compiler übersetzt den Programmcode in Maschinensprache - Systemunabhängige Befehle wie gesagt mit ASM, aber auch ein wenig C Code wird dabei sehr helfen. Wie schon mein Vorredner meinte, GCC ist ein guter C (++) Compiler.

Wenn Du einfach mal unter google suchst, dort gibt es eine Menge Material dazu, wie man es angeht, ein OS zu programmieren.
 
Mit befehle meine ich Anweisungen die unabhängig vom OS sind wie zi#um beispiele ein unabhängiges printf(). Und es gibt Compiler die Befehle haben, z. B. PureBasic oder Visual Basic.
Das Tutorial hab ich schon gelesen, aber trotzdem danke.
 
Die Einzigen OS-Unabhängigen Befehle sind die ASM-Befehle (ohne die Bibliotheken). printf ist der Aufruf einer Standard-Bibliothek in C. Die ist OS-Abhängig. Stell dir blos einmal einen Webserver ohne Bildschirm vor (mit individuellem Betriebsystem). Warum sollte der ein printf haben?

Falls du OS-Unabhängig (zumindest relativ) Programmieren willst, nimm Java.
 
Also Funktionen wie printf musst Du als Entwickler eines Betriebssystems selber programmieren. Eigentlich kannst Du nur Assembler für die Entwicklung verwenden, oder C (ohne Libs) mit Inline Assembler. Anders geht es nicht.
 
An Assembler-Aufrufen wird man bei der Entwicklung von Betriebssystemen nicht vorbeikommen, da kann man sich noch so sehr auf den Kopf stellen. Gerade aus dem Grund, dass Dinge wie Treiber und Bootloader so hardwarenah programmiert werden müssen, dass C oder andere Hochsprachen nicht mehr geeignet sind.
Allerdings ist das hier genannte Beispiel der prinft-Funktion aus der Standardbibliothek von den gängigen C-Compilern auch größtenteils ohne Assembler-Aufrufe machbar. Das einzige, was man braucht, ist Schreibzugriff auf den für die Grafikausgabe reservierten Speicher - und an diesen kommt man mit C relativ einfach, wenn man Pointer einsetzt.

Andererseits ist es bei Pascal und davon abgeleiteten Sprachen so, dass das printf-Äquivalent nicht aus einer dynamisch ladbaren Bibliothek stammt, sondern direkt zum Sprachumfang gehört. Mit anderen Worten: Die Textausgabe auf Bildschirmen oder anderen Geräten ist bei Pascal Bestandteil der Grundausstattung der Sprache selbst. Ob das aber in diesem Fall auch funktioniert, kann ich dir nicht sagen.
 
Naja er könnte sich ja die Mühe machen und einen Compiler schreiben, der den Source Code direkt Assembler umsetzt. Das habe ich mal gemacht, jedoch wird man schnell merken, dass es einfacher (!) ist ein Betriebssystem zu programmieren, als einen Compiler.
 

Neue Beiträge

Zurück