学习操作系统,最难的就是保护模式的各种硬件机制了(如分段分页寻址,特权级,门机制)。单纯的8086实模下的汇编模拟器是无法模拟,调试这些机制的。只能用个功能更强大的80*86模拟器了。由于模拟器挺多的,如vmware, virtual box等等,但是好像更方便调试的,我们选择bochs吧。
赵炯博士已经为我们准备好了bochs,而且还带有linux 0.11的image.
http://www.oldlinux.org/Linux.old/bochs/linux-0.11-devel-040329.zip
具体参考http://www.linuxidc.com/Linux/2009-03/18786.htm,这篇文章讲了如何设置bochs的配置文件。但是我没有成功,现在只想说说自己是弄成功的。把时间花费在这些工具上面真是很无奈啊,希望能减少这些投入。
1.下载解压
里面有一个bochs的安装文件,其余都是bochs的配置文件和Linux0.11的image文件,即0.11操作系统的二进制文件。
3.安装在c:\program file下面
dllinux目录下面是个linux操作系统的demo, 我仿照他的目录结构建立了0.11目录
然后把 解压包下面linux的image及其启动linux 0.11的bochs配置都copy到这个目录下面。如图
在这个目录下面建立一个run.bat,为了启动bochs。run.bat如图:
bochsdbg从名字上看是个debug版本的启动。
那么bochs就是正常启动了。
同时我们要修改bochsrc-hd.bxrc.
这个是启动linux 0.11的配置文件。
如图。
修改12,36行。具体情况按你具体安装目录位置仿照下图这样配置。
把run.bat中的命令bochsdbg-->bochs,我们不是用debug模式,而是用正常模式启动linux 0.11即可看到如下效果:
这是个小巧的linux 操作系统,非常不错啊!
当然,利用bochs的调试功能,我们可以追踪到内存,寄存器,还有程序之间的跳转流程,这些都是我们学习操作系统的重要素材。怎么调试请参考赵炯的《linux内核完全剖析》中的环境搭建章节吧。
加油,慢慢学习linux内核吧,花个3,5年都是值得的,不着急,有的是时间!