计算机启动和操作系统加载小话
整個啟動和加載過程可分為若干步驟,或者稱為若干個狀態,或者快照,下面的每一段都是描述一個快照。(類似自動狀態機)
1、電源穩定(POWER GOOD)
按下啟動鍵后,電源首先啟動。為了保證安全使用,電源的設計采取了許多保護措施,所以電源從起振到穩定有一定的延遲。電源各部分(各輸入電壓和輸出電壓等)穩定后,會分別發送一個檢測信號,此信號電壓為高時表示穩定。所有檢測信號都為高時,就產生一個POWER GOOD信號。如果主板接收不到該信號,時鐘芯片會一直向cpu發送RESET信號(等同于按下重啟鍵),這樣cpu就不會工作。
?
2、CPU電壓穩定
CPU的VID0-VID3引腳,使CPU工作電壓與時鐘信號匹配。
?
3、CPU跳轉到BIOS程序
CPU預編程,使CPU執行0XFFFF0H處的JUMP指令,從而跳轉到BIOS(basic input/output system)程序(不同的BIOS,所在地址不同)。
?
4、CPU執行POST(power on self-test 上電自檢)
BIOS首先進行的就是上電自檢,用來檢測各硬件設備工作狀態是否正常。BIOS廠商對每一個設備都給出了檢測代碼(POST CODE,即開機自我檢測代碼),對某一個設備進行檢測時,首先將檢測代碼發送到80H檢測端口,檢測通過后,再發送下一個設備的檢測代碼進行檢測。如果檢測失敗,檢測代碼會留在80H端口,檢測程序也會停止,并根據預先設定好的警報聲(此時顯卡還未初始化,不能顯示)進行報警(BIOS廠商對不同的設備定義了不同的報警聲,我們可以根據報警聲的不同來判斷故障,Intel POST相關)。
?
5、初始化
包括創建中斷向量表、設置寄存器、對一些外部設備(顯卡等)進行初始化和檢測,其中最重要的是對BIOS的設置,主要是對硬件參數的設置。初始化完畢,如果硬件配置發生變化,會進行ESCD更新。ESCD是BIOS和操作系統交換硬件配置信息的一種方法,它保存在CMOS中。
?
6、BIOS按CMOS設定的順序啟動相應設備
?
7、尋找活動分區
假設操作系統放在硬盤上,在啟動硬盤后并不知道硬盤里有什么,一個硬盤有幾個區,每個區都可能有操作系統,要想啟動操作系統,就必須找到存放操作系統的區。所以,對待硬盤,所有的BIOS都先讀取硬盤的0磁頭0柱面1扇區,這里存放著主引導記錄MBR(Main boot record ),該扇區稱為主引導扇區。BIOS將控制權交給MBR,來找到并加載操作系統。
要了解如何找到活動分區,首先必須了解主引導扇區的結構。
主引導扇區是0磁頭0柱面1扇區,磁頭和柱面都是從0計數,扇區則從1計數。0磁頭0柱面1扇區是第一物理扇區。該扇區共512字節,分為三部分。第一部分是MBR,存放程序,大小是446字節,范圍是0-445字節(0x00H - 0x1BDH);第二部分是磁盤分區表DPT(Disk Partition table),大小為64字節,范圍是446-509字節(0x1BEH-0x1FDH);第三部分是結束標志,大小為2字節,范圍是510-511字節(0x1FEH-0x1FFH),其值一般為0xAA55H。
MBR里有啟動代碼和數據,不同的boot loader啟動代碼不同,但不論如何,分區表的結構都是相同的,所以先介紹一下分區表。
分區表可以容納四個分區的信息,每個分區占16個字節。每個分區的16個字節表示的信息如下:
第0個字節:引導字節。80H代表活動分區,00H代表非活動分區;
第1-3個字節:本分區的起始扇區。最低位字節(第一個字節)代表磁頭號,次高位字節的低6位代表扇區號,次高位字節的高2位和最高位字節的8位表示柱面號。
第4個字節:分區類型符。
00H——代表該分區未用(即沒有指定)
01H——FAT12基本分區
04H——FAT16基本分區
06H——big FAT16基本分區
0BH——FAT32基本分區
05H——擴展分區
07H——NTFS分區
0FH——(LBA模式)擴展分區
83H——linux分區
第5-7個字節:本分區的結束扇區。結構類似開始分區;
第8-11個字節:本分區起始扇區距該分區的分區表所在扇區的扇區數之差;
第12-15個字節:本分區的總扇區數;
下面介紹DOS下引導操作系統的過程。注意:MBR程序的作用是找到活動分區(將要啟動的操作系統所在的分區),并將控制權交給活動分區的系統引導程序。
1)BIOS把主引導扇區的512字節拷貝到內存的0:7c00H(為了和軟盤的拷貝位置一致,BIOS自動完成此拷貝)處,將控制交給MBR代碼。
2)MBR把512個字節搬移到0:600處,為之后活動分區引導程序留出空間。
3)MBR檢查依次檢測四個分區表的第一個字節,若為80H,則繼續檢測其他分區表確保只有一個活動分區,否則會發生錯誤;若為00H,則繼續檢測其他分區,若四個分區檢查完畢,仍沒有檢測到活動分區,說明沒有可以啟動的分區,則調用INT 18H進入ROM BASIC(一種程序解釋器,可以自己編寫BASIC程序運行)。
4)找到活動分區后,根據分區表中分區起始位置等信息,讀取該分區第一個扇區的內容到0:7c00H,將控制全交給該活動分區引導程序。該引導程序將加載內核,內核會加載操作系統。
Grub主引導扇區暫留。
8、加載內核和操作系統
?
轉載于:https://www.cnblogs.com/ithink/p/3576464.html
總結
以上是生活随笔為你收集整理的计算机启动和操作系统加载小话的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 港版的三星NOTE 4或S5可以用在大陆
- 下一篇: 《相和歌辞·王昭君二首》第七句是什么