很早就看内核,可是始终看不进去,就是有了这个拦路虎!
保护模式
作什么用那?
保护模式是80386的cpu以后才有的,为了兼容以前的80286 8086 cpu的实模式。
实模式只有20位的地址线,最大寻址的内存就是1M,80386具有了32位的地址线,配合保护模式里的段保护机制,可以寻址62TB,但保护模式具体是怎么实现的那?
首先要说386以后的cpu有32位的地址线,为了兼容以前的cpu,多了几个空际寄存器,cr0-cr4,cr0具有开启保护模式的PE位,只有PE=1的时候,才可以打开保护模式,但cr0不能直接操作,只有通过通用寄存器才可以对其操作。保护模式还可以保护进程的安全,为了实现就有了段保护机制,也就是GDT,LDT,IDT,及描述符的概念。(这就得请各位看官参看一些资料了)
CPU中有一个高速的寄存器用来保存GDT表在内存中的位置以及GDT表的大小:GDT的大小用16位来表示,GDT的物理地址用32位来表示(以保证GDT能在4G内存的任意位置),因此GDT高速寄存器(GDTR)占48位,已经不能用一个32位的寄存器来表示了,因此要在内存中表示出GDTR内容,书上说这叫“伪描述符”,GDTR由下面的指令装载:
lgdt [__GDTR]
未完持续......
阅读(1171) | 评论(0) | 转发(0) |