进入保护模式
Intel CPU启动的时候是16位(实模式), 但是我们要工作在32位模式下
实模式下没有任何保护措施, 别人可能通过给数据段寄存器赋值上代码段地址, 然后来改变代码段的内容,
保护模式访问内容会检查权限之类的, 也会检查程序访问的内存范围是不是超了, 我们这个操作系统不会利用保护模式所有的特性, 我们只会利用其中一部分
实模式到保护模式, CPU不会自动切换到这样的状态, 我们需要通过一些设置, 最核心的是要给其一个GDT表
第二个:需要改一个寄存器(进入保护模式), 将其置一, 然后需要改一下段寄存器(比实模式复杂多了)这里的设置, 保护模式是放的是GDT表里面的索引, 当CS=8,就会到GDT表==对应的表项里面(这里存疑)==找第8个字节处, 然后有一个内核代码段的描述结构体, 然后这个结构体里面会指定(在线性空间里面)这块空间的起始地址是多少, 整块的大小是多少, 以及你要访问这一块的代码的时候, 一个具备什么样的权限
数据也是通过选择子(索引),
更正图的部分结构
我们后面在代码中会自己定义GDT表,然后将其起始地址给到GDTR中, 让硬件知道表在这里,
如果检查这个结构体发现你权限不够, 或者越界CPU就会进入异常