国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

    文章

    7807

    瀏覽量

    93204
  • 系統引導
    +關注

    關注

    0

    文章

    2

    瀏覽量

    5397

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    操作系統的發展及分類

    手工操作階段(此階段無操作系統)   用戶在計算機上算題的所有工作都要人工干預,如程序的裝入、運行、結果的輸出等。隨著計算機硬件的發展,人機矛盾(速度和資源利用)越來越大,必須尋求新
    發表于 01-15 08:00

    操作系統運行機制

    計算機系統中,通常CPU執行兩種不同性質的程序:一種是操作系統內核程序;另一種是用戶自編程序或系統外層的應用程序。對操作系統而言,這兩種程序的作用不同,前者是后者的管理者,因此“管理程
    發表于 01-15 07:12

    開放原子開源基金會與五岳紀元量子計算操作系統項目完成捐贈簽約

    11月21-22日,在2025年開放原子開發者大會期間,開放原子開源基金會與“五岳紀元”量子計算操作系統項目代表完成捐贈簽約。該項目作為國內首款支持多制式量子計算技術路線的開源
    的頭像 發表于 11-25 17:46 ?1146次閱讀

    龍架構計算機系統能力核心課程教學研討會圓滿舉行

    2025年11月8日,由教育部計算機類專業系統能力課程群虛擬教研室指導、北京航空航天大學計算機學院主辦的龍架構計算機系統能力核心課程教學研討會在京舉行。
    的頭像 發表于 11-14 13:52 ?650次閱讀

    嵌入式實時操作系統的特點

    實時嵌入式操作系統(Real-Time Embedded Operating System)是專門設計用于嵌入式系統的實時操作系統。嵌入式系統是一種特殊的
    發表于 11-13 06:30

    北斗衛星同步時鐘系統:水電新能源計算機監控系統

    北斗衛星同步時鐘系統:水電新能源計算機監控系統
    的頭像 發表于 09-10 15:00 ?673次閱讀
    北斗衛星同步時鐘<b class='flag-5'>系統</b>:水電新能源<b class='flag-5'>計算機</b>監控<b class='flag-5'>系統</b>

    商湯辦公小浣熊與銀河麒麟操作系統V11完成適配

    近日,在2025 中國操作系統產業大會上,商湯科技作為麒麟軟件的生態伙伴受邀參與了“麒心伙伴5.0生態成長計劃”啟動儀式,同時商湯「辦公小浣熊」也完成與銀河麒麟操作系統 V11 的深度
    的頭像 發表于 09-05 15:26 ?796次閱讀

    【作品合集】賽昉科技VisionFive 2單板計算機開發板測評

    、OpenSUSE、OpenKylin、OpenEuler、Deepin等,及在這些操作系統上運行的各類軟件。 活動詳情地址: 【RISC-V專題】VisionFive 2單板計算機免費試用 作品合集: 作者
    發表于 09-04 09:08

    工業計算機與商用計算機的區別有哪些

    工業計算機是一種專為工廠和工業環境設計的計算系統,具有高可靠性和穩定性,能夠應對惡劣環境下的自動化、制造和機器人操作。其特點包括無風扇散熱技術、無電纜連接和防塵防水設計,使其在各種工業
    的頭像 發表于 07-10 16:36 ?752次閱讀
    工業<b class='flag-5'>計算機</b>與商用<b class='flag-5'>計算機</b>的區別有哪些

    最受歡迎的單板計算機 x 最流行的移動操作系統

    歡迎的單板計算機之一。你可能已經擁有一臺了,不是嗎?Android是世界上最流行的操作系統,擁有各種各樣的應用程序可供選擇。這種流行度,再加上樹莓派日益增強的性能,為在樹莓派上
    的頭像 發表于 06-18 17:20 ?762次閱讀
    最受歡迎的單板<b class='flag-5'>計算機</b> x 最流行的移動<b class='flag-5'>操作系統</b>

    進迭時空推出全新1.8寸RISC-V單板計算機MUSE Pi Pro

    、存儲硬盤、通用接口部件和擴展接口布置在僅85*56mm的電路板上,支持UEFI啟動,可流暢運行多種操作系統和應用,成為一款精致且功能完備的計算機系統產品。PiPr
    的頭像 發表于 06-06 16:55 ?1251次閱讀
    進迭時空推出全新1.8寸RISC-V單板<b class='flag-5'>計算機</b>MUSE Pi Pro

    計算機網絡入門指南

    計算機網絡是指將地理位置不同且具有獨立功能的多臺計算機及其外部設備,通過通信線路連接起來,在網絡操作系統、網絡管理軟件及網絡通信協議的管理和協調下,實現資源共享和信息傳遞的計算機系統
    的頭像 發表于 04-22 14:29 ?2254次閱讀
    <b class='flag-5'>計算機</b>網絡入門指南

    如何在計算機上安裝麒麟操作系統Kylin V10 SP3

    麒麟操作系統 Kylin V10 SP3 是一款基于 Linux 的操作系統,廣泛應用于政府、企業和個人用戶。本文將詳細介紹如何在計算機上安裝麒麟操作系統 Kylin V10 SP3,
    的頭像 發表于 04-11 15:32 ?3921次閱讀
    如何在<b class='flag-5'>計算機</b>上安裝麒麟<b class='flag-5'>操作系統</b>Kylin V10 SP3

    2025全國大學生計算機系統能力大賽啟幕,RT-Thread助力高校人才培養

    專業建設和計算機領域創新人才培養體系改革,培育我國高端芯片、關鍵基礎軟件后備人才。RT-Thread睿賽德作為此次操作系統設計賽的支持單位,為內核實現賽道提供了基
    的頭像 發表于 04-10 21:26 ?937次閱讀
    2025全國大學生<b class='flag-5'>計算機系統</b>能力大賽啟幕,RT-Thread助力高校人才培養

    樹莓派替代臺式計算機?樹莓派上七款最佳的輕量級操作系統

    替代臺式計算機。好吧,它可以,但您需要以下專為RaspberryPi設計的輕量級操作系統的幫助。注意:RaspberryPi市場上有許多不同的型號。對于本文,我們將
    的頭像 發表于 03-25 09:43 ?1304次閱讀
    樹莓派替代臺式<b class='flag-5'>計算機</b>?樹莓派上七款最佳的輕量級<b class='flag-5'>操作系統</b>!