朱宇轲 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

不知不觉,在网易云课堂上追了两个多月的课程《Linux内核分析》就要告一段落了。在课程即将结束的时刻,我想将这八周的课程串起来,进行一个简单的总结,同时讲一讲自己上这门课的感悟和体会,以期再接再厉,继往开来。

每一周的视频,我都认真看过,并完成了测验,撰写了相关的博客,下面首先进行简单的回顾和总结:

第一周:从一段代码的汇编看计算机的工作原理

第二周:一个简单的时间片轮转多通道程序内核

第三周:从Linux内核代码分析操作系统启动过程

第四周:由一段代码解析系统调用原理

第五周:分析system_call中断处理过程

第六周:Linux进程启动过程简析

第七周:linux装载可执行程序简析

第八周:Linux进程切换代码分析

第一周老师介绍了计算机的基础架构:冯诺依曼架构,CPU将内存中的代码和数据读取到自己的寄存器中,再根据一条条命令调用寄存器进行进一步的操作;同时,老师对基础的汇编语言语法进行了讲解。第二周则是第一周的延伸,在课上老师讲解了一个基于C和汇编语言的程序,实现了时间片轮转多通道程序的功能,我也亲自体验了一遍上下文保存、切换、代码跳转的具体实现。

第三周,老师带我们分析了linux启动的过程,我们亲眼目睹了第一个进程的创建和idle进程的循环,对操作系统的启动过程有了更深入的了解。

第四和第五周,深入到了系统调用这个linux内核中一个重要的模块里,我们了解了系统调用的“三层皮”(API、中断向量、中断服务程序);通过汇编实现一个系统调用,认识了int 0x80的作用(这应该是我印象最深刻的一句汇编代码,O(∩_∩)O哈哈~);通过深入追踪sys_call系统调用的内核代码,我们对系统调用的具体实现有了更为深入的理解。(感谢老师提供的简化汇编代码,大大方便了我分析的工作ORz)

第六、七、八周则是分别分析了Linux内核的三个具体功能模块:进程创建、可执行程序装载、进程上下文切换,尤其注意fork这个比较特殊的系统调用,它具有“一次调用,两次返回”的特点,这是和linux中一般的进程不一样的地方。

在第八周的最后,老师对linux系统的架构和执行过程进行了总结,简单来说,用户态进程位于内存的0~3G空间中, 内核代码则位于内存3G以上的部分,如同大(cang)舞(lao)女(shi)一样任由用户态进程公共地使用。在进程由用户态陷入内核态或者进程间切换之前,都要进行上下文的保存,以便返回时回复之前的环境。

linux系统架构镇楼

/*---------------------------------------------我是萌萌的分割线,咿呀咿呀呦-----------------------------------------*/

我是一名西电大四的学生,如今已经保送浙江大学CAD实验室,即将开始自己的研究生生涯。本科期间,我们也上过操作系统之类的课程,但课上老师对操作系统的讲解偏于理论,很少涉及操作系统具体的实现,以至于我一直对操作系统的实现细节一头雾水。而通过学习这门课,我一方面复习了本科时所学习的操作系统概念,更重要的是,通过分析linux系统的内核代码,我初窥操作系统内核编程的门径,对操作系统各种功能的具体实现,如进程创建、切换、操作系统启动都有了更为深入的认识和理解,这就是我上这门课最大的收获。

上完这门课之后,我想重新捧起本科时操作系统课程的教科书《现代操作系统》,认真地再看一遍书中后面探讨各种操作系统实现细节的章节(我们本科时只讲了理论部分,后面没讲);有机会的话,希望深入钻研操作系统架构,参考《三十天自制操作系统》、《Orange S:一个操作系统的实现》等书自己实现一个小型的操作系统,毕竟操作系统的知识对于以后的上研、工作还是很有帮助的。

说起遗憾,主要是这门课开设期间正好也是我本科毕业设计时间,我每天忙于毕业设计,晚上10点多从实验室回到宿舍后才能开始课程的学习,很多时候包括做作业都搞得比较仓促,有一次甚至忘了提交作业(TAT),感觉自己对课上老师讲解的知识点还是有待进一步消化。课程已经结束,自己研究生阶段会继续关注这一领域,不断提升自己在这一方面的专业技能。

另外,我觉得老师这门课没有讲文件系统这个linux内核的大头实在是有点遗憾,如果以后开课的话,希望能将这个模块纳入课程的讲解中。

这就是我在这门课期间的总结,感谢网易云课堂和孟宁老师提供了这个学习的机会,也祝云课堂平台越办越好,孟老师家庭生活幸福美满,事业步步高升!

路漫漫其修远兮,吾将上下而求索!

《Linux内核分析》课程总结相关推荐

  1. Linux内核分析课程期中总结

    Linux内核分析课程期中总结 姓名:王朝宪 学号:20135114 注: 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com ...

  2. linux 内核 课程,Linux内核分析课程-全面剖析Linux内核技术 揭开Linux内核的面纱 Linux内核学习视频教 ......

    课程名称 Linux内核分析课程-全面剖析Linux内核技术 揭开Linux内核的面纱 Linux内核学习视频 课程目录 (1)\1, 计算机是如何工作的?:目录中文件数:0个 (2)\2, 操作系统 ...

  3. linux swi 内核sp,Linux内核分析课程8_进程调度与进程切换过程

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Linux内核课第八周作业.本文在云课堂中实验楼完成. 原创作品转载请注明出处 <Linux内核分析>MOO ...

  4. linux内核分析课程笔记(二)

    运行一个精简的操作系统内核 存储程序计算机是几乎所有计算机的基础逻辑框架. 堆栈是计算机中非常基础的东西,在最早计算机没有高级语言时,在高级语言出现之前,我们没有函数的概念.但高级语言出现后有了函数调 ...

  5. 庖丁解牛Linux内核分析慕课课程

    本课程从理解计算机硬件的核心工作机制(存储程序计算机和函数调用堆栈)和用户态程序如何通过系统调用陷入内核(中断异常)入手,通过上下两个方向双向夹击的策略,并利用实际可运行程序的反汇编代码从实践的角度理 ...

  6. linux内核分析期末,Linux内核分析作业

    Linux内核分析课程期末大作业 一.程序的主要设计思路及实现方式 在Linux内核中,存在一个全局变量:init_task.该变量即是Linux第一个启动的用户空间进程init对应的task_str ...

  7. 孟宁的Linux内核分析,Linux内核分析-MOOC小结

    Linux内核分析课程小结 目录: 在学习内核时一定要不断动手实验,才能更好的理解内核中的运作,之后才能学以致用. Linux内核分析(孟宁老师)课件列表: 短短几周过去了,但是内核学习却才开始... ...

  8. 《Linux内核分析》MOOC课程之从汇编语言角度看计算机是如何工作的

    2019独角兽企业重金招聘Python工程师标准>>> piratezgw 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study. ...

  9. [网易云课堂]Linux内核分析(九)—— 课程总结

    付何山+原创作品转载请注明出处+<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000; 导读:本文分为两个部分 ...

最新文章

  1. 打开云服务器连不上网,云服务器怎么连接网络连接不上
  2. linux命令lsof
  3. 八十、归并排序及其分而治之思想
  4. 计算未来轻沙龙 | AI=知识+推理,知识工程与数据管理专场来了!
  5. 精选 GitHub 值得收藏的100个前端项目
  6. 《用户网络行为画像》读书笔记(一)
  7. python redis订阅_Python -- Redis 发布订阅
  8. Python3安装(Windows)
  9. 交互式内核图 -***
  10. SQLi LABS Less-31
  11. crontab——Linux 下的定时任务
  12. python三天速成_python学习第三天
  13. c语言元素累积的计算,C语言:计算输出给定数组中每相邻两个元素的平均值的平方根之和。...
  14. 2019最新机构Web前端培训全套项目实战(完整)
  15. Java 运行环境安装(JRE JDK 区别)
  16. 图片优化——质量与性能的博弈
  17. 题目0171-相同数字的积木游戏1
  18. 【kindle资源】一本不得不读的投资经典《唐朝-手把手教你读财报》
  19. C语言基础教学——认识C语言(第一课)
  20. java ios des加密解密_IOS、java支持DES加密

热门文章

  1. Queue+Stack(C++,标准库中的队列和栈)
  2. 【Codeforces 339C】Xenia and Weights
  3. VMware与Centos7系统安装
  4. SQLserver查看某个视图的创建语句
  5. MySQL千万级数据JDBC插入
  6. 解决cell循环利用造成的重复勾选
  7. 【团队建设问题】项目管理方面
  8. Day14作业 二、有两个List集合怎么取两个无重复的并集
  9. [Python图像处理] 三十一.图像点运算处理两万字详细总结(灰度化处理、阈值化处理)
  10. [Python人工智能] 十.Tensorflow+Opencv实现CNN自定义图像分类案例及与机器学习KNN图像分类算法对比