資源描述:
《Linux內(nèi)核分析二》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、第一章INTEL體系結(jié)構(gòu)概述Intel的32位處理器提供了很多對操作系統(tǒng)的支持,這些支持已經(jīng)集成到了處理器的系統(tǒng)級體系結(jié)構(gòu)中。這些支持能夠?qū)ο率龉ぷ魈峁椭篗emorymanagementProtectionofsoftwaremodulesMultitaskingExceptionandinterrupthandlingMuitiprocessingCachemanagementHardwareresourceandpowermanagementDebuggingandperformaneemonitoring當(dāng)然,只冇系統(tǒng)程序員才用這些系統(tǒng)級體系結(jié)構(gòu)的特性。1.1特權(quán)級Intel
2、系統(tǒng)級體系結(jié)構(gòu)提供了四個特權(quán)級,編號從0到3,其屮0級是最高特權(quán)級,3級是最低特權(quán)級。將特權(quán)級的概念引入系統(tǒng)體系結(jié)構(gòu)是為了實現(xiàn)保護(hù)。所謂386保護(hù)模式既是在此概念基礎(chǔ)上建立起來的。系統(tǒng)中每個段(代碼段、數(shù)據(jù)段、堆棧段等)都有口己的特權(quán)級,系統(tǒng)中每個程序或任務(wù)也都冇自己特權(quán)級。特權(quán)級低的任務(wù)不能調(diào)用特權(quán)級高的任務(wù),也不能存取特權(quán)級高的數(shù)據(jù)段。卜-圖展示了特權(quán)級及具保護(hù)環(huán):圖1.1ProtectionRingsOperatingSyjilwniKernelOperatingSystemServicesApplicationsProtectionRings環(huán)的中心(0級)保留給最高特權(quán)的代碼
3、、數(shù)據(jù)和堆棧,通常由操作系統(tǒng)的內(nèi)核使用;外層環(huán)(3級)川于特權(quán)級要求不高軟件,通常的應(yīng)川程序運(yùn)行在第3級。應(yīng)川程序無法直接訪問0S的代碼和數(shù)據(jù),從而保證了0S的安全。經(jīng)常用的冇下面兒個特權(quán)級:DPL(DescriptorPrivilegeLevel),CPL(CurrentPrivilegeLevel),RPL(RequestorPrivilegeLevel),EPL(EffectivePrivilegeLevel),10PL(1/0PrivilegeLevel)。1.2操作模式Intel體系結(jié)構(gòu)支持三種操作模式和一種準(zhǔn)操作模式:1.保護(hù)模式:這是處理器的一種最白然的操作模式。在這種模
4、式下,處理器的所有指令以及體系結(jié)構(gòu)的所有特色都是可用的,并且能夠達(dá)到最高的性能。2.實模式:這種模式提供了Intel8086的編程環(huán)境,并有一些擴(kuò)展。3.系統(tǒng)管理模式:這是-?種特殊的操作模式,它僅捉供給系統(tǒng)固件使用,應(yīng)用軟件和操作系統(tǒng)都不用該模式。進(jìn)入系統(tǒng)管理模式的唯一途徑是系統(tǒng)管理中斷(SM1)。當(dāng)進(jìn)入該模式時,首先保存處理器的當(dāng)前狀態(tài),然后切換到一個完全分離的操作環(huán)境中,執(zhí)行SMI處理程序代碼,完成諸如:關(guān)掉不再使用的硬盤驅(qū)動器電源、關(guān)掉顯示器、掛起整個系統(tǒng)、執(zhí)行私有代碼等工作。SMT處理程序執(zhí)行完后,再恢復(fù)處理器狀態(tài),切換回保護(hù)模式或?qū)嵞J?。整個處理過程對應(yīng)用程序和操作系統(tǒng)都是
5、透明的,是在一個完全獨(dú)立的壞境屮完成的。4.虛擬8086模式:這是一個準(zhǔn)操作模式,它允許處理器在保護(hù)模式、多任務(wù)環(huán)境下執(zhí)行8086軟件。各模式之間的轉(zhuǎn)換關(guān)系如下:Reset處理器加電或Reset重啟麻,首先進(jìn)入實模式。操作系統(tǒng)初始化部分負(fù)責(zé)從實模式到保護(hù)模式的切換。實模式和保護(hù)模式Z間的切換由控制寄存器CR0的PE位控制;保護(hù)模式和虛擬8086模式Z間的切換由EFLAGS寄存器的VM位控制;通過SMI中斷進(jìn)入系統(tǒng)管理模式,在系統(tǒng)管理模式下執(zhí)行指令RSM再切換回原來的(進(jìn)入系統(tǒng)管理模式前的操作模式)操作模式。以下只討論保護(hù)模式。1.3系統(tǒng)級體系結(jié)構(gòu)INTEL的系統(tǒng)級體系結(jié)構(gòu)山一組寄存器、
6、數(shù)據(jù)結(jié)構(gòu)和專門為支持基本的系統(tǒng)級操作而設(shè)計的指令組成。下圖描述了該體系結(jié)構(gòu)中系統(tǒng)級的寄存器和數(shù)據(jù)結(jié)構(gòu):圖1.3.System-LevelRegistersandDataStructuresEFLAGSRegisterPhysicalAddress?■■■■卻r.LinearAddressCode,DataorStackSegmentControlRegisters
7、Register1SegmentSeLITOSGeg.SeLSegmen^SelectorinterruptVectorInterruptDescriptorTable(IDT)InlOfTuptGotoTaskGateTr
8、apGaterIDTRCall-GateSegmentSelectorSeg.Desc.TSSDeg.Seg.Desc.TSSDesc.LTDDesc.1LocalDescriptorTabla(LDT)Seg?Desc.CallGateGlobalDescriptorTable(GDT)Current--TSSTask-StateSegment(TSS)TaskLData
9、InterruptHandlerTask-StateSegment(T