在庞大的Linux内核源代码学习中,如何抓住主要线索和思路,如何让所学能够切实地应用起来,本课程主讲以自己20年来对Linux内核的研究和教学为基础,对所讲内容进行有效的归纳,以机制与策略分离为指导思想,对Linux内核的设计思想和数据结构进行分析,让大家在每一章学习后,通过编写Linux内核模块并分析源代码,引领大家进入Linux内核的大门。同时邀请内核专家谢宝友老师和一线工程师张天飞,分享多年企业一线的内核实战经验,让你在动手实践的同时,能够一以贯之,从理论到实践,从实践到理论,打通知识之间的脉络,掌握系统级软件设计的思路和方法。欢迎大家学习开源世界的顶级作品-Linux内核。
Overview
Syllabus
- 第1章 概述
- 1.1 Linux操作系统概述
- 1.2 Linux内核结构以及内核模块编程
- 1.3 Linux内核源码中的双链表结构
- 1.4 源码分析-内核中的哈希表
- 1.5 动手实践-Linux内核模块的插入和删除
- 第2章 内存寻址
- 2.1 内存管理之内存寻址
- 2.2 段机制
- 2.3分页机制
- 2.4 动手实践-把虚拟地址转换成物理地址
- 第3章 进程管理
- 3.1 进程概述
- 3.2 Linux进程创建
- 3.3 Linux进程调度
- 3.4 动手实践-打印进程描述符task_struct中的字段
- 3.5工程实践-基于内核模块的负载监控
- 第4章 内存管理
- 4.1 Linux内存管理机制
- 4.2 进程用户空间管理机制
- 4.3 物理内存分配与回收机制(上)
- 4.4 物理内存分配与回收机制(下)
- 4.5 动手实践-Linux内存映射基础(上)
- 4.6 动手实践-Linux内存映射实现(中)
- 4.7 动手实践-Linux内存映射测试(下)
- 4.8 初学者对内存管理的常见疑惑
- 第5章 中断
- 5.1 中断机制概述
- 5.2 中断处理机制
- 5.3 中断下半部处理机制
- 5.4 时钟中断机制
- 5.5 动手实践-中断上半部的代码分析及应用
- 5.6 动手实践-中断下半部的代码分析及应用
- 第6章 系统调用
- 6.1 Linux中的各种API
- 6.2 系统调用机制
- 6.3 动手实践-添加系统调用(系统调用日志收集系统)
- 第7章 内核同步
- 7.1 内核同步概述
- 7.2 内核同步机制
- 7.3 动手实践-内核多任务并发实例(上)
- 7.4 动手实践-内核多任务并发实例(下)
- 第8章 文件系统
- 8.1 虚拟文件系统的引入
- 8.2 虚拟文件系统的主要数据结构
- 8.3 文件系统中的各种缓存
- 8.4 页高速缓存机制以及读写
- 8.5 动手实践-编写一个文件系统(上)
- 8.6 动手实践-编写一个文件系统(中)
- 8.7 动手实践-编写一个文件系统(下)
- 第9章 设备驱动
- 9.1 设备驱动概述
- 9.2 I/O空间管理
- 9.3 设备驱动模型
- 9.4 字符设备驱动程序简介
- 9.5 块设备驱动程序简介
- 9.6 动手实践-编写字符设备驱动程序
- 9.7工程实践-编写块设备驱动的基础(上)
- 9.8 工程实践-块设备驱动程序分析(中)
- 9.9 工程实践-块设备驱动程序实现(下)
- 致谢与说明
- 致谢与说明
- 考试
- 直播视频:从Linux内核学习到自主操作系统研发
- 附录:实验代码、课件以及相关素材
Taught by
Xi’an University of Posts&Telecommunications