Hey, ich bin der 2.te Programmierer bei unserem OS...
Hier noch ein paar Zusatz-Infos:
Das ganze OS wird vom Grub geladen, weshalb es schon im PM ist.
Neben dem obigen Code, haben wir noch folgendes in ASM (welches den C-Kernel laedt- das ganze wird mit ld gelinkt):
global loader
extern main
FLAGS equ 0
MAGIC equ 0x1BADB002
CHECKSUM equ -(MAGIC + FLAGS)
section .text
align 4
MultiBootHeader:
dd MAGIC
dd FLAGS
dd CHECKSUM
loader:
mov esp,0x200000
push eax
push ebx
call main
cli
hlt
Mit dem Code im Kenrel
asm("cli\n\t"
"mov eax,cr0\n\t"
"and al,not 1\n\t"
"mov cr0,eax\n\t"
"sti\n\t");
deaktivieren wir das 0-bit (das Protected-Mode-Enable-Bit (PE)) im Register 0 um in den Real Mode zu kommen. Ist das so ausreichend ?