在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

是什么指引計算機找到了操作系統并完成啟動?

Linux閱碼場 ? 來源:openEuler ? 作者:openEuler ? 2021-04-30 16:07 ? 次閱讀

作為一名優秀的碼農,必須熟練掌握的技能,大家肯定都能列出一大堆出來,多線程,操作系統,分布式等等……不過,在掌握這些晦澀難懂的知識前,碼農們還需要掌握的一個重要的技能,那就是要學會怎么打開計算機。

小伙伴們有沒有考慮過,當你按下電腦的啟動鍵時,是什么在冥冥之中,指引計算機找到了操作系統并完成了啟動?說到這個問題,那就不得不提的是:系統引導。

系統引導

在計算機中,引導是啟動計算機過程中的一個重要階段。計算機從按下開機鍵到系統啟動完成可供用戶操作為止,嚴格的來說分為兩個階段:引導(booting)和啟動(startup)。引導階段開始于按下電源開關,結束于內核初始化完成以及 systemd 進程成功運行。引導作為上電以后的第一個步驟,承擔了系統自檢,加載內核的重要責任。在開機后,計算機的主內存中并沒有任何軟件數據,因此必須由某些程序將軟件加載到內存中才能使計算機繼續工作,這可以通過 CPU 中的硬件、系統固件或者系統中單獨的處理器來執行這些預先預置好的程序,其中服務器上常使用的方式是 BIOS 固件。

引導的主要流程:

027cbe44-a7f8-11eb-9728-12bb97331649.jpg

其中,bootloader 就是啟動加載器,常見的就是 syslinux 以及 grub2。在 openEuler 中只有在使用光盤啟動 legacy BIOS 的情況下使用 syslinux,其他情況下均使用 grub2,這個我們會在下篇博客中著重介紹。

BIOS

BIOS(Basic Input/Output System)是計算機主板上的一塊很小的 ROM/閃存芯片里面的固件程序,用來在引導過程中初始化硬件并為操作系統和程序提供運行時服務。BIOS 固件是系統上電以后 CPU 運行的第一個軟件,用來測試系統硬件組件并從大容量存儲介質中加載 bootloader 程序。

legacy BIOS

傳統的 BIOS 固件一般設計用于某特定計算機或主板型號,稱為 legacy BIOS。不同 CPU 在系統上電時首條 PC(Program Counter)是由 CPU 設計者決定的,所以計算機啟動時使用的 BIOS 程序地址會根據主板兼容的 CPU 來進行不同設置。

例如 i386 的 CPU 首次啟動時從 0Xfffffff0h 地址開始執行指令,這個地址在 X86 體系中一般是由 CPU 芯片組轉發 ROM 得到,其中 ROM 里存儲著 BIOS 的運行代碼。

legacy 在被 CPU 拉起以后,首先執行的指令一般為上電自檢,檢測范圍包括 RAM、顯卡等硬件設備,硬件檢測完成后,BIOS 會將它找到的第一個有效的 MBR 分區表硬盤加載到物理內存地址 0x7C00 處(世界第一臺個人 PC 中內存為 32K,為了給 OS 留下充足的連續內存使用,將 MBR 磁盤中的引導代碼加載到了最后 1K 的內存中,地址即 0x7C00。因為 bootloader 在 OS 啟動后不會再使用,操作系統在使用中可以覆寫這塊 1K 內存以達到使用最大數量的內存的目的)。legacy 中的最后一條代碼指令一般都是跳轉到該地址。隨后 bootloader 程序將執行拉起內核的動作。

隨著時代的發展,legacy BIOS 其自身的不足也逐漸暴露出來,例如尋址能力弱,難以集成第三方代碼,自檢時間長,不支持圖形界面等。

UEFI

為了解決 BIOS 的技術局限性,英特爾開發定義了操作系統與平臺固件之間的一系列軟件接口規范,稱之為可擴展固件接口(EFI)規范,并在 2005 年 7 月貢獻給了 Unified EFI 論壇。即使沒有安裝操作系統,UEFI 也可以支持計算機的遠程診斷和修復。

最新的 UEFI2.8 版本已于 2019 年 3 月發布。

UEFI2.8 規范文檔地址:https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_final.pdf

UEFI 可以自動檢測 bootloader,從而可以輕松的從移動設備(例如 USB 閃存驅動器)來進行引導,這種檢測依賴于 bootloader 的標準化文件路徑,該路徑根據計算機體系結構而有所不同,文件路徑的格式定義為《EFI_SYSTEM_PARTITION》EFIBOOTBOOT《MECHINE_TYPE_SHORT_NAME》.EFI,EFI_SYSTEM_PARTITION 使用 fat 磁盤格式,fat 格式的磁盤文件不區分大小寫,文件名保留創建時候使用的大小寫名稱,例如在 openEuler 操作系統上,BOOTX64.EFI/BOOTAA64.EFI 實際為 shim 生成的掃描程序,會自動掃描所有 EFI 文件夾下含有 BOOTX64.CSV/BOOTAA64.CSV 的文件夾,并根據其內容創建新的啟動項,方便下次啟動時直接從該目錄進行引導啟動。例如:BOOTAA64.CSV 文件的內容:

027cbe44-a7f8-11eb-9728-12bb97331649.jpg

shimaa64.efi:引導啟動使用的二進制程序入口

openEuler:創建引導啟動使用的標簽

openEuler 上的 BIOS

在 openEuler 支持的計算機體系中,X86 支持以 legacy BIOS/UEFI 模式啟動,AArch64 僅支持 UEFI 模式啟動。

BIOS 啟動后,會去磁盤上尋找 bootloader 并跳轉執行 bootloader,此時 BIOS 的主要使命已經完成,后續由 bootloader 拉起內核。BIOS 是如何知道 bootloader 在磁盤上的信息的呢,請看下節。

分區表

有時候我們在引導操作系統時可能會碰到問題,為什么 BIOS 報沒有找到可以用于啟動的介質,明明安裝是成功的呀,這就有可能是 bootloader 沒有被成功的寫入硬盤或者硬盤的分區有問題,導致分區信息無法被正確識別,BIOS 無法認出我們磁盤上的 bootloader,自然會導致磁盤失敗。例如:

MBR 磁盤首個 512 字節扇區數據時發現數據存在問題,bootloader 位置的數據全為 0x00。

GPT 磁盤的 fat 分區創建失敗,使用 ext4 分區格式并將 bootloader 錯誤寫入。

想要定位這些問題,我們首先要對磁盤的分區表有個初步的了解

MBR(Master Boot Record)

MBR 被稱為主引導記錄,也稱為主引導扇區,是計算機開機以后 BIOS 訪問硬盤時所必須要讀取的第一個扇區。其布局為:

02d4ed9e-a7f8-11eb-9728-12bb97331649.jpg

前 446 個字節是引導代碼區,存放著系統的啟動引導代碼。常見為 stage1(legacy)或者 boot.img(GRUB2)。

在引導代碼之后,保存著 64 個字節的分區表記錄,每條分區表記錄為 16 字節,所以 MBR 分區表最大支持 4 個主磁盤分區或者 3 個主磁盤分區以及一個擴展磁盤分區(Extended boot record, EBR)。

在過去的 512B 扇區磁盤中,MBR 使用邏輯塊地址(Logical block addressing,LBA)來進行地址尋址,邏輯塊地址使用 32 位存儲邏輯地址,32 位尋址模式最大可處理扇區為 2^32,每個扇區為 512 字節,即 2^9,所以可尋址的最大字節數為 2^41,即 2Tib。后來的 4K 盤能支持 MBR 尋址擴展到 4K*2^32 共 2^44,即 16TiB,但是由于向前兼容性的問題,大部分廠商仍對 MBR 分區表使用模擬 512 字節扇區的模式。

當從 MBR 分區表開始啟動的時候,BIOS 首先需要從啟動介質中加載首個 MBR 512 字節扇區,當首個扇區的數據存在問題時,BIOS 會嘗試從其他啟動項進行啟動。如果所有的啟動項都無法成功,則系統啟動失敗。MBR 首個 512 字節扇區的格式如下:

02e57876-a7f8-11eb-9728-12bb97331649.jpg

分區表數據說明:(80)(20 21 00)(83)(aa 28 82)(00 08 00 00)(00 00 20 00)

(80):0x80 代表是激活分區,可以用來引導,0x00 代表未激活分區,不能用來引導

(00 08 00 00):分區開始扇面,圖中 CPU 為小端序,故該值為 0x800=2048,所以該分區開始于 2048 扇面

(00 00 20 00):分區總共扇面數,因 CPU 是小端序,故該值為 0x200000=2097152,該扇區的容量為 2097152*512KiB/1024/1024/1024=1GiB

GUID(Global Unique Identifiers

GUID 是一個實體磁盤的分區表的結構布局的標準。它是 UEFI 標準中的一部分,設計之初即為了解決 MBR 分區表中使用 32 位來存儲邏輯塊地址、大小信息的缺點。

GPT(GUID Partition Table)使用 64 位作為邏輯塊地址,最大支持 2^64 個扇區,對于 512B 磁盤來說,最大的大小為 2^64*512B=2^73,即 8ZiB,對于 4K 盤來說,最大支持的數據為 2^64*4K=2^76=64ZiB。

使用 GPT 作為啟動盤符時,bootloader 必須放置于 vfat 文件格式上,UEFI 啟動時,只能讀取 fat 分區格式的磁盤分區,(fat 格式本身屬于 UEFI 規范中),其他磁盤格式均不能用作 UEFI 啟動分區格式。

使用 MBR/GPT 混合分區表的硬盤中,原本 MBR 位置存儲了 GPT 分區表的一部分分區(通常為前四個分區),可以使不支持從 GPT 啟動的操作系統從這個 MBR 啟動,啟動后只能操作 MBR 分區表中的分區。GUID 分區表從第二個 512 字節扇區開始,稱為 GPT 表頭,從 GPT 表頭后,會攜帶數個 GPT 表分區,理論上 GPT 的表分區個數是無限的。

GPT 表頭結構:

038d5a3c-a7f8-11eb-9728-12bb97331649.jpg

例如:

06ab4404-a7f8-11eb-9728-12bb97331649.jpg

表頭結構說明:

固定簽名:”EFI PART”。

表頭大小:0x5C,即 92 字節,對應結束位置為上圖的 00000250 行右起第 4 個位置。

分區表的扇區位置:小端序,位置為扇區 0x01,即 01 扇區。

備份分區表的扇區位置:小端序,位置為 0x0C 7F FF FF 扇區,即第 209715199 扇區(磁盤的最后一個扇區,磁盤總大小為(209715199 + 1)*0.5KiB/1024/1024=100GiB)。

第一個可用的扇區位置:小端序,位置為 0x22 扇區,所以分區表項分區共有個 0x22-0x01=0x21 個扇區,去掉 GPT 表頭扇區,所以共 32 個分區表表項扇區。

最后一個可用的扇區位置:小端序,位置為 0x0C 7F FF DE,即第 209715166 扇區,到磁盤的最后一個扇區相差 33 個扇區,其中包括 32 個 GPT 備份分區表項和 1 個 GPT 備份分區頭。

GPT 分區表項開始扇區:位置為 0x02。

GPT 分區表項的個數:個數為 0x80,即 128 個。GUID 分區表表項中每條分區表最小為 128 字節,因 GUID 表頭中記錄的 GPT 分區一般為 128,故需要 128*128 字節/512Kib=32 個扇區。

GPT 分區表表項結構:

06b64ab6-a7f8-11eb-9728-12bb97331649.jpg

06cd3154-a7f8-11eb-9728-12bb97331649.jpg

如何查看自己計算機的硬盤分區表

使用命令 parted /dev/磁盤名稱后輸入 p 即可看到自己磁盤使用的分區表類型:

GPT 分區表:

0702195a-a7f8-11eb-9728-12bb97331649.jpg

MBR(msdos)分區表:

07163ed0-a7f8-11eb-9728-12bb97331649.jpg

openEuler 上使用的分區表

openEuler 一般使用 legacy BIOS + MBR、UEFI+GPT 的分區組合,所以在 x86 上如果使用的 legacy BIOS 模式,那么分區表一般是 MBR,在 x86/aarch64 的 UEFI 下,分區表一般為 GPT,大家可以自行嘗試看下安裝的結果哈。

結語

因為篇幅限制,引導啟動目前只能先介紹到這里,下一期會帶大家一起了解 BIOS 拉起 bootloader(grub)以及 bootloader 啟動內核的相關過程,希望大家可以關注我們的文章。

原文標題:openEuler 安裝系列詳解01 | 引導與分區表簡介

文章出處:【微信公眾號:Linuxer】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計算機
    +關注

    關注

    19

    文章

    7520

    瀏覽量

    88223
  • 系統引導
    +關注

    關注

    0

    文章

    2

    瀏覽量

    5290

原文標題:openEuler 安裝系列詳解01 | 引導與分區表簡介

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    虛擬內存對計算機性能的影響

    ,它允許計算機使用硬盤空間來模擬物理內存。當物理內存(RAM)不足以容納當前所有活動的程序和數據時,操作系統會將部分數據從RAM移動到硬盤上的一個特殊區域,稱為交換空間(swap space)或頁面文件(page file)。這個過程稱為“
    的頭像 發表于 12-04 09:17 ?887次閱讀

    已安裝ADS1x92xEVM-SW-installer程序但計算機設備管理器提示無法找到設備驅動,為什么?

    1.操作系統為WINDOW7 64bit, 2.已安裝VC ++2008和官網提供的安裝程序 3.可以使用固件更新程序找到設備更新.txt后綴的固件成功更新固件 4.使用USB接口從計算機
    發表于 11-21 06:11

    ROM對計算機性能的影響

    是一種非易失性存儲器,即使在斷電的情況下也能保持數據不丟失。它通常用于存儲固件,這些固件是計算機啟動和運行操作系統所必需的。ROM的內容在制造過程中被寫入,并且通常不能被用戶更改。 ROM的類型 PROM(可編程ROM) :用戶
    的頭像 發表于 11-04 10:31 ?407次閱讀

    新手學操作系統(第一周)

    1.介紹計算機、OS與應用程序之間的關系,計算機的硬件是底層的基礎,操作系統在其之上管理硬件資源,應用程序則通過操作系統來實現其功能;2.推薦參考學習書籍;3.實踐環境的介紹
    的頭像 發表于 10-08 11:33 ?264次閱讀
    新手學<b class='flag-5'>操作系統</b>(第一周)

    計算機存儲系統的構成

    計算機存儲系統計算機中用于存放程序和數據的設備或部件的集合,它構成了計算機信息處理的基礎。一個完整的計算機存儲
    的頭像 發表于 09-26 15:25 ?1126次閱讀

    工控機支持什么操作系統

    工控機,全稱工業控制計算機(Industrial Personal Computer, IPC),支持多種操作系統以滿足不同行業和應用場景的需求。具體來說,工控機常見的操作系統包括:
    的頭像 發表于 09-11 09:24 ?502次閱讀

    Windows操作系統是什么?它有哪些特點?

    Windows操作系統是由美國微軟公司(Microsoft Corporation)開發和推出的一種計算機操作系統。自1985年Windows 1.0版本發布以來,Windows系統
    的頭像 發表于 08-07 16:30 ?2855次閱讀

    計算機系統的組成和功能

    計算機系統是一個復雜而龐大的概念,它涵蓋了計算機硬件、軟件以及它們之間相互作用的所有元素。為了全面而深入地探討計算機系統,本文將從定義、組成、功能、發展歷程以及未來趨勢等方面進行詳細闡述。
    的頭像 發表于 07-24 17:41 ?1076次閱讀

    本源超導量子計算機自主制造鏈11類產品系列之八:中國第一款量子計算機操作系統

    使用。中國第一款量子計算機操作系統操作系統是管理計算機軟硬件的“大管家”,也是決定其性能的關鍵技術領域。如果把量子芯片比喻成人的心臟,量子計算機
    的頭像 發表于 05-28 08:22 ?422次閱讀
    本源超導量子<b class='flag-5'>計算機</b>自主制造鏈11類產品系列之八:中國第一款量子<b class='flag-5'>計算機</b><b class='flag-5'>操作系統</b>

    這些操作系統是否適用于機載系統計算機

    操作系統主要功能是管理計算機上的軟件(如應用程序、驅動程序)和硬件(如處理器、存儲器等),為用戶提供服務。
    的頭像 發表于 04-12 09:25 ?556次閱讀
    這些<b class='flag-5'>操作系統</b>是否適用于機載<b class='flag-5'>系統計算機</b>?

    探討Linux操作系統啟動流程

    這個部分比較有意思。因為在BIOS階段,計算機的行為基本上被寫死了,程序員可以做的事情并不多;但是,一旦進入操作系統,程序員幾乎可以定制所有方面。所以,這個部分與程序員的關系更密切。
    發表于 04-09 09:29 ?599次閱讀
    探討Linux<b class='flag-5'>操作系統</b>的<b class='flag-5'>啟動</b>流程

    計算機為什么利用反碼來實現減法?

    元器件的限制。當時,計算機的電路設計主要采用位操作(二進制)來實現。為了能夠有效地表示負數,人們引入了反碼的概念。使用反碼可以使計算機系統在進行加法和減法運算時使用相同的邏輯電路,從而降低了硬件成本和復雜度。 2.
    的頭像 發表于 02-19 15:10 ?910次閱讀

    中國第一款量子計算機操作系統獲官方“三新”認定

    操作系統"本源司南"成功入選。"本源司南"是中國首個量子計算操作系統,該系統在國內首次支持量子計算任務批處理,能夠支持量超協同
    的頭像 發表于 02-19 12:50 ?310次閱讀
    中國第一款量子<b class='flag-5'>計算機</b><b class='flag-5'>操作系統</b>獲官方“三新”認定

    計算機系統如何應對大模型時代的挑戰與機遇

    操作系統管理著計算機的資源和進程,以及所有的硬件和軟件。計算機操作系統讓用戶在不需要了解計算機語言的情況下與
    發表于 01-23 11:06 ?572次閱讀
    <b class='flag-5'>計算機系統</b>如何應對大模型時代的挑戰與機遇

    深度解析全球操作系統格局

    操作系統是負責協調、管理和控制計算機硬件與軟件資源的程序,是整個計算機的核心系統軟件。 按照操作系統面向的設備類型,通用
    的頭像 發表于 01-18 15:00 ?1244次閱讀
    深度解析全球<b class='flag-5'>操作系統</b>格局
    主站蜘蛛池模板: 波多野结衣第一页| 韩国三级hd中文字幕| 国产精品午夜免费观看网站| 国产精品伦理一区二区三区| 日本理论在线| 一级一级特黄女人精品毛片| 自拍偷拍福利视频| 欧美艹逼视频| 色偷偷综合网| 亚洲影视大全| 朋友夫妇和交换性bd高清| 成人午夜影院在线观看| 超级碰碰青草免费视频92| 欧美区在线| 国产紧缚jvid| 天天看天天做| 新版天堂资源中文8在线| 国产一二精品| 久久亚洲国产精品五月天| 日韩乱轮| 色女人久久| 色视频在线观看在线播放| 欧美污视频网站| 拍拍拍拍拍拍拍无挡大全免费 | 夜夜草天天干| 又粗又硬又猛又黄的免费视频黑人| 精品香港经典三级在线看| 欧美18videosex性欧美69| 日韩毛片视频| 国产在线播放你懂的| 亚洲精品久久久久午夜| 精品看片| zzji国产精品视频| 性感美女逼| 久久99热不卡精品免费观看| 亚洲高清视频一区| 一区二区中文字幕在线观看| 一区二区三区中文国产亚洲| 一级特级女人18毛片免费视频| 三级理论在线观看| 欧美mv日韩mv国产mv网站|