![](https://img-blog.csdnimg.cn/656919340e2c42ca97f0373cc3cd2a92.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux内核学习
文章平均质量分 92
记录Linux内核相关书籍以及源码的阅读笔记与总结
jiang_T
无无无
展开
-
[Linux内核源码阅读笔记] 4 物理内存的管理
文章目录1 物理内存的管理1.1 页表虚拟地址分解页表分析页表项的附加信息1.2 TLB的管理1.3 伙伴系统(页分配器)伙伴系统的基础伙伴系统的分区域管理区域水线1.4 slab块分配器基本原理编程接口通用内存缓存的编程接口针对特定对象类型的内存缓存的编程接口内存缓存的数据结构slab实现分配特定对象缓存slab分配通用缓存slab着色slab内存回收改进的块分配器1.5 不连续页分配器编程接口数据结构1 物理内存的管理1.1 页表页表用于记录虚拟地址到物理地址的一一映射关系。每一个页表项除了存放物原创 2021-11-18 22:03:27 · 690 阅读 · 0 评论 -
[Linux内核源码阅读笔记] 3 内存管理基础
文章目录虚拟地址空间1 内存管理子系统1.1 物理层面1.2 内核层面1.3 用户层面2 物理内存以及内核空间虚拟内存的管理2.1 页表的工作原理2.2 TLB的管理2.3 伙伴系统2.4 Slab/Slub/Slob块分配器2.5 不连续页分配器3 用户空间虚拟内存的管理3.1 用户虚拟地址空间的布局3.2 内存映射的实现3.3 堆的管理4 关于缺页异常5 用户空间与内核空间的数据拷贝补充:物理内存的组织结构虚拟地址空间虚拟地址的引入使得一个进程所能使用的最大地址空间与实际可用的物理内存数量无关。也就原创 2021-11-18 22:02:35 · 1227 阅读 · 0 评论 -
[Linux内核源码阅读笔记] 2 调度机制详解
注:使用内核源码版本4.12文章目录1 调度器的实现1.1 核心调度器周期性调度器(scheduler_tick)主调度器(schedule)1.2 调度类运行队列调度实体1) stop_sched_class 停机调度类2) dl_sched_class 限期调度类3) rt_sched_class 实时调度类实时调度类实现简析a) 队列操作b) 实时调度类在周期性调度器中的 task_tick4) fair_sched_class 公平调度类CFS调度实现简析a) 虚拟运行时间b) 队列操作c) 公原创 2021-11-06 02:28:12 · 1425 阅读 · 0 评论 -
[Linux内核源码阅读笔记] 1 进程管理的基本原理
注:本文所用源码版本4.12文章目录1 进程四要素task_struct 结构体2 进程的创建创建进程的系统调用写时复制3 进程的状态迁移4 调度策略及优先级调度策略优先级优先级计算的源码分析一点补充优先级反转与优先级继承1 进程四要素Linux内核把进程称为任务(task),线程是进程的特殊形式,包括内核线程和用户线程,共享同一个用户虚拟地址空间的所有用户线程组成一个线程组。同一个线程组的所有线程必须属于相同的用户命名空间和进程号命名空间。关于命名空间可以参考这篇。Linux进程四要素:进程执原创 2021-11-05 02:47:32 · 466 阅读 · 0 评论 -
[Linux内核源码阅读笔记] 页式内存管理
注:源码版本3.4.2,参考《Linux内核源码情景分析》页式内存管理页式内存管理的思路是:通过页目录和页表项分两个层次实现从线性地址(虚拟地址空间)到物理地址的映射,这样采用多级页表的映射方式在多数情况下能够减少存储页表项所需的内存空间。二级页表映射示意图:对于32位的系统采用两级映射是比较合理的,对于64位的系统则应采用3级映射三级页表映射示意图:内核空间和用户空间一个32位系统存在4G的虚拟地址空间,它被分为两部分,地址较低的3G空间用作用户空间,而地址较高的1G用作内核空间。原创 2021-11-02 17:02:09 · 210 阅读 · 0 评论