1. 程式人生 > >IBM的啟動中為什麼選擇legacy only的原因?

IBM的啟動中為什麼選擇legacy only的原因?

BIOS即Basic Input/Output System,翻成中文是“基本輸入/輸出系統”,是一種所謂的“韌體”,負責在開機時做硬體啟動和檢測等工作,並且擔任作業系統控制硬體時的中介角色。 因為硬體發展迅速,傳統式(Legacy)BIOS 成為進步的包袱,現在已發展出最新的UEFI(Unified Extensible Firmware Interface)可擴充套件韌體介面,相比傳統 BIOS 的來說,未來將是一個“沒有特定 BIOS”的電腦時代。 與legacy BIOS 相比,UEFI最大的幾個區別在於: 1. 編碼99%都是由C語言完成; 2. 一改之前的中斷、硬體埠操作的方法,而採用了Driver/protocol的新方式; 3. 將不支援X86真實模式,而直接採用Flat mode(也就是不能用DOS了,現在有些 EFI 或 UEFI 能用是因為做了相容,但實際上這部分不屬於UEFI的定義了); 4. 輸出也不再是單純的二進位制code,改為Removable Binary Drivers; 5. OS啟動不再是呼叫Int19,而是直接利用protocol/device Path; 6. 對於第三方的開發,前者基本上做不到,除非參與
BIOS
的設計,但是還要受到ROM的大小限制,而後者就便利多了。 7.彌補BIOS對新硬體的支援不足的毛病。

2結構編輯

UEFI使用模組化設計,它在邏輯上可分為硬體控制和OS軟體管理兩部分:作業系統—可擴充套件韌體介面—韌體—硬體。 根據UEFI概念圖的結構,可把uEFI概念劃為兩部分:uEFI的實體 (uEFI Image)跟平臺初始化框架uEFI的實體-uEFI Image (圖中藍框圍起部分) 啟動佇列

啟動佇列

根據uEFI規範定義,uEFI Image包含三種:uEFI Applications, OS Loaders and uEFI Drivers。 uEFI Applications是硬體初始化完,
作業系統
啟動之前的核心應用,比如:啟動管理、BIOS設定、uEFI Shell、診斷程式、排程和供應程式、除錯應用...等等 OS Loaders是特殊的uEFI Application,主要功能是啟動作業系統並退出和關閉uEFI應用。 uEFI Drivers是提供裝置間介面協議,每個裝置獨立執行提供裝置版本號和相應的引數以及裝置間關聯,不再需要基於作業系統的支援。 平臺初始化框架 uEFI框架主要包含兩部分,一是PEI(EFI預初始化),另一部分是驅動執行環境 (DXE)。 PEI主要是用來檢測啟動模式、載入主儲存器初始化模組、檢測和載入驅動執行環境核心。 DXE是裝置初始化的主要環節,它提供了
裝置驅動
和協議介面環境介面。

3優點編輯

糾錯特性

與BIOS顯著不同的是,UEFI是用模組化、C語言風格的引數堆疊傳遞方式、動態連結的形式構建系統,它比BIOS更易於實現,容錯和糾錯特性也更強,從而縮短了系統研發的時間。更加重要的是,它運行於32位或64位模式,突破了傳統16位程式碼的定址能力,達到處理器的最大定址,此舉克服了BIOS程式碼執行緩慢的弊端。

相容性

與BIOS不同的是,UEFI體系的驅動並不是由直接執行在CPU上的程式碼組成的,而是用EFI Byte Code(EFI位元組程式碼)編寫而成的。Java是以“Byte Code”形式存在的,正是這種沒有一步到位的中間性機制,使Java可以在多種平臺上執行。UEFI也借鑑了類似的做法。EFI Byte Code是一組用於UEFI驅動的虛擬機器器指令,必須在UEFI驅動執行環境下被解釋執行,由此保證了充分的向下相容性。 一個帶有UEFI驅動的擴充套件裝置既可以安裝在使用安騰的系統中,也可以安裝在支援UEFI的新PC系統中,它的UEFI驅動不必重新編寫,這樣就無須考慮系統升級後的相容性問題。基於解釋引擎的執行機制,還大大降低了UEFI驅動編寫的複雜門檻,所有的PC部件提供商都可以參與。

滑鼠操作

UEFI內建圖形驅動功能,可以提供一個高解析度的彩色圖形環境,使用者進入後能用滑鼠點選調整配置,一切就像操作Windows系統下的應用軟體一樣簡單。

可擴充套件性

UEFI將使用模組化設計,它在邏輯上分為硬體控制與OS(作業系統)軟體管理兩部分,硬體控制為所有UEFI版本所共有,而OS軟體管理其實是一個可程式設計的開放介面。藉助這個介面,主機板廠商可以實現各種豐富的功能。比如我們熟悉的各種備份及診斷功能可通過UEFI加以實現,主機板或韌體廠商可以將它們作為自身產品的一大賣點。UEFI也提供了強大的聯網功能,其他使用者可以對你的主機進行可靠的遠端故障診斷,而這一切並不需要進入作業系統

圖形介面

目前UEFI主要由這幾部分構成:UEFI初始化模組、UEFI驅動執行環境、UEFI驅動程式、相容性支援模組、UEFI高層應用和GUID磁碟分割槽組成。 UEFI初始化模組和驅動執行環境通常被整合在一個只讀儲存器中,就好比如今的BIOS固化程式一樣。UEFI初始化程式在系統開機的時候最先得到執行,它負責最初的CPU、北橋、南橋及儲存器的初始化工作,當這部分裝置就緒後,緊接著它就載入UEFI驅動執行環境(Driver Execution Environment,簡稱DXE)。當DXE被載入時,系統就可以載入硬體裝置的UEFI驅動程式了。DXE使用了列舉的方式載入各種匯流排裝置驅動,UEFI驅動程式可以放置於系統的任何位置,只要保證它可以按順序被正確列舉。藉助這一點,我們可以把眾多裝置的驅動放置在磁碟的UEFI專用分割槽中,當系統正確載入這個磁碟後,這些驅動就可以被讀取並應用了。在這個特性的作用下,即使新裝置再多,UEFI也可以輕鬆地一一支援,由此克服了傳統BIOS捉襟見肘的情形。UEFI能支援網路裝置並輕鬆聯網,原因就在於此。 值得注意的是,一種突破傳統MBR(主引導記錄磁碟分割槽結構限制的GUID(全域性唯一標誌符)磁碟分割槽系統將在UEFI規範中被引入。MBR結構磁碟只允許存在4個主分割槽,而這種新結構卻不受限制,分割槽型別也改由GUID來表示。在眾多的分割槽型別中,UEFI系統分割槽用來存放驅動和應用程式。很多朋友或許對這一點感到擔心:當UEFI系統分割槽遭到破壞時怎麼辦?而容易受病毒侵擾更是UEFI被人詬病的一大致命缺陷。事實上,系統引導所依賴的UEFI驅動通常不會存放在UEFI系統分割槽中,當該分割槽的驅動程式遭到破壞,我們可以使用簡單方法加以恢復,根本不用擔心。 X86處理器能夠取得成功,與它良好的相容性是分不開的。為了讓不具備UEFI引導功能的作業系統提供類似於傳統BIOS的系統服務,UEFI還特意提供了一個相容性支援模組,這就保證了UEFI在技術上的良好過渡。 系統有EFI驅動檔案

系統有EFI驅動檔案

啟動項2

啟動項2

相關推薦

IBM啟動為什麼選擇legacy only原因

BIOS即Basic Input/Output System,翻成中文是“基本輸入/輸出系統”,是一種所謂的“韌體”,負責在開機時做硬體啟動和檢測等工作,並且擔任作業系統控制硬體時的中介角色。 因為硬體發展迅速,傳統式(Legacy)BIOS 成為進步的包袱,現在已發展出最新的UEFI(Unified Ex

MongoDB--關於數據庫及選擇MongoDB的原因

需求 接口 b- log 選擇 god 查詢 自己的 數據庫 用戶用數據庫提供的接口將數據寫入,數據會以標準的格式存儲起來。 不同數據庫的區別:存放數據的組織不同,同時提供不同種類的查詢,用戶按照自己的需求選擇合適的數據庫。 可以將地理位置存儲在MongoD

CSS選擇器權重計算的例題

css第一題:根據以上代碼,我們來判斷一下P語句中的“文字”到底是什麽顏色?#box1 .spec2 p 這是第一個,根據權重判斷,我們可以看出有一個id選擇器,一個類選擇器,一個標簽選擇器,其權重應該是1,1,1div div #box3 p 這是第二個,我們可以看出有一個id選擇器,沒有類選擇器,3個標簽

我們為什麽在移動端項目選擇jQuery而不是Zepto

otc 選擇器 觸摸 get mage 我們 技術分享 文件大小 bsp 1、文件大小比較 首先從cnd上(http://www.bootcdn.cn/)下載jquery和zepto。 jquery下載的是2.2.4版本壓縮: zepto下載的是是1.20壓縮版本

Dell R730服務器啟動方式選擇

+ - dell 界面 硬盤 boot 可能 setup 找到 一個 新的服務器要裝系統,可能用到的工具光驅,U盤等,包括cobbler裝系統方式會用到PXE啟動,裝完系統之後要恢復從硬盤啟動.1.重啟服務器,按F2進入System Setup;2.進入第一個System

idea添加web.xml配置文件與tomcat啟動遇到的web.xml文件找不到的問題

解決 目的 信息 需要 遇到 技術分享 maven打包 ima clas 1,如何在idea中向war項目中添加web.xml的配置文件 idea通過maven創建war項目時沒有指定是webapp導致創建出來的項目沒有webapp的文件夾。其實war項目中都是在"項目名/

【轉載】Android Bug分析系列:第三方平臺安裝app啟動後,home鍵回到桌面後點擊app啟動時會再次啟動入口類bug的原因剖析

特殊 返回 androidm android系統 圖片 管理 相關 OS 簡便 前言   前些天,測試MM發現了一個比較奇怪的bug。   具體表現是:   1、將app包通過電腦QQ傳送到手機QQ上面,點擊安裝,安裝後選擇打開app (此間的應用邏輯應該是要觸發 【閃屏頁

bash選擇結構、循環結構與break、continue

列表 break 當前 選擇 HR elif ash one ase if兩種選擇結構 if 測試條件; then 程序塊 else 程序塊 fi if 測試條件1; then   程序塊 elif 測試條件2; then 程序塊 ... elif

linux 出現 Read-only file system

linux 中出現 Read-only當linux操作系統啟動出現root用戶也無法進行任何的文件寫操作時,無論什麽用戶(包括root)寫文件保存或者刪除文件,且對操作文件或目錄都有寫權限時,還任然報錯:E212: Can‘t open file for writing 或者 Read-only file s

hadoop啟動缺少datanode

hadoop安裝 csdn hadoop orm 8.4 bin lotus tps AR 原文鏈接地址:https://blog.csdn.net/islotus/article/details/78357857 本人測試有效: 首先刪除hadoop下的dfs文件(註:本

【專家坐堂Q&A】在 petalinux-config 選擇外部來源時,可將符號鏈路添加內核來源目錄樹

路徑 目錄樹 status 變量 不同的 work symlink stat 符號 問題描述 作為 petalinux-config 菜單的一部分,現在可以將 Linux 內核指定為外部來源。 如果選擇了該選項,可為內核來源目錄樹添加兩個符號鏈路。 這會帶來兩個問題: 1.

Oracle啟動,spfile.ora、init<SID>.ora、spfile<SID>.ora 這三個文件正確的先後順序是什麽?

nbsp tar acl 命令 spfile 缺省 start spf 解答 Oracle啟動中,spfile.ora、init<SID>.ora、spfile<SID>.ora 這三個文件正確的先後順序是什麽? 解答:啟動數據庫,使用start

6選擇器的運用

它的 多層 一個 選擇器 有一種 屬性 使用 後代選擇器 class 選擇器的分類和介紹 1.選擇器 :通過標簽的名字去選擇它,進行添加屬性的操作。 2.id選擇器 :通過自己起的id名字來找它,進行添加屬性的操作,使用前加#。 3.cla

Bios啟動模式:Legacy/UEFI

化繁為簡 ios啟動 uefi bios 設定 uefi uefi啟動 並且 bios 硬件 1.1 UEFI Bios啟動模式 UEFI Bios支持兩種啟動模式:Legacy+UEFI啟動模式和UEFI啟動模式,其中Legacy+UEFI啟動模指的是UEFI和傳統BI

如何調整Linux核心啟動的驅動初始化順序-驅動載入優先順序

轉載自:http://zhidao.baidu.com/link?url=adCsiTiI7i3QVYrTx19jkt_FvBV2VlQ4NV18pEu6Kdi4Yhv0ryauD3LHj1pxGE-YP8M_PxZnHNy-hVKBvzJOkPfqehZmR9CQm5GZ5XZDx-O Lin

HGDB 4.1.1 企業版安裝過程選擇不執行指令碼導致報錯的問題

目錄 環境 症狀 問題原因 解決方案 環境 系統平臺:Linux x86-64 Red Hat Enterprise Linux 7 版本:4.1.1 症狀 HGDB 4.1.1 企業版安裝到如下步驟時,選擇不執行指令碼啟動資料庫,即點選cancel:

ionic拍照上傳圖片與從檔案選擇圖片

本文主要使用cordova實現拍照上傳,拍照上傳或從資料夾中選擇上傳圖片 流程:拍照或選擇圖片===>獲取本機路徑==>向伺服器上傳圖片,獲取伺服器上圖片路徑 一、環境準備   安裝 cordova-plugin-camera 外掛     &n

jQuery選擇器之子元素篩選器

關於jQuery中選擇器之子元素篩選器相關用法,做以下程式碼驗證: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transiti

jQuery選擇器綜合使用案例

以下為jQuery中選擇器綜合使用案例: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=u

在審批工作流處理NetSuite拒絕原因的好方法

通常,當在NetSuite中通過工作流開發審批流程時,我們會遇到如何處理拒絕的問題。 1.當被拒絕時,記錄應該被鎖定嗎? 2.審批者如何將拒絕原因通知到使用者? 3.記錄如何返回到審批工作流中? 4.如果被拒絕多次如何處理? 這裡通過建立一個拒絕原因的Suitelet來處理工