Hallo zusammen,
ich habe einen Upper-Half-Kernel und versuche gerade die IDt zu initialisieren.
Ich habe haeufiger gelesen, dass in der IDTR die physischen Adresse der IDT stehen muss. Da hab ich nur das Problem, dass ich bei der Behandlung einer Exception einen PageFault bekomme, der auf die Position der IDT zeigt.
Wenn die IDT an einer virtuellen Adresse liegt, bekomme ich bei einer Exceptionen eine GPF.
Die Exception erzeuge ich mit 1 / 0. Dafuer ist auch ein Handler registiert, der aktiv ist und auf eine virtuelle Adresse zeigt.
Somit muesste die Exception behandelt werden. Kann das Problem auch an der GDT liegen?
Die wird ueber ihre physische Adresse identifiziert.
Die Handler-Adressen in der IDT muessen die virtuellen Adressen enthalten, oder?
Gruss,
Sven
EDIT:
Bochs gibt folgende Fehlermeldung:
bx_dbg_read_linear: physical memory read error (phy=0x00000000c0000dea, lin=0xc0000dea)