
段映射
如上圖所以 x86處理器有一個GDTR寄存器,存放段描述符表的物理地址 ,在保護模式下,CS DS 等段寄存器的地址會被mmu解釋成指向段描述符表項的索引,段寄存器中高13位用于指向段描述符表中的下表,而TI1位表示該表象在ldtr還是gdtr中,linux內(nèi)核中并未使用ldtr(不嚴(yán)禁的說法),RPL位則表示該段的特權(quán)級別(操作系統(tǒng)的四個環(huán))
內(nèi)核在初始化和加載程序的時候會將cs ds等寄存技賦初值,我們來看下他們的初值 如下表:

段寄存器初始值
根據(jù)段描述符表和段寄存器中的內(nèi)容可以找到相應(yīng)的段描述符,從圖中來看,kernel cs ds分別占用描述符表中第3,第4項,user cs ds占用5,6項
對于段描述符的解釋如下

段描述符項
從圖中可以看到所有的段都是從0開始,長度為4G,所以線性地址和物理地址是重合的,cpu尋址則指落在了ip寄存器的地址上,從而繞過了段映射