30天自製作業系統 Day2

2021-10-08 17:32:11 字數 1500 閱讀 8524

還是follow書籍,並且也參考別人的筆記,還是這位大佬的筆記做的很詳細,把鏈結放在這裡:

既然別人已經做了很詳細的筆記了,我就不用再重複了。學習中遇到了一些問題,和大家分享一下。

最開始我按照書裡的描述,把檔案copy到helloos4下面,執行make -r helloos.img的時候,報錯說 no rule. make stop.

我於是開啟make.bat,發現確實沒有rule, 內容就是…\z_tools\make.exe %1 %2 %3 %4 %5 %6 %7 %8 %9

原來%1-%9的意思是這個批處理命令讀入9個引數的意思。好吧,這裡暫時就懂了。

makefile的內容結合作者的描述大致也猜出來了,makefile就是把原來單個的批處理命令合成到一起,也可以用來生成檔案

makefile的原始碼:

// 

#預設default :

../z_tools/make.exe img

#檔案生成規則

ipl.bin : ipl.nas makefile

../z_tools/nask.exe ipl.nas ipl.bin ipl.lst

helloos.img : ipl.bin makefile

../z_tools/edimg.exe imgin:../z_tools/fdimg0at.tek \

wbinimg src:ipl.bin len:512 from:0 to:0 imgout:helloos.img

# 命令

asm :

../z_tools/make.exe -r ipl.bin

img :

../z_tools/make.exe -r helloos.img

run :

../z_tools/make.exe img

copy helloos.img ..\z_tools\qemu\fdimage0.bin

../z_tools/make.exe -c ../z_tools/qemu

install :

../z_tools/make.exe img

../z_tools/imgtol.com w a: helloos.img

clean :

-del ipl.bin

-del ipl.lst

src_only :

../z_tools/make.exe clean

-del helloos.img

從原始碼看的話,我猜如果是生成檔案,冒號前面就是乙個檔名,如果是整合命令,冒號前面就是命令名。生成檔案的話,冒號後面同一行的內容就是依賴檔案,下一行開始是生成檔案的操作,後面有輸出檔案。如果是命令的話,冒號後面同一行裡就不可以有內容了,下一行開始寫命令的執行語句。

掃了一眼doc,發現我的理解還是正確的嗎。其實查詢之前ida裡面試圖看看原始碼來著,結果好像不行啊,upx1這個指令ida也不認識,後面繼續讀原團隊的文件比較好吧。後時候,動作太快也不是件好事情。

30天自製作業系統day2

這一章主要講解彙編基礎知識和makefile的使用 org指令 指定開始執行程式的時候,把程式裝載到記憶體的哪個位址。如果不指定,則預設從0x0開始,會與bios程式發生衝突。程式helloos.nas中,指定的是0x7c00。這是因為規定的啟動區內容裝載位址是0x00007c00 0x00007d...

30天自製作業系統

第一天的內容很少,是一些簡單的基礎知識,在這裡我就沒有必要寫出來了,只說出大概的輪廓了,然後我會對其中的幾點進行詳細的解釋。文章的第一天的輪廓大概是這樣的,作者首先用二進位制編輯器做了乙個顯示二進位制的程式,然後用彙編完全db的形式,後又進行改善,最後以比較標準的組合語言編寫,但程式主體部分還沒有翻...

30天自製作業系統day01

第一天的標題,從計算機結構到匯程式設計序入門。這一天作者共講了一下內容 1.作者上來就用二進位制編輯器製作了乙個軟盤映象boot.img。像作者一樣,現在已經不需要再去購買軟盤,再說就算想買也不一定買得到。本人使用qemu載入軟盤映象,命令 qemu system i386 fda boot.img...