作業系統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)作業系統
- 作業系統引導和虛擬機器作業系統虛擬機
- FreeFlyOS【一】:boot部分(引導扇區)詳解boot
- 作業系統(1)——作業系統概述作業系統
- 計算機作業系統|作業系統引論計算機作業系統
- 作業系統(自己理解)作業系統
- 我對作業系統的理解作業系統
- 作業系統1—作業系統概論(上)作業系統
- 2.作業系統的理解幫助後續理解作業系統
- 通過虛擬機器學習作業系統引導檔案的配置虛擬機機器學習作業系統
- Linux作業系統分析 | 深入理解系統呼叫Linux作業系統
- 計算機導論作業系統計算機作業系統
- 作業系統學習(1)-概述作業系統
- Win10系統開機多個開機引導(作業系統選項)怎麼刪除Win10作業系統
- DBA不可不知的作業系統核心引數作業系統
- 作業系統(二)——程式的描述與控制(1)作業系統
- 作業系統(一):作業系統概述作業系統
- LAB1 啟動作業系統作業系統
- AirNet系統扇區修改說明.V2.0AI
- 作業系統-執行緒和程式的區別作業系統執行緒
- 淺談Linux作業系統的Swap交換區Linux作業系統
- 作業系統_程式和執行緒的區別作業系統執行緒
- 1.系統理解
- 如何修復ubuntu的系統引導Ubuntu
- 如何區分Linux和Unix?作業系統!Linux作業系統
- 作業系統(二):作業系統結構作業系統
- linux安裝DB2之前的作業系統引數LinuxDB2作業系統
- 製作的Fedora啟動U盤無法引導系統的解決方法
- 深入理解Linux作業系統下的守護程式(轉)Linux作業系統
- 作業系統 作業5作業系統
- 第一章、作業系統(OS)引論作業系統
- win10系統引導怎麼設定_win10設定系統引導的方法Win10
- 系統分析設計小組作業1
- 作業系統——深入理解程式和執行緒作業系統執行緒
- nfs導致的作業系統目錄無法訪問NFS作業系統
- day 17 物件導向作業1物件
- 作業系統2—作業系統概論(下)作業系統
- Linux作業系統關於ftp,samba,nfs的區別Linux作業系統FTPSambaNFS