實驗目的
寫乙個可以引導無系統電腦顯示「
hello world
」的程式
參考了部分內容、《自己動手寫作業系統》
實驗過程 1.
首先準備如下工具:
floppywriter
.exe
(由《自己動手寫作業系統》作者開發用於寫映像檔案、代替
ultraedit-32
17.00.0
.1025
官方簡體中文版
.zip
在本文中作用)、
bochs
2.4.6
.zip
(用於生成空白映像)、
nasm
-2.09.08-installer.exe
(用於編譯
asm匯程式設計序)、
visual pc
(虛擬機器可由其他替代)、文字編輯工具(能寫
asm就可)
2.
全部安裝好後,用文字寫乙個
asm彙編檔案:
code:
org 07c00h ; 告訴編譯器程式載入到 7c00處
mov ax, cs
mov es, ax
call dispstr ; 呼叫顯示字串例程
jmp $ ; 無限迴圈
dispstr:
mov ax, bootmessage
mov bp, ax ; es:bp = 串位址
mov cx, 16 ; cx = 串長度
mov ax, 01301h ; ah = 13, al = 01h
mov bx, 000ch ; 頁號為 0(bh = 0) 黑底紅字(bl = 0ch,高亮)
mov dl, 0
int 10h ; 10h 號中斷
ret
bootmessage: db "hello, os world!"
times 510-($-$$) db 0 ; 填充剩下的空間,使生成的二進位制**恰好為
; 512位元組
dw 0xaa55 ; 結束標誌 1.
使用nasm
編譯檔案為
bin二進位制檔案
使用bochs
建立乙個空白的
img軟碟機空間(軟碟機檔案,可由虛擬機器載入)
3.使用
floppywriter
把bin
檔案寫進
img軟碟機空間
visual pc
建立乙個空白電腦,載入軟碟機
img然後啟動,見到「
helloworld」
實驗結果
引導檔案放到引導區(頭
512個位元組)中,寫引導區可以引導載入其他東西。
003 軟盤啟動原理
軟盤,這東西雖然現在很罕見了,但是在20年前,軟盤是主要的外部儲存器,再早一點的時候還沒有硬碟,所有的資料都是存放在軟盤上的,當然也包括作業系統。我們之所以仍然選擇軟盤作為我們作業系統的啟動介質,是因為軟盤有著其特點和明顯的優勢。如果我說硬碟,你可能第一反應會問我多大的硬碟,因為硬碟的種類很多。但是...
linux 下製作使用軟盤啟動映象
首先,生成空白軟盤映象 dd if dev zero of data.img bs 512 count 2880 當然也可以用bochs 自帶的工具bximge,先fd,點enter。使用 losetup 命令,將 data.img 作為 loop device 使用 sudo losetup de...
建立乙個啟動軟盤,並安裝GRUB
最近在試著寫乙個簡單的作業系統,打算在11週內寫完。會不定期的在這裡寫東西記錄一下。今天完成了引導程式和第乙個程序,這倒不是很難。反而製作啟動軟盤花費了不少的時間 所以才打算把製作方法寫在這裡。用dd命令建立乙個.img檔案,大小為1.44m.我建立的這個檔案的名字叫做floppy.img dd i...