我最近開始了一個龐大的項目......製作我自己的自制操作系統。結果比我想象的要困難得多,但我決心堅持下去,直到我找到可用的東西。我已經設法讓一個VirtualBox機器上的引導加載程序工作,但我堅持下一步。我試圖加載第二個階段到boot-loader,但是不知道如何將它加載到內存中並運行它。我已經考慮過使用GRUB引導裝載程序,因此請不要提示它。如果可能的話,代碼示例真的會有幫助。如果有關係,我在Ubuntu上使用NASM。任何幫助是極大的讚賞。從bootloader運行彙編程序
1
A
回答
0
首先,您需要在引導加載程序中至少有簡單的文件系統支持。只要在引導程序很難支持全功能文件系統,幾個技巧是可能的:
使非常簡單的文件系統支持。例如,從引導設備的根目錄中搜索具有給定名稱的文件。
或者只是爲您的第二階段二進制保留一些物理扇區並直接從那裏讀取它。
您需要的第二項服務是加載和執行可執行文件。最簡單的解決方案是使用內存的普通二進制映像,就像在DOS .com文件中一樣。
因此,引導程序將能夠從磁盤加載一個更大的程序,將其放入內存並運行它。這個更大的程序現在有足夠的空間來提供文件系統支持和複雜的可執行文件加載/運行。在更簡單的情況下,這個可執行文件可能包含整個內核並直接啓動它而不加載其他模塊。
0
如果你真的想使用GRUB,那麼你將不得不創建一個兼容Multiboot的內核文件。規格在這裏找到:http://www.gnu.org/software/grub/manual/multiboot/multiboot.html
相關問題
- 1. 從bootloader程序運行c代碼
- 2. 運行彙編程序
- 3. 從彙編bootloader調用C內核
- 4. 彙編 - 在bochs中運行bootloader的問題
- 5. 無法運行彙編程序
- 6. 運行此彙編程序的問題
- 7. GCC運行彙編程序mac?
- 8. 「彙編」與「彙編程序」
- 9. 程序的彙編和執行 - 兩遍彙編程序
- 10. 從彙編語言運行另一個程序
- 11. bootloader在哪裏運行?
- 12. 彙編程序
- 13. 從彙編語言編寫C程序
- 14. 彙編程序浮點運算
- 15. 彙編8086程序
- 16. NASM彙編程序
- 17. 彙編:編譯COM程序
- 18. 微軟彙編程序轉換爲GNU彙編程序
- 19. 忽略彙編程序函數的彙編程序關鍵字
- 20. 在Windows 7的命令提示符下運行彙編程序
- 21. 需要幫助,在linux mint中運行一個彙編程序
- 22. 是否有一種運行時C++彙編程序庫?
- 23. 開始運行更多的MIPS彙編程序?
- 24. 爲什麼我的彙編程序運行無限
- 25. MASM32彙編程序無法正常運行
- 26. 奇怪的輸出運行時的彙編程序
- 27. Windows如何執行彙編程序?
- 28. 內聯彙編程序執行時間
- 29. 不能執行彙編程序
- 30. 彙編程序奇怪的行爲
非常感謝!我認爲這肯定會讓我走上正確的道路。 –