《自己动手写操作系统》实践(一)
《自己動手寫操作系統(tǒng)》是剛看到的一本書,(雖然已經(jīng)出版很久了。。。。僅作為操作系統(tǒng)的實現(xiàn)練習(xí)和加強對操作系統(tǒng)的理解)。我會把每次遇到的問題和解決方法都一一記錄下來,給以后學(xué)習(xí)的人提供一點點幫助,這就是一件很開心的事了。
這本書由于比較久遠了,而且現(xiàn)在很多的軟件更新的很快,所以需要很多新的軟件代替。
Capter1
問題:
第一,書中的軟盤問題:
軟盤是一個已經(jīng)落時的東東了,所以剛剛開始準(zhǔn)備用一個U盤來做啟動盤,后來覺著比較麻煩就使用虛擬軟盤.img文件(就是和磁盤具有一樣的結(jié)構(gòu),有MBR,boot Sector,但是虛擬的)來模擬。
第二,虛擬機的問題
我使用的是最新的VMware12.0來加載虛擬軟盤模擬出自己制作的OS。
第三,書本的軟件nasm,floppywriter(可能的話我會將這些軟件上傳)
具體操作:
接下來就開始寫第一個程序了。保存文件名boot.asm
org 07c00h ; 告訴編譯器程序加載到7c00處mov ax, csmov ds, axmov es, axcall DispStr ; 調(diào)用顯示字符串例程jmp $ ; 無限循環(huán) DispStr:mov ax, BootMessagemov bp, ax ; ES:BP = 串地址mov cx, 16 ; CX = 串長度mov ax, 01301h ; AH = 13, AL = 01hmov bx, 000ch ; 頁號為0(BH = 0) 黑底紅字(BL = 0Ch,高亮)mov dl, 0int 10h ; 10h 號中斷ret BootMessage: db "Hello, OS world!" times 510-($-$$) db 0 ; 填充剩下的空間,使生成的二進制代碼恰好為512字節(jié) dw 0xaa55 ; 結(jié)束標(biāo)志使用的是書本提供的軟件nasm進行編譯得到boot.bin文件 nasm boot.asm -o boot.bin
接下來就是將boot.bin文件使用flooywrite寫入Tinux.img文件(這里也可以自己創(chuàng)建.img文件鏡像)。自己創(chuàng)建一個文件夾(的叫MyOS)我,將Tinux.img和boot.bin放入其中。
打開floppywriter/Release/FloppyWriter.exe選擇write file to image ?第一次選擇到boot.bin這個文件然后打開,第二次選擇Tinux.img(自己制作的.img也是可以的)然后打開,不出意外的話應(yīng)該會成功的。
接下來使用虛擬機加載這個虛擬軟盤(Tinux.img文件)。
打開VMware創(chuàng)建新的虛擬機,這里使用的是典型的安裝(因為主要是用來加載虛擬軟盤的,無需更多的配置)。單擊下一步。先選擇安裝,單擊下一步?
再然后一定要這樣,(在選擇iso游覽時,選擇到Tinux.img所在的文件夾,文件類型選擇所有文件),最后點擊 稍后安裝。
?單擊下一步,選擇其他
虛擬機的名稱和位置自己定義,單擊 下一步,接下來選擇 默認(rèn)的選項,最后點擊完成。
? 點擊編輯虛擬機設(shè)置
接下來重點來了(一定要點擊下面的添加),再選擇軟盤驅(qū)動器(當(dāng)時不知道這個,弄了好長時間都不對),單擊 下一步 , 選擇使用 軟盤映像
? ??
軟盤映像選擇 剛開始制作的Tinux.img文件,然后單擊 完成。 ? ? ? ? ? ? ? ? ? ? ? ? 最后點擊 確定。
?
點擊 ?開啟此虛擬機。 ? ? ? ? ? ? ? ? ? ? ? ?最后會出現(xiàn) ?Hello,OS world ? ?。 ?你就成功了第一步了。哈哈 ?
希望看到的人能夠給我點支持,讓我完成所有的OS實踐。謝謝大家
總結(jié)
以上是生活随笔為你收集整理的《自己动手写操作系统》实践(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工作23:vue---封装request
- 下一篇: 开始学习《自己动手写操作系统》遇到的小问