色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡(jiǎn)述操作系統(tǒng)的保護(hù)機(jī)制

jf_78858299 ? 來(lái)源:碼農(nóng)的荒島求生 ? 作者:陸小風(fēng) ? 2023-02-15 14:48 ? 次閱讀

在回答這個(gè)問(wèn)題之前,你可能會(huì)首先想:為什么操作系統(tǒng)需要保護(hù)自己呢?

操作系統(tǒng)其實(shí)就是一個(gè)大管家,負(fù)責(zé)給應(yīng)用程序搭建舞臺(tái),好讓程序們過(guò)好自己的一生,但偏偏有不聽話的程序可能想搶操作系統(tǒng)的戲,顯然這會(huì)影響所有其它正在程序,因此操作系統(tǒng)必須要有能力保護(hù)自己。

我們從歷史的角度了解了x86最開始是沒(méi)有任何保護(hù)機(jī)制的,應(yīng)用程序竟然可以與操作系統(tǒng)平起平坐,操作系統(tǒng)能讀寫的內(nèi)存區(qū)域應(yīng)用程序也一樣可以讀寫,操作系統(tǒng)可以控制的硬件應(yīng)用程序一樣不在話下。

應(yīng)用程序和操作系統(tǒng)這么平等還何談保護(hù)?其實(shí)從某種程度講, 保護(hù)自己就是限制別人 ,那么操作系統(tǒng)該怎樣限制應(yīng)用程序呢?

程序也是分三六九等的

核心就在一點(diǎn): 權(quán)限

這一點(diǎn)相信對(duì)于打工人都深有體會(huì),在公司里有的文檔你無(wú)權(quán)查看,有的數(shù)據(jù)庫(kù)你無(wú)權(quán)讀取,有的門禁你的卡刷不開等等。

這里也是一樣的道理,但是操作系統(tǒng)和普通的應(yīng)用程序都是軟件,從本質(zhì)上講沒(méi)有任何區(qū)別,在CPU眼里都是機(jī)器指令,顯然從軟件這一層面上看操作系統(tǒng)沒(méi)有很好的辦法能控制應(yīng)用程序,這就不得不借助硬件的幫忙了,借助誰(shuí)的幫忙呢?顯然是CPU。

我們剛才提到過(guò),不管是操作系統(tǒng)還是應(yīng)用程序在CPU眼里都是機(jī)器指令,CPU閉著眼執(zhí)行就完事兒,從時(shí)間角度上看CPU就是一條又一條的在執(zhí)行指令:

圖片

然而,CPU也不能對(duì)此一點(diǎn)都不關(guān)心,CPU必須能區(qū)分出哪些指令屬于操作系統(tǒng),哪些指令屬于普通的應(yīng)用程序!

該怎么區(qū)分呢?很簡(jiǎn)單,其中一種方法是這樣的,我們添加一些特殊的機(jī)器指令,假設(shè)是指令A(yù)和B,CPU執(zhí)行到該指令A(yù)時(shí)就知道接下來(lái)要執(zhí)行的指令屬于操作系統(tǒng),當(dāng)執(zhí)行完指令B時(shí)就知道接下來(lái)要執(zhí)行的屬于普通應(yīng)用程序,這兩條指令在x86(32位)中就是int與iret指令,這兩個(gè)指令對(duì)應(yīng)的背后就是所謂的系統(tǒng)調(diào)用。

有了這樣的指令,CPU可以清楚的執(zhí)行什么時(shí)候在執(zhí)行普通程序,什么是在運(yùn)行操作系統(tǒng)(程序),CPU能區(qū)分清楚那么就能給它們賦予不同的權(quán)限, 這就是所謂用戶態(tài)與內(nèi)核態(tài)的由來(lái) ,用戶態(tài)對(duì)應(yīng)的是普通程序,內(nèi)核態(tài)對(duì)應(yīng)的是操作系統(tǒng),它們的權(quán)限是不一樣的。

圖片

x86 CPU支持四種權(quán)限等級(jí),0,1,2,3,一般的操作系統(tǒng)都使用兩種特權(quán)0和3,0是最高權(quán)限,顯然這是操作系統(tǒng)也就是內(nèi)核態(tài)所擁有的權(quán)限,而3是普通程序運(yùn)行的權(quán)限,相對(duì)較低。

同時(shí),一些指令只有在內(nèi)核態(tài)下才可以執(zhí)行,這些就是所謂特權(quán)指令,當(dāng)CPU在用戶態(tài)(普通程序)時(shí)是沒(méi)有辦法執(zhí)行特權(quán)指令的,這樣就從機(jī)器指令這個(gè)層面確保了普通程序不能執(zhí)行某些特權(quán)操作。

圖片

我們知道程序除了機(jī)器指令外還有指令依賴的數(shù)據(jù),而數(shù)據(jù)又是保存在內(nèi)存中,那么接下來(lái)的問(wèn)題是操作系統(tǒng)該怎樣保護(hù)自己的內(nèi)存不會(huì)普通程序讀寫呢?

訪問(wèn)內(nèi)存也需要權(quán)限

答案和我們剛才講解的機(jī)器指令的特權(quán)劃分是一樣的。

我們規(guī)定操作系統(tǒng)所在的內(nèi)存區(qū)域只有CPU處于內(nèi)核態(tài)時(shí)才可以訪問(wèn),如果位于用戶態(tài)的程序試圖訪問(wèn)內(nèi)核所在的地址空間那么將立刻被操作系統(tǒng)kill掉。

那么接下來(lái)的問(wèn)題就是我們?cè)撛鯓咏o一段內(nèi)存添加上權(quán)限信息呢?

顯然我們需要一張“表”,這張表中記錄一段內(nèi)存區(qū)域并且記錄下訪問(wèn)這塊內(nèi)存所需要的權(quán)限信息,類似這樣:

序號(hào)   起始地址   長(zhǎng)度     所需權(quán)限0     0x7c00    0x1000  01     0x9a00    0x2000  3...

當(dāng)CPU試圖訪問(wèn)這段內(nèi)存區(qū)域時(shí)會(huì)根據(jù)CPU自身所在的權(quán)限(內(nèi)核態(tài)或者用戶態(tài))與這段內(nèi)存需要的權(quán)限進(jìn)行比對(duì),只有當(dāng)CPU所在權(quán)限比訪問(wèn)這段內(nèi)存所需要的權(quán)限高或者相等時(shí)才能讀寫這段內(nèi)存,否則將觸發(fā)異常。

假設(shè)CPU當(dāng)前正在執(zhí)行用戶態(tài)程序,也就是運(yùn)行在用戶態(tài),因此其權(quán)限等級(jí)為3,此時(shí)如果CPU試圖訪問(wèn)第0號(hào)內(nèi)存塊時(shí)發(fā)現(xiàn)讀寫該內(nèi)存塊所需要的權(quán)限為0(內(nèi)核態(tài)),這時(shí)CPU本身將產(chǎn)生異常,該異常將被操作系統(tǒng)捕獲,此時(shí)操作系統(tǒng)會(huì)發(fā)現(xiàn)應(yīng)用程序試圖讀寫程序不具備權(quán)限的內(nèi)存,因此操作系統(tǒng)手起刀落將該進(jìn)程kill掉,這樣操作系統(tǒng)就保證了自己的內(nèi)存區(qū)域不會(huì)被普通程序所讀寫。

圖片

就這樣操作系統(tǒng)成功保護(hù)了自己的內(nèi)存數(shù)據(jù)以及機(jī)器指令。

現(xiàn)在是時(shí)候總結(jié)一下了。

為了將操作系統(tǒng)和普通程序區(qū)別開來(lái),我們需要給機(jī)器指令賦予權(quán)限等級(jí),該權(quán)限信息會(huì)保存在CPU中,顯然CPU中需要特定寄存器來(lái)保存該信息,于此同時(shí)我們也為內(nèi)存區(qū)域賦予了權(quán)限等級(jí),只有當(dāng)前CPU的權(quán)限大于或者等于該內(nèi)存區(qū)域所需權(quán)限時(shí)才能讀寫,這就要求有一張“表”來(lái)保存內(nèi)存起始地址、長(zhǎng)度、權(quán)限等信息,這張表就是所謂的Global Descriptor Table,GDT,以及Local Descriptor Table,LDT。

內(nèi)核所在內(nèi)存區(qū)域以及一些共享內(nèi)存區(qū)域信息就保存在GDT中,這就是叫做Global的原因,而進(jìn)程所在的內(nèi)存區(qū)域(私有)信息則保存在LDT中,這就是為什么叫做Local。

具備這些能力的x86 CPU就被稱為保護(hù)模式,Inter處理器從80286開始引入保護(hù)模式,可以看到與x86早前的實(shí)模式相比,保護(hù)模式開始有了質(zhì)的飛躍。

從實(shí)模式到保護(hù)模式

我們?cè)谥暗奈恼轮姓f(shuō)過(guò),x86是一個(gè)有著頑強(qiáng)生命力的物種,其它大部分類型的CPU在計(jì)算機(jī)不長(zhǎng)的歷史中逐漸消失了,而x86則歷久彌新,也因此x86歷史包袱十分沉重,即使是最新款的intel x86處理器也可以運(yùn)行上世紀(jì)編寫的古老程序,為做到向后兼容,intel x86程序必須既能運(yùn)行在實(shí)模式下也能運(yùn)行在保護(hù)模式下。

因此x86處理器在加電會(huì)首先進(jìn)入實(shí)模式然后切換到保護(hù)模式,現(xiàn)代操作系統(tǒng)都運(yùn)行在保護(hù)模式下,正是利用了處理器的一系列特性操作系統(tǒng)才得以保護(hù)自己。

我們看到的x86內(nèi)存管理都是基于段式機(jī)制,Segmentation來(lái)管理內(nèi)存的,實(shí)際上x86處理器在引入保護(hù)模式的同時(shí)也開始支持頁(yè)式內(nèi)存管理(paging),因此現(xiàn)代x86處理器即支持段式內(nèi)存管理也支持頁(yè)式內(nèi)存管理,只不過(guò)對(duì)于現(xiàn)代操作系統(tǒng)像Linux等實(shí)際上幾乎不再使用處理器提供的段式內(nèi)存管理機(jī)制而是基于頁(yè)式內(nèi)存管理機(jī)制。

從這里我們也能看出來(lái),內(nèi)存管理機(jī)制其實(shí)是處理器這種硬件提供的,操作系統(tǒng)(軟件)只不過(guò)這種機(jī)制的使用者而已。

好啦,這篇文章就先到這里,實(shí)際上這里還有很多內(nèi)容沒(méi)有講解完,GDT、LDT長(zhǎng)什么樣子?怎么使用?具體該怎樣從實(shí)模式切換到保護(hù)模式等等,這些內(nèi)容將在后續(xù)章節(jié)中介紹。

希望這篇文章對(duì)大家理解操作系統(tǒng)的保護(hù)機(jī)制有所幫助。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6808

    瀏覽量

    123290
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3785

    瀏覽量

    81006
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    實(shí)時(shí)操作系統(tǒng)和分時(shí)操作系統(tǒng)的區(qū)別

    操作系統(tǒng)能否滿足實(shí)時(shí)性要求來(lái)區(qū)分,可把操作系統(tǒng)分成分時(shí)操作系統(tǒng)和實(shí)時(shí)操作系統(tǒng),分時(shí)操作系統(tǒng)按照相等的時(shí)間片調(diào)度進(jìn)程輪流運(yùn)行,分時(shí)操作系統(tǒng)
    發(fā)表于 11-14 17:39 ?1.3w次閱讀

    μC/OSII操作系統(tǒng)的中斷機(jī)制和中斷應(yīng)滿足的條件是什么

    本文以開源的嵌入式操作系統(tǒng)μC/OSII為例,分析了操作系統(tǒng)的中斷機(jī)制和中斷應(yīng)滿足的條件。介紹了μC/OSII系統(tǒng)時(shí)鐘節(jié)拍,探討了時(shí)鐘中斷函數(shù)中存在的不足,并且給出了解決方案,從而有效
    發(fā)表于 04-27 06:33

    嵌入式技術(shù)簡(jiǎn)述

    1.嵌入式技術(shù)簡(jiǎn)述(1)概念: 在已有的硬件上移植操作系統(tǒng),在操作系統(tǒng)上做層應(yīng)用開發(fā)以及在操作系統(tǒng)之下做底層開發(fā);(2)操作系統(tǒng):管理資源(
    發(fā)表于 10-27 06:49

    STM32CubeProgrammer解除讀保護(hù)的方法簡(jiǎn)述

    操作系統(tǒng),圖形用戶界面或命令行界面,支持多種連接選擇(JTAG、SWD、USB、UART),采用手動(dòng)操作或通過(guò)腳本自動(dòng)操作。很多情況下,我們?yōu)榱顺绦虬踩紩?huì)在燒錄時(shí),使能讀保護(hù)功能,
    發(fā)表于 02-14 06:29

    一文讀懂RT-Thread操作系統(tǒng)的郵箱機(jī)制

    RT-Thread操作系統(tǒng)的郵箱有何作用?RT-Thread操作系統(tǒng)的郵箱機(jī)制管理數(shù)據(jù)結(jié)構(gòu)是怎樣的?
    發(fā)表于 02-28 08:10

    嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks內(nèi)核調(diào)度機(jī)制研究

    嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks內(nèi)核調(diào)度機(jī)制研究
    發(fā)表于 03-29 12:26 ?13次下載

    基于OSEK/DX操作系統(tǒng)的任務(wù)管理機(jī)制設(shè)計(jì)

    基于OSEK/VDX操作系統(tǒng)的任務(wù)管理機(jī)制設(shè)計(jì):在汽車電子仿真控制平臺(tái)開發(fā)領(lǐng)域,通常需要遵循OSEKIVDX規(guī)范集,而該規(guī)范集的核心之一便是OSEK/VDX操作系統(tǒng)規(guī)范。要設(shè)計(jì)一個(gè)符合該規(guī)
    發(fā)表于 04-21 22:02 ?19次下載

    Linux操作系統(tǒng)原理及應(yīng)用

    Linux操作系統(tǒng)原理及應(yīng)用 1.1  操作系統(tǒng)的地位 1.2  操作系統(tǒng)的功能 1.3  操作系統(tǒng)的發(fā)展過(guò)程 1.4 
    發(fā)表于 04-28 14:53 ?0次下載

    linux操作系統(tǒng)的安全性

    linux操作系統(tǒng)的安全性 計(jì)算機(jī)系統(tǒng)安全性的內(nèi)涵 操作系統(tǒng)的安全性功能 操作系統(tǒng)的安全機(jī)制 安全
    發(fā)表于 04-28 15:05 ?0次下載

    Linux操作系統(tǒng)簡(jiǎn)述

    Linux操作系統(tǒng)簡(jiǎn)述一、計(jì)算機(jī)軟件與操作系統(tǒng)  功能強(qiáng)大的計(jì)算機(jī)自從走進(jìn)了人類的生活就發(fā)揮著越來(lái)越重要的作用,隨著時(shí)代的發(fā)展,計(jì)算機(jī)已
    發(fā)表于 01-18 12:43 ?1219次閱讀

    硬盤保護(hù)卡的接口類型 /操作系統(tǒng)

    硬盤保護(hù)卡的接口類型 /操作系統(tǒng)  接口類型     
    發(fā)表于 12-26 15:39 ?691次閱讀

    RTOS操作系統(tǒng)

    RTOS操作系統(tǒng)RTOS操作系統(tǒng)RTOS操作系統(tǒng)RTOS操作系統(tǒng)RTOS操作系統(tǒng)
    發(fā)表于 12-28 15:30 ?0次下載

    基于UEFI固件的操作系統(tǒng)完整性度量機(jī)制

    操作系統(tǒng)是計(jì)算機(jī)硬件和軟件的紐帶,是應(yīng)用軟件運(yùn)行的基礎(chǔ)環(huán)境,而內(nèi)核的安全性是操作系統(tǒng)安全的核心問(wèn)題,若操作系統(tǒng)內(nèi)核受到攻擊,會(huì)對(duì)操作系統(tǒng)以及應(yīng)用程序造成重大的威脅。 UEFI (Uni
    發(fā)表于 11-30 17:27 ?0次下載
    基于UEFI固件的<b class='flag-5'>操作系統(tǒng)</b>完整性度量<b class='flag-5'>機(jī)制</b>

    操作系統(tǒng)內(nèi)核中高效保護(hù)應(yīng)用程序的方法

    在現(xiàn)代操作系統(tǒng)中,內(nèi)核運(yùn)行在最高特權(quán)層,管理底層硬件并向上層應(yīng)用程序提供系統(tǒng)服務(wù),因而安全敏感的應(yīng)用程序很容易受到來(lái)自底層不可信內(nèi)核的攻擊,提出了一種在不可信操作系統(tǒng)內(nèi)核中保護(hù)應(yīng)用程序
    發(fā)表于 01-15 16:45 ?0次下載
    <b class='flag-5'>操作系統(tǒng)</b>內(nèi)核中高效<b class='flag-5'>保護(hù)</b>應(yīng)用程序的方法

    解析操作系統(tǒng)的概念、結(jié)構(gòu)和機(jī)制

    全面。解析操作系統(tǒng)的概念、結(jié)構(gòu)和機(jī)制
    發(fā)表于 03-26 14:19 ?8次下載
    主站蜘蛛池模板: 久久机热免费视频| 2021自产拍在线观看视频| 国产精品99久久久久久WWW| 日本色呦呦| 不卡人妻无码AV中文系列APP| 欧美jizz19性欧美| 99手机在线视频| 美女胸被男子强捏视频| 67194成在线观看免费| 快播萝莉影院| 91精品国产免费入口| 男人天堂2018亚洲男人天堂| 99精品99| 秋霞电影院兔费理论观频84mb| xxxxxl荷兰| 日日碰狠狠躁久久躁77777| 粉嫩国产14xxxxx0000| 少妇高潮久久久久7777| 国产精品AV色欲蜜臀在线| 羞羞影院午夜男女爽爽影院网站| 国产乱妇乱子在线播视频播放网站| 亚洲 欧美 国产 综合 在线| 国内卡一卡二卡三免费网站| 一二三四在线观看韩国| 久久综合色悠悠| 99久久伊人一区二区yy5099| 日本xxxx69动漫| 国产成人无码AV麻豆| 亚洲国产精品免费线观看视频| 精品久久免费观看| 中文字幕在线观看亚洲| 欧美69xxx| 成人1000部免费观看视频| 网址在线观看你懂我意思吧免费的| 国产午夜精AV在线麻豆| 亚洲综合免费视频| 免费99精品国产人妻自在线| 成年女人免费播放影院| 午夜理论片日本中文在线| 精品国产高清自在线看| 97超碰97资源在线观看|