Linux内核分析课程总结
By 20135203齐岳
知识梳理
(思维导图地址http://mindmap.4ye.me/mkxM0cFh/1)
从start _ kernel构造一个新的Linux内核开始,0号进程rest _ init创建了1号进程kernel _ init从而启动Linux内核,这个过程的中心思想其实一直贯穿在Linux内核操作系统之中。1号进程通过复制PCB创建出更多的进程;当进程无法满足功能时就编写自定义的可执行程序,装载这些可执行程序的过程其实就是进程创建的一个变形;系统中运行着很多进程时就会涉及到进程之间的切换;而I/O等进程调度的过程又会涉及到内核态与用户态的切换即系统调用,其本质也是进程间的切换。所以这八周课程这样梳理下来思路还是很清晰的,每一个知识点之间都有融会贯通的地方,但又有其区别与其他知识点而存在的独特之处。至于MOOC的前两节以及课本自学笔记,则是辅助知识主线所补充的一些背景知识或扩充。因每周知识点都有详细课程学习笔记,这里不再赘述。
每周博客
第一节 计算机是如何工作的http://www.cnblogs.com/July0207/p/5218597.html
第二节 操作系统是如何工作的http://www.cnblogs.com/July0207/p/5242103.html
第三节 构造一个简单的Linux系统MenuOShttp://www.cnblogs.com/July0207/p/5266594.html
第四节 系统调用的三个层次(上)http://www.cnblogs.com/July0207/p/5277774.html
第五节 系统调用的三个层次(下)http://www.cnblogs.com/July0207/p/5320325.html
第六节 进程的描述和进程的创建http://www.cnblogs.com/July0207/p/5339058.html
第七节 可执行程序的装载http://www.cnblogs.com/July0207/p/5361392.html
第八节 进程的切换和系统的一般执行过程http://www.cnblogs.com/July0207/p/5388943.html
课本同步自学笔记
第一章 Linux内核简介&第二章 从内核出发 http://www.cnblogs.com/July0207/p/5286472.html
第三章 进程管理 http://www.cnblogs.com/July0207/p/5352839.html
第四章 进程调度 http://www.cnblogs.com/July0207/p/5402421.html
第五章 系统调用 http://www.cnblogs.com/July0207/p/5303617.html
第十八章 调试http://www.cnblogs.com/July0207/p/5330924.html
《深入理解计算机系统》第七章 链接http://www.cnblogs.com/July0207/p/5376156.html
收获与不足
从接触反转课堂和博客的教学形式到现在已经是第三个学期,对于课下自学和每周撰写博客的流程也已经较为熟悉,所以在学习《Linux内核分析》的过程中还是比较顺利的。最大的收获,从知识上来讲就是把之前《深入理解计算机系统》以及接触过的Linux相关基础知识系统地串在一起,并且深入地讲解了代码中的原理,通过跟踪调试加深理解,整个知识的脉络十分清晰。在学习的过程中我也发现了自己的诸多不足,主要的问题还是编程功底比较弱造成了一些知识上理解的困难,例如对汇编嵌入C语言代码的写法理解不到位,代码的细节理解欠缺等,但宏观的流程和函数执行的原理都能基本掌握,在每周博客中也均有体现。此外经过一段时间的学习,在博客撰写方面也更加熟练,内容比较完整,排版也比较整齐。