**1-1 \chapter1\a\boot.asm
乙個「作業系統」可以只有20行**。
把下面這段**用nasm編譯一下:
nasm boot.asm –o boot.bin
org 07c00h ; 告訴編譯器程式載入到7c00處
mov ax, cs
mov ds, ax
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 號中斷
retbootmessage: db "hello, os world!"
times 510-($-$$) db 0 ; 填充剩下的空間,使生成的二進位制**恰好為
; 512位元組
dw 0xaa55 ; 結束標誌
我們就得到了乙個512b的boot.bin,使用軟盤絕對扇區讀寫工具將這個檔案寫到一張空白軟盤的第乙個扇區。好了,你的第乙個「作業系統」就已經完成了。這張軟盤已經是一張引導盤了。
把它放到你的軟碟機中重新啟動計算機,從軟盤引導,你看到了什麼?
乙個簡單的作業系統
電腦上電後,bios在自檢後會根據使用者指定的裝置啟動作業系統。假設我們指定軟盤為啟動盤,bios會把軟盤的第乙個扇區 512位元組 讀取到記憶體的0x7c00處,如果這個扇區的最後兩個位元組為0xaa55,bios會跳轉到0x7c00處開始執行。我們可以利用這樣乙個過程做乙個簡單的作業系統。我們的...
又有乙個作業系統開源
很榮幸,能親眼見證tencentos tiny的開源,也很榮幸能在乙個多月前內測使用過它 不得不說,tencentos tiny的核心確實是非常非常小巧,最少資源占用為ram0.6kb,rom1.8 kb。這是他們團隊自主研發的rtos,原始碼非常簡單易懂,原始碼作者以非常清晰的邏輯實現了整個核心 ...
開發乙個作業系統(一)
筆者今年大三,來自沙坡村男子技術學院,在10月初開始打算自己製作乙個作業系統,最開始理由很簡單,自己想做乙個能夠運用最高效的 實現軟硬體的結合的programmer,再加之後來班主任評獎學金時候,覺得acm校賽的一等獎能比自己辛苦5個月參加的iot比賽的國獎更加有力,於是也更加堅定了製作屬於自己os...