##学习xv6
xv6是由麻省理工学院(MIT)为操作系统工程的课程(代号6.828),开发的一个教学目的的操作系统。Xv6是在x86处理器上(x即指x86)用ANSI标准C重新实现的Unix第六版(Unix V6,通常直接被称为V6)。
更为详细的介绍可以参看:
这个代码库的 master 上是从 xv6 官方代码库直接 clone 的代码
git clone git://pdos.csail.mit.edu/xv6/xv6.git
代码库的 learn 分支则是我在学习 xv6 代码时一边学一边在源码文件上增加了自己的理解和学习笔记作为注释。
###注意:
由于 learn 分支上的 xv6 代码,特别时汇编文件被我增加了注释,目前无法顺利编译,后续我可能会解决这个问题。如果向编译 xv6 一睹其芳容的各位,建议编译我这个代码库的 master 或者直接 clone 官方代码库的代码编译。
###笔记:
除了会在 xv6 的源代码上增加注释以外,我还会陆陆续续在我的个人 Blog上写一些列的文章来总结我的 xv6 学习过程。
###2014年7月24日 第 1 次学习:
如何通过 804x 键盘控制器打卡 A20 门进入保护模式。主要笔记文件:
bootasm.S
###2014年7月25日 第 2 次学习:
关于 GDT 表和 GDT 表项的建立。主要笔记文件:
bootasm.S
###2014年7月29日 第 3 次学习:
关于通过 cr0 控制寄存器进入保护模式以及在基于分段式的保护模式下的寻址,主要文件:
bootasm.S
###2015年 5月26日 第 4 次学习:
内核的加载与运行,主要文件:
bootmain.c