linux boot分区有什么用,/ boot分区的真正作用是什么?
射門(mén)很難
引導(dǎo)...好吧...這確實(shí)是最難的部分。每次啟動(dòng)計(jì)算機(jī)時(shí),它基本上都會(huì)重新適應(yīng)。它熟悉其各個(gè)部分,并且滿足每個(gè)部分都具有功能。但可以說(shuō),它每次都要從自己的引導(dǎo)程序中拉起自己。
在設(shè)計(jì)啟動(dòng)過(guò)程時(shí),技巧是逐步啟動(dòng)計(jì)算機(jī)。您的啟動(dòng)必須快速且可靠,并且每次都必須處于完全未知的環(huán)境中。我什至不會(huì)冒險(xiǎn)進(jìn)行實(shí)模式/保護(hù)模式的對(duì)話(這并不是說(shuō)我什至可以),但是啟動(dòng)時(shí)還有很多事情要做。每次計(jì)算機(jī)將其各種組件同化時(shí),它就會(huì)分步進(jìn)行。其中最關(guān)鍵的一點(diǎn)可能是從執(zhí)行板載代碼到執(zhí)行磁盤(pán)上代碼,換句話說(shuō),就是內(nèi)核exec。這是固件(表面上)投降到操作系統(tǒng)的時(shí)間。
很多年前情況并非如此。它曾經(jīng)是BIOS,實(shí)際上是Basic In / Out(基本輸入/輸出)-常規(guī)程序會(huì)調(diào)用固件來(lái)進(jìn)行諸如繪制屏幕和訪問(wèn)磁盤(pán)之類(lèi)的操作。這些被稱(chēng)為中斷 -舊帽子可能會(huì)為他們?yōu)樾碌狞c(diǎn)矩陣或USR分配IRQ時(shí)經(jīng)常發(fā)現(xiàn)的快感而記住得最好。
INT13H
BIOS作為磁盤(pán)訪問(wèn)服務(wù)提供的是中斷(或稱(chēng)為INT匯編語(yǔ)言)13H系列功能。今天,它們甚至在引導(dǎo)過(guò)程中仍用于BIOS系統(tǒng),以實(shí)現(xiàn)從固件到磁盤(pán)的跳轉(zhuǎn)。
BIOS系統(tǒng)將檢查找到的每個(gè)磁盤(pán)的前幾個(gè)字節(jié),并尋找它識(shí)別為主引導(dǎo)記錄(或MBR)的模式。這是已有數(shù)十年歷史的事實(shí)上的標(biāo)準(zhǔn),包括一些寫(xiě)入磁盤(pán)頭的原始可執(zhí)行二進(jìn)制文件。MBR將BIOS磁盤(pán)標(biāo)記為可引導(dǎo)。當(dāng)找到一個(gè)時(shí),它將停止檢查,因此實(shí)際上,您所獲得的就是沒(méi)有一些狡猾的詭計(jì)。當(dāng)它找到一個(gè)時(shí),它將其映射到內(nèi)存并執(zhí)行它(在實(shí)模式下,但我仍然不去那里)。
執(zhí)行的MBR幾乎絕對(duì)不是您的系統(tǒng)內(nèi)核- 在該部門(mén)中512字節(jié)(給定或獲取)將毫無(wú)用處。這可能是一個(gè)引導(dǎo)加載程序 -一種專(zhuān)門(mén)為克服BIOS許多尋址限制之一而設(shè)計(jì)的程序-特別是它根本不了解任何類(lèi)型的文件系統(tǒng)。
當(dāng)引導(dǎo)加載程序讀入實(shí)際內(nèi)核并在內(nèi)存中執(zhí)行它時(shí)(正如我們所有人每次祈禱的那樣),引導(dǎo)加載程序可能會(huì)通過(guò)INT13H中斷調(diào)用來(lái)詢問(wèn)BIOS 。如果不是這樣,那么許多高級(jí)引導(dǎo)加載程序都將以傳統(tǒng)的方式掛載文件系統(tǒng)并以另一種方式執(zhí)行代碼-那么,如果沒(méi)有一INT13H兩個(gè)引導(dǎo)加載程序的話,這種引導(dǎo)加載程序的可能性就很小。引導(dǎo)加載程序通常必須對(duì)自身(或自身的各個(gè)階段)進(jìn)行鏈加載,因?yàn)槭紫确峙浣o它們的512字節(jié)甚至不適合其需求。
雞肉和雞蛋
我知道,所有這些都是討論磁盤(pán)的一種round回方式,但是到此為止,應(yīng)該已經(jīng)很清楚地認(rèn)識(shí)到,主要問(wèn)題(可能稱(chēng)為“ 雞與蛋”類(lèi)型)正在訪問(wèn)包含程序指令的磁盤(pán)。關(guān)于如何訪問(wèn)磁盤(pán)。解決此問(wèn)題的關(guān)鍵是固件 -甚至在EFI系統(tǒng)上固件也將以截然不同的方式存在-固件是否是引導(dǎo)鏈中最重要的環(huán)節(jié),無(wú)論是否脆弱。
您會(huì)看到,一旦內(nèi)核執(zhí)行完畢,并且啟動(dòng)了用于訪問(wèn)和控制硬件的所有無(wú)數(shù)例程,所有這些問(wèn)題都會(huì)消失(或者至少會(huì)有所改變),因?yàn)楝F(xiàn)代OS可以完全控制系統(tǒng),但是直到它們執(zhí)行該操作為止,系統(tǒng)的限制才擴(kuò)展到固件允許的范圍。這說(shuō)明了很多-自INT13H8086 以來(lái),BIOS并沒(méi)有太大變化。該調(diào)用是8086的原始版本。是的,有(無(wú)數(shù))種擴(kuò)展,當(dāng)然還有hack,但是創(chuàng)新……?
越來(lái)越好
BIOS的大多數(shù)更改充其量只是繃帶。它曾經(jīng)是一個(gè)硬盤(pán),必須進(jìn)行物理映射- 在將數(shù)據(jù)存儲(chǔ)到其中或從中檢索數(shù)據(jù)時(shí),會(huì)參考其幾何結(jié)構(gòu)的各個(gè)方面。最終,常規(guī)硬盤(pán)的大小增長(zhǎng)到了無(wú)法承受的程度。甚至只是抽象映射對(duì)于BIOS 來(lái)說(shuō)也包含太多信息。由于它只能在實(shí)模式下運(yùn)行,因此每個(gè)內(nèi)存寄存器的BIOS限制為1 MB。膨脹柱形圖要大得多,或者使它的任何一個(gè)屬性都比可以解決的位數(shù)大很多,BIOS就會(huì)字面上丟失-越界。
這個(gè)障礙已經(jīng)被克服和打破了很多次。每次地圖以某種更新,聰明,不太準(zhǔn)確的方式進(jìn)行抽象和編碼時(shí)。因此,如今,BIOS實(shí)際上不可能精確地映射驅(qū)動(dòng)器?,F(xiàn)在,邏輯塊尋址已成為事實(shí)上的標(biāo)準(zhǔn),盡管某些圓柱體/頭部/扇區(qū)(或CHS)轉(zhuǎn)換仍然是必需的。主板固件失去了準(zhǔn)確性/責(zé)任感,這些擴(kuò)展已經(jīng)抽象化并添加到磁盤(pán)固件職責(zé)中以填補(bǔ)空白。
您的問(wèn)題中引用的就是這種貓貓游戲。當(dāng)BIOS由于其絕對(duì)大小而無(wú)法理解某個(gè)點(diǎn)之外的磁盤(pán)時(shí),那么您可能希望其在引導(dǎo)時(shí)為您檢索的任何數(shù)據(jù)(如引導(dǎo)加載程序或內(nèi)核)最好不要位于該點(diǎn)之外。這是哪里/boot來(lái)的。
可能實(shí)際上更好
幸運(yùn)的是,這些天來(lái)這些事情與BIOS的淘汰無(wú)關(guān)。它已經(jīng)過(guò)去了30年,但在過(guò)去幾年中已被UEFI (或EFI 2.0)標(biāo)準(zhǔn)大大取代。UEFI 從一開(kāi)始就提供掛載,它在保護(hù)模式下初始化,它結(jié)合了自己的引導(dǎo)加載程序,它提供了可重新啟動(dòng)的持久性閃存變量存儲(chǔ),它可以處理一些zetabyte或每個(gè)磁盤(pán)的內(nèi)容……其他。它遠(yuǎn)非完美,但相對(duì)于其前身而言是一個(gè)巨大的改進(jìn)。
當(dāng)您考慮到所有這些都必須由OS內(nèi)核來(lái)處理時(shí),甚至涉及磁盤(pán)加密或分層文件系統(tǒng)的專(zhuān)用引導(dǎo)程序的參數(shù)也變得平坦,并且如果在引導(dǎo)時(shí)提供了掛載,則您總是很清楚-著手執(zhí)行(特別是考慮到Linux內(nèi)核,在其默認(rèn)配置下,其自身是EFI可執(zhí)行的)。
因此,一個(gè)單獨(dú)的/boot分區(qū)可能不會(huì)引起您的過(guò)多關(guān)注,如果您使用的是EFI系統(tǒng),則無(wú)論如何,您可能已經(jīng)在EFI系統(tǒng)分區(qū)中有了一個(gè)模擬,因?yàn)檫@是引導(dǎo)EFI模式的必要條件。
總結(jié)
以上是生活随笔為你收集整理的linux boot分区有什么用,/ boot分区的真正作用是什么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 徽商银行信用卡怎么还款?还款渠道不同还款
- 下一篇: linux下shell脚本论文,Linu