Linux学习资料

综合

  • 酷 壳
  • https://www.cnblogs.com/LoyenWang/
  • https://github.com/0voice/kernel_memory_management
    • 59问:内存管理.md
  • 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问题诊断

论坛技术分享

感兴趣的几个议题

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

内存交换

  • zswap

Page

Memcg

  • Memory accounting and limits

块子系统

WriteBack

  • Write throttling

虚拟化

  • https://lwn.net/Kernel/Index/#Virtualization

国际

  • Conference index

LSFMM

  • 历届
  • 2022 LSFMM

国内

内核大会

  • 17届
    • 主论坛
    • 处理器架构与调度分论坛
    • 内存管理与异构计算分论坛
    • IO 与 eBPF 分论坛
  • 16届
    • 主论坛
    • 内核系统优化分论坛
    • 软硬件架构探索和实践分论坛
    • 业务赋能和优化分论坛
  • 15届

龙蜥社区

  • 技术分享
    • Kernel SIG
    • 系统运维 SIG
    • 跟踪诊断 SIG
    • eBPF SIG
    • Intel Arch SIG

欧拉社区

  • openEuler kernel 技术分享合集
  • 资源利用率提升专题

内核社区

  • 如何跟踪 Linux 内核技术的发展趋势

镜像网站

  • 清华 Linux Git 镜像使用帮助
  • 清华镜像 内核代码压缩包下载

内核地图

内核地图

内核API

  • 核心API文档
    • 使用printk输出消息
    • 如何获得正确的printk格式占位符
    • 使用printk输出指针类型
  • 内核骇客指北
  • Linux内核用户指南
    • Clearing WARN_ONCE
    • 启动参数
    • Bug hunting (分析内核堆栈报错)
    • Tainted kernels
    • Ramoops oops/panic logger
    • Dynamic debug
    • pstore block oops/panic logger

内核开发用到的工具

  • Development tools for the kernel
  • 如何编写内核文档
  • 提交补丁:如何让你的改动进入内核

启动和初始化

  • 基于x86_64的Linux启动和初始化
  • 内核文档 The EFI Boot Stub
  • 内核文档 Using the initial RAM disk (initrd)
  • ARM64内核的启动

并发

  • 并发原语
  • RCU concepts
  • 内核中的锁机制
  • 内核锁使用指南
    • 在中断上下文可以调用哪种函数?
    • 两个基本的锁:自旋锁和互斥锁
    • 不同上下文之间实现互斥:
      • 单核系统
      • 进程上下文之间
      • 进程和softirq之间
        • 进程和tasklet之间
        • 进程和timer之间
      • tasklet和timer之间
        • 同一个tasklet 或者 同一个timer
        • 不同的tasklet和timer之间
      • softirq之间
        • 同一个softirq
        • 不同的softirq之间
      • 硬件中断和softirq以及tasklet之间
      • 不同的硬中断之间
    • 备忘清单
    • 对trylock的说明
    • 锁的使用示例
  • 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

  • What is RCU? – “Read, Copy, Update”(翻译by ChatGPT)
  • What is RCU, Fundamentally? (翻译)
  • 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

底半部

  • Linux 的 workqueue 机制浅析

处理器

x86处理器

  • x86 PerCPU变量基址(gs寄存器)的原理
  • X86寄存器 (笔记)
  • Linux内核文档 – x86
  • 输出的调用栈里为什么有的函数前面有问号?
  • X86处理器拓扑
  • 微码加载

ARM64处理器

  • ARMv8服务器上的ACPI

CPU热拔插

  • CPU hotplug in the Kernel

异常和中断

  • 内核级异常处理,比如内核访问了用户传递的非法地址导致异常
  • x86_64下的中断及处理

程序加载和执行

  • How programs get run
  • How programs get run: ELF binaries

编译器和调试器技术

  • 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
  • 在内核态对进程的用户态的栈进行回溯

hook技术

  • Linux Hook
  • Ftrace Hook (Linux内核热补丁) 详解
  • Linux用户态程序 Inject & Hook

Qos

  • RDT资源控制的用户接口

设备模型

  • 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进程调度-组调度及带宽控制

进程热迁移

  • Linux 进程热迁移研究系列一,招魂前传之存档
  • Linux进程热迁移研究系列二:招魂仪式之阴谋
  • Linux进程热迁移研究系列三(终章),招魂之降临!~

内存管理

  • Memory Management APIs
  • Linux Memory Management Documentation
  • 基本概念
  • Linux内存管理文档
  • x86_64的内存布局
  • 深入理解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
  • 高速缓存与一致性

缺页异常

  • The story of pagefault_disable/enable

内存初始化

  • linux内核那些事之early boot memory-memblock
  • linux内核那些事之E820
  • linux内核那些事之Sparse内存模型初始化
  • linux内核那些事之物理内存模型之SPARSE(3)
  • linux内核那些事之Sparse vmemmap

内存数据结构

  • linux内核那些事之ZONE
  • linux内核那些事之struct page
  • linux内核那些事之buddy
  • 图解slub
  • linux内核那些事之用户空间管理
  • linux内核那些事之虚拟空间划分
  • linux内核那些事之VMA常用操作
  • linux那些事之gup_flags
  • linux那些事之page table
  • linux那些事之 page table基本操作

memblock内存分配器

  • MEMBLOCK内存分配器
  • Boot Time Memory Management

伙伴系统

  • 伙伴系统—相关知识点
    • 如何根据gfp flag找到对应的zone

SLUB

  • 宋牧春: 多图详解Linux内存分配器slub

Percpu

  • Linux内核同步机制之(二):Per-CPU变量
  • Per-CPU variables

反向映射

  • 反向映射详解

PageCache

  • Linux中的Page Cache [一]
  • Linux中的Page Cache [二]
  • 深入理解PageCache

内存回收

  • linux内存源码分析 - 内存回收(整体流程)
  • linux内存源码分析 - 内存回收(lru链表)

内存交换

swap

  • kswapd介绍

zswap

zram

  • ZRAM那点事(1) ZRAM和ZSMALLOC的简介
  • ZRAM那点事(2) ZRAM使用中3个问题以及主线改进
  • ZRAM那点事(3) 我对ZRAM的1个提高
  • ZRAM那点事(4) 对ZRAM提高的一些思路

内存迁移

  • 宋宝华:论Linux的页迁移(Page Migration)完整版
  • linux内核那些事之内存规整(memory compact)
  • linux那些事之numa balance
  • numa balance实现浅析
  • linux内存源码分析 - 内存碎片整理(实现流程)
  • linux内存源码分析 - 内存碎片整理(同步关系)

脏页回写

  • 深入理解Linux内核之脏页跟踪
  • dirty writeback 机制的优化与演进

大页

  • 大页内存笔记
  • HugePages(大内存页)的原理与使用
  • 内核文档 - 大页
  • Hugetlbfs Reservation

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

内存热拔插

  • https://www.kernel.org/doc/html/latest/core-api/memory-hotplug.html

RAS

  • Reliability, Availability and Serviceability

Memory Failure

  • mce
  • Linux中的mce处理–mce学习笔记

故障注入

  • 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 向用户空间内核中的指针

LSM

  • LSM(Linux Security Modules)框架原理解析

TEE

  • TEE subsystem

内核跟踪技术

  • Linux Tracing Technologies

文件IO

  • 内核文档 A block layer cache (bcache)

算法和结构

  • Data structures and low-level utilities

链表

  • linux内核中的几种链表

红黑树

  • 红黑树原件 及其插入、删除

驱动开发

  • The Linux driver implementer’s API guide

电源管理

  • 任务冻结

宕机log收集

  • Ramoops oops/panic logger
  • pstore block oops/panic logger

云计算

  • 云计算图志
标题 链接
Kubernetes https://cloud-atlas.readthedocs.io/zh_CN/latest/kubernetes/kubernetes_overview.html#kubernetes
Ceph https://cloud-atlas.readthedocs.io/zh_CN/latest/ceph/index.html
Gluster https://cloud-atlas.readthedocs.io/zh_CN/latest/gluster/index.html
KVM https://cloud-atlas.readthedocs.io/zh_CN/latest/kvm/index.html
Linux https://cloud-atlas.readthedocs.io/zh_CN/latest/linux/index.html
Linux服务器 https://cloud-atlas.readthedocs.io/zh_CN/latest/linux/server/index.html
Kernel https://cloud-atlas.readthedocs.io/zh_CN/latest/kernel/index.html
IPMI https://cloud-atlas.readthedocs.io/zh_CN/latest/linux/server/ipmi/index.html
Intel CPU架构 https://cloud-atlas.readthedocs.io/zh_CN/latest/kernel/cpu/intel/index.html
Linux存储 https://cloud-atlas.readthedocs.io/zh_CN/latest/linux/storage/index.html
NUMA架构 https://cloud-atlas.readthedocs.io/zh_CN/latest/kernel/memory/numa/index.html

你可能感兴趣的:(Linux内核,linux,运维,服务器)