chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內(nèi)不再提示

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

Linux閱碼場 ? 來源:openEuler ? 作者:openEuler ? 2021-04-30 16:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

系統(tǒng)引導

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

引導的主要流程:

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

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

BIOS

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

legacy BIOS

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

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

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

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

UEFI

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

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

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

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

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

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

openEuler:創(chuàng)建引導啟動使用的標簽

openEuler 上的 BIOS

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

BIOS 啟動后,會去磁盤上尋找 bootloader 并跳轉(zhuǎn)執(zhí)行 bootloader,此時 BIOS 的主要使命已經(jīng)完成,后續(xù)由 bootloader 拉起內(nèi)核。BIOS 是如何知道 bootloader 在磁盤上的信息的呢,請看下節(jié)。

分區(qū)表

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

MBR 磁盤首個 512 字節(jié)扇區(qū)數(shù)據(jù)時發(fā)現(xiàn)數(shù)據(jù)存在問題,bootloader 位置的數(shù)據(jù)全為 0x00。

GPT 磁盤的 fat 分區(qū)創(chuàng)建失敗,使用 ext4 分區(qū)格式并將 bootloader 錯誤寫入。

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

MBR(Master Boot Record)

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

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

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

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

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

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

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

分區(qū)表數(shù)據(jù)說明:(80)(20 21 00)(83)(aa 28 82)(00 08 00 00)(00 00 20 00)

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

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

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

GUID(Global Unique Identifiers

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

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

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

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

GPT 表頭結(jié)構(gòu):

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

例如:

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

表頭結(jié)構(gòu)說明:

固定簽名:”EFI PART”。

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

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

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

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

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

GPT 分區(qū)表項開始扇區(qū):位置為 0x02。

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

GPT 分區(qū)表表項結(jié)構(gòu):

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

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

如何查看自己計算機的硬盤分區(qū)表

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

GPT 分區(qū)表:

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

MBR(msdos)分區(qū)表:

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

openEuler 上使用的分區(qū)表

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

結(jié)語

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

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

文章出處:【微信公眾號:Linuxer】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責任編輯:haq

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

    關(guān)注

    19

    文章

    7726

    瀏覽量

    92376
  • 系統(tǒng)引導
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    5363

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

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

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

    工業(yè)計算機與商用計算機的區(qū)別有哪些

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

    最受歡迎的單板計算機 x 最流行的移動操作系統(tǒng)

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

    計算機網(wǎng)絡入門指南

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

    如何在計算機上安裝麒麟操作系統(tǒng)Kylin V10 SP3

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

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

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

    【「鴻蒙操作系統(tǒng)設計原理與架構(gòu)」閱讀體驗】01-初始華為鴻蒙

    依靠操作系統(tǒng)進行定義和抽象。同時,人和計算機之間、計算機計算機之間的基本交互邏輯也需要依靠操作系統(tǒng)進行定義和抽象。
    發(fā)表于 01-25 11:05

    云天勵飛DeepEdge10芯片與國產(chǎn)鴻蒙操作系統(tǒng)完成適配

    日前,DeepEdge10芯片已完成國產(chǎn)鴻蒙操作系統(tǒng)的適配。目前已構(gòu)建適配鴻蒙的芯片編譯平臺框架,完成圖形等子系統(tǒng)的適配?;贒eepEdge10的鴻蒙
    的頭像 發(fā)表于 01-24 10:14 ?1544次閱讀

    虛擬內(nèi)存對計算機性能的影響

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

    工業(yè)中使用哪種計算機?

    在工業(yè)環(huán)境中,工控機被廣泛使用。這些計算機的設計可承受極端溫度、灰塵和振動等惡劣條件。它們比標準消費類計算機更耐用、更可靠。工業(yè)計算機可控制機器、監(jiān)控流程實時收集數(shù)據(jù)。其堅固的結(jié)構(gòu)和
    的頭像 發(fā)表于 11-29 14:07 ?926次閱讀
    工業(yè)中使用哪種<b class='flag-5'>計算機</b>?

    量子計算機與普通計算機工作原理的區(qū)別

    超越世界上最強大的超級計算機,完成以前不可想象的任務!這意味著量子計算機可能會徹底改變我們的生活。 在本文中,我們將先了解普通計算機的工作原理,再深入探討量子
    的頭像 發(fā)表于 11-24 11:00 ?2203次閱讀
    量子<b class='flag-5'>計算機</b>與普通<b class='flag-5'>計算機</b>工作原理的區(qū)別

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

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

    ROM對計算機性能的影響

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

    浪潮集團聊城10萬臺計算機項目啟動

    近日,浪潮集團與聊城市人民政府在山東聊城共同舉行了戰(zhàn)略合作協(xié)議簽約儀式,宣布浪潮集團10萬臺計算機項目正式啟動建設。
    的頭像 發(fā)表于 10-31 09:58 ?993次閱讀

    我國首條超導量子計算機制造鏈已啟動升級與擴建

    8臺超導量子計算機整機的組裝需求。   今年1月,中國自主研發(fā)的第三代超導量子計算機“本源悟空”已成功上線,完成了來自全球133個國家和地區(qū)的27萬個量子
    的頭像 發(fā)表于 10-25 17:00 ?1064次閱讀