Hat sich jetzt erledigt, habe mir Ubuntu Image für den VMWare Player besorgt und code fürs erste da, habe nun auch was hinbekommen.
Der Kernel aus dem Tut
http://lowlevel.brainsware.org/wiki/index.php/C-Kernel_mit_Grubkernel.asm
global loader ; loader für Linker sichtbar machen
extern main ; main-Funktion des C-Kernels
FLAGS equ 0
MAGIC equ 0x1BADB002 ; Magicnumber - Erkennungsmerkmal für Grub
CHECKSUM equ -(MAGIC + FLAGS) ; Checksum
section .text
align 4
MultiBootHeader:
dd MAGIC ; Magic number
dd FLAGS ; Flags
dd CHECKSUM ; Checksum
loader:
mov esp,0x200000 ; Stack an die 2MB-Grenze platzieren
push eax ; Multiboot Magicnumber auf den Stack legen
push ebx ; Adresse der Multiboot-Structure auf den Stack legen
call main ; main-Funktion des C-Kernels aufrufen
cli ; falls der Kernel bis hier her kommt, CPU anhalten
hlt
kernel.c
int main() {
// Pointer zum Videospeicher
char *video = (char*)0xB8000;
// String zum Ausgeben
char *hello = "Willkommen";
// Zuerst den Speicher leeren
for(video+=4000; video !=(char*)0xB8000 ;video--)
*video=0;
// String ausgeben
while (*hello) {
*video = *hello;
video++;
*video = 0x07;
video++;
hello++;
}
// jetzt wo wir schon im Kernel drin sind, wollen wir auch nicht mehr raus ;)
while (1);
return 0;
}
Und es leuft ^^
Dan habe ich den Kernel aus dem Tut
http://lowlevel.brainsware.org/wiki/index.php/C-Kernel_startenWenn ich den jedoch erstelle kommt bei mir in GRUB der Fehler das die kein gültiges format wäre.
Kann mir jmd posten wie und wo ich in eine der beiden ASM Files die Magicnumber und das andere da poste muss damit er ihn als Kernel erkennt da ich glaube das es daran liegt und ich gerne mit dem Code aus diesem Tut weiterarbeiten möchte.
Danke für die Antworten im voraus.
PS: Ich glaube auch das sich mingw gut als cross compiler eignet das ich ihn ja für c und c++ verwende aber ich weiss net wie man den umbaut da ich soetwas noch nie gemacht habe und google mir nur halbe sache auspuckt wo alles veraltet oder nur zum teil erklärt ist.
MfG Arktus