Linux内核学习总结

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

1. 课程博文列表

  1. 从一个简单的C语言程序分析计算机程序工作过程
  2. 从mykernel分析linux任务调度
  3. 利用GDB跟踪分析linux内核启动
  4. 一个简单系统调用用例分析
  5. 通过系统调用分析system_call中断处理过程
  6. Linux内核创建一个新进程的过程
  7. Linux内核如何装载和启动一个可执行程序
  8. 进程调度时机跟踪分析进程调度与进程切换的过程

2. 课程内容总结

程序的创建、调度是操作系统的一个重点中,也和程序员相关。在这次课程中,也重点讲解了这一部分。

比较鸡蛋变成小鸡,发现它们是多么相似呀

2.1 孵化前

鸡蛋在孵化前是一个圆型的物体,但是它具体了相应的特点,从外型上看,它有蛋壳、有蛋清。 从里面的内容看,它包含了小鸡的DNA特性值,这只小鸡是黑色还是白色,是活泼还是懒惰小鸡。也在鸡蛋中定义了
与鸡蛋类似,并不是所有的文件都可以变成进程,它需要满足变成进程的一些特点。而符合这些特点的文件,我们把它称为ELF文件(对于shell文件、class之类的文件暂不讨论)。而在这些文件中,它也会有它自己的结构。
Linux内核学习总结_第1张图片

2.2 孵化中

鸡妈妈在孵化小鸡前,首先会找到一个鸡窝,鸡妈妈就会将放在这个鸡窝上面的鸡蛋全部变成小鸡。小鸡出来了,但是小鸡还是不会干活,鸡妈妈还要每天辛辛苦苦带着小鸡做游戏(虽然鸡妈妈可能是心甘情愿),等小鸡最后变成一个完全独立的大鸡。
相比之下,操作系统就牛B了,父进程估计不想等子进程长大,首先自己克隆一个自己作为子进程,先把自己拷贝一份再说,然后,再调用exec()之样的函数来实现差异性,加载ELF文件。 在加载之后, 父进程也会和鸡妈妈一样选择一个合适的加载器(静态文件与动态文件就是有差异的。),加载完成之后,子进程就变成了一个独立的,有自己个性的活动进程了。

2.3 孵化完成

小鸡长成大鸡之后,就会有自己的工作。当太阳出来的时候,属于它们的时间片终于到来了,鸡们会回他们自己的工作,打鸣的打鸣, 下蛋的下蛋,变成一个个活动鸡, 当太阳下山的时候,它们时间片用完了,就开始睡觉,此时就变成了一个休眠鸡。
相比之下,进程之间的工作状态就会比较复杂。
Linux内核学习总结_第2张图片
但是一般来说,多数情况下的进程调度是采用了CPU的时间调度。
这里写图片描述

3. 总结

一直以来都感觉操作系统很神秘,也一直想揭开这个神密的面纱。 这次有机会跟随着孟宁老师的步伐,去学习了解linux,收获很大。最大的收获就是:linux的代码很复杂,但是也是可以读懂的,也是有方法理解的。 后面再去阅读linux的代码,也不会象以前那样子,一下把自己淹死在茫茫的代码中。

你可能感兴趣的:(Linux内核学习总结)