《Orange'S:一个操作系统的实现》学习笔记(1)

    最近在Kindle上利用一些零碎的时间读这本书,真是一本好书,强烈向大家推荐。由于手边没有电脑,所以也没来得及跑一跑书中的程序,今天终于有机会啦。作者是在Bochs虚拟机上运行自己的操作系统的,所以我也需要安装Bochs。我的系统是ubuntu 14.04LTS。下面是安装步骤:

1. Terminal上运行 sudo apt-get install vgabios bochs bochs-x bximage。

2. 切换到Orange'S代码目录(例如chapter4/a/)下,因为该目录下有bochs的配置文件bochsrc,所以可以键入bochs直接运行,但发生如下错误:

    00000000000p[     ] >>PANIC<< bochsrc:10: vgaromimage directive malformed.

    将bochsrc文件中的下述内容进行替换可解决问题。

    vgaromimage: /usr/share/vgabios/vgabios.bin  =>  vgaromimage: file=/usr/share/vgabios/vgabios.bin。

3. 再次键入bochs运行,又出现如下错误:

    bochs-bin: symbol lookup error: /usr/lib/bochs/plugins/libbx_x.so: undefined symbol: XpmCreatePixmapFromData

    键入 sudo apt-get install bochs-sdl 安装bochs-sdl,此外还需要在bochsrc文件中加入一行内容:

    display_library: sdl

4. 再次键入bochs运行,再次出现错误:

    00000000000p[KMAP ] >>PANIC<< line 38: unknown host key name 'XK_0' (wrong keymap ?)

    将bochsrc文件中的下面内容注释掉即可解决问题。

    #keyboard_mapping: enabled=1, map=/usr/share/bochs/keymaps/x11-pc-us.map

5. 再次键入bochs,终于出现Hello, OS world!字样。

这样安装的Bochs不具有调试功能。如需要调试功能,需从源代码编译。

1. Terminal上运行 svn checkout https://svn.code.sf.net/p/bochs/code/trunk bochs-code 下载bochs最新源码,目前版本是2.6.9 。

2. 进入bochs-code/bochs目录下,运行 ./configure --enable-debugger --enable-disasm。

3. 运行 make 和 sudo make install。

4. 运行 sudo cp bochs /usr/bin/bochsdbg。这一步是需要的,否则无法启动带有调试功能的bochs。


你可能感兴趣的:(计算机)