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

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

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

深入了解Demo與操作系統(tǒng)

jf_78858299 ? 來(lái)源: 酸奶蓋子 硬件底褲 ? 作者: 酸奶蓋子 硬件底 ? 2023-02-01 16:01 ? 次閱讀

序:本文將簡(jiǎn)述實(shí)模式、保護(hù)模式與筆者對(duì)操作系統(tǒng)的形象化了解

一、實(shí)模式與保護(hù)模式

X86 CPU保護(hù)模式是最值得深入研究的問(wèn)題。要搞清楚保護(hù)模式需要先了解實(shí)模式,實(shí)模式與保護(hù)模式有古代王權(quán)更替的味道。

實(shí)模式是8086時(shí)代的產(chǎn)物,8086的寄存器都是16位的,其中AX,BX,CX,DX又可以拆分為高8位,與低8位寄存器使用^[1]^。8086有20條地址線,換而言之8086尋址空間有1MB!

8086采用段加偏移的方式進(jìn)行內(nèi)存訪問(wèn),理論上可以尋遍1MB空間,而其在1MB的空間中沒(méi)有訪問(wèn)限制,不管是內(nèi)核程序還是用戶程序,這就給程序運(yùn)行留下了隱患。

若程序A在0x00000x0051空間儲(chǔ)存運(yùn)行,程序B在0x00800x00ff儲(chǔ)存運(yùn)行,在特定情況下,程序B向0x0031~0x0070寫入數(shù)據(jù),那程序A數(shù)據(jù)便被覆蓋造成程序A執(zhí)行錯(cuò)誤。如果程序A是內(nèi)核的基礎(chǔ)性程序,那代價(jià)將是巨大的。

英特爾注意到了該問(wèn)題的嚴(yán)重性,在后續(xù)的80286便推出了保護(hù)模式。80286有24條地址線,在保護(hù)模式下CPU的段寄存器將不再保存段地址,轉(zhuǎn)而保存段選擇子,真實(shí)的段地址將保存在段寄存器描述符的高速緩存中(24位),當(dāng)80286進(jìn)入保護(hù)模式將獲得16MB尋址空間。

由于引入了段選擇子,段選擇子記錄了內(nèi)存的訪問(wèn)權(quán)限,低權(quán)限程序?qū)⑹ピL問(wèn)高權(quán)限內(nèi)存的資格,增加了系統(tǒng)的安全性與穩(wěn)定性。

80286還是16位處理器,雖然有24根地址線,但由于寄存器還是16位,即使運(yùn)行在保護(hù)模式下段長(zhǎng)度也無(wú)法超過(guò)64KB,加上不久后32位處理器時(shí)代來(lái)臨,16位保護(hù)模式就鮮為人知。

80386是Inter第一款32位產(chǎn)品,其完全兼容了8086處理器,在實(shí)模式下80386將寄存器低16位當(dāng)作8086寄存器使用,在實(shí)模式下80386相當(dāng)于一塊飛快的8086,同時(shí)386提供V86模式,在這種模式下可以模擬成多塊8086。80386尋址空間達(dá)到了4GB,加上保護(hù)模式的應(yīng)用,造就了386的劃時(shí)代意義^[2]^。

二、什么是操作系統(tǒng)

從8086的實(shí)模式到32位386的保護(hù)模式,從段加偏移的尋址方式到根據(jù)段選擇子尋址的過(guò)程,我們會(huì)愈發(fā)覺(jué)得操作系統(tǒng)就像一個(gè)廠長(zhǎng),而處理器如同一個(gè)智商不高的倉(cāng)庫(kù)管理員。

倉(cāng)庫(kù)管理員的日常工作就是出庫(kù)、入庫(kù)、貨物移庫(kù)、按照各種表格管理貨物,處理器的工作也是這樣的。他手下有AX,CX,DX,BX,SP,BP幾大倉(cāng)庫(kù),還有ES,CS,SS,DS,SI,DI工人,加上FS,GS兩個(gè)臨時(shí)工;倉(cāng)庫(kù)門口有一個(gè)大黑板,上面是各種標(biāo)志寄存器的值,管理員手上有張大表格叫GDT(全局描述符表),還有幾個(gè)記事本,叫LDT(局部描述符表),每種記事本只能使用特定的筆寫,GDT的筆GDTR,LDT的筆叫LDTR。

操作系統(tǒng)是廠長(zhǎng),現(xiàn)在有一個(gè)單子:要向屏幕省輸出一行文字。操作系統(tǒng)下令,將AX,BX等幾個(gè)倉(cāng)庫(kù)里面的貨物先挪到空地(棧)上,將一些新貨物(指令、數(shù)據(jù))放進(jìn)去。接著指示貨車將這些貨物運(yùn)到0x3d4,0x3d5市(屏幕省省會(huì))。貨物運(yùn)到后,隨車的管理員下來(lái)將貨物名單一個(gè)接著一個(gè)的讀,同時(shí)工人將讀出名字的貨物搬下來(lái)送給貨主,于是我們就會(huì)看到屏幕出現(xiàn)文字了。整個(gè)過(guò)程處理器只是按操作系統(tǒng)給的指令將貨物調(diào)度,至于這些指令、貨物的意義它是不知道的。加減乘除不過(guò)是貨物的累積與消除,兩件貨物疊加在一起就是加法,多件貨物疊加就是乘法;有些貨物出倉(cāng)就是減法;將貨物按5個(gè)歸堆,堆數(shù)就是商,5個(gè)是除數(shù),貨物總量是被除數(shù),如果有些貨物不足一堆,那就是余數(shù)。所有東西都是自然而然。

有時(shí)候一連來(lái)幾個(gè)單子(任務(wù))那處理器會(huì)拿出GDT和LDT分配每個(gè)單子的先后順序。在保護(hù)模式還引入了頁(yè)管理機(jī)制,其作用就是按照各個(gè)貨車的貨物大小多少給他們分配落貨地點(diǎn)。而大名鼎鼎的中斷機(jī)制不過(guò)是廠區(qū)或者廠區(qū)所在地出現(xiàn)意外操作系統(tǒng)根據(jù)預(yù)案采取處理方法的手段。

聲明:本文內(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)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119205
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10702

    瀏覽量

    209373
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6545

    瀏覽量

    122744
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    帶你深入了解鴻道Intewell操作系統(tǒng)#plc

    操作系統(tǒng)
    jf_71051086
    發(fā)布于 :2024年07月08日 15:56:15

    深入了解示波器

    深入了解示波器
    發(fā)表于 11-14 22:32

    專家開(kāi)講:深入了解電池技術(shù)──Part 3

    資深工程師 Ivan Cowie 的「深入了解電池技術(shù)」專欄Part 3來(lái)啰!這次要介紹的是鉛酸電池(lead-acidbatteries)技術(shù)。鉛酸電池是在1859年由法國(guó)物理學(xué)家Gaston
    發(fā)表于 08-18 09:37

    單片機(jī)的深入了解

    項(xiàng)目名稱:?jiǎn)纹瑱C(jī)的深入了解!項(xiàng)目是否開(kāi)源:否申請(qǐng)開(kāi)發(fā)板數(shù)量:1 塊申請(qǐng)人團(tuán)隊(duì)介紹:我們團(tuán)隊(duì)由五個(gè)人組成,我們打算開(kāi)始著手單片機(jī)的程序改編,設(shè)計(jì)一些比較特殊新穎的東西!希望給以支持!
    發(fā)表于 10-12 20:00

    深入了解LabVIEW FPGA資料分享

    深入了解LabVIEW FPGA
    發(fā)表于 05-27 08:35

    深入了解獨(dú)立式數(shù)據(jù)采集系統(tǒng)CompactDAQ

    深入了解獨(dú)立式數(shù)據(jù)采集系統(tǒng)CompactDAQ
    發(fā)表于 05-11 07:10

    深入了解主動(dòng)電掃描陣列(AESA)雷達(dá)系統(tǒng)

    深入了解主動(dòng)電掃描陣列(AESA)雷達(dá)系統(tǒng)
    發(fā)表于 05-24 06:51

    了解Android操作系統(tǒng)和Chrome操作系統(tǒng)

    了解Android操作系統(tǒng)和Chrome操作系統(tǒng)等嵌入式Linux,華為更新向?qū)H用于更新華為模塊固件的工具。該工具符合華為設(shè)備的接口,禁止應(yīng)用于任何其他制造商的設(shè)備。升級(jí)華為模塊必須遵守以下規(guī)則
    發(fā)表于 11-04 08:37

    示波器的深入了解

    示波器的深入了解 引言自然界運(yùn)行著各種形式的正弦波,比如海浪、地震、聲波、爆破、空氣中傳播的聲音,或者身體運(yùn)轉(zhuǎn)的自然節(jié)律。物理世界里,能
    發(fā)表于 11-04 11:53 ?52次下載
    示波器的<b class='flag-5'>深入了解</b>

    深入了解示波器入門手冊(cè)

    深入了解示波器入門手冊(cè)
    發(fā)表于 03-27 17:43 ?241次下載
    <b class='flag-5'>深入了解</b>示波器入門手冊(cè)

    深入了解電感與磁珠的異同

    模擬電子的相關(guān)知識(shí)學(xué)習(xí)教材資料——深入了解電感與磁珠的異同
    發(fā)表于 09-27 15:19 ?0次下載

    如何深入了解目標(biāo)檢測(cè),掌握模型框架的基本操作?

    目標(biāo)檢測(cè)這一基本任務(wù)仍然是非常具有挑戰(zhàn)性的課題,存在很大的提升潛力和空間。從RCNN到Fast RCNN,再到Faster RCNN,一直都有效率上的提升,那么如何深入了解目標(biāo)檢測(cè),掌握模型框架的基本操作?
    的頭像 發(fā)表于 12-28 11:46 ?1705次閱讀

    帶你深入了解示波器

    帶你深入了解示波器
    發(fā)表于 02-07 14:26 ?18次下載

    深入了解安全光柵

    深入了解安全光柵
    的頭像 發(fā)表于 06-25 13:53 ?1027次閱讀
    <b class='flag-5'>深入了解</b>安全光柵

    深入了解 GaN 技術(shù)

    深入了解 GaN 技術(shù)
    的頭像 發(fā)表于 12-06 17:28 ?5902次閱讀
    <b class='flag-5'>深入了解</b> GaN 技術(shù)