1、下载一个带有 gcc 1.40 编译环境的 Linux 0.11 系统软件包。
2、解压linux-0.11-devel-040329.zip3、安装Bochs:在解压的目录里有Bochs安装文件:Bochs-2.1.1.exe,点击安装4、把解压下的大多数文件拷贝到安装目录下(除了Bochs-2.1.1.exe)5、双击bochsrc-hd.bxrc运行,能运行起来说明,安装成功6、运行bochs, 在进入目录/usr/src/linux后键入make命令, 即可编译 Linux 0.11 内核源代码make clean ## 来清除所有编译好的*.o文件或其它模块make ## 重新编译出现错误:gcc-cc1: Invalid option "string-insns"请将每个Makefile文件中的-mstring-insns参数去掉。每个子目录中都有一个,kernel目录下还有三个驱动程序子目录(math, blk_drv, chr_drv)(/usr/src/linux,fs,lib,kernel,kernel/blk_drv,kernel/chr_drv,kernel/math)同时,到/usr/local/bin中把ar 改名为gar, 或者复制一个修改完后再执行make cleanmake7、make成功后生成引导启动映象文件Image。若需要输出这个Image文件, 可以首先备份bootp_w_picpath-0.11-hd文件, 然后使用下面命令就会把bootp_w_picpath-0.11-hd替换成新的引导启动文件dd bs=8192 if=Image of=/dev/fd0注意此处是把编译完的Image(启动映象文件)输出到/dev/fd0,注意此处的/dev/fd0实际上就是bochs中定义的floppya: 1_44="bootp_w_picpath-0.11-hd", status=inserted,也就是要替换"bootp_w_picpath-0.11-hd"8、直接重新启动 Bochs 即可使用该新编译生成的 bootp_w_picpath-0.11-hd 来引导系统。9、如果不相信,可以修改bootsect.s然后重新编译,就可以看到启动的时候 Loading system...create by happy(还要执行# dd bs=8192 if=Image of=/dev/fd0)嘿嘿,可以任意修改,主要修改几个地方:! Print some inane message
mov ah,#0x03 ! read cursor pos
xor bh,bhint 0x10mov cx,#47
mov bx,#0x0007 ! page 0, attribute 7 (normal)mov bp,#msg1mov ax,#0x1301 ! write string, move cursorint 0x10msg1:
.byte 13,10.ascii "Loading system ...this is create by happy".byte 13,10,13,10.org 508
出处:http://blog.sina.com.cn/leetow