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

对LINUX内核分析与设计这门课程的理解

LINUX内核在我看来就是操作系统和深入理解计算机系统的结合。Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。我觉得LINUX操作系统和WINDOWS操作系统最大的不同就是,WINDOWS操作系统的内核源代码是不公开的,也不共享,这样一些编程的爱好者无法参与自己的思想,但是这样有利于形成自己的逻辑体系,LINUX则相反,各个编程爱好者可以提交自己的想法,一同进步。
而从体系结构上来看Linux 内核实现了很多重要的体系结构属性。在或高或低的层次上,内核被划分为多个子系统。Linux 也可以看作是一个整体,因为它会将所有这些基本服务都集成到内核中。这与微内核的体系结构不同,后者会提供一些基本的服务,例如通信、I/O、内存和进程管理,更具体的服务都是插入到微内核层中的。
而我认为,LINUX操作系统最重要的就是,进程的创建,可执行程序的装载以及进程的切换。我认为一个操作系统的运行,无疑是需要各个进程相互配合。而如何很好的调用这些进程,同时又不降低处理器的处理速度,以及用户的体验,则是衡量一个操作系统优劣的标准。而堆栈我觉是理解一个程序的核心,它反映了代码中各个函数的调用关系,以及占用内存的情况。而本学期理解LINUX内核最重要的方式也是通过gdb调试,看这些操作系统行为究竟是如何发生的,存在什么,调用了什么,以及是如何结束的。上述就是我对这门课的理解,如果有失偏颇,还请老师见谅

链接总结

第一周学习笔记:http://www.cnblogs.com/5320zhq/p/5225661.html

第二周学习笔记:http://www.cnblogs.com/5320zhq/p/5246702.html

第三周学习笔记:http://www.cnblogs.com/5320zhq/p/5270056.html

第四周学习笔记:http://www.cnblogs.com/5320zhq/p/5299100.html

第五周学习笔记:http://www.cnblogs.com/5320zhq/p/5317422.html

第六周学习笔记:http://www.cnblogs.com/5320zhq/p/5339327.html

第七周学习笔记: http://www.cnblogs.com/5320zhq/p/5361310.html

第八周学习笔记:http://www.cnblogs.com/5320zhq/p/5388756.html

期中总结:http://www.cnblogs.com/5320zhq/p/5408103.html

每周学习内容概括

1.计算机是如何工作的?

  • 冯诺依曼体系结构
  • X86汇编基础
  • 汇编一个简单的C程序分析其汇编指令执行过程

2.操作系统是如何工作的?

  • 函数调用堆栈
  • 借助Linux内核部分源代码模拟存储程序计算机工作模型及时钟中断
  • 在mykernel基础上构造一个简单的操作系统内核

3.构造一个简单的Linux系统MenuOS

  • Linux内核源代码简介
  • 构造一个简单的Linux系统
  • 跟踪调试Linux内核的启动过程

4.扒开系统调用的三层皮(上)

  • 用户态、内核态和中断处理过程
  • 系统调用概括
  • 使用库函数API获取系统当前时间
  • 使用C代码中嵌入汇编代码触发系统调用获取系统当前时间

5.扒开应用系统的三层皮(下)

  • 给MenuOS增加time和time-asm命令
  • 使用gdb跟踪系统调用内核函数sys_time
  • 系统调用在内核代码中的工作机制和初始化
系统调用在内核代码中的工作机制和初始化,简化后便于理解的system_call伪代码,简单浏览system_call和iret之间的主要代码。

6.进程的描述和进程的创建

  • 进程的描述
  • 进程的创建
进程的创建概览及fork一个进程的用户态代码
理解进程创建过程复杂代码的方法
浏览进程创建过程相关的关键代码
使用gdb跟踪创建新进程的过程

7.可执行程序的装载

(一)预处理、编译、链接和目标文件的格式

1.可执行程序是怎么得来的

2.目标文件的格式ELF 

3.静态链接的ELF可执行文件和进程的地址空间

(二)可执行程序、共享库和动态加载

1.装载可执行程序之前的工作

2.装载时动态链接和运行时动态链接应用举例

(三)可执行程序的装载

1.可执行程序的装载相关关键问题分析

2.sys_execve的内部处理过程

3.使用gdb跟踪sys_execve内核函数的处理过程

4.可执行程序的装载与庄生梦蝶的故事

5.浅析动态链接的可执行程序的装载

8.进程的切换和系统的一般执行过程

(一)进程切换的关键代码switch_to分析

1.进程进度与进程调度的时机分析

2.进程上下文切换相关代码分析

(二)Linux系统的一般执行过程

1.Linux系统的一般执行过程分析

2.Linux系统执行过程中的几个特殊情况

(三)Linux系统架构和执行过程概览

1.Linux操作系统架构概览

2.最简单也是最复杂的操作——执行ls操作

3.从CPU和内存的角度看Linux系统的执行

心得与体会以及遗憾

本学期学了LINUX内核分析与设计最大的感受我觉得可以分为以下四点来说

1、拥有了每周定时学习的习惯,以前的学习大多数为突击式学习, 快到考试或者快到测试才突然学习,但是本门课不允许这种行为,每周要看视频,做实验,以及小测,根本不可能堆积在一下做完,也不可能理解好知识,只有每天学习一点,慢慢理解,才能将一周的内容理解完全。

2、第二点就是动手操作能力得到了提高,以前的大多数课程都是学习书本上的知识,但是这门课学到了许多操作的知识,例如用gdb调试程序,可以让我们理解程序的堆栈变化,以及各个函数之间的调用情况。

3、第三点就是养成了写笔记的习惯,每周的博客,以及读书笔记,让我养成了将重要的知识点记下来的习惯,不一定要写在博客上,但是总结成几个小点是十分有用的解决方式。

4、第四点也是最重要的一点就是学会了自己动手解决问题,以前碰到问题,大多数都是放弃,或者是等着老师讲,但是每周实验,让我们必须要自己去解决,要么需要去百度,或者请教同学或者老师,然后解决了问题的那种成就感,也是以前从未有过的体验。

遗憾之处

遗憾之处总的来说可以概括为两点

对老师不要求的问题没有深入研究,每次实验或者视频,老师都会讲到一些比较高深的东西,这些东西不理解,或者说在百度上也没有明确解释的时候,往往就不了了之,没有想办法再去深究,这也是我以后需要加强的地方。

还有一个遗憾之处就是对这门课还没有一个明确的系统,感觉理解的知识点都是分散的,没有整合在一起,用一条线串起来,但是相信在日后的学习中我能够克服这些问题,更加好的投入未来的学习中。

参考资料

  • 360百科LINUX内核讲解
  • cindy_忻博客

期末总结20135320赵瀚青LINUX内核分析与设计期末总结的更多相关文章

  1. 20135320赵瀚青LINUX内核分析第一周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.概述 第一周的学习内容主 ...

  2. 三20135320赵瀚青LINUX内核分析第二周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.计算机的三个法宝 存储程 ...

  3. 20135320赵瀚青LINUX内核分析第三周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 本周是学习的主要是构造 ...

  4. 20135320赵瀚青LINUX内核分析第四周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 本周的内容主要是讲解系 ...

  5. 20135320赵瀚青LINUX第八周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 本周学习的是linux ...

  6. 20135320赵瀚青LINUX第七周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 本周学习的内容主要是讨 ...

  7. 20135320赵瀚青LINUX第五周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 按照刘老师的周从三个角 ...

  8. 20135320赵瀚青LINUX第六周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 这周主要讲解的是进程. ...

  9. 期末总结:LINUX内核分析与设计期末总结

    朱国庆原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一,心得体会 关于网上听课这 ...

随机推荐

  1. 原来 CSS 与 JS 是这样阻塞 DOM 解析和渲染的

    hello~各位亲爱的看官老爷们大家好.估计大家都听过,尽量将CSS放头部,JS放底部,这样可以提高页面的性能.然而,为什么呢?大家有考虑过么?很长一段时间,我都是知其然而不知其所以然,强行背下来应付 ...

  2. 图片上传根据stream生成image

    对于图片上传代码的整合 因为需要判断上传的图片的宽高是否符合尺寸,所以在最初拿到inputstream的时候,就直接获取image格式的图片 本来是想在下面的checkFile中获取的,不过直接使用S ...

  3. CSS写表格

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content_Type" content ...

  4. 关于线上js报错问题的思考

    1.有没有可能对线上报错进行实时监控,只要线上报错出现就会以邮件的形式发出来. 2.有没有可能将每个模块和开发者联系起来,只要报错就直接报给开发者

  5. java中得到文件MIME类型的几种方法(转)

     本文转载自:http://hotsunshine.iteye.com/blog/857485 使用 javax.activation.MimetypesFileTypeMap 需要引入activat ...

  6. EUI组件之DataGroup

    看官网教程,这个没法单独用. http://developer.egret.com/cn/github/egret-docs/extension/EUI/dataCollection/dataGrou ...

  7. js中的颜色对应的常量代码code

    颜色的对照表 颜色 英文代码 形像颜色 HEX格式 RGB格式   LightPink 浅粉红 #FFB6C1 255,182,193   Pink 粉红 #FFC0CB 255,192,203   ...

  8. 理论实践:循序渐进理解AWR细致入微分析性能报告

    1. AWR 概述 Automatic Workload Repository(AWR) 是10g引入的一个重要组件.在里面存贮着近期一段时间内(默认是7天)数据库活动状态的详细信息. AWR 报告是 ...

  9. 模拟百度云盘版的ftp

    思路:一.分两个大的文件夹,一个是客户端,一个服务端的 二.实现的功能 1.    登陆--对用户名的合法性进行检测(实验账户:alex,123)                注册--设置账户,其中 ...

  10. BBS - 文章评论

    一.文章评论 <div class="comment_region"> <div class="row"> <div class= ...