编译过程:
1). 解压后默认的文件夹位置是在D:\Linux-0.11,如果你不是将文件解压到该目录下,
你要修改MinGW32目录下的MinGW32.bat文件,将里面的PATH指向MinGW32的bin目录.
2). 打开Linux-0.11目录,双击MinGW32.bat快捷方式,打开控制台.
3). make 一下,生成1.44M的Boot.img软盘镜像,要清除编译结果请"make clean"
4). 如果安装了bochs,直接双击bochsrc.bxrc即可运行Linux-0.11了.
5). 也可用其它虚拟机加载Boot.img后运行,如果出现Kernel panic,请把虚拟机里的硬盘删了
6). 在出现Insert root floppy and press ENTER以后,将rootimage-0.11.img载入虚拟软驱,回车
这就是能在windows环境下编译的Linux 0.11了,不是在Cygwin,也不是在虚拟机里,而是使用MinGW.
下面是在Windows下编译Linux 0.11会遇到的问题和对原文件作的修改:
1.赵炯博士已经将汇编程序中引用的C变量(包括嵌入汇编的C变量)的下划线去掉了,但MinGW的gcc可能是为了与其它Windows下的编译器保持兼容,并不能识别这些不带下划线的C变量,因而还得把原先已经在汇编程序中去掉下划线的C变量加上下划线,同时也要把被C程序引用的汇编程序中的变量加上下划线.
2.MinGW中不带as86编译器,因而把boot目录下原先用as86编译的bootsect.s和setup.s两个程序修改成能用nasm编译的程序.并且更名为bootsect.asm和setup.asm.
3.在Makefile作的主要修改:
在LDFLAGS中加了--image-base 0x0000 将elf_i386改成i386pe
将cd 与 make 之间的;改成&,如cd