课程介绍:
本课程从理解计算机硬件的核心工作机制(存储程序计算机和函数调用堆栈)和用户态程序如何通过系统调用陷入内核(中断异常)入手,通过上下两个方向双向夹击的策略,并利用实际可运行程序的反汇编代码从实践的角度理解操作系统内核,然后开始分析Linux内核源代码,从系统调用陷入内核,进程调度与进程切换,最后返回到用户态进程,通过仔细分析梳理这一过程,并推广到硬件中断、缺页异常等内核执行路径,最终能从本质上把握Linux内核的实质,乃至在头脑中演绎Linux系统的运行过程。
课程内容:
〖课程目录〗:
- | └──4、庖丁解牛Linux内核分析
- | | ├──1, 计算机是如何工作的?
- | | | ├──1, 存储程序计算机工作模型
- | | | ├──2, X86汇编基础
- | | | ├──3, 反汇编一个简单的C程序分析其汇编指令执行过程
- | | | ├──测试题
- | | | └──作业.docx 14.42kb
- | | ├──2, 操作系统是如何工作的?
- | | | ├──1, 计算机是如何工作的?(续)——函数调用堆栈
- | | | ├──2, 利用mykernel实验模拟计算机硬件平台
- | | | ├──3, 在mykernel基础上构造一个简单的操作系统内核
- | | | ├──测试题
- | | | └──作业.docx 14.64kb
- | | ├──3, 构造一个简单的Linux系统MenuOS
- | | | ├──1, Linux内核源代码简介
- | | | ├──2, 构造一个简单的Linux系统
- | | | ├──3, 跟踪调试Linux内核的启动过程
- | | | ├──测试题
- | | | └──作业.docx 15.74kb
- | | ├──4, 扒开系统调用的三层皮(上)
- | | | ├──1, 用户态、内核态和中断
- | | | ├──2, 系统调用概述
- | | | ├──3, 使用库函数API和C代码中嵌入汇编代码触发同一个系统调用
- | | | ├──测试题
- | | | └──作业.docx 13.87kb
- | | ├──5, 扒开系统调用的三层皮(下)
- | | | ├──1, 给MenuOS增加time和time-asm命令
- | | | ├──2, 使用gdb跟踪系统调用内核函数sys_time
- | | | ├──3, 系统调用在内核代码中的处理过程
- | | | ├──测试题
- | | | └──作业.docx 14.01kb
- | | ├──6, 进程的描述和进程的创建
- | | | ├──1, 进程的描述
- | | | ├──2, 进程的创建
- | | | ├──测试题
- | | | └──作业.docx 14.18kb
- | | ├──7, 可执行程序的装载
- | | | ├──1, 预处理、编译、链接和目标文件的格式
- | | | ├──2, 可执行程序、共享库和动态链接
- | | | ├──3, 可执行程序的装载
- | | | ├──测试题
- | | | └──作业.docx 14.20kb
- | | └──8, 进程的切换和系统的一般执行过程
- | | | ├──1, 进程切换的关键代码switch_to分析
- | | | ├──2, Linux系统的一般执行过程
- | | | ├──3, Linux系统架构和执行过程概览
- | | | ├──测试题
- | | | └──作业.docx 14.02kb
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。