Bochs下编译安装Linux-0.11版本
2016-02-24 09:47
567 查看
1、下载一个带有 gcc 1.40 编译环境的 Linux 0.11 系统软件包。
http://oldlinux.org/Linux.old/bochs/linux-0.11-devel-040329.zip
2、解压linux-0.11-devel-040329.zip
3、安装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 clean
make
7、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"
8、直接重新启动 Bochs 即可使用该新编译生成的 bootimage-0.11-hd 来引导系统。
9、如果不相信,可以修改bootsect.s然后重新编译,就可以看到启动的时候 Loading system...create by happy
(还要执行# dd bs=8192 if=Image of=/dev/fd0)
嘿嘿,可以任意修改,主要修改几个地方:! Print some inane messagemov ah,#0x03 ! read cursor pos
xor bh,bh
int 0x10mov cx,#47
mov bx,#0x0007 ! page 0, attribute 7 (normal)
mov bp,#msg1
mov ax,#0x1301 ! write string, move cursor
int 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
http://oldlinux.org/Linux.old/bochs/linux-0.11-devel-040329.zip
2、解压linux-0.11-devel-040329.zip
3、安装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 clean
make
7、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"
8、直接重新启动 Bochs 即可使用该新编译生成的 bootimage-0.11-hd 来引导系统。
9、如果不相信,可以修改bootsect.s然后重新编译,就可以看到启动的时候 Loading system...create by happy
(还要执行# dd bs=8192 if=Image of=/dev/fd0)
嘿嘿,可以任意修改,主要修改几个地方:! Print some inane messagemov ah,#0x03 ! read cursor pos
xor bh,bh
int 0x10mov cx,#47
mov bx,#0x0007 ! page 0, attribute 7 (normal)
mov bp,#msg1
mov ax,#0x1301 ! write string, move cursor
int 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
相关文章推荐
- Linux socket 初步
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- Linux 下无损图片压缩小工具介绍