1.搭建编译环境
在ubuntu下,安装C语言开发环境(主要是gnu的一些Toolchains)。
$ sudo apt-get install build-essential
2.安装包含as86和ld86的软件包bin86
2.1 查找as86和ld86两个工具所在的软件包
$ apt-cache search as86 ld86
2.2 安装该软件包
$ apt-get install bin86
3.安装bochs
$ sudo apt-get install bochs vgabios bochs-x bochsbios bochs-doc
4. 下载两个文件包:
http://www.oldlinux.org/oldlinux/attachment.php?aid=658
name : linux-0.11-081030.tar.gz : 如果下不下来,google之。
http://oldlinux.org/Linux.old/bochs/linux-0.11-devel-060625.zip
name : linux-0.11-devel-060625.zip这个应该可以下下来。
5. 修改Makefile。
GCC4.x 默认检查stack安全,会导致出现__stack_chk_fail错误。将linux-0.11-081030.tar.gz解压,cd进入linux-0.11目录修改下面三个Makefile文件:
./linux-0.11/kernel/Makefile、
./linux-0.11/kernel/chr_dev/Makefile、
./linux-0.11/fs/Makefile
三个文件,在 CFLAGS参数中加入-fno-stack-protector
6. make
运行之后,如果无错,那么会得到Image文件。
$ make
7. 解压linux-0.11-devel-060625.zip , 拷出hdc-0.11-new.img 文件到linux-0.11文件夹中(与Image在同一个文件夹中)
8. 编写bxrc文件如下:
romimage: file=/usr/share/bochs/BIOS-bochs-latest#注意用绝对路径(原因见参考1) megs: 16 vgaromimage: file=/usr/share/vgabios/vgabios.bin#注意用绝对路径(原因见参考1) vga: extension=vbe floppya: 1_44="Image", status=inserted floppyb: 1_44=diska.img, status=inserted ata0-master: type=disk, path="hdc-0.11-new.img", mode=flat,cylinders=410, heads=16, spt=38 boot: a log: bochsout.txt parport1: enable=0 vga_update_interval: 300000 keyboard_serial_delay: 200 #floppy_command_delay: 50000 必须注释掉不然出错 ips: 4000000 mouse: enabled=0 private_colormap: enabled=0 fullscreen: enabled=0 screenmode: name="sample"
9. 运行bochs
$ bochs -f bochsrc.bxrc
结果如图所示
