我开发了一个基于Linux的小型x86'Hello World'操作系统。我刚刚创建了文件loader.s,linker.ld,main.c并使用grub加载器来启动我的操作系统 在ubuntu中使用bochs模拟器。
我刚刚访问了视频内存,并在屏幕上显示了“hello world”字符串。我使用boches调试我的操作系统,cr0 PM值设置为1,所以我认为我的操作系统直接进入保护模式而不是进入实模式。
我的问题是如何在不进入保护模式的情况下直接进入实模式?在此之后,我可以调用bios中断(http://en.wikipedia.org/wiki/BIOS_interrupt_call)来获取硬盘,RAM,处理器等初始硬件细节......
请有人帮助我,非常感谢你。
答案 0 :(得分:1)
我对这个主题也没有太多的了解,但是我有一段代码可以从可启动的CD / DVD运行。在程序开始时,程序以实模式启动,显示我的名字,然后切换到保护模式并再次显示我的名字。我提供一个链接,以便它可以帮助你。您可以从here
下载