我喜欢编程挑战,编写内核似乎是编程挑战.
遗憾的是,内核特别难以测试,因为它们基本上是操作系统的核心,因此它们不能轻易地在操作系统上运行.
但是,我知道可以模拟计算机硬件的称为虚拟机的应用程序.
使用虚拟机开发和测试内核(C + Assembly)的最简单/最好的方法是什么?
虽然BOCHS似乎更善于让你知道什么时候你的宠物操作系统出现了可怕的错误...它非常懒散!当事情变得模糊时,我使用VirtualPC进行通用测试和BOCHS.
此外,您很可能每2分钟启动一次操作系统,因此有必要采用某种自动方式来构建启动映像并启动Virtual PC.
我构建了一个GRUB启动软盘映像,其中包含所有必要的东西,以便从根目录启动Kernel.Bin.我使用批处理文件将此文件复制到虚拟项目目录,使用FAT Image Generator将我的内核复制到映像.然后只需启动VirtualPC项目.佛拉!
摘自我的批处理文件:
COPY Images\Base.vfd Images\Boot.vfd /Y fat_imgen.exe modify Images\Boot.vfd -f Source\Bin\KERNEL.BIN COPY Images\Boot.vfd Emulators\VirtualPC\ /Y START Emulators\VirtualPC\MyOS.vmc
最后一个建议:将VirtualPC进程优先级设置为低 - 请相信我这个!我很乐意交换一些代码!
工具: DGJPP,NASM,GRUB.
代码: osdev.org,osdever.net