Linux内核深度解析-中科大孟宁

如何掌握Linux内核核心机制?中科大孟宁教授深度解析


如何掌握Linux内核核心机制?中科大孟宁教授深度解析

1. 课程核心价值解析

中国科学技术大学孟宁教授的《Linux内核深度解析》,通过系统调用、进程管理、程序装载三大核心模块,揭开操作系统底层运行机制。课程特色在于:

- 实践导向:从C语言嵌入汇编到MenuOS系统构建,全程结合代码实操

- 深度追踪:使用gdb跟踪sys_time等内核函数,直观呈现中断处理过程

- 体系化认知:覆盖X86汇编基础→存储程序模型→进程切换的全知识链条

2. 讲师权威背景

孟宁教授作为中科大计算机系资深研究者,其教学具有显著优势:

- 学术研究聚焦操作系统安全与虚拟化技术

- 授课风格深入浅出,擅长用"三层皮"等比喻解析复杂概念

- 课程内容经过企业级项目验证,曾指导多家科技公司内核开发团队

3. 关键知识模块拆解

系统调用机制

- 三层皮理论:API→中断→内核函数的完整调用链

- 对比实验:库函数API汇编嵌入代码两种触发方式

- 关键跟踪技术:gdb调试sys_time内核函数全流程

进程管理核心

- task_struct数据结构深度剖析

- fork创建进程的4个关键阶段及执行起点分析

- 进程切换的switch_to代码与上下文保存机制

可执行程序装载

- ELF文件格式与动态链接原理

- sys_execve内核处理过程的3层跳转

- 从庄生梦蝶故事理解进程地址空间映射

4. 独特学习方法

课程采用"逆向工程"式教学

1. 通过mykernel实验模拟硬件平台

2. 构建精简操作系统内核(含时钟中断模拟)

3. 用MenuOS系统验证理论,所见即所得

5. 适合哪些学习者

- 需突破技术瓶颈的嵌入式开发工程师

- 希望理解Linux调度机制的运维人员

- 计算机专业考研/深造需强化内核知识的学子

这套课程的价值在于将抽象的内核机制转化为可验证的代码实践,从X86汇编基础到进程调度全景,构建完整的操作系统认知体系。通过20+个关键实验演示,让学习者真正掌握Linux内核的"造血机制"。

资源下载通道

夸克网盘分享
文件大小:2.34 GB

资源目录列表:

├─Linux内核分析-中国科学技术大学-孟宁
│  ├─扒开系统调用的三层皮(上)
│  │  ├─使用库函数API和C代码中嵌入汇编代码触发同一个系统调用
│  │  │  ├─0使用库函数API获取系统当前时间.mp4
│  │  │  ├─1C代码中嵌入汇编代码的写法(复习可跳过).mp4
│  │  │  ├─2使用C代码中嵌入汇编代码触发系统调用获取系统当前时间.mp4
│  │  ├─系统调用概述
│  │  │  ├─0系统调用概述和系统调用的三层皮.mp4
│  │  ├─用户态、内核态和中断
│  │  │  ├─0用户态、内核态和中断处理过程.mp4
│  ├─扒开系统调用的三层皮(下)
│  │  ├─给MenuOS增加time和time-asm命令
│  │  │  ├─0给MenuOS增加time和time-asm命令.mp4
│  │  ├─使用gdb跟踪系统调用内核函数sys_time
│  │  │  ├─0使用gdb跟踪系统调用内核函数sys_time.mp4
│  │  ├─系统调用在内核代码中的处理过程
│  │  │  ├─0系统调用在内核代码中的工作机制和初始化.mp4
│  │  │  ├─1简化后便于理解的system_call伪代码.mp4
│  │  │  ├─2简单浏览system_call到iret之间的主要代码.mp4
│  ├─操作系统是如何工作的?
│  │  ├─函数调用堆栈
│  │  │  ├─0三个法宝.mp4
│  │  │  ├─1深入理解函数调用堆栈.mp4
│  │  │  ├─2参数传递与局部变量.mp4
│  │  ├─借助Linux内核部分源代码模拟存储程序计算机工作模型及时钟中断
│  │  │  ├─0mykernel实验背后涉及的思想.mp4
│  │  │  ├─1利用mykernel实验模拟计算机硬件平台.mp4
│  │  ├─在mykernel基础上构造一个简单的操作系统内核
│  │  │  ├─0C代码中嵌入汇编代码的写法.mp4
│  │  │  ├─1一个简单的操作系统内核源代码.mp4
│  │  │  ├─2运行这个精简的操作系统内核.mp4
│  ├─构造一个简单的Linux系统MenuOS
│  │  ├─Linux内核源代码简介
│  │  │  ├─0Linux内核源代码.mp4
│  │  ├─跟踪调试Linux内核的启动过程
│  │  │  ├─0使用gdb跟踪调试Linux内核的方法.mp4
│  │  │  ├─1简单分析一下start_kernel.mp4
│  │  ├─构造一个简单的Linux系统
│  │  │  ├─0构造一个简单的Linux系统MenuOS.mp4
│  ├─计算机是如何工作的?
│  │  ├─X86汇编基础
│  │  │  ├─0X86Registers.mp4
│  │  │  ├─1X86汇编指令一(mov指令及几种内存寻址方式).mp4
│  │  │  ├─2X86汇编指令二(push、pop、call、ret).mp4
│  │  │  ├─3分析几个汇编指令片段(一).mp4
│  │  │  ├─4分析几个汇编指令片段(二).mp4
│  │  ├─存储程序计算机工作模型
│  │  │  ├─0什么是冯诺依曼体系结构?.mp4
│  │  ├─汇编一个简单的C程序分析其汇编指令执行过程
│  │  │  ├─0汇编一个简单的C程序.mp4
│  │  │  ├─1C程序和对应的汇编指令.mp4
│  │  │  ├─2完整汇编程序执行过程分析.mp4
│  ├─进程的描述和进程的创建
│  │  ├─进程的创建
│  │  │  ├─0进程的创建概览及fork一个进程的用户态代码.mp4
│  │  │  ├─1理解进程创建过程复杂代码的方法.mp4
│  │  │  ├─2浏览进程创建过程相关的关键代码.mp4
│  │  │  ├─3创建的新进程是从哪里开始执行的?.mp4
│  │  │  ├─4使用gdb跟踪创建新进程的过程.mp4
│  │  ├─进程的描述
│  │  │  ├─0进程描述符task_struct数据结构(一).mp4
│  │  │  ├─1进程描述符task_struct数据结构(二).mp4
│  ├─进程的切换和系统的一般执行过程
│  │  ├─Linux系统的一般执行过程
│  │  │  ├─0Linux系统的一般执行过程分析.mp4
│  │  │  ├─1Linux系统执行过程中的几个特殊情况.mp4
│  │  │  ├─2内核与舞女.mp4
│  │  ├─Linux系统架构和执行过程概览
│  │  │  ├─0Linux操作系统架构概览.mp4
│  │  │  ├─1最简单也是最复杂的操作——执行ls命令.mp4
│  │  │  ├─2从CPU和内存的角度看Linux系统的执行.mp4
│  │  ├─进程切换的关键代码switch_to分析
│  │  │  ├─0进程调度与进程调度的时机分析.mp4
│  │  │  ├─1进程上下文切换相关代码分析.mp4
│  ├─可执行程序的装载
│  │  ├─可执行程序、共享库和动态链接
│  │  │  ├─0装载可执行程序之前的工作.mp4
│  │  │  ├─1装载时动态链接和运行时动态链接应用举例.mp4
│  │  ├─可执行程序的装载
│  │  │  ├─0可执行程序的装载相关关键问题分析.mp4
│  │  │  ├─1sys_execve的内部处理过程.mp4
│  │  │  ├─2使用gdb跟踪sys_execve内核函数的处理过程.mp4
│  │  │  ├─3可执行程序的装载与庄生梦蝶的故事.mp4
│  │  │  ├─4浅析动态链接的可执行程序的装载.mp4
│  │  ├─预处理、编译、链接和目标文件的格式
│  │  │  ├─0可执行程序是怎么得来的?.mp4
│  │  │  ├─1目标文件的格式ELF.mp4
│  │  │  ├─2静态链接的ELF可执行文件和进程的地址空间.mp4
│  ├─Docs(+rr)[07F172D6].rar
│  ├─课程封面图-Linux内核分析.png
│  ├─课程简介-Linux内核分析.mp4
│  ├─课程介绍及抓取说明.txt
│  ├─课程目录-Linux内核分析.jpg
│  ├─免责声明.txt
│  ├─抓取档目录结构.txt
立 即 下 载

相关资源

发表评论

点 击 提 交