JOS 计划 #持续更新中#
童鞋,上网要科学上网,做lab也要科学的做.
之前我一上来就做实验,很多资料都不知道.现在打算重新来过
方法:
0.xv6源码不要用MIT官网的那份,我的主机是Linux/Ubuntu 14.0各种编译error,我都改的想吐.后来直接用github上别人改好的,直接能跑起来没有编译错误的xv6.
1.按照MIT给出的课程安排表,每一次课的相关lecture必须全部过一遍.
2.要求的课堂作业必须完成,很多时候课程要求的任务是很轻松的,只要修改部分代码就行了.这里我还是建议通读所有的代码.不要满足于"程序填空".
3.每一个lab新增的source file必须通读.而且还要读xv6对应的代码.不要满足于只要你填空的一些代码.往往这样也很难有对OS很细致的理解.
4.由于JOS就是从xv6直接改过来的实验用工具,xv6是有完整源码的.每次lab都尝试去建立xv6和JOS之间的对应关系.
关于实验用的材料:
由于MIT每年都会对JOS稍作调整(可能是处于防止学生参考以前学生的成果,不自己思考解答的原因吧.),那么每年的JOS可能都多多少少有些不一样.这就可能给了解JOS,时间跨度大的人聚在一起讨论造成了一些障碍.为了一致性,最好大家统一使用同一种版本的JOS.
这里我已知最新的版本是2014年的,而且github上有很多人已经吧解答代码贡献出来了,这就是很好的环境了.
OK: 一下会统一按照这种格式,记录每一次lecture的完成情况.
比较长的lab report会以链接的形式给出,比较短的homework就直接写在下面了
LEC : Lecture Name
Preparation: To do
Assignment: To do
----------------------------------------------这可能是一场旷日持久的战争------------------------------------------------------------
LEC 1: Operating
system
Preparation: Unix
intro
Assignment: HW:
shell
Assignment: Lab
1: C, Assembly, Tools, and Bootstrapping
完成链接: http://blog.csdn.net/cinmyheart/article/details/39754269
LEC 2: PC
hardware and x86 programming slides notes
Preparation: Read Bootstrap/PC
hardware appendices and the related xv6 source files
Assignment: HW:
Boot xv6
再说一次,不要用MIT官网的source file,去下面的link里下载一份.
https://github.com/penguiner/xv6
LEC 3: C
and gdb (pointers
example)
Homework 1 due: Boot
xv6
Preparation: Read 2.9 (Bitwise operators), 5.1 (Pointers and Addresses) through 5.5(Character Pointers and Functions) and 6.4
(pointers to structures) in K&R
Assignment: Lab
2: Memory management