主要内容主要用来记载Pwn、IoT、Car和Linux&&Win内核等相关内容。
说明1. 侧边栏没有超链接的直接在博客搜名字即可。
2. 侧边栏我添加的内容并不及时。
其他的记录一些琐碎。
不要急功近利,心急浮躁,潜下心来默默钻研,学习,记录,每天进步一点。
看懂了,不等于你会了。
第14章 EEVDF 调度器详解
基于 Linux 6.12.38 源码分析
14.1 EEVDF 算法概述14.1.1 从 CFS 到 EEVDFCFS (Completely Fair Scheduler) 的问题:
基于 vruntime 的红黑树调度
无法保证任务的响应时间上限
长睡眠任务唤醒后可能获得过长的执行时间
EEVDF (Earliest Eligible Virt...
第13章 CFS 完全公平调度器详解
基于 Linux 6.12.38 源码分析
13.1 CFS 设计理念13.1.1 完全公平的概念传统调度器的问题:
基于时间片的调度器需要维护复杂的时间片计算
优先级静态,无法动态调整
进程数增多时时间片变短,上下文切换开销增大
CFS 的解决方案:
没有传统意义上的时间片概念
基于虚拟运行时间 (vruntime) 进行调度
vruntim...
第12章 进程调试与监控
基于 Linux 6.12.38 源码分析
12.1 ptrace 机制12.1.1 ptrace 概述定义: ptrace 是 Linux 提供的进程跟踪机制,允许一个进程观察和控制另一个进程的执行。
用途:
调试器 (gdb)
系统调用追踪 (strace)
进程监控
12.1.2 ptrace 系统调用位置: kernel/ptrace.c
12345...
第11章 进程资源限制与统计
基于 Linux 6.12.38 源码分析
11.1 资源限制 (rlimit)11.1.1 rlimit 结构位置: include/linux/sched.h
123456789struct task_struct { struct rlimit rlim[RLIM_NLIMITS];};// include/linux/res...
第10章 实时进程管理
基于 Linux 6.12.38 源码分析
10.1 实时调度策略10.1.1 调度策略类型位置: include/uapi/linux/sched.h
12345678910/* * 调度策略定义 */#define SCHED_NORMAL 0 /* 普通分时进程 (CFS) */#define SCHED_FIFO 1 /* 先进先出...
第9章 进程关系与组管理
基于 Linux 6.12.38 源码分析
9.1 进程树结构9.1.1 task_struct 中的关系字段位置: include/linux/sched.h
1234567891011121314struct task_struct { // 进程关系 struct task_struct __rcu *real_parent; ...
第8章 内核线程
基于 Linux 6.12.38 源码分析
8.1 内核线程概述8.1.1 特点内核线程是运行在内核空间的特殊进程:
没有用户地址空间:mm 为 NULL
运行在内核态:只能在内核空间执行
不访问用户空间:不能直接访问用户内存
直接访问内核数据:可以使用所有内核函数和数据结构
8.1.2 与用户进程对比
特性
用户进程
内核线程
地址空间
独立的用户空间
...
第7章 进程退出与等待
基于 Linux 6.12.38 源码分析
7.1 进程退出7.1.1 do_exit() 函数位置: kernel/exit.c:do_exit()
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758...
第6章 进程状态与转换
基于 Linux 6.12.38 源码分析
6.1 进程状态定义6.1.1 状态列表位置: include/linux/sched.h:99
123456789101112131415161718192021/* Used in tsk->__state: */#define TASK_RUNNING 0x00000000#define ...