《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。
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。
相关文章推荐
- 使用BULK COLLECT和FORALL来提升性能——《Oracle高效设计》学习笔记
- 《数据结构与算法》学习笔记7 插入排序
- 《windows核心编程》学习笔记(一)内核对象
- KNN学习笔记
- 《Spring技术内幕》学习笔记12——HibernateTemplate对Hibernate的封装
- 《从零开始学Swift》学习笔记(Day 16)——字典集合
- 《Spring技术内幕》学习笔记15——Spring事务处理的实现
- Spring in Action(第二章 装配 Bean)学习笔记
- 《C++捷径教程》学习笔记【一】:虚函数
- 《从零开始学Swift》学习笔记(Day 23)——尾随闭包
- 《Unix环境高级编程》学习笔记
- 《数据结构与算法分析》学习笔记(五)——二叉树
- 《Windows核心编程》学习笔记(10)– 同步设备I/O与异步设备I/O
- 《GPU高性能编程CUDA实战》学习笔记(七)
- 《JavaScript高级程序设计》学习笔记——BOM
- 《GPU高性能编程CUDA实战》学习笔记(十)
- 《Unix网络编程》学习笔记 第一,第二章
- TLS学习笔记
- 动态链接库(Dynamic Link Library)学习笔记
- 学习笔记 C++ 封装(上)