The old Linux kernel source ver 0.11 which has been tested under modern Linux, Mac OSX and Windows.
- a linux distribution: debian , ubuntu and mint are recommended
- some tools: gcc gdb qemu (or bochs)
- a linux-0.11 hardware image file: hdc-0.11.img, please download it from http://www.oldlinux.org, or http://mirror.lzu.edu.cn/os/oldlinux.org/, ant put it in the root directory.
- Now, This version already support gcc 4/5/6/7 series and turn on -O, enjoy it.
$ make help // get help
$ make // compile
$ make start // boot it on qemu
$ make debug // debug it via qemu & gdb, you'd start gdb to connect it.
$ gdb tools/system
(gdb) target remote :1234
(gdb) b main
(gdb) c
- install cross compiler gcc and binutils
- install qemu
- install gdb. you need download the gdb source and compile it to use gdb because port doesn't provide i386-elf-gdb, or you can use the pre-compiled gdb in the tools directory.
- a linux-0.11 hardware image file: hdc-0.11.img
$ sudo port install qemu
$ sudo port install i386-elf-binutils i386-elf-gcc
optional
$ wget ftp://ftp.gnu.org/gnu/gdb/gdb-7.4.tar.bz2
$ tar -xzvf gdb-7.4.tar.bz2
$ cd gdb-7.4
$ ./configure --target=i386-elf
$ make
same as section 1.2
- Support gcc 4/5/6/7 series and turn on -O on Cygwin and Mingw. BUT make sure ld version is NOT 2.25.x !! See problem description at https://stackoverflow.com/questions/48088518/ld-ttext-0-m-i386pe-relocation-wrong-on-cygwin