<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          UEFI知識及技術(shù)介紹(附下載)

          共 4853字,需瀏覽 10分鐘

           ·

          2021-06-02 14:28



          從我們按下開機(jī)鍵到進(jìn)入操作系統(tǒng),對用戶來說是一個等待的過程,而對計(jì)算機(jī)來說是一個復(fù)雜的過程。在BIOS時代,這個過程重復(fù)了一年又一年,操作系統(tǒng)已經(jīng)從枯燥的文本界面演化到豐富多彩的圖形界面,BIOS 卻一直延續(xù)著枯燥的過程,BIOS 設(shè)置也一直是單調(diào)的藍(lán)底白字格式。BIOS 的堅(jiān)持出于兩個原因; 外因是 BIOS 基本能滿足市場需求,內(nèi)因是 BIOS 的設(shè)計(jì)使得 BIOS的升級 和擴(kuò)增變得非常困難。隨著 64 位CPU逐漸取代 32 位 CPU, BIOS 越來越不能滿足市場的需求,這使得 UEFI作為 BIOS的替代者,逐漸開始取代 BIOS的地位。


          BIOS 的前世今生

          BIOS 誕生于1975 年的CP/M計(jì)算機(jī),誕生之初,也曾是一種先進(jìn)的技術(shù),并且是系統(tǒng)中相當(dāng)重要的一個部分。隨著 IBM PC 兼容機(jī)的流行,BIOS也逐漸發(fā)展起來。它"統(tǒng)治"了計(jì)算機(jī)系統(tǒng) 20多年的時間,在這段時間里,CPU 每 18個月性能提升一倍。計(jì)算機(jī)軟硬件都已經(jīng)繁衍了無數(shù)代,BIOS 誕生之初與之配套的8位 CPU 和DOS 系統(tǒng)都已經(jīng)退出歷史舞臺,而 BIOS 依然頑強(qiáng)地存在于計(jì)算機(jī)中。


          BIOS在計(jì)算機(jī)中的作用

          BIOS 全稱為"基本輸入/ 輸出系統(tǒng)",它是存儲在主板 ROM里的一組程序代碼,這些代碼包括∶


          1)加電自檢程序,用于開機(jī)時對硬件的檢測。

          2)系統(tǒng)初始化代碼,包括硬件設(shè)備的初始化、創(chuàng)建 BIOS 中斷向量等。口基本的外圍I/O 處理的子程序代碼。

          3)CMOS 設(shè)置程序。


          BIOS 程序運(yùn)行在16 位實(shí)模式下,實(shí)模式下最大的尋址范圍是 1MB,0xOC0000~0xOFFFFF保留給 BIOS 使用。開機(jī)后,CPU 跳到 0xOFFFF0處執(zhí)行,一般這里是一條跳轉(zhuǎn)指令,跳到真正的 BIOS入口處執(zhí)行。BIOS代碼首先做的是"加電自檢"(Power On Self Test,POST),主要是檢測關(guān)機(jī)設(shè)備是否正常工作,設(shè)備設(shè)置是否與 CMOS 中的設(shè)置一致。如果發(fā)現(xiàn)硬件錯誤,則通過喇叭報警。


          POST檢測通過后初始化顯示設(shè)備并顯示顯卡信息,接著初始化其他設(shè)備。設(shè)備初始化完畢后開始檢查 CPU 和內(nèi)存并顯示檢測結(jié)果。內(nèi)存檢測通過以后開始檢測標(biāo)準(zhǔn)設(shè)備,例如硬盤、光驅(qū)、串口設(shè)備、并口設(shè)備等。然后檢測即插即用設(shè)備,并為這些設(shè)備分配中斷號、I/O 端口和 DMA 通道等資源。如果硬件配置發(fā)生變化,那么這些變化的配置將更新到CMOS 中。


          隨后,根據(jù)配置的啟動順序從設(shè)備啟動,將啟動設(shè)備主引導(dǎo)記錄的啟動代碼通過 BIOS 中斷讀入內(nèi)存,然后控制權(quán)交到引導(dǎo)程序手中,最終引導(dǎo)進(jìn)入操作系統(tǒng)。


          BIOS缺點(diǎn)分析

          隨著 CPU 及其他硬件設(shè)備的革新,BIOS 逐漸成為計(jì)算機(jī)系統(tǒng)發(fā)展的瓶頸,主要體現(xiàn)在如下幾個方面∶


          1)開發(fā)效率低∶大部分 BIOS 代碼使用匯編開發(fā),開發(fā)效率不言而喻。匯編開發(fā)的另一個缺點(diǎn)是使得代碼與設(shè)備的耦合程度太高,代碼受硬件變化的影響大。

          2)性能差∶ BIOS 基本輸人/輸出服務(wù)需要通過中斷來完成,開銷大,并且 BIOS 沒有提供異步工作模式,大量的時間消耗在等待上。

          3)功能擴(kuò)展性差,升級緩慢∶ BIOS 代碼采用靜態(tài)鏈接,增加硬件功能時,必須將 16位代碼放置在0x0C0000~0xODFFFF 區(qū)間,初始化時將其設(shè)置為約定的中斷處理程序。而且 BIOS 沒有提供動態(tài)加載設(shè)備驅(qū)動的方案。

          4)安全性∶ BIOS 運(yùn)行過程中對可執(zhí)行代碼沒有安全方面的考慮。

          5)不支持從硬盤 2 TB 以上的地址引導(dǎo)∶ 受限于 BIOS 硬盤的尋址方式,BIOS 硬盤采用32 位地址。


          UEFI知識概述

          UEFI(Unified Extensible Fimware Interface,統(tǒng)一可擴(kuò)展固件接口)定義了操作系統(tǒng)和平臺固件之間的接口,它是 UEFT Forum 發(fā)布的一種標(biāo)準(zhǔn)。它只是一種標(biāo)準(zhǔn),沒有提供實(shí)現(xiàn)。其實(shí)現(xiàn)由其他公司或開源組織提供,例如英特爾公司提供的開源 UEFI實(shí)現(xiàn)TianoCore 和 Phoenix 公司的 SecureCore Tiano。UEFI 實(shí)現(xiàn)一般可分為兩部分:


          1)平臺初始化:遵循 Platform Initialization標(biāo)準(zhǔn),由UEFI Forum發(fā)布。

          2)固件:操作系統(tǒng)接口。


          UEFI發(fā)端于 20世紀(jì) 90年代中期的安騰系統(tǒng)。相對于當(dāng)時流行的 32 位 IA32 系統(tǒng),安騰是一種全新的64位系統(tǒng),BIOS 的限制對這種 64 位系統(tǒng)變得不可接受(BIOS 也正是隨著 32 位系統(tǒng)被64 位系統(tǒng)取代而逐漸退出市場的)。因?yàn)?BIOS在 64位系統(tǒng)上的限制,1998年英特爾公司發(fā)起了Intel Boot Initiative 項(xiàng)目,后來更名為 EFI(Extensible Fimware Interface)。


          2003年英特爾公司的安騰 CPU 計(jì)劃遭到 AMD公司的x86 64 CPU 頑強(qiáng)阻擊,x86 64 CPU時代到來,市場更愿意接受漸進(jìn)式的變化,英特爾公司也開始發(fā)布兼容32 位系統(tǒng)的x86_64 CPU。安騰雖然沒有像預(yù)期那樣獨(dú)占市場,EFI卻顯示出了它的價值。2005年,英特爾公司聯(lián)合微軟、AMD、聯(lián)想等 11 家公司成立了Unified EFI Forum,負(fù)責(zé)制定統(tǒng)一的EFI標(biāo)準(zhǔn)。第一個 UEFI標(biāo)準(zhǔn)——UEFI2.0在2006年1月發(fā)布。目前最新的UEFI標(biāo)準(zhǔn)是2013年發(fā)布的 UEFI2.4。


          UEFI系統(tǒng)組成

          UEFI提供給操作系統(tǒng)的接口包括啟動服務(wù)(Boot Services,BS)和運(yùn)行時服務(wù)(Runtime Service,RT)以及隱藏在 BS 之后的豐富的 Protocol。BS 和 RT 以表的形式(C語言中的結(jié)構(gòu)體)存在。UEFI驅(qū)動和服務(wù)以 Protocol 的形式通過 BS提供給操作系統(tǒng)。



          從操作系統(tǒng)加載器(OS Loader)被加載,到OS Loader執(zhí)行ExitBootServices(的這段時間,是從 UEFI環(huán)境向操作系統(tǒng)過渡的過程。在這個過程中,OS Loader 可以通過BS和RT使用UEFI提供的服務(wù),將計(jì)算機(jī)系統(tǒng)資源逐漸轉(zhuǎn)移到自己手中,這個過程稱為 TSL(Transient System Load)。


          當(dāng) OS Loader 完全掌握了計(jì)算機(jī)系統(tǒng)資源時,BS 也就完成了它的使命。OS Loader 調(diào)用 ExitBootServices() 結(jié)束 BS并回收BS占用的資源,之后計(jì)算機(jī)系統(tǒng)進(jìn)人UEFI Runtime 階段。


          在 Runtime 階段只有運(yùn)行時服務(wù)繼續(xù)為 OS 提供服務(wù),BS已經(jīng)從計(jì)算機(jī)系統(tǒng)中銷毀。在TSL 階段,系統(tǒng)資源通過 BS 管理,BS提供的服務(wù)如下。


          1)事件服務(wù)∶ 事件是異步操作的基礎(chǔ)。有了事件的支持,才可以在 UEFI系統(tǒng)內(nèi)執(zhí)行并發(fā)操作。

          2)內(nèi)存管理∶ 主要提供內(nèi)存的分配與釋放服務(wù),管理系統(tǒng)內(nèi)存映射。

          3)Protocol 管理∶提供了安裝 Protocol與卸載 Protocol的服務(wù),以及注冊 Protocol通知函數(shù)(該函數(shù)在 Protocol 安裝時調(diào)用)的服務(wù)。

          4)Protocol 使用類服務(wù)∶ 包括 Protocol 的打開與關(guān)閉,查找支持Protocol的控制器。例如要讀寫某個PCI設(shè)備的寄存器,可以通過 OpenProtocol 服務(wù)打開這個設(shè)備上的 Pcilo Protocol,用 Pcilo->Io.Read()服務(wù)可以讀取這個設(shè)備上的寄存器。

          5)驅(qū)動管理;包括用于將驅(qū)動安裝到控制器的connect 服務(wù),以及將驅(qū)動從控制器上卸載的disconect服務(wù)。例如,啟動時,如果我們需要網(wǎng)絡(luò)支持,則可以通過loadImage將驅(qū)動加載到內(nèi)存,然后通過 connect 服務(wù)將驅(qū)動安裝到設(shè)備。

          6)lmage 管理∶ 此類服務(wù)包括加載、卸載、啟動和退出 UEFI應(yīng)用程序或驅(qū)動。 

          7 )ExitBootServices∶ 用于結(jié)束啟動服務(wù)。 


          RT提供的服務(wù)主要包括如下幾個方面。


          1)時間服務(wù)∶ 讀取/ 設(shè)定系統(tǒng)時間。讀取/設(shè)定系統(tǒng)從睡眠中喚醒的時間。

          2)讀寫 UEFI 系統(tǒng)變量∶讀取/設(shè)置系統(tǒng)變量,例如 BootOrder用于指定啟動項(xiàng)順序。通過這些系統(tǒng)變量可以保存系統(tǒng)配置。

          3)虛擬內(nèi)存服務(wù)∶ 將物理地址轉(zhuǎn)換為虛擬地址。

          4)其他服務(wù)∶ 包括重啟系統(tǒng)的 ResetSystem,獲取系統(tǒng)提供的下一個單調(diào)單增值等。 


          UEFI的優(yōu)點(diǎn)分析

          UEFI 能迅速取代 BIOS,得益于 UEFI 相對 BIOS 的幾大優(yōu)勢。


          (1)UEFI的開發(fā)效率BIOS 開發(fā)一般采用匯編語言,代碼多是硬件相關(guān)的代碼。而在 UEFI中,絕大部分代碼采用C語言編寫,UEFI應(yīng)用程序和驅(qū)動甚至可以使用 C++編寫。UEFI通過固件-操作系統(tǒng)接口(BS 和RT服務(wù))為OS 和OS 加載器屏蔽了底層硬件細(xì)節(jié),使得UEFI上層應(yīng)用可以方便重用。


          (2)UEFI系統(tǒng)的可擴(kuò)展性UEFI 系統(tǒng)的可擴(kuò)展性體現(xiàn)在兩個方面∶ 一是驅(qū)動的模塊化設(shè)計(jì);二是軟硬件升級的兼容性。大部分硬件的初始化通過UEFT驅(qū)動實(shí)現(xiàn)。每個驅(qū)動是一個獨(dú)立的模塊,可以包含在固件中,也可以放在設(shè)備上,運(yùn)行時根據(jù)需要動態(tài)加載。


          UEFI 中每個表、每個 Protocol(包括驅(qū)動)都有版本號,這使得系統(tǒng)的平滑升級變得簡單。


          (3)UEFI系統(tǒng)的性能相比 BIOS,UEFI有了很大的性能提升,從啟動到進(jìn)入操作系統(tǒng)的時間大大縮短。性能的提高源于以下 幾個方面∶


          1)UEFI提供了異步操作。基于事件的異步操作,提高了 CPU利用率,減少了總的等待時間。

          2)UEFI舍棄了中斷這種比較耗時的操作外部設(shè)備的方式,僅僅保留了時鐘中斷。外部設(shè)備的操作采用"事件士異步操作"完成。

          3)可伸縮的遍歷設(shè)備的方式,啟動時可以僅僅遍歷啟動所需的設(shè)備,從而加速系統(tǒng)啟動。


          (4)UEFI系統(tǒng)的安全性UEFI的一個重要突破就是其安全方面的考慮。當(dāng)系統(tǒng)的安全啟動功能被打開后,UEFI在執(zhí)行應(yīng)用程序和驅(qū)動前會先檢測程序和驅(qū)動的證書,僅當(dāng)證書被信任時才會執(zhí)行這個應(yīng)用程序或驅(qū)動。UEFI 應(yīng)用程序和驅(qū)動采用PE/COFF 格式,其簽名放在簽名塊中。


          下載鏈接:UEFI技術(shù)和基礎(chǔ)知識

          《UEFI技術(shù)和基礎(chǔ)知識》

          《UEFI安全啟動技術(shù)手冊》


          服務(wù)器研究框架合集

          1、華為鯤鵬生態(tài)研究框架
          2、服務(wù)器研究框架
          3、國產(chǎn)架構(gòu)服務(wù)器研究框架
          4、服務(wù)器系列報告(計(jì)算篇)CPU平臺


          異構(gòu)芯片研究框架合集
          1、EDA行業(yè)研究框架
          2、半導(dǎo)體大硅片研究框架
          3、封測行業(yè)研究框架
          4、光刻機(jī)行業(yè)研究框架
          4、國產(chǎn)FPGA研究框架
          5、國產(chǎn)基帶芯片研究框架
          6、深度報告:NOR存儲芯片研究框架


          芯片技術(shù)設(shè)計(jì)和應(yīng)用匯總
          《三種使用PCIe IP的節(jié)能技術(shù)》
          《5G如何影響芯片設(shè)計(jì)》 
          《從數(shù)據(jù)中心到邊緣的AI芯片設(shè)計(jì)》 
          《多通道體系結(jié)構(gòu)優(yōu)化LPDDR4性能和功耗》 
          《工業(yè)物聯(lián)網(wǎng)在半導(dǎo)體行業(yè)中的機(jī)遇》 
          《人工智能專用SoC芯片IP需求分析》





          免責(zé)申明:本號聚焦相關(guān)技術(shù)分享,內(nèi)容觀點(diǎn)不代表本號立場,可追溯內(nèi)容均注明來源,發(fā)布文章若存在版權(quán)等問題,請留言聯(lián)系刪除,謝謝。


          電子書<服務(wù)器基礎(chǔ)知識全解(終極版)>更新完畢,知識點(diǎn)深度講解,提供182頁完整版下載。

          獲取方式:點(diǎn)擊“閱讀原文”即可查看PPT可編輯版本和PDF閱讀版本詳情。



          溫馨提示:

          請搜索“AI_Architect”或“掃碼”關(guān)注公眾號實(shí)時掌握深度技術(shù)分享,點(diǎn)擊“閱讀原文”獲取更多原創(chuàng)技術(shù)干貨。


          瀏覽 81
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  99热国产 | 亚洲高清视频免费看 | 精品内射在线无码 | 国产无毛一线天 | 人人看天天摸 |