编者按:
在制作Coding Master及ToyOS系列视频期间,Xv6系统及配套的Xv6 book是我重要的参考资料。无论是代码还是Xv6 book,Up阅读起来感觉还是非常吃力的,主要有如下问题:
#1 有些英文术语不认识,每次碰到都要查字典;
(资料图片仅供参考)
#2 上来就讲干货,没有一定的基础比较难理解;
#3 文字言简意赅,解释性的文字太少,看不懂;
#4 配图极少,大量文字容易让人看得昏昏欲睡;
#5 Xv6 book与代码是分开的,没有放在一起讲;
所以Up就想花点时间解决以上问题,与人方便与己方便。
原书序
本文是为一门操作系统课程而写的。它通过研究一个叫做Xv6的示例内核,解释了操作系统的主要概念。Xv6 是丹尼斯·里奇和肯·汤普森的Unix Version 6(v6)复刻版。Xv6 部分遵循了v6的结构和风格,但Xv6是使用ANSI C基于x86多核处理器实现的。
本文应该与xv6的源代码一起阅读。这个尝试是受到约翰·莱恩对UNIX第六版(Peer to Peer Communications; IS-BN:1-57398-013-7; 1st edition(June 14, 2000))的评注鼓舞产生的。更多v6和xv6线上资源请访问 https://pdos.csail.mit.edu/6.828 查看。
我们已经在6.828课程中使用本文,6.828是一门MIT的操作系统课程。我们感谢全体老师、助教以及6.828的学生,他们都直接或间接为xv6做出了贡献。特别是,我们要感谢奥斯丁·科勒门茨和尼考莱·泽尔多维奇。最后,我们想感谢那些把书中的bug邮件我们的人,后面是好长一段人名······
如果你发现了错误或者有更好的建议,请发邮件给弗兰斯·卡术克以及罗伯特·莫里斯(kaashoek,rtm@csail.mit.edu)。