一、BIOS
1、BIOS是什么
BIOS:基本輸入輸出系統(Basic Input Output System),它是一組固化到計算機內主板上一個ROM(Read-Only Memory)只讀存儲器,不需要供電就可保持數據不丟失芯片上的程序,BIOS保存着計算機最重要的基本輸入輸出的程序、系統設置信息、開機上電自檢程序和系統啟動自檢程序。
2、BIOS的功能及作用
a、POST上電自檢及初始化:執行不同初始化和計算機硬件檢測的函數或例程,開機后BIOS最先被啟動,然后它會對電腦的硬件設備(CPU、640K基本內存(640K BASE MEMORY)、1MB以上擴展內存(EXTEND MEMORY)、ROM(READ-ONLY MEMORY,只讀存儲器)、主板、CMOS存儲器、串口、並口、顯卡、軟盤子系統、硬盤子系統、鍵盤)進行完全徹底的檢驗和測試
b、BIOS 系統操作系統啟動程序:完成 POST 自檢后, ROM BIOS 將按照系統 CMOS 設置中的啟動順序搜尋軟硬盤驅動器及 CDROM 、網絡服務器等有效的啟動驅動器 ,讀入操作系統引導記錄,然后將系統控制權交給引導記錄,由引導記錄完成系統的啟動。
c、BIOS 中斷服務程序:開機時,BIOS會告訴CPU各硬件設備的中斷號,當用戶發出使用某個設備的指令后,CPU就根據中斷號使用相應的硬件完成工作,再根據中斷號跳回原來的工作。
d、程序服務:BIOS直接與計算機的I/O(Input/Output,即輸入/輸出)設備打交道,通過特定的數據端口發出命令,傳送或接收各種外部設備的數據,實現軟件程序對硬件的直接操作
BIOS 系統設置程序: 機器部件的配置情況是存放在一塊可讀寫的 CMOS RAM 芯片中的,它保存着系統 CPU 、軟硬盤驅動器、顯示器、鍵盤等部件的信息。 關機后,系統通過一塊后備電池向 CMOS 供電以保持其中的信息。如果 CMOS 中關於微機的配置信息不正確,會導致系統性能降低、零部件不能識別,並由此引發一系統的軟硬件故障
二、CMOS
1、CMOS是什么
CMOS:(Complementary Metal-Oxide-Semiconductor)主板上的一塊可讀寫的 RAM 芯片, CMOS用來保存計算機基本啟動信息(如日期、時間、啟動設置等)和當前系統的硬件配置和用戶某些參數的設定的芯片,CMOS的特性是可讀寫的,因此在電腦的主板上是用來保存BIOS的設置電腦硬件參數的數據,這個芯片僅僅用來存儲數據,CMOS是靠主板上的紐扣電池供電的,就算主機斷電也能保存數據。CMOS芯片一般被集成在南北橋芯片組里面。
2、CMOS芯片中存儲了哪些數據
CPU的類型、內存的容量與類型、硬盤的類型和基本的參數
3、BIOS和CMOS的區別、聯系
聯系:BIOS中的系統設置程序是完成CMOS參數設置的手段,即通過BIOS設置程序對CMOS參數進行設置。CMOS既是BIOS設置系統參數的存放場所,又是BIOS設置系統參數的結果。
區別: bios保存系統的重要信息和設置系統參數的設置程序(BIOSSetup程序),而cmos是主板上的一塊可讀寫的RAM芯片,里面裝的是關於系統配置的具體參數,其內容可通過設置程序進行讀寫。
三、EC
EC(Embed Controller,嵌入式控制權)又稱開機控制芯片
1、EC是什么?
EC是一個16位單片機,它內部本身也有一定容量的Flash來存儲EC的代碼。由於早期的EC主要管控鍵盤,所以也稱KBC(KeyBoard Controller,鍵盤控制器)。EC在系統中的地位絕不次於南北橋,在系統開啟的過程中,EC控制着絕大多數重要信號的時序。
在筆記本中,EC是一直開着的,無論你是在開機或者是關機狀態,除非你把電池和Adapter完全卸除。 在關機狀態下,EC一直保持運行,並在等待用戶的開機信息。而在開機后,EC更作為鍵盤控制器,充電指示燈以及風扇等設備的控制,它甚至控制着系統的待機、休眠等狀態。
2、EC的作用
在系統關機的時候,只有RTC(實時時鍾)部分和EC部分在運行。RTC部分維持着計算機的時鍾和CMOS設置信息,而EC則在等待用戶按開機鍵。在檢測到用戶按開機鍵后,EC會通知整個系統把電源打開,CPU被RESET后,會去讀BIOS內一個特定地址內的指令(其實是一個跳轉指令,這個地址是由CPU硬件設定的)。在CPU讀到所發出的地址內的指令后,執行它被RESET后的第一個指令。在這個系統中,EC起到了橋接BIOS和南橋(或者說整個系統)的作用。 EC是一個單獨的處理器,在開機前和開機過程中對整個系統起着全局的管理。而BIOS是在等EC把內部的物理環境初始化后才開始運行的。如果說BIOS 是底層系統的話,那EC 似乎更加底層。 在南橋上還有一個功能塊就是電源管理單元(PM,Power Management)。 一般來說,他和EC來共同配合完成。這里包括從開機(power button)鍵按下后,啟動,待機,休眠,關機的全部功能。還包括對背光亮度,聲音等的控制等等。 至於現在Intel的Speed Step技術,也有部分功能是透過南橋來實現的(南橋發送SLP、STPCLK(sleep,Stop Clock)來實現睡眠、深睡眠等)。 (Embedded Controller,嵌入式控制器)在一組特定系統中,新增到固定位置,完成一定任務的控制裝置就稱為嵌入式控制器。
參考網址:https://blog.csdn.net/maomaovv/article/details/1549819
四、計算機開機啟動流程
Stage1:加電開機
按下電源的開關,電源馬上開始向主板和其它的設別開始供電,但此時的電壓還不是很穩定,主板上的控制芯片組會向CPU發出並保持一個reset(重置)信號,讓CPU內部自動恢復到初始狀態下,當芯片組檢測到電源已經開始穩定的供電了(從不穩定到穩定的過程中只需要一瞬間即可),芯片組則開始撤去reset信號,CPU馬上開始從FFFF0H出執行指令,這個地址是在系統的BIOS的地址范圍內,其實放在這里的只是一條跳轉指令,指向BIOS中真正的啟動代碼地方。
Stage2:BIOS啟動,POST自檢(Power-On-self-test)
BIOS啟動后,第一件事情就是執行POST自檢階段,主要針對系統的一些關鍵設備是否存在或者是功能是否正常,如:內存、顯卡等,如果在POST過程中系統設備存在致命的問題,BIOS將會發出聲音來報告檢測過程中出現的錯誤,聲音的長短及次數對應着系統的錯誤類型。POST過程會非常快速,對用戶幾乎感覺不出來。
顯卡初始化:在POST過程中,BIOS會去查找顯卡的BIOS,並且去調用顯卡BIOS的代碼,由顯卡BIOS去初始化顯卡,這個時候顯示器一般會顯示一些初始化的信息,同時系統BIOS也會去查找其它設備的BIOS,分別調用她們的初始化代碼來初始化設備。
BIOS報錯聲音對應鏈接:https://baike.baidu.com/item/BIOS%E6%8A%A5%E8%AD%A6%E5%A3%B0/4231622?fr=aladdin
總之:如果硬件出現問題,主板會發出不同的蜂鳴,啟動中止,如果沒有問題,則顯示器會顯示相關信息。
Stage3:啟動順序
硬件自檢結束后,BIOS這個時候將控制權交給下一階段的啟動程序,但是這個時候BIOS需要知道“下一個階段要啟動的程序具體放在了哪一個設備上”也就是我們平時說的BIOS下的啟動順序,但排在第一位的是優先轉交的設備,這個叫做啟動順序。
啟動順序,我們日常工作中可以開機進入BIOS的去調節啟動設備的優先級。
Stage4:主引導記錄
BIOS按照設定好的啟動順序,將控制權交給排在第一位的存儲設備,即開始從第一位設備中讀取設備的MBR,並且將程序放在0x7c000的內存地址位中。
MBR:存儲設備中的第一個扇區,磁盤最前面的512Byte,稱為“主引導扇區”(Master boot record,縮寫為MBR)
這個時候計算機會去讀取該設備的第一個扇區,也就是讀取最前面的512個字節。如果這512個字節的最后兩個字節是0x55和0xAA,表明這個設備可以用於啟動;如果不是,表明設備不能用於啟動,BIOS會繼續去找下一個設備,並將控制權轉交給”啟動順序”中的下一個設備。
主引導記錄(MBR)的結構組成:
MBR很小,只有512字節,存放程序很小,其主要作用是:告訴計算機在哪一個位置去找操作系統。
主引導記錄由三個部分組成:
1、1-446字節:調用操作系統的程序
2、447-520字節:分區表
3、511-512字節:主引導記錄的簽名(0x55和0xAA)
分區表:
硬盤分區有很多好處。考慮到每個區可以安裝不同的操作系統,”主引導記錄”因此必須知道將控制權轉交給哪個區。
分區表的長度只有64個字節,里面又分成四項,每項16個字節。所以,一個硬盤最多只能分四個一級分區,又叫做”主分區”。
每個主分區的16個字節,由6個部分組成:
(1) 第1個字節:如果為0x80,就表示該主分區是激活分區,控制權要轉交給這個分區。四個主分區里面只能有一個是激活的。
(2) 第2-4個字節:主分區第一個扇區的物理位置(柱面、磁頭、扇區號等等)。
(3) 第5個字節:主分區類型。
(4) 第6-8個字節:主分區最后一個扇區的物理位置。
(5) 第9-12字節:該主分區第一個扇區的邏輯地址。
(6) 第13-16字節:主分區的扇區總數。
注:最后的四個字節(”主分區的扇區總數”),決定了這個主分區的長度。也就是說,一個主分區的扇區總數最多不超過2的32次方。
Stage5:硬盤啟動
這時,計算機要將控制權轉交給硬盤的某個分區,但是分區又會出現幾種情況:
1、卷引導記錄
四個分區中,只有一個是激活的,計算機開始讀取激活的第一個扇區,叫“卷引導記錄"(Volume boot record,縮寫為VBR)
卷引導記錄主要作用:告訴計算機,操作系統在這個分區,可以開始加載操作系統
2、擴展分區和邏輯分區
擴展分區:分區表只有四項,因此規定有且僅有一個區可以被定義成”擴展分區”(Extended partition)。可以在擴展分區中繼續分區
邏輯分區:指在擴展區里面又分成多個區。這種分區里面的分區,就叫做”邏輯分區”(logical partition)
計算機先讀取擴展分區的第一個扇區,叫做”擴展引導記錄”(Extended boot record,縮寫為EBR)。它里面也包含一張64字節的分區表,但是最多只有兩項(也就是兩個邏輯分區)。
計算機接着讀取第二個邏輯分區的第一個扇區,再從里面的分區表中找到第三個邏輯分區的位置,以此類推,直到某個邏輯分區的分區表只包含它自身為止(即只有一個分區項)。因此,擴展分區可以包含無數個邏輯分區。
3、啟動管理器
在這種情況下,計算機讀取”主引導記錄”前面446字節的機器碼之后,不再把控制權轉交給某一個分區,而是運行事先安裝的”啟動管理器”(boot loader),由用戶選擇啟動哪一個操作系統。
Boot loader:是在操作系統內核運行之前運行。可以初始化硬件設備、建立內存空間映射圖,從而將系統的軟硬件環境帶到一個合適狀態,以便為最終調用操作系統內核准備好正確的環境
Stage6:操作系統啟動
控制權轉交給操作系統后,操作系統的內核被載入內存。
以Linux系統為例,先載入/boot目錄下面的kernel。內核加載成功后,第一個運行的程序是/sbin/init。它根據配置文件(Debian系統是/etc/initab)產生init進程。這是Linux啟動后的第一個進程,pid進程編號為1,其他進程都是它的后代。
然后,init線程加載系統的各個模塊,比如窗口程序和網絡程序,直至執行/bin/login程序,跳出登錄界面,等待用戶輸入用戶名和密碼。