读《自己动手写操作系统》(于渊著)第一节
最近開始看《自己動手寫操作系統(tǒng)》,雖然很早以前就讀過一點點,但一直沒有機會動手實踐。本著光說不練假把式的原則,
今天動手實踐了開頭的一部分。(說得這么正經(jīng)其實你就是看了一點點吧!囧)廢話不多說,在這里做一個小小的總結(jié)。
實驗環(huán)境:
操作系統(tǒng):win7旗艦版64位?
匯編編譯器:NASM? 2.12.02
虛擬機:VirtualPC_2007
軟盤/虛擬軟盤 寫引導(dǎo)扇區(qū)工具:FloppyWriter.exe
步驟
- 抄襲(這個這個)了書中的匯編代碼,然后用NASM編譯,生成boot.bin文件。
- 將boot.bin寫入軟盤映像文件中,當然這里是寫入指定的位置,具體來說就是對應(yīng)軟盤的第一個扇區(qū)。
- 虛擬機中用設(shè)置用軟盤啟動,啟動文件當然設(shè)置為我們上面做好的啟動軟盤映像啦。
- 啟動虛擬機,然后,bingo!
問題
如何將boot.bin寫入到軟盤映像中正確的位置(引導(dǎo)扇區(qū))。
為了印證隨后的確將boot.bin寫入了正確的位置,先查看生成的boot.bin的內(nèi)容,用任意二進制查看軟件均可。我用的是BinaryViewer.可以看到其中的內(nèi)容為:
用UltraISO生成軟盤映像,然后嘗試用UltraISO將boot.bin寫入其中,我的步驟如下(勿噴,小生對UltraISO不是特別熟悉):
操作后的軟盤映像文件內(nèi)容為:
好吧,確實寫入了,但是并沒有對應(yīng)軟盤的第一個扇區(qū),o(╯□╰)o,我不太明白。
無奈,利用作者提供的小工具FloppyWriter.exe將boot.bin寫入UltraISO軟盤映像文件,寫入成功。寫引導(dǎo)扇區(qū)后的軟盤內(nèi)容如下:
可以看到成功寫入了boot.bin,并確實在第一個扇區(qū)。
虛擬機中設(shè)置此軟盤映像啟動。啟動失敗。(o(╯□╰)o)
好吧,別瞎折騰了!
還是按照書中的步驟,用VirtualPC的軟盤制作向?qū)绍洷P印象文件,然后將boot.bin寫入其中,內(nèi)容如下:
顯示預(yù)期的字符,成功。
對于為什么不能直接用UltraISO生成的軟盤啟動,還是有些困惑,希望能得到解答。可能VirtualPC_2007對軟盤映像文件的確有特殊的格式要求。
總結(jié)
以上是生活随笔為你收集整理的读《自己动手写操作系统》(于渊著)第一节的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 习题合集-数据结构导论
- 下一篇: 《自己动手写操作系统》之 10分钟完成最