C-Kernel mit GRUB — Änderungen 4262 → 4347

Zeile 5: Zeile 5:
  
 
== Kernel ==
 
== Kernel ==
−
Der eigentliche Kernel soll ja in [[C]] programmiert sein. Ein Teil des [[Kernel]]s muss aber immernoch in [[Assembler]] sein.
+
Der eigentliche Kernel soll ja in C programmiert sein. Ein Teil des Kernels muss aber immernoch in [[Assembler]] sein.
  
 
=== Kernel - C ===
 
=== Kernel - C ===
−
Als erstes kannst du dir einen kleinen Test-[[Kernel]] ausdenken, oder einfach den hier benutzen:
+
Als erstes kannst du dir einen kleinen Test-Kernel ausdenken, oder einfach den hier benutzen:
 
<c>
 
<c>
 
int main() {
 
int main() {
Zeile 64: Zeile 64:
 
* Die Flags können geändert werden, am besten schaut man sich die [[Multiboot]]-Spezifikation an.
 
* Die Flags können geändert werden, am besten schaut man sich die [[Multiboot]]-Spezifikation an.
 
* Den Stack kann man natürlich an eine beliebige Stelle setzen, aber an der 2MB-Grenze wird er uns nicht stören.
 
* Den Stack kann man natürlich an eine beliebige Stelle setzen, aber an der 2MB-Grenze wird er uns nicht stören.
−
* Es wird die Adresse der [[Multiboot]]-Structure nicht umsonst an den C-Kernel übergeben. Am besten liest man so ziemlich am Anfang des Kernels die Informationen aus ihr. In der [[Multiboot]]-Structure steht z.B wie viel Speicher der Rechner hat, oder welche Module von GRUB mitgeladen wurden.
+
* Es wird die Adresse der Multiboot-Structure nicht umsonst an den C-Kernel übergeben. Am besten liest man so ziemlich am Anfang des Kernels die Informationen aus ihr. In der Multiboot-Structure steht z.B wie viel Speicher der Rechner hat, oder welche Module von GRUB mitgeladen wurden.
  
 
== Zusammenbauen ==
 
== Zusammenbauen ==
−
Nun müssen wir den [[Kernel]] "zusammenbauen". Dafür müssen wir den [[Assembler]]-Code assemblieren, den [[C]]-Code kompilieren und am Ende beides linken.
+
Nun müssen wir den Kernel "zusammenbauen". Dafür müssen wir den Assembler-Code assemblieren, den C-Code kompilieren und am Ende beides linken.
  
 
=== Assemblieren ===
 
=== Assemblieren ===
Zeile 121: Zeile 121:
  
 
== GRUB-Image erstellen ==
 
== GRUB-Image erstellen ==
−
Wir müssen jetzt natürlich noch ein Disketten-Image erstellen und dann [[GRUB]] und unseren [[Kernel]] draufladen.
+
Wir müssen jetzt natürlich noch ein Disketten-Image erstellen und dann GRUB und unseren Kernel draufladen.
  
 
=== Floppy-Image erstellen ===
 
=== Floppy-Image erstellen ===
−
Wir erstellen uns erstmal ein Floppy-Image und formatieren es mit [[ext2]]. Es können auch andere [[Dateisysteme]] benutzt werden, z.B [[FAT]], man muss nur drauf achten, dass [[GRUB]] dieses [[Dateisystem]] unterstützt.
+
Wir erstellen uns erstmal ein Floppy-Image und formatieren es mit [[ext2]]. Es können auch andere [[Dateisystem]] benutzt werden, z.B [[FAT]], man muss nur drauf achten, dass GRUB dieses Dateisystem unterstützt.
  
 
Mit ''dd'' erzeugen wir ein 1,44MB großes Floppy-Image:
 
Mit ''dd'' erzeugen wir ein 1,44MB großes Floppy-Image: