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