Linux内核学习-阶段小结

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

一、历史博文目录

 

1、简单C程序运行过程分析(反汇编)

第一篇博文,主要是汇编代码进行运行过程分析,详细分析了内存堆栈变化,重在复习汇编基础知识

2、精简内核–mykernel的运行机制简单分析

简单分析精简版的内核mykernel,概致了解内核运行的基本情况

3、Linux内核启动代码简析

分析了linux内核启动的相关情况,比如各种资源初始化、进程环境准备过程,但是没有涉及到bootloader

4、Linux系统调用初探(一)

大概了解linux系统调用的使用方式,通过C语言API和汇编代码系统中断两种方式使用同一个系统调用

5、Linux系统调用初探(二)

详细分析系统调用的细节过程

6、Linux进程创建过程简析

详细分析fork等系统调用的底层实现以及task_struct等结构体的内容

7、Linux可执行程序的编译、装载与启动过程简析

这里主要讲了可执行程序的装载以及启动过程,内容有点多

8、Linux进程调度过程简单分析

这里是进程调度相关知识,相对来说博主整理的内容有点少

二、个人学习心得

 

曾经感觉高高在上的“Linux内核”相关知识也算是学过了,现在不知道说什么好了。。。

1、一些收获

1)了解了linux启动过程的细节,对于init等初始化程序有了更深的理解。现在正纠结于在机器上使用sysvinit还是systemd,感觉还是sysvinit吧,毕竟简单,个人认为服务器没必要追求那几秒钟的启动速度却丧失了简单的逻辑。(吐槽下,我的机器用systemd之后启动速度丝毫没有变化,当时就换回了sysvinit)

2)对于linux进程的创建以及切换有了一定的认识,虽然没有仔细学习调度算法,但是慢慢来吧,以后继续学习。

3)对于x86架构下linux底层硬件操作了解地更深了,因为自己也在看其他内核相关书籍,所以现在对于linux整个的系统运行过程有了一定的认识。

4)学习到很多有关可执行程序的结构、运行方面的知识,为了我以后学习linux二进制安全打了基础。

5)有了linux内核调试经验。老师使用qemu进行调试确实简单易行,比起身边一个学长通过vmware进行调试方便多了。

2、不足之处

1)对于系统启动阶段的bootloader了解还是太少,虽然bootloader也并不复杂,但是还没有分析过源码一直是个遗憾,以后有机会一定要研究一下。

2)进程调度算法也挺重要的,以后需要补充知识。

3)关于系统资源分配的各种锁还是知之甚少,这个是非常重要的,下学期学操作系统的时候一定认真挺一下。

好了,终于都over了,但是好像没有预想地那么happy。。。

发表评论

电子邮件地址不会被公开。 必填项已用*标注