”實(shí)模式“和”保護(hù)模式“的概念
”實(shí)模式“和”保護(hù)模式“的概念:
x86體系的處理器剛開始時(shí)只有20根地址線,尋址寄存器是16位。可以訪問64K的地址空間,如果程序要想訪問大于64K的內(nèi)存,就需要把內(nèi)存分段,每段64K,用段地址+偏移量的方式來訪問,這樣使20根地址線全用上,最大的尋址空間就可以到1M字節(jié),這在當(dāng)時(shí)已經(jīng)是非常大的內(nèi)存空間了。
實(shí)模式將整個(gè)物理內(nèi)存看成分段的區(qū)域,程序代碼和數(shù)據(jù)位于不同區(qū)域,系統(tǒng)程序和用戶程序并沒有區(qū)別對待,而且每一個(gè)指針都是指向?qū)嶋H的物理地址。這樣一來,用戶程序的一個(gè)指針如果指向了系統(tǒng)程序區(qū)域或其他用戶程序區(qū)域,并修改了內(nèi)容,那么對于這個(gè)被修改的系統(tǒng)程序或用戶程序,其后果就很可能是災(zāi)難性的。再者,隨著軟件的發(fā)展,1M的尋址空間已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足實(shí)際的需求了。最后,對處理器多任務(wù)支持需求也日益緊迫,所有這些都促使新技術(shù)的出現(xiàn)。
為了克服實(shí)模式下的內(nèi)存非法訪問問題,并滿足飛速發(fā)展的內(nèi)存尋址和多任務(wù)需求,處理器廠商開發(fā)出保護(hù)模式。在保護(hù)模式中,除了內(nèi)存尋址空間大大提高;提供了硬件對多任務(wù)的支持;物理內(nèi)存地址也不能直接被程序訪問,程序內(nèi)部的地址(虛擬地址)要由操作系統(tǒng)轉(zhuǎn)化為物理地址去訪問,程序?qū)Υ艘粺o所知。至此,進(jìn)程(程序的運(yùn)行態(tài))有了嚴(yán)格的邊界,任何其他進(jìn)程根本沒有辦法訪問不屬于自己的物理內(nèi)存區(qū)域,甚至在自己的虛擬地址范圍內(nèi)也不是可以任意訪問的,因?yàn)橛幸恍┨摂M區(qū)域已經(jīng)被放進(jìn)一些公共系統(tǒng)運(yùn)行庫。這些區(qū)域也不能隨便修改,若修改就會(huì)有出現(xiàn)linux中的段錯(cuò)誤,或Windows中的非法內(nèi)存訪問對話框。
GDT條目結(jié)構(gòu)如下所示:

引用:https://yunwuxin1.gitbooks.io/linux-/content/guan_yu_201c_shi_mo_shi_201d_he_201c_bao_hu_mo_shi.html


浙公網(wǎng)安備 33010602011771號