2013-10-24 34 views
1

我最近開始了一個龐大的項目......製作我自己的自制操作系統。結果比我想象的要困難得多,但我決心堅持下去,直到我找到可用的東西。我已經設法讓一個VirtualBox機器上的引導加載程序工作,但我堅持下一步。我試圖加載第二個階段到boot-loader,但是不知道如何將它加載到內存中並運行它。我已經考慮過使用GRUB引導裝載程序,因此請不要提示它。如果可能的話,代碼示例真的會有幫助。如果有關係,我在Ubuntu上使用NASM。任何幫助是極大的讚賞。從bootloader運行彙編程序

回答

0

首先,您需要在引導加載程序中至少有簡單的文件系統支持。只要在引導程序很難支持全功能文件系統,幾個技巧是可能的:

  1. 使非常簡單的文件系統支持。例如,從引導設備的根目錄中搜索具有給定名稱的文件。

  2. 或者只是爲您的第二階段二進制保留一些物理扇區並直接從那裏讀取它。

您需要的第二項服務是加載和執行可執行文件。最簡單的解決方案是使用內存的普通二進制映像,就像在DOS .com文件中一樣。

因此,引導程序將能夠從磁盤加載一個更大的程序,將其放入內存並運行它。這個更大的程序現在有足夠的空間來提供文件系統支持和複雜的可執行文件加載/運行。在更簡單的情況下,這個可執行文件可能包含整個內核並直接啓動它而不加載其他模塊。

+0

非常感謝!我認爲這肯定會讓我走上正確的道路。 –