Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10056
  • 博文数量: 6
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-28 15:46
文章分类
文章存档

2015年(6)

我的朋友

分类: LINUX

2015-04-25 19:05:01

前言:Linux的世界那么大,我想去看看(这是讨论区里一位同学的感慨)。想起刚开课的自己,那时候我只是看到了有Linux的字眼,就毫不犹豫地选了这门课程。丝毫没有注意到这门课程对前置课程的要求(Linux基本操作技能、C语言、数据结构基础、操作系统原理)。然而自己只是一名只有一丢丢C语言基础的大一学生,要说有什么东西可以支撑着自己一路走过来,我只能说,是信仰。


署名部分:
作者:彭家进
原创作品转载请注明出处 
《Linux内核分析》MOOC课程 ”


学习Linux内核的心得:

  1. 第一周的作业内容是反汇编一个简单的C程序。我之前从来没有接触过X86的汇编。看那些push,pop,mov,eax等等属于可谓是一知半解。这样的话是不可能完成作业的,我心想,然后我就在谈论区里发了一个帖子问如何恶补汇编这部分的知识。得到解答后,我飞奔过去图书馆,借到了王爽老师的《汇编语言》,创造了我看书速度的极限,两天内看了三百多页。(但这也有弊端,就是掌握得不牢固,在《汇编语言》的后面部分有一些是跳着来读的)。在那个周末,我成功完成了作业。而且得到了同学的肯定。有的人问我怎么做的图片。答案是,那是PS做的。完全一个下午的纯手工打造。只为了几秒钟的绽放。
  2. 在一开始接触到第四周的作业:调用系统函数时,我几乎是懵的,仅仅依靠老师提供的那个调用表,是完全写不出文章的。在这一周我学会了利用搜索引擎。由于系统调用这一部分是学习内核必须掌握的部分,资料并不太难找。后来找到了一份带有全部系统调用函数原型的网页,那个感觉真的像在大海里捞到了钻石一样。然后又是一次赶deadline的愉快旅程。
  3. 对于老师的课程,感触最深的就是一句话:绝知此事要躬行。老师的课程最突出的一个特点就是授课时间超级短,而将大部分理论灌输于实践中。分析源代码成为了课程最中心部分。而且分析完代码之后还去实验楼里搞实验,不光老师搞实验,课后作业也是搞实验。这样子上课不能有一丝的松懈,因为如果一不小心漏听了一部分内容,课后作业写博客就会挖出一个大坑。为了完成作业,终究还是要回去看一遍课件。然后自己把整个思路都理清楚了,才可以把博客写明白。曾经在知乎上看到一句话“如果你在学习的时候就以教会别人为出发点的话,那你将会学得比绝大多数人要好”。而写博客的过程,就是一次将自己理解的东西重新输出的过程。
  4. 为了学好这门课,我学会了使用网易云笔记来记录课堂笔记。以前上课都没有记笔记习惯的我,实在受不了那种一到做实验就把所有上课时候讲的东西都忘掉的感觉。做笔记可以让人更清楚地知道课堂中什么是重点、疑点、难点。我现在也把记笔记的方法逐渐运用到我的其它课程上面,而且收效不错。假以时日,这会成为我的一个习惯,使我更好地掌握所学的课程。
  5. 做完作业之后少不了的东西就是作业互评了。第一次见识到原来Github也可以作为博客而存在,而且自己现在也在尝试使用Hexo搭建自己的博客,但是遇到一些问题不得不暂停下来。也第一次了解到有Markdown这种简洁的标记方法。我也在学习。经过了前三周之后,我实在受不了新浪博客对于代码的不友好风格,转向了Chinaunix。不过其实Chinaunix也没有什么特别好的地方。


对Linux系统的理解:
  1. Linux是一个极为庞大的,由C与汇编语言写成的操作系统。
  2. Linux分开内核态和保护态,内核态拥有最高的访问权限,常常帮助用户态进程实现功能。(舞女)
  3. Linux创建新进程的代码十分的漂亮,fork()函数和execve()函数创建进程的方式是把父进程的复制一遍再破坏掉。颇有《普罗米修斯》中神被杀死后又生出新的生物的感觉。
  4. Linux的进程切换做到了“智能”,在schedule()中有一个类似于OOD的策略模式封装在pick_next_task,挺让我惊讶的,而且随着内核版本迈进4.0时代,Linux的运行将有可能更高效。
  5. Linux的设计处处精巧,在这八个星期里面我们只学了汇编基础、程序的装载、线程的切换。剩下的文件的管理、网路部分,甚至是与硬件打交道的那部分我们是完全没有接触的。Linux3.18.6解压缩后大概600Mb左右大小,我们的课程可能看了不到1MB的代码,Linux那么大,我想去看看。


八周的作业:
  1. 第一次尝试汇编:一个简单C程序的分析。http://blog.sina.com.cn/s/blog_145bdb0490102vnhk.html
  2. 第二周作业:开始接触操作系统最深处的灵魂。http://blog.sina.com.cn/s/blog_145bdb0490102vnxc.html
  3. 第三周作业:踏入Linux领地。http://blog.sina.com.cn/s/blog_145bdb0490102vo5y.html
  4. 第四周:调用系统函数 http://blog.chinaunix.net/uid-30180970-id-4922728.html
  5. 第五周:继续深入了解系统调用过程  http://blog.chinaunix.net/uid-30180970-id-4937867.html
  6. 第六周:深入了解进程的创建 http://blog.chinaunix.net/uid-30180970-id-4951961.html
  7. 第七周:用操作系统的高度看一个Hello World http://blog.chinaunix.net/uid-30180970-id-4968282.html
  8. 第八周:进程的切换和系统的一般执行过程 http://blog.chinaunix.net/uid-30180970-id-4986366.html


总结部分:
  1. 最大的收获是学会了边上课便做笔记,这样子的学习效率特别高,而且可以拓展到Offline的课堂,甚至到生活中去。夸张一点地说,学会记笔记,延长了自己的生命。因为当一天过去以后,不用思考自己这一天是不是又浑浑噩噩地度过了,至少我知道我记录下了我今天遇到的东西。等到有一天自己大脑的记忆体不再好用的时候,我还可以查看以前的笔记。
  2. 最大的遗憾?学习了孟宁老师的课程收获挺多的,实在找不到什么最大的遗憾。要说遗憾,那就是每个星期蹲在宿舍看荧幕的时间多了十几小时,减少了出去外面与人交流、欣赏美景吧。不过课程也已经结束了,是时候休息几天出去玩玩了。孟宁老师的课十分的好,如果老师再推出其他的课程的话,我是一定会跟过去上的。

阅读(1912) | 评论(0) | 转发(0) |
0

上一篇:第八周:进程的切换和系统的一般执行过程

下一篇:没有了

给主人留下些什么吧!~~