bochs下编译linux0.11

 bochs下编译linux0.11

我安装的操作系统是ubuntu
下载一个带有 gcc 1.40 编译环境的 Linux 0.11 系统软件包。该系统设置成在
Bochs 仿真系统下运行,并且已经配置好相应的 bochs 配置文件。该软件包可从下面地址得到。
http://oldlinux.org/Linux.old/bochs/linux-0.11-devel-040329.zip

把配置文件 bochs-hd.bxrc 修改为 bochs.txt

然后在终端运行:bochs
出现错误:

修改bochs.txt
原来:romimage: file=$BXSHARE/BIOS-bochs-latest, address=0xf0000
修改为:romimage: file=$BXSHARE/BIOS-bochs-latest, address=0xf0000

原来:vgaromimage: $BXSHARE/VGABIOS-elpin-2.40
修改为:vgaromimage: $BXSHARE/VGABIOS-elpin-2.40

然后运行还出现错误:
需要挂在另一个img
copy一个sls-0.99pl中的:c.img到linux-0.11-devel-040329文件夹下
然后修改bochs.txt
ata0-slave:type=disk, path="c.img", cylinders=365, heads=16, spt=63
然后在终端运行:bochs
成功进入:
/root

在/usr/src/linux 目录下键入'make'命令即可编译 Linux 0.11 内核源代码
出现错误:make:Nothing to be dong for "all"

应该先:
首先使用
   make clean
来清除所有编译好的*.o文件或其它模块,然后再
   make

又出现错误:
gcc-cc1: Invalid option "string-insns"

请将每个Makefile文件中的-mstring-insns参数去掉。每个子目录中都有一个,kernel目录下还有三个驱动程序子目录(math, blk_drv, chr_drv)另外,到/usr/local/bin中把ar 改名为gar,或者干脆复制一个
就能解决

修改完后:
先: make clean
然后:make

make成功后生成引导启动映象文件 Image。若需要输出这个 Image 文件,可以首先备份 bootimage-0.11-hd 文件,然后使用下面命令就会把 bootimage-0.11-hd 替换成新的引导启动文件。

dd bs=8192 if=Image of=/dev/fd0

注意此处是把编译完的Image(启动映象文件)输出到/dev/fd0,注意此处的/dev/fd0实际上就是bochs中定义的floppya: 1_44="bootimage-0.11-hd", status=inserted,也就是要替换"bootimage-0.11-hd"

直接重新启动 Bochs 即可使用该新编译生成的 bootimage-0.11-hd 来引导系统。

如果不相信,可以修改bootsect.s然后重新编译,就可以看到启动的时候 Loading system...create by happy嘿嘿,可以任意修改,主要修改几个地方:

! Print some inane message

    mov    ah,#0x03        ! read cursor pos
    xor    bh,bh
    int    0x10
   
    mov    cx,# 47
    mov    bx,#0x0007        ! page 0, attribute 7 (normal)
    mov    bp,#msg1
    mov    ax,#0x1301        ! write string, move cursor
    int    0x10

msg1:
    .byte 13,10
    .ascii "Loading system ... this is create by happy"
    .byte 13,10,13,10

.org 508
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值