2012-09-01 69 views
0

我正在開發一個裝配操作系統。我有一個工作的可執行程序加載器加載COM文件,但我不知道我應該加載它們。我的操作系統被加載到0x200000的RAM中。目前我沒有內存管理或類似的東西。我只是害怕我會加載一個程序到一些我不應該(像進入視頻RAM,或覆蓋現有的代碼)。除了IDT和視頻RAM之外,BIOS在0x200000之前是否使用任何內容。我應該在哪裏加載程序到RAM中?

+0

這是一個令人難以置信的模糊問題。我有點懷疑你會得到像這樣有用的答案。 – Cubic

+0

是的我同意,我會添加更多細節 – user1454902

+0

更詳細。我認爲這是x86?你想要使用什麼操作系統或其他環境加載/進入?至於外圍設備(視頻卡),bios列舉了pci(e)總線並將這些東西放置在內存中,dos和linux等工具會告訴你放置的位置,每次啓動都不一定相同,但bios每次都使用相同的範圍(除非另有說明)通常是在第三或第四個演出中的32位機器的1gig窗口,64位可能有2個演出窗口 –

回答

2

您應該安全地使用0x100000以上的任何東西。我將內核加載到該地址,並且可以將程序存儲在大部分高端內存中。

對於操作系統和程序,您應該在0x100000之上有足夠的空間。以前的某些部分是可用的,但除非真的需要,否則可能更容易避免該部分。

Memory Map (x86) - OSDev Wiki是您可以期待的一些事情的很好的參考。

Detecting Memory (x86) - OSDev Wiki解釋如何找到可用內存。

+0

-1。可以有1MB以上的內存映射設備。你應該真正檢查BIOS功能,返回你的RAM的佈局。 –

相關問題