可以运行的linux-0.00和linux-0.11

这两个版本的linux都是根据 赵炯的<>修正版V3.0 整理出来的.已经在Ubuntu 12.04.1版本(bochs 2.4.6)上运行过

https://github.com/voidccc/linux0.00

https://github.com/voidccc/linux0.11


linux 0.00

说明:

这是一个假想中的版本, 并不是由Linus所写,因为当时Linux写好这个版本后,由于不小心错误地用modem拨号程序拨到了自己的硬盘设备上,造成他开发Linux系统的MINIX分区毁坏。因此原始的Linux 0.00不复存在了 这个版本是赵炯根据Linux事后描述仿写出来的,很有意思.Linux原话是这样的,很有意思,细节可参见赵炯的描述连接 .

"it switched between two processes that printed AAAA...  and BBBB...  respectively by using the timer-interrupt - Gods I was proud over that"

"它使用时钟中断在两个分别显示AAAA...和BBBB...的进程之间切换。上帝啊,当时我真自豪!"

Makefile 参考了cheerchoumao的文章 链接 源码在书中原有注释基础上加了一点注释,根据书上的版本head.s有几处需要修改

1 movl scr_loc, %bx => movlscr_loc, %ebx
2 movl $65, %al => movb $65, %al
3 movl $66, %al => movb $66, %al
4 align 2 => align 4
5 align 3 => align 8   

运行:

$ make

$ bochs

注:配置文件已经命名为.bochsrc 所以可以直接启动bochs不需要使用-f参数了

github:

https://github.com/voidccc/linux0.00




linux 0.11

说明:

这个版本不超过2万行代码量,但是已经具备Linux的基本雏形,包括内核用户态,多进程切换,内存管理,文件系统,可谓麻雀虽小五脏俱全.

根据tigercn的版本 连接 稍微做修改来的,包含了大多数下载版本里没有的MINIX根文件系统hdc-0.11-new.img,下面3处做了修改

1 修改/tools/bochs/bochsrc/bochsrc-hd.bxrc,在开头添加"display_library:sdl",否则会出现下面的错误
bochs-bin: symbol lookup error: /usr/lib/bochs/plugins/libbx_x.so: undefined symbol: XpmCreatePixmapFromData

2 修改/tools/bochs/bochsrc/bochsrc-hd.bxrc里的ata0-master属性的Image文件路径

3 将Image的硬盘版MINIX根文件系统加入进来,赵炯介绍了怎么制作的这个根文件系统,链接 因为原始文件比较大127M,压缩之后只有7M

运行:

$ make

$ tar zxvf tools/bochs/hdc-0.11-new.tar.gz -C ./tools/bochs/

$ bochs -f ./tools/bochs/bochsrc/bochsrc-hd.bxrc

github:

https://github.com/voidccc/linux0.11



你可能感兴趣的:(kernel)