作業系統1——引導扇區的理解
在作業系統這個方面,我記得自己經常聽到主開機記錄這個名詞,但是對於它的理解並不深,只知道它在系統載入的時候很重要。現在我想自己寫一個作業系統,但是想到第一步該怎麼做呢?書上說是用匯編寫載入程式。那麼這個載入程式是什麼呢?它正是我們經常所說的主開機記錄,或者說,它儲存在引導扇區上,即我們所說的boot sector。
我們知道,當計算機電源被開啟的時候,他會先進行加電自檢,然後尋找啟動盤,如果計算機選擇從軟盤啟動,計算機就會檢查軟盤的0面0磁軌1扇區,如果發現它是以0xaa55結束的話,那麼BIOS就認為它是一個引導扇區,當然引導扇區的結構我們會在下面介紹。一旦BIOS發現了引導扇區,那麼它就會將這512位元組的內容,裝載到記憶體的0000:7c00處,然後跳轉到該位置處將控制權徹底交給這段引導程式碼。到此為止,計算機不再由BIOS中固有的程式來控制,轉而由作業系統的一部分來控制。
那麼主開機記錄的定義是什麼呢?
主開機記錄(MBR,Master Boot Record)是位於磁碟最前邊的一段引導(Loader)程式碼。它負責磁碟作業系統(DOS)對磁碟進行讀寫時分割槽合法性的判別、分割槽引導資訊的定位,它由磁碟作業系統(DOS)在對硬碟進行初始化時產生的。
主引導扇區由三個部分組成(共佔用512個位元組):
1.主載入程式即主開機記錄(MBR)(佔446個位元組) 可在FDISK程式中找到,它用於硬碟啟動時將系統控制轉給使用者指定的並在分割槽表中登記了的某個作業系統。 2.磁碟分割槽表項(DPT,Disk Partition Table) 由四個分割槽表項構成(每個16個位元組)。 負責說明磁碟上的分割槽情況,其內容由磁碟介質及使用者在使用FDISK定義分割槽時決定。(具體內容略) 3.結束標誌(佔2個位元組) 其值為AA55,儲存時低位在前,高位在後,即看上去是55AA(十六進位制)。其中四個分割槽表項的結構是:
第1個位元組表示:是否是系統分割槽
第234位元組表示:該分割槽的開始磁頭,扇區以及柱面
第5位元組表示:分割槽型別
第678位元組表示:分割槽結束的開始磁頭,扇區以及柱面
後面的8個位元組,前四個用來表示:該分割槽之前的所有分割槽的所有扇區數
後四個位元組用來表示:該分割槽的扇區總數
下面貼一段載入程式:
%define _BOOT_DEBUG_
%ifdef _BOOT_DEBUG_
org 0100h
%else
org 07c00h
%endif
;org 07c00h
mov ax, cs
mov ds, ax
mov es, ax
call DispStr
jmp $
DispStr:
mov ax, BootMessage
mov bp, ax
mov cx, 16
mov ax, 01301h
mov bx, 000ch
mov dl, 0
int 10h
ret
BootMessage: db "Hello,OS World!"
times 510-($-$$) db 0
dw 0xaa55
相關文章
- 寫作業系統之開發引導扇區作業系統
- 主引導扇區的理解
- 修復雙作業系統引導區作業系統
- 作業系統導論(1)作業系統
- 製作隨身碟系統盤時提示引導扇區未知的原因與解決方法
- 作業系統引導和虛擬機器作業系統虛擬機
- 作業系統(1)——作業系統概述作業系統
- Windows 作業系統引導過程 BIOS & EFIWindows作業系統iOS
- 雙硬碟grub引導9個作業系統(轉)硬碟作業系統
- 作業系統(自己理解)作業系統
- 計算機作業系統|作業系統引論計算機作業系統
- FreeFlyOS【一】:boot部分(引導扇區)詳解boot
- 我對作業系統的理解作業系統
- 作業系統1—作業系統概論(上)作業系統
- 通過虛擬機器學習作業系統引導檔案的配置虛擬機機器學習作業系統
- 系統安裝引導盤的製作(轉)
- 深入理解Linux作業系統下的守護程式(1)Linux作業系統
- 管導與流作業系統作業系統
- 硬碟主引導扇區的結構及功能全面釋疑(轉)硬碟
- AIX作業系統shell的引數(轉)AI作業系統
- 從扇區看USB-FDD和USB-HDD在引導時的區別
- 2.作業系統的理解幫助後續理解作業系統
- AIX作業系統核心引數配置AI作業系統
- 計算機導論作業系統計算機作業系統
- 作業系統學習(1)-概述作業系統
- 1.認識作業系統作業系統
- Linux作業系統分析 | 深入理解系統呼叫Linux作業系統
- 作業系統以外的硬碟空間-利用DOS/WINDOWS9X的隱含扇區保護資料 (轉)作業系統硬碟Windows
- 正確理解手機智慧作業系統作業系統
- 作業系統(一):作業系統概述作業系統
- 各個作業系統的 作業系統日誌作業系統
- LAB1 啟動作業系統作業系統
- 作業系統(二)——程式的描述與控制(1)作業系統
- Win10系統開機多個開機引導(作業系統選項)怎麼刪除Win10作業系統
- DBA不可不知的作業系統核心引數作業系統
- 資料中心作業系統 DC/OS的深入理解作業系統
- 作業系統(二):作業系統結構作業系統
- 【作業系統】作業系統綜述(一)作業系統