2012-09-01 112 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的布局。 –

相关问题