知道美河 | 上传资料 | VIP申请 | 精品课程 | 资料搜索 | 问题反馈 | 会员手册 | 积分消费 | 积分充值 | 帐号保护
美河学习学习在线赞助VIP

美河学习在线(主站) eimhe.com

 找回密码
 建立账号
查看: 17617|回复: 15

炼数成金Linux内核探秘

[复制链接]
发表于 2019-8-22 21:16:22 | 显示全部楼层 |阅读模式
下载服务器:五号服务器---VIP资料下载八区\VIP专题教程专区
游客,如果您要查看本帖隐藏内容请回复

Linux Kernel 4.0 已经发布,更新补丁,不用重启了 ,基于Ksplice 技术实现

《linux内核探秘》课程简介:
本课程的内容很简单,分析透彻一个简单的文件系统,分析透彻一个设备驱动,
课后检验和作业也简单,学习者独立写一个简单文件系统,独立写一个设备驱动。
如果完成课程,达到课后目标,相信我,你已经超过了国内主流公司绝大多数人的内核水准。


课程大纲:
第1课前言(第一阶段:基础知识)
国内内核应用的现状
各大公司内核应用情况的介绍(百度、阿里、腾讯、IBM、intel、华为等)
国内普遍的内核应用模式和问题

内核在当前的主流应用
云计算和虚拟化中内核的应用
设备开发中驱动的开发
分布式系统应用:分布式文件系统,

如何学习内核
带着使用的目的学习内核,边学边用,学以致用
阅读和修改活着的代码,而非读书籍
以培养阅读代码的能力为主,而非具体知识的学习

内核基础层的范畴
内核基础层和应用层的划分逻辑
从代码量和应用模式理解应用层和基础层

学习方法和内容
切勿贪大求全,聚焦关键应用领域
奠定基础,循序渐进
兴趣是第一驱动力
本课程提出的学习方法和内容

第2课内核基础层数据结构(第一阶段:基础知识)
内核数据结构
双向链表
Hash链表
单向链表
红黑树
Radix树

内核同步机制
自旋锁
内核信号量
自旋锁和内核信号量的区别
原子变量
completion
每CPU变量
RCU无锁机制

第3课内核基础层提供的服务
内核中使用内存
Linux内存管理基础-伙伴系统和slab
从伙伴系统申请内存
从slab系统申请内存

内核中的任务调度
内核中进程调度的目的和应用范围
从例子程序学习进程调度
内核进程调度的几种方式

软中断和tasklet
软中断和中断的关系
内核缺省定义的软中断—BLOCK_SOFTIRQ、NET_TX_SOFTIRQ、NET_RX_SOFTIRQ
takslet

工作队列
可以被调度的工作队列
创建自己的工作队列

第4课(第二阶段:文件系统)
文件系统的基本概念
虚拟文件系统VFS
超级块
目录项dentry
索引节点inode
文件—和进程有关的概念

文件系统的架构
超级块在文件系统中的基础作用
Dentry—将文件组织为树状
Inode—文件的代表
文件—和进程有关的逻辑对象

从代码层次理解文件系统
写一个最简单文件系统
登记文件系统
文件系统申请自身的数据结构
文件系统创建目录和文件

第5课文件的打开过程

第6课sysfs文件系统(第二阶段:文件系统)
Sysfs—为设备服务的特殊文件系统
Sysfs的作用以及sysfs和dev目录、proc文件系统的区别
Sysfs文件系统的初始化
目录文件的创建
普通文件的创建

文件的打开过程
和普通文件打开过程的衔接
为文件创建inode结构
为dentry结构绑定属性
在文件中保存私有数据

文件的读写
读文件的过程分析
写文件的过程分析

为对象属性服务的Kobject结构
Kobject概念和作用
利用koject理解总线的注册

第7课文件系统的读写(第二阶段:文件系统)
文件系统的page cache机制
buffer I/O和direct I/O
块缓存和page cache
Page cache的管理
Page cache的状态

文件预读
预读的作用
预读机制的架构和算法

文件锁概念和应用
建议锁和强制锁
读锁和写锁

文件读过程代码分析
硬盘操作模式和文件读写的关系
文件同步操作和异步操作
页状态和读操作的关系
读操作的返回

文件写过程代码分析

第8课通用块层和scsi层(第二阶段:文件系统)
块设备队列
Scsi块设备队列
电梯算法和电梯对象
硬盘HBA抽象层

IO的顺序控制

IO调度算法
IO调度算法的架构
Noop调度算法
Deadline调度算法

IO的处理过程
IO插入队列的过程
IO出队列的过程
IO返回路径

第9课一个真实的文件系统ext2(第二阶段)
Ext2文件系统的布局
Ext2文件系统的目录树
Ext2文件系统的内容管理
Ext2文件系统的读写

第10课设备概念和架构(第三阶段)
设备概念和架构
设备的端口和设备内存
设备中断和DMA
总线对设备的扫描
设备驱动管理

理解PCI总线
Pci设备工作原理
Pci总线域
Pci资源管理
Pci配置空间设置和读取

PCI设备的扫描和发现
扫描系统0号总线
扫描总线上的pci设备
扫描多功能设备
扫描single设备
设备信息和属性

第11课字符设备和input
文件系统和设备的关系
代表设备的文件
字符设备和字符设备的缺省处理函数

Input设备注册
主从设备号
设备区间的登记
注册字符设备
打开input设备

Input设备的架构分析
注册input设备的驱动
设备和驱动的匹配方式
注册input设备

第12课platform总线
从驱动发现设备的过程
Q40kbd键盘驱动的初始化
注册platform驱动
将驱动注册到总线
驱动加载
遍历总线上的设备

从设备找到驱动的过程
注册设备和总线
注册设备的资源信息
添加设备对象

第13课块设备
块设备的架构
块设备、通用磁盘对象和队列
块设备和通用磁盘对象的绑定
块设备的队列和应用

块设备的创建和使用过程分析
块设备例子-nbd驱动初始化
为通用磁盘对象创建队列
通用磁盘对象加入系统

块设备文件系统
块设备文件系统的设计思路
块设备文件系统的初始化

块设备打开的过程
块设备对象
块设备的打开过程

Linux kernel.png

相关课程 Linux内核源码研读与实战演练Linux内核从原理到代码详解
发表于 2021-7-12 19:49:56 | 显示全部楼层
发表于 2022-11-18 10:59:56 | 显示全部楼层
发表于 2023-4-28 19:04:44 | 显示全部楼层
发表于 2023-4-28 21:24:49 | 显示全部楼层
发表于 2023-4-28 21:58:53 | 显示全部楼层
发表于 2023-4-29 18:40:46 | 显示全部楼层
发表于 2023-6-17 16:41:19 | 显示全部楼层
发表于 2023-7-25 22:32:17 | 显示全部楼层
发表于 2023-8-6 13:36:19 | 显示全部楼层
发表于 2023-11-22 00:04:57 | 显示全部楼层
发表于 2024-7-29 17:03:33 | 显示全部楼层
发表于 2025-1-10 08:40:21 | 显示全部楼层
发表于 2025-1-10 08:40:43 | 显示全部楼层
发表于 2025-1-10 09:01:19 | 显示全部楼层
发表于 2025-4-20 11:44:40 | 显示全部楼层
您需要登录后才可以回帖 登录 | 建立账号

本版积分规则

 
QQ在线咨询

QQ|小黑屋|手机版|Archiver|美河学习在线 ( 浙网备33020302000026号 )

GMT+8, 2025-5-2 21:06

Powered by Discuz!

© 2001-2025 eimhe.com.

快速回复 返回顶部 返回列表