我开发了一个基于 Linux 的小型 x86 'Hello World' 操作系统。我刚刚创建了文件loader.s,linker.ld和main.c,然后我使用GRUB加载器在Ubuntu中使用bochs模拟器启动我的操作系统。
我刚刚访问了视频内存并在屏幕上显示了"hello world"字符串。我使用 bochs 调试了我的操作系统,cr0 PM 值设置为 1,所以我认为我的操作系统直接进入保护模式而不是进入真实模式。
我的问题是我应该如何在不进入保护模式的情况下直接进入实模式?在此之后,我如何调用 BIOS 中断以获取初始硬件详细信息,如硬盘、RAM、处理器等......
我对这个主题也没有很多了解,但我有一段从可启动的CD/DVD运行的代码。 一开始,程序以真实模式启动,显示我的名字,然后切换到保护模式并再次显示我的名字。 我提供了一个链接,以便它可以帮助您。 你可以从这里下载