操作系統源碼閱讀 - 1 : xv6系統運行

學習操作系統,看經典系統的源碼,有很多收穫,在博客上記錄一下發現的問題和學習的收穫。

第一步就是要將xv6運行起來。在這裏記錄一下,運行過程中的問題。

過程中的問題

recipe for target ‘bootblock’ failed

問題如下圖所示。問題根源是sign.pl文件無法運行。無法運行有兩種情況,一種是權限問題,./sign.pl權限不允許。可以sudo或者chmod 修改sign.pl文件的權限;另一種是系統自帶的perl解釋器的問題,./sign.pl 命令未找到。可以重裝perl解釋器,或者在Makefile文件中,將./sign.pl 換爲 perl sign.pl,換爲可以執行的命令即可。

bootblock未找到

對vectors未定義的引用

問題如下所示。問題根源在於,在Makefile中,要先編譯trap.c,再生成vector.s,但trap.c需要調用vector.s,兩者產生矛盾。可以修改Makefile的OBJS順序,將vectors放在trap系列之前,即可編譯通過。

vector未定義的引用問題

no bootable device報錯

問題如下所示。這個問題我沒找到根源,看別人都是文件權限問題,如該博客所說。但我只是重新下載了源碼,編譯就成功了。果然重寫重做大法好!

no bootable device報錯

實驗結果

最後成功截圖如下。

實驗成功結果

下一篇:操作系統源碼閱讀 - 2 : 基礎命令與操作系統接口

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章