庖丁解牛Linux内核
在线播放
课程目录
1 1 1 什么是冯诺依曼体系结构?
1 2 1 X86 Registers
1 2 2 X86汇编指令一(mov指令及几种内存寻址方式)
1 2 3 X86汇编指令二(push、pop、call、ret)
1 2 4 分析几个汇编指令片段(一)
1 2 5 分析几个汇编指令片段(二)
1 3 1 反汇编一个简单的C程序
1 3 2 C程序和对应的汇编指令
1 3 3 完整汇编程序执行过程分析
2 1 1 三个法宝
2 1 2 深入理解函数调用堆栈
2 1 3 参数传递与局部变量
2 2 1 mykernel实验背后涉及的思想
2 2 2 利用mykernel实验模拟计算机硬件平台
2 3 1 C代码中嵌入汇编代码的写法
2 3 2 一个简单的操作系统内核源代码
2 3 3 运行这个精简的操作系统内核
3 1 1 Linux内核源代码
3 2 1 构造一个简单的Linux系统MenuOS
3 3 1 使用gdb跟踪调试Linux内核的方法
3 3 2 简单分析一下start kernel
4 1 1 用户态、内核态和中断处理过程
4 2 1 系统调用概述和系统调用的三层皮
4 3 1 使用库函数API获取系统当前时间
4 3 2 使用C代码中嵌入汇编代码触发系统调用获取系统当前时间
5 1 1 给MenuOS增加time和time asm命令
5 2 1 使用gdb跟踪系统调用内核函数sys time
5 3 1 系统调用在内核代码中的工作机制和初始化
5 3 2 简化后便于理解的system call伪代码
5 3 3 简单浏览system call到iret之间的主要代码
6 1 1 进程描述符task struct数据结构(一)
6 1 2 进程描述符task struct数据结构二)
6 2 1 进程的创建概览及fork一个进程的用户态代码
6 2 2 理解进程创建过程复杂代码的方法
6 2 3 浏览进程创建过程相关的关键代码
6 2 4 创建的新进程是从哪里开始执行的?
6 2 5 使用gdb跟踪创建新进程的过程
7 1 1 可执行程序是怎么得来的?
7 1 2 目标文件的格式ELF
7 1 3 静态链接的ELF可执行文件和进程的地址空间
7 2 1 装载可执行程序之前的工作
7 2 2 装载时动态链接和运行时动态链接应用举例
7 3 1 可执行程序的装载相关关键问题分析
7 3 2 sys execve的内部处理过程
7 3 3 使用gdb跟踪sys execve内核函数的处理过程
7 3 4 可执行程序的装载与庄生梦蝶的故事
7 3 5 浅析动态链接的可执行程序的装载
8 1 1 进程调度与进程调度的时机分析
8 1 2 进程上下文切换相关代码分析
8 2 1 Linux系统的一般执行过程分析
8 2 2 Linux系统执行过程中的几个特殊情况
8 2 3 内核与舞女
9 1 Linux操作系统架构概览
9 2 最简单也是最复杂的操作——执行ls命令
9 3 从CPU和内存的角度看Linux系统的执行
最后更新于