Linux技术博客文档
综合
- Linux 内核揭秘
- Linux 内核教学
- 酷 壳
- https://www.cnblogs.com/LoyenWang/
- https://github.com/0voice/kernel_memory_management
- https://blog.csdn.net/u010923083/category_10971696.html
- Linux 核心設計/實作 (Linux Kernel Internals)
- Linux阅码场原创精华文章汇总
- 蜗窝科技
- 兰新宇 专栏文章目录
- 零基础开发操作系统
- Youtube转载视频
- The Linux Foundation 技术分享
- 内核大仙 B站技术分享
- https://www.l2h.site/archives/
- Yizhou Shan's Home Page
- Linux Kernel Teaching
- https://book.aikaiyuan.com/
- What every SRE should know about GNU/Linux shell related internals: file descriptors, pipes, terminals, user sessions, process groups and daemons
- Youtube上的Linux internals视频
- 专栏 Linux源码分析
- ChinaUnix上的内核源码板块
- 记录一点OS问题诊断
- Meta 开发者社区
- Oracle Linux Blog
- Linux 逆向工程资料
- Linux Trouble Shooting Cheat Sheet
- 不同版本的内核在线文档:https://www.kernel.org/doc/html/
- Linux Kernel Testing and Debugging
- humjb_1983
- Linux Kernel Teaching
- 红帽Linux技术文档:Oracle Linux Training Station
- B站:
- Linux-Kernel-Programming
论坛技术分享
感兴趣的几个议题
mmap_sem锁
- The LRU lock and mmap_sem
- Zone-lock and mmap_sem scalability
- How to get rid of mmap_sem
- The ongoing search for mmap_lock scalability
页回收算法
OOM
内存交换
Page
Memcg
块子系统
WriteBack
虚拟化
国际
LSFMM-BPF(Storage_Filesystem_Memory-Management_and_BPF_Summit)
LPC (Linux_Plumbers_Conference)
Kernel Recipes
国内
内核大会
-
18届
-
17届
-
16届
龙蜥社区
欧拉社区
内核社区
镜像网站
内核地图
内核API
内核开发用到的工具
启动和初始化
并发
- Is Parallel Programming Hard, And, If So, What Can You Do About It?
- 并发原语
- RCU concepts
- 内核中的锁机制
- 内核锁使用指南
- PV qspinlock原理
LOCKDEP
- Linux 死锁检测模块 Lockdep 简介
- Enhancing lockdep with crossrelease
- The kernel lock validator
- Linux中的spinlock机制[五] - 死锁问题
原子操作
spinlock
- Linux中的spinlock机制[一] - CAS和ticket spinlock
- Linux中的spinlock机制[三] - qspinlock
- Linux中的spinlock机制[二] - MCS Lock
RCU
- McKenney, Paul E 的文章汇总
- What is RCU? – “Read, Copy, Update”(翻译by ChatGPT)
- What is RCU, Fundamentally? (翻译)
- RCU-1——内核文档翻译——Data-Structures.rst
- RCU-1——内核文档翻译——Expedited-Grace-Periods.rst
- 12 what is RCU 2013 Paul McKenny at IISc
- Linux 核心設計: RCU 同步機制
- The design of preemptible read-copy-update
- Linux中的RCU机制[一] - 原理与使用方法
- Linux中的RCU机制[二] - GP的处理
- Linux中的RCU机制[三] - 性能与实时性
- Linux内核同步机制之(七):RCU基础
- Linux2.6.11版本:classic RCU的实现
- Linux2.6.23 :sleepable RCU的实现
- Using RCU’s CPU Stall Detector
- INFO: rcu_sched detected stalls on CPU/tasks
- 使用 RCU 的 CPU Stall检测器
- RCU-3——经典(可抢占)RCU代码分析
- Linux RCU原理剖析(二)-渐入佳境
底半部
处理器
x86处理器
ARM64处理器
CPU热拔插
异常和中断
程序加载和执行
编译器和调试器技术
- Unwind 栈回溯详解
- Unwinding a Stack by Hand with Frame Pointers and ORC
- Unwinding a Stack by Hand with Frame Pointers and ORC 翻译 (By ChatGPT)
- The Linux x86 ORC Stack Unwinder
- The ORCs are coming
- 内核文档
- Compile-time stack validation
- 内核邮件 Compile-time stack metadata validation
- DWARF详解
- 窥探一下DWARF描述
- 用图文带你彻底弄懂GDB调试原理
- 100个gcc小技巧
- x86_64 内联汇编
- Stack unwinding
- 在内核态对进程的用户态的栈进行回溯
- DWARF, 调试信息存储格式
- Linux Debuginfo Formats: DWARF, ELF, dwo, dwp - What are They All?
- Linux tracing/profiling 基础:符号表、调用栈、perf/bpftrace 示例等(2022)
- How debuggers work: Part 3 - Debugging information
- Function Stack Unwinding
- Linux .eh_frame section以及libunwind
- DWARF stack walks and fast symbolization for BPF
- fedora: Changes/fno-omit-frame-pointer
- perf tools: Add libdw DWARF unwind support
hook技术
ptrace
Qos
设备模型
- linux 内核设备管理模型sysfs(入门篇)
- linux 内核设备管理模型sysfs(进阶篇)
- linux sysfs link(sysfs_create_link)
- linux kobject-uevent(热插拔事件)
- 深入理解程序的本质
- Rules on how to access information in sysfs
进程调度
- Linux Schedule
- Linux schedule 2、调度算法
- Linux核心概念详解 —— CFS
- Linux调度器
- 聊一聊 Linux 上信号处理过程中的信号栈帧
- Linux调度系统全景指南(上篇)
- Linux调度系统全景指南(中篇)
- Linux调度系统全景指南(下篇)
- Linux调度系统全景指南(终结篇)
- Linux 系统的平均负载(Load Avarage)
- bug:scheduling while atomic"和"bad: scheduling from the idle thread"
- Reducing jitter on Linux with task isolation
- 深入理解Linux内核之进程唤醒
- 深入理解Linux内核之内核抢占
- 深入理解Linux内核之主调度器(上)
- 深入理解Linux内核之主调度器(下)
- 深入理解Linux内核之进程睡眠(上)
- 深入理解Linux内核之进程睡眠(下)
- cond_resched的使用
- 为什么内核线程不能被kill掉?
- 唤醒实时进程时对目标cpu的选择策略与存在的问题
- 从几个问题开始理解CFS调度器
- 采用sched_feat作为内核调试控制开关
- Linux进程管理与调度 专栏
- Linux进程调度-组调度及带宽控制
进程热迁移
内存管理
- Memory Management APIs
- Linux Memory Management Documentation
- 基本概念
- Linux内存管理文档
- Folio
- x86_64的内核内存布局
- 深入理解Linux内存管理 专栏
- 基于ARM64的Linux页表技术分析
- 一步一图带你构建 Linux 页表体系 —— 详解虚拟内存如何与物理内存进行映射
- 一步一图带你深入理解 Linux 物理内存管理
- 一步一图带你深入理解 Linux 虚拟内存管理
- 从内核世界透视 mmap 内存映射的本质
- 深入理解Linux内核共享内存机制- shmem&tmpfs
- Linux内存管理中锁使用分析及典型优化案例总结
内存一致性和缓存一致性
- 说透缓存一致性与内存屏障
- 宋宝华:原理和实战解析Linux中如何正确地使用内存屏障
- 如何使用屏障指令
- ARMv8/ARMv9的内存屏障barrier(CPU的乱序和推测执行)
- 高速缓存与一致性专栏索引
- 编译乱序
- 辨析三种一致性:缓存一致、内存一致、数据一致
- 内存模型系列(上)- 内存一致性模型(Memory Consistency)
- CPU缓存一致性协议MESI
- 与程序员相关的CPU缓存知识
- Linux-Kernel Memory Model
- Linux kernel memory barriers
- 为什么我们不应该使用volatile类型
- READ_ONCE()
- Unaligned Memory Accesses
- Linux内核同步机制之(三):memory barrier
- 高速缓存与一致性
缺页异常
- 一文聊透 Linux 缺页异常的处理 —— 图解 Page Faults
- 缺页异常 (Page fault)实现分析及优化
- The story of pagefault_disable/enable
- 投机性缺页异常(SPF)原理分析
- per-VMA locks技术分析
memblock内存分配器
伙伴系统
- 伙伴系统---相关知识点
- 如何根据gfp flag找到对应的zone
- per_cpu_pageset(PCP)技术分析
- 深度剖析 Linux 伙伴系统的设计与实现
- 深入理解 Linux 物理内存分配全链路实现
SLUB
- 多图详解Linux内存分配器slub
- 细节拉满,80 张图带你一步一步推演 slab 内存池的设计与实现
- 深度解析 slab 内存池回收内存以及销毁全流程
- 从内核源码看 slab 内存池的创建初始化流程
- 深入理解 slab cache 内存分配全链路实现
- 深度解读 Linux 内核级通用内存池 —— kmalloc 体系
- 图解slub
- GDB扩展 —— slab分析命令
Percpu
反向映射
PageCache
内存回收
LRU
DAMON
MGLRU
- https://docs.kernel.org/next/mm/multigen_lru.html
- LWN:如何合并 multi-generational LRU!
- MGLRU Looks Like One Of The Best Linux Kernel Innovations Of The Year
- MGLRU - Yu Zhao
- mg-lru-helper
- 在启动参数中添加配置来查看MGLRU的配置信息:mminit_loglevel=8
- 动态调整MGLRU的参数
- MGLRU(Multi-Gen LRU)技术原理分析
- 一文讲透MGLRU
内存交换
zswap
zram
- ZRAM那点事(1) ZRAM和ZSMALLOC的简介
- ZRAM那点事(2) ZRAM使用中3个问题以及主线改进
- ZRAM那点事(3) 我对ZRAM的1个提高
- ZRAM那点事(4) 对ZRAM提高的一些思路
- zRAM内存压缩技术分析及优化方向
内存迁移
- 宋宝华:论Linux的页迁移(Page Migration)完整版
- linux那些事之numa balance
- numa balance实现浅析
- linux内存源码分析 - 内存碎片整理(实现流程)
- linux内存源码分析 - 内存碎片整理(同步关系)
- 页面迁移(page migrate)技术分析及使用优化
脏页回写
内存规整
ZRAM
大页
NUMA
- numa_NUMA_学习笔记
- numa balance实现浅析
- Introduction to NUMA and Hugepage
- linux内核那些事之mempolicy(1)
- linux内核那些事之mempolicy(2)
- NUMA Memory Policy
- NUMA Deep Dive Part 1: From UMA to NUMA
- NUMA简介&内存配置策略
- numastat、numactl命令详解
- 十年后数据库还是不敢拥抱NUMA?
- NUMA 延迟测试工具:Intel® Memory Latency Checker
内存热拔插
DMA-BUF
RAS
Memory Failure
故障注入
- fault-injection
- Linux内核调试技术——Fault-injection故障注入
- https://www.nongnu.org/failmalloc/
- https://github.com/linux-test-project/ltp/blob/master/tools/insert_kernel_faults.sh
内核热补丁
- Kernel Livepatching
- openEuler kernel技术分享-第16期-openEuler内核热补丁介绍
- 揭露内核黑科技 - 热补丁技术真容
- 用户态和内核态热补丁的技术实现与应用
- 内核热补丁原理介绍、制作、使用、验证方法
- Ftrace Hook (Linux内核热补丁) 详解
- 内核热补丁技术揭秘
安全和可靠性
- 内核文档 模块签名
- 内核文档 RAS
- kptr_restrict 向用户空间内核中的指针
- Linux提权方法论
- Linux Kernel Runtime Guard
- vmlinux-to-elf
- 像黑客一样使用命令行
- CFI
- 内核加固文档:
LSM
TEE
内核跟踪技术
文件IO
算法和结构
链表
红黑树
Maple Tree
驱动开发
电源管理
宕机log收集
云计算
本文来自博客园,作者:摩斯电码,未经同意,禁止转载