Boot #
内核设置栈段选择符到SS寄存器 32位系统调用过程 64位系统调用过程 Linux系统调用表
进程管理 #
TASK_KILLABLE 两种睡眠状态 根据oom_badness()函数来选择被杀的进程 task_struct中real_parent与parent这两个指针有何区别 CPU使用率公式 节拍率HZ 进程组和会话 硬中断与软中断 查看软中断和内核线程 进程初始化后栈的结构 向进程发送一个信号 进程切换时load_sp0的原理
内存管理 #
Section与Segment IA-32机器上的Linux进程内存布局 malloc的实现原理 malloc与sbrk 批发商与零售商 mmap的用法 mmap用于父子进程之间的通信 用户态和内核态是怎么切换的 栈切换的核心 协程的要点 execve原理 oom_adj brk与mmap 磁盘与文件的区别 Buffer和Cache kswapd0定期回收内存 PSS(Proportional Set Size) 查看进程虚拟地址空间分布 mm_struct中的task_size mm_struct中控制内存区域位置的成员 mm_struct中控制内存区域属性的成员 vm_area_struct成员 vm_area_struct与mm_struct中内存区域的关联
缓存 #
PageCache及RSS内存与swap空间 什么是Page Cache file-backed and anonymous 脏页写入磁盘的两种方式 查看使用Swap最多的进程 观察/proc/zoneinfo
锁 #
Linux宏READ_ONCE和WRITE_ONCE RCU(Read-Copy Update)
文件系统 #
索引节点和目录项和磁盘 inode与iblock ext4引入了Extents open调用创建inode的过程 块组(block groups) ext4文件系统格式 Meta Block Groups 特性 软链接和硬链接的存储格式 目录的存储格式(ext4)
缓冲IO与非缓冲IO 直接IO与非直接IO 阻塞IO与非阻塞IO 同步IO与异步IO 通用块层 四种IO调度算法 衡量磁盘性能的五个指标 iostat指标解读 pidstat查看进程IO情况 Linux Storage Stack Diagram
Build #
Links #
- https://lxr.missinglinkelectronics.com/ the Linux Cross Reference
- sub:Kernel Parameters