您的位置:首页 > 其它

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

2017-06-03 21:34 302 查看
    最近在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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  操作系统 OrangeS