Linux内核分析
一、知识概要
1. 计算机是如何工作的
- 存储程序计算机工作模型:冯诺依曼体系结构
- X86汇编基础
- 会变一个简单的C程序分析其汇编指令执行过程
2. 操作系统是如何工作的
- 函数调用堆栈
- 模拟存储程序计算机工作模型和时钟中断
- 在mykernel基础构建一个简单的操作系统
3.构造一个简单的Linux系统
- Linux内核源代码
- 构造一个简单的Linux系统
- 跟踪调试Linux内核的启动过程
4. 系统调用
- 用户态、内核态和中断
- 系统调用概述
- 使用库函数API和C代码中嵌入汇编代码触发同一个系统调用
- 给MenuOS增加time和time-asm命令
- 用gdb跟踪系统调用内核函数sys_time
- 系统调用在内核代码中的处理过程
5. 进程的描述和进程的创建
- 进程的描述
- 进程的创建
6. 可执行程序的装载
- 预处理、编译、链接和目标 文件的格式
- 可执行程序、共享库和动态链接
- 可执行程序的装载
7. 进程的切换和系统的一般执行过程
- 进程切换的关键代码switch_to的分析
- Linux系统的一般执行过程
- Linux系统架构和执行过程概览
二、链接汇总
第一周:计算机是如何工作的
第二周:操作系统是如何工作的
第三周:构造一个简单的Linux系统
第四周:扒开系统调用的三层皮(上)
第五周:扒开系统调用的三层皮(下)
第六周:进程的描述和进程的创建
第七周:可执行程序的装载
第八周:进程的切换和系统的一般执行过程
三、总结
经过了这几周的学习,我对Linux内核的构架和原理,有了一些初步的了解,明白了内核的工作流程。在今后的学习中,我将会更加努力,按照老师的教学思路,多多实践,争取将理论知识运用到实际中,深入理解Linux内核。
为了帮助自己理解孟老师的讲解内容,我在课下自学了《Linux内核设计与分析》,收获颇多。
在这几周的学习中,我最大的收获是从孟老师的教学中学会了从实践中学习和验证知识,找到了属于自己的学习方式,提高了自己的自学效率,学以致用。在此,十分感谢孟老师的教导。
最大的遗憾大概就是遗憾网课时间太短,没能在孟老师的教导下继续进一步去学习Linux更深入的知识。今后只能自学来深入学习Linux内核了。