WY – 庖丁解牛Linux内核
课程介绍:
本课程从理解计算机硬件的核心工作机制(存储程序计算机和函数调用堆栈)和用户态程序如何通过系统调用陷入内核(中断异常)入手,通过上下两个方向双向夹击的策略,并利用实际可运行程序的反汇编代码从实践的角度理解操作系统内核,然后开始分析Linux内核源代码,从系统调用陷入内核,进程调度与进程切换,最后返回到用户态进程,通过仔细分析梳理这一过程,并推广到硬件中断、缺页异常等内核执行路径,最终能从本质上把握Linux内核的实质,乃至在头脑中演绎Linux系统的运行过程。
课程大纲
第一周:计算机是如何工作的?
- 存储程序计算机工作模型
- 32位X86汇编基础
- 反汇编一个简单的C程序
- 【测验】X86汇编基础测验
- 【作业】通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
第二周:操作系统是如何工作的?
- 计算机是如何工作的?(续)——函数调用堆栈
- 利用mykernel实验模拟计算机硬件平台
- 在mykernel基础上构造一个简单的操作系统内核
- 【测验】函数调用堆栈与mykernel实验基础测试
- 【作业】完成一个简单的时间片轮转多道程序内核代码
第三周:构造一个简单的Linux系统MenuOS
- Linux内核源代码导读
- 构造一个简单的Linux系统
- 跟踪调试Linux内核的启动过程
- 【测验】第三周单元测验
- 【作业】跟踪分析Linux内核的启动过程
第四周:扒开系统调用的三层皮(上)
- 用户态、内核态和中断
- 系统调用概述
- C代码中嵌入汇编代码的写法
- 使用库函数API和C代码中嵌入汇编代码触发同一个系统调用
- 【测验】Linux系统调用单元测试
- 【作业】使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
第五周:扒开系统调用的三层皮(下)
- 给MenuOS增加time和time-asm命令
- 使用gdb跟踪系统调用内核函数sys_time
- 系统调用在内核代码中的处理过程
- 【测验】Linux系统调用单元测试(二)
- 【作业】分析system_call中断处理过程
第六周:进程的描述和进程的创建
- 进程的描述task_struct
- 进程的创建fork
- 【测验】进程描述与创建单元测试
- 【作业】分析Linux内核创建一个新进程的过程
第七周:可执行程序的装载
- 预处理、编译、链接和目标文件的格式
- 可执行程序、共享库和动态链接
- 可执行程序的装载
- 【测验】可执行程序装载单元测试
- 【作业】分析Linux内核如何装载和启动一个可执行程序
第八周:进程的切换和系统的一般执行过程
- 进程切换的关键代码switch_to分析
- Linux系统的一般执行过程
- Linux系统架构和执行过程概览
- 【测验】进程切换和系统执行过程测试
- 【作业】理解进程调度时机跟踪分析进程调度与进程切换的过程
?课程推荐:
1、《 SpringBoot 2.x 实战仿B站高性能后端项目 》百度网盘
2、《 SpringBoot+Vue3 项目实战,打造企业级在线办公系统 》 百度网盘
3、《 【升级版】Spring Cloud+Vue前后端分离开发企业级在线视频系统 》 百度网盘
4、《 Java从初级到高级的进阶面试线路图 特惠套餐 》 百度网盘
加客服微信,下载多套有优惠哦。