bochs配置
起因
现在做操作系统的毕业设计,把 之前把«30天自制操作系统»的书做了一下, 发现还是有缺点:
-
开发工具都是作者自己开发或者修改(比如nask)的. 本来想干脆再移植到开源的的开发工具上, 但是毕业设计的任务是做一个操作系统, 费力去做移植还是比较花费时间的.
-
因为要用egypt之类的代码分析软件, 作者的cc1是在比较老的gcc上修改而来的,可能又不兼容.
-
虽然是自己照着书做了一遍,但是还是有些不清楚的地方,所以开始看«orange’s 一个操作系统实现», 并尝试自己去修改.
在配置环境下遇到问题
在配置bochs上能遇到的问题我几乎差不多都遇到,以至于ubuntu的桌面环境崩溃了. 但是在修复和配置中能学到不到知识和工具:
-
没有按书的上bochs版本去编译,以至libgtk不兼容. 强制降级导致桌面环境进不去, 循环在登录界面中, 用apt-get去解决依赖包的问题很困难, 这时可以用aptituede去解决.
-
桌面问题修复之后, 用比较新的版本还是不能make. 只能用作者的老版本,具体原因不清楚.
-
在运行configure配置文件时, 已经安装上的xorg-dev一直不能从网上了解需要把连接的库直接加在configure后,并在Makefile中把相应的行删去.
-
在make时, 编译不过, 是因为编译器不兼容, 需要把对应的源代码进行修改.
-
安装完成后, 按照书上的bochsrc配置不能成功模拟. 因为biosrom vgarom keymap 的目录位置不一样. 可以用find去查找.
在我的电脑上的配置文件为:
# how much memory the emulated machine will have
megs: 32
# filename of ROM images
romimage: file=/usr/local/share/bochs/BIOS-bochs-latest #这里
vgaromimage: file=/usr/local/share/bochs/VGABIOS-lgpl-latest #这里
# what disk images will be used
floppya: 1_44=a.img, status=inserted
# choose the boot disk.
boot: floppy
# where do we send log messages?
log: bochsout.txt
# disable the mouse
mouse: enabled=0
# enable key mapping, using US layout as default.
keyboard_mapping: enabled=1, map=/usr/local/share/bochs/keymaps/x11-pc-us.map #这里
参考解决方法的网址
在配置中的插曲
在修复崩溃系统时发现随着系统的升级,多余的内核被留了下来, 一个一个删除显然很累, 可以用以下命令删除多余的内核
sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\)
相应的头文件也是类似这个方法