C
C ist eine bekannte ältere Programmiersprache. Sie verfolgt das Ziel bei vergleichbarer Ausführungsgeschwindigkeit plattformunabhängiger und abstrakter als Assembler zu sein. Direkte Weiterentwicklung von C ist C++.
| Allgemeines | |
|---|---|
| Name: | C |
| Inlineassembler: | Ja |
| Compiler: | gcc |
| Spracheneigenschaften | |
| Plattformen: | Alle |
| Beispielkernel in der Sprache: | |
| Homepage | |
Inhaltsverzeichnis
Kernelprogrammierung mit C
Da man mit C sehr hardwarenah programmieren kann, eignet sich die Sprache zur Programmierung eines Kernels. Es ist sogar die überwiegende Anzahl der Betriebssystemkernel in C geschrieben. Für andere Bereiche ist C jedoch nicht sonderlich geeignet: beispielsweise für einen Bootsektor. Empfehlenswert ist - wie bei jeder anderen Sprache, die im Bereich der Kernelprogrammierung verwendet werden soll - ein Compiler, der Inlineassembler unterstützt. Hierfür eignet sich der gcc. Für Einsteiger gibt es ein Tutorial, welches beschreibt, wie man in den Protected Mode schaltet und in C geschriebenen Code ausführt.
Bekannte C-Compiler
- gcc aus der GNU Compiler Collection
- tcc (Tiny C Compiler)
- Borland Turbo C für DOS (16 Bit/Real Mode)
Assemblercode in C
Während es möglich ist, den allergrößten Teil des Kernels in C zu schreiben, sind für einige wenige Aufgaben nach wie vor einige Zeilen Assemblercode notwendig. Es gibt dabei im Wesentlichen zwei Ansätze:
Inline-Assembler: Assemblercode wird direkt in den C-Code eingebettet. Die konkrete Syntax dafür unterscheidet sich von Compiler zu Compiler, im Allgemeinen wird der Assemblercode durch das Schlüsselwort asm eingeleitet. Ein Vorteil dieser Methode ist, dass ein direkter Zugriff auch auf lokale C-Variablen möglich ist. Sie eignet sich daher für sehr kleine Codestücke besonders gut.
Siehe auch Inline-Assembler mit GCC
- Externe Assemblerdatei: Der Assemblercode wird in eine eigene Datei ausgelagert und vom C-Code als eigenständige Funktion aufgerufen. Die Übergabe von Parametern und des Rückgabewerts wird im Artikel Aufrufkonventionen beschrieben