首页
/
每日頭條
/
生活
/
計算機啟動方式兩種
計算機啟動方式兩種
更新时间:2024-11-10 21:05:24

介紹

操作系統老師說,平時面試學生或者畢業答辯的時候他都會問這個問題,可見這個問題對于計算機專業的學生來說是如此重要。那麼,從打開計算機電源到計算機的屏幕顯示,中間經曆了哪些過程呢?

啟動的英文是boot,來自于一個諺語

pull oneself up by one's bootstraps

通過拉自己的鞋帶把自己拽起

這個很明顯是矛盾的。工程師早期用這句諺語用來比喻早期的計算機開機, 因為計算機啟動需要運行程序,而運行程序又需要計算機啟動。這個是一個很矛盾的過程。直到後來開機程序被刷入ROM芯片後,這個開機的boot

大概過程是這樣的:

  1. Turn on
  2. CPU jump to physical address of BIOS(In Intel it is 0xFFFF0)
  3. BIOS runs POST(Power-On Self Test)
  4. Find bootable devices
  5. Loads boot sector from MBR
  6. BIOS yields control to OS BootLoader
1. BIOS

BIOS介紹:

BIOS(Basic Input/Output System)是基本輸入輸出系統的簡稱。BIOS 能為電腦提供最低級、最直接的硬件控制與支持,是聯系最底層的硬件系統和軟件系統的橋梁。為了在關機後使 BIOS 不會丢失,早期的 BIOS 存儲在 ROM 中,并且其大小不會超過 64KB;而目前的 BIOS 大多有 1MB 到 2MB,所以會被存儲在 閃存(Flash Memory)中。

BIOS 設置程序是被固化到電腦主闆上地 ROM 芯片中的一組程序,其主要功能是為電腦提供最底層的、最直接的硬件設置和控制。 BIOS 通常與 硬件系統集成在一起(在計算機主闆的 ROM 或EEPROM 中),所以也被稱為 固件

計算機啟動方式兩種(計算機啟動過程)1

如何運行

BIOS存放在一個斷電後不會丢失内容的ROM中,這保證了“拽着鞋帶拉起自己”的這種情況不會發生。因為系統一上電或重置,處理器要執行第一條指令的地址會被定位到BIOS存儲器,初始化開始運行。在X86系統中,CPU加電後跳轉至BIOS的固定物理地址0xFFFF0。 打開計算機電源,計算機會首先加載BIOS,包含

CPU相關信息 設備啟動順序信息 硬盤信息 内存信息 時鐘信息 PhP特性 ...

硬件自檢(Power-On Self Test,POST) 如果硬件出現問題,主闆會發出不同含義的蜂鳴 ,啟動中止。如果沒有問題,屏幕就會顯示出CPU 、内存、硬盤等信息。BIOS在執行完硬件自檢和初始化後,會将自己複制到從 0xA0000 開始的物理内存中并繼續執行。

BIOS 代碼包含診斷功能,以保證某些重要硬件組件,像是 鍵盤、磁盤設備、輸出輸入端口等等,可以正常運作且正 确地初始化。

BIOS産生的問題

  1. 開發效率低:大部分BIOS代碼使用彙編開發,開發效率不言而喻。彙編開發的另一個缺點是使得代碼與設備的耦合程度太高,代碼受硬件變化的影響大。
  2. 性能差:BIOS基本輸入/輸出服務需要通過中斷來完成,開銷大,并且BIOS沒有提供異步工作模式,大量的時間消耗在等待上。
  3. 功能擴展性差,升級緩慢:BIOS代碼采用靜态鍊接,增加硬件功能時,必須将16位代碼放置在0x0C0000~0x0DFFFF區間,初始化時将其設置為約定的中斷處理程序。而且BIOS沒有提供動态加載設備驅動的方案。
  4. 安全性:BIOS運行過程中對可執行代碼沒有安全方面的考慮。
  5. 不支持從硬盤2TB以上的地址引導:受限于BIOS硬盤的尋址方式,BIOS硬盤采用32位地址,因而引導扇區的最大邏輯塊地址是232(換算成字節地址,即232×512=2TB)

由于這些問題的存在,UEFI橫空出世


計算機啟動方式兩種(計算機啟動過程)2


UEFI中文名為統一可擴展固件界面(英語:Unified Extensible Firmware Interface,縮寫UEFI)是一種個人電腦系統規格,用來定義操作系統與系統硬件之間的軟件界面,作為BIOS的替代方案。可擴展固件接口負責加電自檢(POST),聯系操作系統以及提供連接作業系統與硬體的介面。

UEFI與BIOS的幾個區别

  1. EFI使用模塊化、C語言風格的參數堆棧傳遞方式以及動态鍊接形式構建的系統,相對于BIOS而言跟容易實現,容錯和糾錯特性更強,減少系統研發的時間。
  2. 運行于32位或64位模式,面對未來增強的處理器模式下,能突破BIOS 16位代碼的尋址能力,達到處理器最大尋址。
  3. UEFI有良好的鼠标操控圖形化界面,在開機速度也比BIOS快不少

BIOS過程


計算機啟動方式兩種(計算機啟動過程)3


UEFI過程

計算機啟動方式兩種(計算機啟動過程)4

相對來說UEFI比BIOS少了一個硬件檢測

即使如此,本章啟動過程還是着重于分析利用BIOS啟動的過程。

2.讀取MBR

MBR-全稱是Master Boot Record(主引導記錄或主開機記錄),是一個512byte的扇區,位于磁盤的固定位置。之所以叫“主引導記錄”,是因為其存在于驅動器開始部分的一個特殊扇區,個扇區包含已安裝的操作系統啟動記載器和驅動器的邏輯分區信息。BIOS完成POST和初始化之後,會根據CMOS中設定的順序選擇引導的設備,這個設備可以是U盤可以是硬盤。若設置為硬盤,則BIOS就會讀取MBR。MBR裡面包含了一段引導程序,一個分區表和Magic Number。

MBR的結構

計算機啟動方式兩種(計算機啟動過程)5

位置作用1-445字節調用操作系統的機器碼(Call OS)447-510字節分區表(Partition table)511-512字節主引導記錄簽名(隻有兩個,0x55和0xAA,為Magic Number),如果不是這兩個幻數,就認為這是一個沒有被分區的硬盤。

分區表的長度隻有64個字節,裡面分為四項,每項為16個字節。所以一個硬盤隻可以分四個一級分區,又叫做“主分區”。每個主分區的16個字節,結構如下

位置(字節)作用1如果第一個為0x80,表示該主分區是激活分區(active),控制權将轉交給此分區。幾個分區中隻能有一個是激活分區,其他都是非激活分區(inactive)。2-4主分區的第一個扇區物理位置(柱面、磁頭、扇區号等)5主分區的類型 分區類型符6-8主分區最後一個扇區的物理位置9-12主分區第一個扇區的邏輯位置13-16主分區的扇區總數,決定了主分區的長度

其中第5字節分區類型符,有如下特定符

00H H —— 表示該分區未用 ( 即沒有指定 ) ;

06H H —— FAT 16 基本分區;

0 0 BH —— FAT 32 基本分區;

05H H —— 擴展分區;

07H H —— NTFS 分區;

0 0 FH —— ( LBA 模式 ) 擴展分區 (83H H 為 Linux)

分出主分區後,其餘的部分可以分成擴展分區,一般是剩下的部分全部分成擴展分區,也可以不全分,剩下的部分就浪費了。擴展分區不能直接使用,必須分成若幹邏輯分區。所有的邏輯分區都是擴展分區的一 部分 。

硬盤的容量 = 主分區的容量 + 擴展分區的容量 擴展分區的容量 = 各個邏輯分區的容量之和

3.啟動Boot Loader


計算機啟動方式兩種(計算機啟動過程)6

​ **Linux的Boot的過程 **

Boot Loader

又叫做 操作系統内核加載器(OS kernel loader),一個在kernel運行前運行的一段小程序,通過這段程序可以初始化硬件設備,建立内存空間的映射,将系統軟硬件環境帶到一個合适的狀态,便于未來調用操作系統内核。

Linux下引導加載程序常見兩種LILO和GNU GRUB

LILOGRUB無交互命令界面有交互命令界面不支持網絡引導支持錯誤配置MBR會讓系統無法引導如果配置文件錯誤,則默認跳轉到GRUB命令行界面

GRUB 磁盤引導的過程如下

- stage1: grub 讀取磁盤第一個 512 字節(硬盤的0道0 面1扇區,被稱為 MBR (主引導記錄), 也稱為bootsect )。 MBR 由一部分 bootloader 的引導代 碼、分區表和魔數三部分組成。( 啟動的第二步 ) - Stage1.5: 識别各種不同的文件系統格式。這使得 grub 識别到文件系統。 - stage2: 加載系統引導菜單 (/boot/grub/ menu.lst或 grub.lst) ) ,加載内核映像 (kernel image) 和 RAM磁盤 initrd (可選)。

運行主引導程序的具體過程

BIOS将硬盤主引導記錄讀入7C00處,并将控制權交給主引導程序:

  1. 檢查0x7dfe地址處是否等于0xaa55。不是則去其他介質;如果沒有啟動的介質,顯示“No ROME BASIC”并死機。
  2. 成功找到介質,跳轉到0X7C00執行MBR的程序
  3. 将自己複制到0x0600處且繼續執行
  4. 主分區表中搜索标志為激活的分區,如果發現沒有激活分區或者不止一個激活分區則停止。
  5. 将激活分區的第一個扇區讀入内存地址0x7c00
  6. 再次檢查位于地址0x7dfe的内容是否等于0xaa55,若不等則停止并嘗試軟盤啟動
  7. 跳轉到0x7c00繼續執行特定系統的啟動程序

補充:MBR和引導扇區的關系


計算機啟動方式兩種(計算機啟動過程)7


  • MBR存放的位置是整個硬盤的第一個扇區
  • Boot Sector是硬盤上每一個分區的第一個扇區
4. 加載kernel

主要有兩個步驟:

  • 根據 grub 設定的内核映像所在路徑 ,系統讀取内存映像 ,并進行解壓縮操 作 。
  • 系統将解壓後的内核放置在内存之中, 初始化函數并初始化各種設備 , 完 成 Linux 核心環境的建立 。

以Linux系統為例,先載入/boot目錄下面的kernel。

内核加載成功後,第一個運行的程序是/sbin/init。它根據配置文件(Debian系統是/etc/initab)産生init進程。這是Linux啟動後的第一個進程,pid進程編号為1,其他進程都是它的後代。

然後,init線程加載系統的各個模塊,比如窗口程序和網絡程序,直至執行/bin/login程序,跳出登錄界面,等待用戶輸入username和password。

至此,全部啟動過程完成。

計算機啟動方式兩種(計算機啟動過程)8

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
如何搞會議簽到二維碼
如何搞會議簽到二維碼
存在的問題無論您是召開日常的公司級會議、學校會議、單位會議;還是大型的發布會、現場會、展會、市場營銷會;亦或者是社團活動、協會活動等等......作為會議主辦方,或者簽到負責人,您肯定遇到過這樣的問題:每次請客戶在紙上簽到,由于每個人書寫的...
2024-11-10
我是餘歡水是什麼小說
我是餘歡水是什麼小說
我是餘歡水是什麼小說?《我是餘歡水》該劇改編自餘耕小說《如果沒有明天》,以诙諧荒誕的方式描寫了社會底層小人物餘歡水的艱難境遇與心路曆程該劇于2020年4月6日在愛奇藝、騰訊視頻播出,接下來我們就來聊聊關于我是餘歡水是什麼小說?以下内容大家不...
2024-11-10
dnf當前版本裝備搭配及流派
dnf當前版本裝備搭配及流派
本文來源:DNF助手,作者:ElliottDNF作為一款經久不衰的橫版格鬥遊戲,不論是pve還是pvp都是需要一定的裝備來打出傷害的。而遊戲中的裝備可達數百件,裝備屬性又是五花八門,其中沖突以及互補的屬性亦是讓新手小夥伴頭痛。為了提升傷害,...
2024-11-10
英語7年級上冊第7單元單詞
英語7年級上冊第7單元單詞
UnitOnePictureVocabulary【緣起】給孩子們上課經常需要準備和搜集很多的資料做很多筆記。我突發奇想,與其躺在硬盤裡面睡覺,不如發布出來惠及有需要的孩子。内容零散且未經修飾。僅供參考。擡杠運動員請繞行。yogamat瑜伽墊...
2024-11-10
羽絨服翻新款式
羽絨服翻新款式
羽絨服要想壽命長久,是需要做好保養的。羽絨服洗完後,我相信很多人都會直接放在陽光下暴曬,其實這樣做是非常不對的,那麼羽絨服到底能不能在太陽下暴曬呢?下面一起了解一下吧。羽絨服可以放在太陽底下暴曬嗎不可以。羽絨服面料屬于錦綸面料,化學纖維的耐...
2024-11-10
Copyright 2023-2024 - www.tftnews.com All Rights Reserved