最近在学习清华操作系统原理课程,他们的课程有实验环节,虽然参考了很多xv6,但是他们的有课程视频,还有实验指导书,学起来比mit6.828还是轻松不少。课程基本都已经听完了,实验也都跑通了,后面打算花一周时间把各章收获总结一下。
其实,OS这个CS专业的核心课程,应该在本科就学透,可惜年少轻狂啊,很多东西没有学透。而且当年也没有这么多好的学习资源。现在想再学一遍,学完了也未必能多赚多少钱,但是至少可以把心中这么多年的疑问解决一些,比如锁怎么实现的,进程怎么调度的,分页到底是什么,文件系统具体是怎么实现的。好多好多的疑问,通过学这门课都可以解决了。
学习计算机,最浅层的就是了解原理,我当年上大学,所有课都是xxx原理,操作系统原理,数据库原理,网络原理…… , 只学原理是远远不够的。需要再深入一点进入代码实现级,哪怕就是demo,哪怕就是toy,无所谓。重新发明轮子就能把这门手艺学的更通透,而不是只是调个API,调个类库就完了。
如果再深入一点,就要看看当今最前沿的产品是如何实现的,整个软件世界都是开源的,只有看不懂的代码,没有找不到的代码。更更更深入的就是去改写代码,写出性能更好的代码,可能我一生都做不到了。软件世界比较繁琐需要耐心,一个小点一个小点的去整明白。理解知识,写出代码,总结文档,哪怕就是个100字的小记录,无所谓,反正没人看:)。
看完课程后,有点小失落,一方面是如果早点学会,我的人生是不是会不同。另一方面,现在学完了其实不太好找到能应用的地方。
但是这个也许就是我的兴趣,这个就是我的手艺,在条件还允许的情况下,我想再精进一下手艺,就算老了以后成为孔乙己那样的人,那又如何呢,学会了没用可能失落,但是如果什么都不会,更让人后悔。
11月6日更新:发现一个新的课程slide,最近一定要看看,链接在此