0x01原因
分段的产生原属于安全问题。
一个程序可以自由的访问不属于它的内存位置,甚至可以对那些内容进行修改。这也导致安全问题 促使一种内存隔离的手段 分段的产生。
0x02分段原理
处理器要求在加载程序时,先定义该程序所拥有的段,然后允许使用这些段。定义段时需要基地址,段界限,特权级别,类型等。
在一个程序访问cs,ss,ds,es 这些段时。处理器将会实施检查,防止内存违规访问。
因此有了段描述符来描述这些段的内容和权限
0x03段描述符
认识段描述符先定义全局描述符表GDT,为了跟踪GDT 处理器有一个48位寄存器,也就是gdtr,分别是32位线性地址和16位边界地址
访问地址范围就是0x00000000到0xffffffff 4gb 的映射范围 界限地址 ffff 就是64kb 一个GDT大小是8个字节 所以GDT最最多可以定义8192个描述符
下面就是段描述符格式
下面是低位,上面是高位
12-12 00:10