<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Os on PlumePHP</title><link>https://plumephp.com/categories/os/</link><description>Recent content in Os on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sat, 03 Oct 2026 15:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/categories/os/index.xml" rel="self" type="application/rss+xml"/><item><title>ARM64 体系结构与内核实现</title><link>https://plumephp.com/os-arm64-kernel-architecture/</link><pubDate>Sat, 03 Oct 2026 15:00:00 +0800</pubDate><guid>https://plumephp.com/os-arm64-kernel-architecture/</guid><description>ARM64 是当今服务器、移动设备与嵌入式平台的主流指令集架构。本文从异常级别 EL0 到 EL3 与 AArch64 系统寄存器体系出发，深入剖析四级页表结构与地址翻译流程，详解设备树 DTS 语法与内核 of 系列接口、FDT 传递与 PSCI 固件调用约定、GICv3 中断控制器架构、cache 一致性与内存屏障语义，最后给出交叉编译与 QEMU 调试的完整实践路径，并与 x86_64 架构逐项对比。</description></item><item><title>内核网络栈：sk_buff、NAPI 与 XDP</title><link>https://plumephp.com/os-kernel-network-stack/</link><pubDate>Sat, 03 Oct 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/os-kernel-network-stack/</guid><description>内核网络栈是 Linux 数据平面的核心，从网卡硬中断到 socket 读取，数据包要穿过 NAPI、协议栈、netfilter、qdisc 等多层结构。本文以 sk_buff 生命周期为主线，详解收发路径、GRO/RPS 优化、conntrack 状态跟踪、TCP 拥塞控制框架与 XDP 快速路径，并给出 netns/veth 容器网络与 perf 丢包定位的完整排查清单。</description></item><item><title>eBPF 开发实战：CO-RE 与 libbpf</title><link>https://plumephp.com/os-bpf-libbpf-core/</link><pubDate>Sat, 03 Oct 2026 13:00:00 +0800</pubDate><guid>https://plumephp.com/os-bpf-libbpf-core/</guid><description>eBPF 是 Linux 内核中最具影响力的可观测性与网络编程技术，libbpf 与 CO-RE 让它具备了跨内核版本的可移植性。本文剖析 BTF 类型信息与 CO-RE 重定位原理，详解 libbpf 工程骨架与 skeleton 生成流程，并给出验证器报错排查清单。</description></item><item><title>内存回收机制：LRU、水位与 OOM</title><link>https://plumephp.com/os-memory-reclaim-lru/</link><pubDate>Sat, 03 Oct 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/os-memory-reclaim-lru/</guid><description>内存回收是 Linux 内核在内存紧张时维持系统可用性的核心机制。本文从 LRU 四条链表与 lruvec 讲起，剖析页在 active 与 inactive 之间的迁移规则与 refault 距离估算，详解多代 LRU（MGLRU）的 generation 模型与调优参数，深入 kswapd 三水位、直接回收慢路径与分配标志，覆盖 swap、zswap、zram 三种交换后端对比，最后给出 PSI 压力指标、cgroup 内存回收与 OOM 排查清单。</description></item><item><title>内核并发原语与 RCU 机制</title><link>https://plumephp.com/os-kernel-locking-rcu/</link><pubDate>Sat, 03 Oct 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/os-kernel-locking-rcu/</guid><description>内核并发原语是驱动、网络栈与文件系统正确运行的底层保障。本文从原子操作与内存屏障的语义差异讲起，梳理 spinlock、mutex、rtmutex、rwsem、seqlock 的适用边界与死锁风险，深入剖析 per-CPU 变量与 RCU 宽限期模型，并给出 lockdep、KCSAN 等工具的实战排查清单。</description></item><item><title>Linux 调度器实现：从 CFS 到 EEVDF</title><link>https://plumephp.com/os-scheduler-eevdf-deep/</link><pubDate>Sat, 03 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-scheduler-eevdf-deep/</guid><description>从 CFS 的红黑树与 vruntime 出发，讲解 Linux 6.6 的 EEVDF 调度器如何用 lag 与虚拟截止时间替代权重比例分配，剖析五大调度类与 nice 权重换算，深入调度域负载均衡、PELT 跟踪、CPU 亲和性与隔离，并结合 sched_ext 与 perf sched 给出排查清单。</description></item><item><title>内核调试：kgdb、kdump、crash 与动态追踪</title><link>https://plumephp.com/os-kernel-debugging-kgdb/</link><pubDate>Fri, 02 Oct 2026 21:00:00 +0800</pubDate><guid>https://plumephp.com/os-kernel-debugging-kgdb/</guid><description>内核调试是系统稳定性保障的最后一道防线。本文系统讲解 kgdb 远程内核调试的配置与串口连接流程，深入分析 panic 与 oops 日志，覆盖 kdump/vmcore 的收集机制与 crash 工具的强大分析能力，以及 printk 日志级别、dynamic debug、ftrace 函数追踪和 bpftrace/kprobe 动态追踪等生产环境常用诊断技术。</description></item><item><title>cgroups v2 与命名空间底层实现与资源隔离</title><link>https://plumephp.com/os-cgroups-namespaces-deep/</link><pubDate>Fri, 02 Oct 2026 20:00:00 +0800</pubDate><guid>https://plumephp.com/os-cgroups-namespaces-deep/</guid><description>cgroups 与 namespace 是现代容器技术的两大基石。本文深入对比 cgroup v1 与 v2 的层级差异，逐一剖析 cpu/memory/io/pids 等控制器的工作原理，详解 PID/IPC/Net/Mount/UTS/User/cgroup 七种命名空间的隔离机制，覆盖 unshare/nsenter/clone3 工具、挂载传播与用户命名空间安全边界，最后结合 systemd 的 cgroup 集成给出生产实践建议。</description></item><item><title>Linux 设备驱动模型：字符设备、块设备与 sysfs</title><link>https://plumephp.com/os-device-drivers-basics/</link><pubDate>Fri, 02 Oct 2026 19:00:00 +0800</pubDate><guid>https://plumephp.com/os-device-drivers-basics/</guid><description>Linux 设备驱动是连接硬件与内核的桥梁。本文从主设备号与次设备号的基础概念出发，深入讲解字符设备的注册与 file_operations 设计、ioctl 命令规范、块设备的 I/O 调度与请求队列，进而覆盖 sysfs 动态节点创建、udev 规则、platform driver 总线匹配、miscdevice 简化注册以及 DMA scatter-gather 等进阶主题。</description></item><item><title>系统调用实现：从 glibc 到内核态切换</title><link>https://plumephp.com/os-system-call-internals/</link><pubDate>Fri, 02 Oct 2026 18:00:00 +0800</pubDate><guid>https://plumephp.com/os-system-call-internals/</guid><description>系统调用是用户态与内核态交互的唯一门户。本文从系统调用号的定义与 sys_call_table 出发，深入解析 glibc 封装、INT 0x80 与 SYSENTER/SYSCALL 快速路径的演进，讲解 vDSO 用户态优化、参数传递的寄存器约定以及内核态进出流程中的 pt_regs 结构，最后覆盖系统调用追踪与安全分析工具。</description></item><item><title>伙伴系统、SLAB/SLUB 与 Linux 内存分配器</title><link>https://plumephp.com/os-buddy-system-slab/</link><pubDate>Fri, 02 Oct 2026 17:00:00 +0800</pubDate><guid>https://plumephp.com/os-buddy-system-slab/</guid><description>从伙伴系统的 2 的幂拆分与合并机制，到 SLAB/SLOB/SLUB 三种内核对象分配器的演进，再到 Linux 当前默认的 SLUB 实现、CMA 连续内存分配、per-CPU 页分配器与调试特性，本文系统深入地讲解操作系统内核内存分配的核心基础设施，帮助开发者理解 kmalloc 与 vmalloc 的本质差异。</description></item><item><title>页面置换算法：FIFO、LRU、Clock、LFU 与工作集模型</title><link>https://plumephp.com/os-page-replacement-algorithms/</link><pubDate>Fri, 02 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/os-page-replacement-algorithms/</guid><description>页面置换算法是虚拟内存系统的核心机制，决定了当物理内存不足时应该换出哪个页面。本文从缺页中断处理流程出发，系统讲解 FIFO、LRU、Clock、LFU 等经典算法，深入分析 Belady 异常、栈算法特征与工作集模型，并最终落脚到 Linux 内核的 LRU 平衡策略与 thrashing 预防机制。</description></item><item><title>Linux 审计子系统：auditd、审计规则、系统调用审计与日志分析</title><link>https://plumephp.com/os-linux-audit-subsystem/</link><pubDate>Fri, 02 Oct 2026 15:00:00 +0800</pubDate><guid>https://plumephp.com/os-linux-audit-subsystem/</guid><description>Linux 审计子系统在内核里记录安全相关事件：谁在何时对哪个文件执行了哪个系统调用。本文讲解 kauditd 与 netlink 架构、auditctl 规则语法、系统调用与文件监视审计、ausearch/aureport 日志分析，以及性能与合规实践。</description></item><item><title>ftrace 与内核追踪：tracepoint、kprobe、function_graph 与 perf 联动</title><link>https://plumephp.com/os-kernel-tracing-ftrace/</link><pubDate>Fri, 02 Oct 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/os-kernel-tracing-ftrace/</guid><description>ftrace 是内核自带的追踪框架，通过 tracefs 暴露函数追踪、函数图、tracepoint 与动态探针能力。本文系统讲解其分层架构、function_graph 的用法、kprobe 动态插桩、与 perf 的联动以及生产环境下的开销控制。</description></item><item><title>futex 与内核同步原语底层：等待队列、唤醒机制与 PI mutex</title><link>https://plumephp.com/os-futex-locks-internals/</link><pubDate>Fri, 02 Oct 2026 13:00:00 +0800</pubDate><guid>https://plumephp.com/os-futex-locks-internals/</guid><description>pthread_mutex 无竞争时根本不进内核，有竞争时才通过 futex 系统调用挂起线程。本文拆解 futex 的用户态快路径、系统调用操作码、等待队列与唤醒，以及 PI futex 如何用优先级继承解决优先级反转。</description></item><item><title>页缓存与回写机制：脏页、writeback 线程、fsync 语义与脏页限流</title><link>https://plumephp.com/os-page-cache-writeback/</link><pubDate>Fri, 02 Oct 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/os-page-cache-writeback/</guid><description>write 返回不等于落盘：本文拆解页缓存的 address_space 模型、脏页的生成与限流、writeback 线程与 bdi 回写路径、fsync 与 barrier 的持久化语义，以及 dirty_ratio 等参数的调优取舍与常见误区。</description></item><item><title>时间子系统与时钟源：jiffies、hrtimer、clocksource 与 NTP/PTP 校时</title><link>https://plumephp.com/os-timer-clock-subsystem/</link><pubDate>Fri, 02 Oct 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/os-timer-clock-subsystem/</guid><description>从 jiffies 与周期性 tick 到 tickless 内核，从 clocksource 抽象到 hrtimer 高精度定时器，再延伸到 NTP/PTP 校时与 CLOCK_ 系列接口的语义差异，系统梳理 Linux 时间子系统的分层结构与常见陷阱。</description></item><item><title>NUMA 架构与内存亲和性：节点拓扑、访问延迟与 numactl 绑核实战</title><link>https://plumephp.com/os-numa-architecture/</link><pubDate>Fri, 02 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-numa-architecture/</guid><description>从 SMP 到 NUMA 的演进、ACPI SRAT/SLIT 描述的内存拓扑、本地与远程访问的延迟差距，到内核 struct pglist_data 与 zonelist 的调度策略，最后落地 numactl、numad 与自动 NUMA balancing 的调优实践与常见误区。</description></item><item><title>eBPF 可观测与内核追踪：从 BPF 程序模型到生产调试与安全审计</title><link>https://plumephp.com/os-ebpf-observability/</link><pubDate>Sun, 27 Sep 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/os-ebpf-observability/</guid><description>eBPF 让开发者无需修改内核代码，就能在内核事件发生处动态注入安全受限的程序，是现代可观测性、性能诊断与安全审计的事实标准。本文从 BPF 指令集与验证器出发，拆解程序类型与挂载点（tracepoint/kprobe/uprobe），讲解 BPF Map 的数据通道，再对比 bpftrace、BCC 与 libbpf/CO-RE 三条开发路径，最后给出 TCP 重传追踪、阻塞唤醒分析、execsnoop 审计等真实生产场景的完整脚本。</description></item><item><title>NVMe 存储栈深入：PCIe 队列对、多队列调度与 io_uring 的结合</title><link>https://plumephp.com/os-nvme-storage-stack/</link><pubDate>Sun, 27 Sep 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/os-nvme-storage-stack/</guid><description>NVMe 通过 PCIe 直连与高深度的多队列把闪存盘的随机 IO 性能推向数百万级 IOPS，但这要求整条存储栈——从驱动队列、块层 blk-mq、IO 调度器到用户态 io_uring——都以极低延迟协作。本文从 PCIe 事务与队列对模型讲起，深入 NVMe 多队列映射、blk-mq 与 IO 调度器，再剖析 io_uring 与 NVMe 结合后的轮询与内核绕过路径，最后给出生产环境压测与调优清单。</description></item><item><title>实时操作系统：RTOS 内核设计、优先级反转与 Linux PREEMPT_RT</title><link>https://plumephp.com/os-realtime-scheduling/</link><pubDate>Sun, 27 Sep 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/os-realtime-scheduling/</guid><description>实时系统关注的不是吞吐，而是「在规定时间之前完成」的确定性。本文从硬实时与软实时的定义出发，拆解 RTOS 内核的任务模型与抢占式调度设计，深入经典难题优先级反转及优先级继承/天花板两种解法，再分析 RMS 与 EDF 的可调度性理论，最后落到 Linux PREEMPT_RT 的演进、实时调度策略（SCHED_FIFO/RR/DEADLINE）、PI-futex 与 cyclictest 实测，给出工业控制与音视频场景的选型建议。</description></item><item><title>操作系统安全加固与可信计算：LSM、内核加固、TPM 与容器逃逸防护</title><link>https://plumephp.com/os-security-hardening-trust/</link><pubDate>Sun, 27 Sep 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/os-security-hardening-trust/</guid><description>操作系统安全的本质是纵深防御：从内核自身的加固（KASLR、栈保护、模块签名），到强制访问控制层 LSM（SELinux/AppArmor），再到硬件信任根（TPM 可信启动与远程证明），以及容器场景的逃逸防护（seccomp、Capabilities、最小权限）。本文先画出攻击面全景，再逐层拆解每一道防线的工作原理与配置方法，最后给出生产环境可落地的加固清单与逃逸事件处置路径。</description></item><item><title>系统启动全流程：从 BIOS/UEFI、GRUB 到内核与 systemd</title><link>https://plumephp.com/os-boot-process/</link><pubDate>Sun, 27 Sep 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/os-boot-process/</guid><description>从按下电源键到登录界面，系统要经历固件初始化、Bootloader、内核解压、驱动加载、initramfs、systemd 初始化多个阶段。本文沿真实启动路径逐步解剖：BIOS 与 UEFI 的差异、Secure Boot 信任链、GRUB 如何加载内核、内核从实模式到 start_kernel 的旅程、initramfs 为什么存在，以及 systemd 的并行启动与依赖图，最后给出用 systemd-analyze 做启动性能优化的完整方法。</description></item><item><title>虚拟化与容器隔离：从 KVM/QEMU 到 namespace 与 cgroup</title><link>https://plumephp.com/os-virtualization-containers/</link><pubDate>Sun, 27 Sep 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/os-virtualization-containers/</guid><description>虚拟化与容器是现代基础设施的两大基石，但它们的隔离模型截然不同。本文从 KVM/QEMU 的硬件虚拟化原理出发，深入 VMX/SVM 指令、EPT 内存虚拟化与 virtio 半虚拟化设备，再剖析容器依赖的 namespace 视图隔离与 cgroup 资源限制，最后对比虚拟机与容器的隔离边界、性能差异与安全风险，帮你建立从 Hypervisor 到 runc 的完整认知链路。</description></item><item><title>CPU 调度算法：从 FCFS 到 CFS 完全公平调度器</title><link>https://plumephp.com/os-cpu-scheduling/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-cpu-scheduling/</guid><description>CPU 调度是操作系统最核心的职责之一。它决定了哪个进程在何时使用 CPU，直接影响系统的响应速度、吞吐量和用户体验。本文从经典算法讲起，逐步深入到 Linux CFS 的设计与实现，并覆盖多处理器负载均衡、实时调度和前沿趋势。</description></item><item><title>Linux IO 栈深度解析：从 VFS 到块设备</title><link>https://plumephp.com/os-io-stack/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-io-stack/</guid><description>存储 IO 是操作系统中最复杂也最影响性能的子系统之一。一次看似简单的文件读写，实际上会穿越用户空间、虚拟文件系统、页缓存、块层、设备驱动直至物理硬件多个层级。理解 Linux IO 栈的完整路径，是诊断性能瓶颈、优化数据库响应、以及合理选型存储方案的前提。</description></item><item><title>Linux 信号机制：从 kill -9 到可靠信号</title><link>https://plumephp.com/os-linux-signals/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-linux-signals/</guid><description>1. 信号基础 Linux 信号（signal）是操作系统向进程发送的软件中断通知机制。当特定事件发生时——用户按下 Ctrl-C、子进程退出、进程访问无效内存、管道写入端关闭——内核向目标进程的进程控制块（PCB）中记录一个待处理的信号。</description></item><item><title>Linux 内存子系统：OOM、Swap 与 cgroup 内存限制</title><link>https://plumephp.com/os-linux-memory/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-linux-memory/</guid><description>Linux 内存管理子系统是内核中最复杂的模块之一。它不仅要为进程分配物理页帧，还要在内存不足时做出艰难的权衡决策。本文从 overcommit 策略、OOM Killer、交换机制、cgroup 控制、内存水位以及诊断工具六个维度，系统地梳理 Linux 内存子系统的核心原理。</description></item><item><title>Linux 内核编译与模块开发入门</title><link>https://plumephp.com/os-kernel-module/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-kernel-module/</guid><description>Linux 内核模块（Kernel Module）是可动态加载到内核空间的代码单元，它是驱动开发、文件系统扩展、网络协议栈增量的核心手段。与微内核架构不同，Linux 采用宏内核设计，所有内核代码共享同一地址空间，模块的运行效率极高，但也意味着一个不合格的模块可能导致整个系统崩溃。</description></item><item><title>Linux 网络编程基础：Socket API 与 TCP 连接生命周期</title><link>https://plumephp.com/os-linux-network/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-linux-network/</guid><description>在 Linux 系统中，网络通信的基石是 Berkeley Socket API。无论你是在编写 Web 服务器、微服务网关，还是分布式系统的 RPC 框架，最终都会落到 、 、 、 这些系统调用上。</description></item><item><title>Linux 进程管理：fork、exec、wait 与进程间通信</title><link>https://plumephp.com/os-linux-process/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-linux-process/</guid><description>Linux 进程管理完整指南：fork 的 Copy-on-Write 机制、exec 家族系统调用、wait/waitpid 僵尸进程处理，以及 POSIX 管道、消息队列、共享内存、Unix Domain Socket 四种 IPC 机制的深度对比与实战代码。</description></item><item><title>中断与异常处理：从硬件中断到软中断</title><link>https://plumephp.com/os-interrupts/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-interrupts/</guid><description>中断（Interrupt）是操作系统最核心的机制之一。无论是键盘输入、磁盘 I/O 完成，还是定时器到期，系统都依赖中断来打破 CPU 的顺序执行流，让内核能够及时响应外部事件。理解中断的完整链路——从硬件信号到内核处理，再到 Linux 的下半部机制——是掌握操作系统底层原理的关键一步。</description></item><item><title>内存分配与回收：从 malloc 到 slab 分配器</title><link>https://plumephp.com/os-memory-allocation/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-memory-allocation/</guid><description>引言：堆内存的演进之路 在 Linux 系统中，当程序请求一块内存时，操作系统并不会直接暴露物理页。相反，一个复杂的分配器层次逐步将大块虚拟地址空间切割成程序所需的小块。从用户态的 到底层的 / ，再到内核的 slab/slub 分配器，每一层都在性能、碎片率与并发能力之间做出权衡。</description></item><item><title>同步原语：信号量、互斥锁、条件变量与读写锁</title><link>https://plumephp.com/os-synchronization/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-synchronization/</guid><description>在多核处理器成为主流的当下，并发编程已是必备技能。然而，并发带来的竞态条件（Race Condition）和数据不一致问题要求我们借助同步原语来协调多个执行单元对共享资源的访问。本文从底层实现出发，逐一剖析 Linux 中最常用的同步机制：互斥锁、信号量、条件变量、读写锁、自旋锁和 RCU，并给出选</description></item><item><title>多处理器与缓存一致性：MESI 协议与内存屏障</title><link>https://plumephp.com/os-multiprocessor-cache/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-multiprocessor-cache/</guid><description>SMP 与 NUMA：两种多处理器架构 多核处理器从架构上可以分为 SMP（Symmetric Multi-Processing，对称多处理）和 NUMA（Non-Uniform Memory Access，非统一内存访问）两大类。</description></item><item><title>操作系统概述：内核态与用户态、系统调用原理</title><link>https://plumephp.com/os-overview/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-overview/</guid><description>操作系统是计算机系统中最核心的系统软件，它管理硬件资源、提供抽象接口、保障程序安全隔离。深入理解操作系统的基础原理，是每一位系统工程师的必修课。本文将围绕内核态与用户态的隔离机制、系统调用的实现原理展开系统性的介绍。</description></item><item><title>文件系统原理：inode、目录结构与 VFS 抽象层</title><link>https://plumephp.com/os-filesystem/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-filesystem/</guid><description>文件系统是操作系统中最关键的子系统之一。它将裸设备的物理存储块（block）抽象为逻辑上的目录和文件，让用户和应用程序可以方便地组织、读取和写入数据。理解文件系统的底层原理，对于排查磁盘空间泄漏、IO 性能瓶颈和数据一致性问题都至关重要。</description></item><item><title>死锁：条件、检测、预防与银行家算法</title><link>https://plumephp.com/os-deadlock/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-deadlock/</guid><description>死锁（Deadlock）是并发系统中一类经典而且代价高昂的故障：多个进程或线程因相互等待对方持有的资源，而全部陷入永久阻塞。与竞态条件不同，死锁不会破坏数据完整性，但它会让系统「冻结「在某一点，服务完全丧失可用性。</description></item><item><title>现代高性能 IO：epoll、io_uring 与异步 IO</title><link>https://plumephp.com/os-high-performance-io/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-high-performance-io/</guid><description>The C10K Problem：为什么 poll/select 不具扩展性 在 1999 年，开发者 Dan Kegel 提出了著名的 C10K Problem：如何让一台单机同时处理 10,000 个并发连接？</description></item><item><title>系统性能诊断与调优：strace、perf、bpftrace</title><link>https://plumephp.com/os-performance-tools/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-performance-tools/</guid><description>性能问题往往没有统一的标准答案，但 Linux 提供了一套完整的工具链，可以从不同层面揭示系统的运行状况。本文系统介绍从系统调用跟踪到内核动态追踪的常用工具，帮助开发者在面对高 CPU、高延迟或资源瓶颈时快速定位根因。strace：系统调用跟踪 strace 是最基础也是使用率最高的诊断工具之一。</description></item><item><title>虚拟内存与分页机制：从 MMU 到 TLB</title><link>https://plumephp.com/os-virtual-memory/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-virtual-memory/</guid><description>虚拟内存是操作系统中最精妙的设计之一。它让程序可以方便地使用连续地址空间进行编码，而无需关心复杂多变的物理内存布局。同时，它也为操作系统调度、进程隔离和内存安全提供了底层支撑。从最早的段页式管理，到现代 x86-64 的多级页表，虚拟内存始终是操作系统与硬件交互最核心的环节之一。</description></item><item><title>进程与线程：从 PCB 到内核调度实体</title><link>https://plumephp.com/os-process-thread/</link><pubDate>Thu, 10 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/os-process-thread/</guid><description>操作系统中最核心的抽象莫过于进程（Process）。它不仅是资源分配的基本单位，也是程序运行的载体。而线程（Thread）作为更轻量的执行单元，让并发程序设计更加高效。本文从内核视角出发，深入剖析进程控制块、线程模型、Linux 实现机制以及用户态协程的本质。</description></item><item><title>操作系统深度专题：从内核原理到 Linux 系统编程</title><link>https://plumephp.com/posts/os/</link><pubDate>Tue, 01 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/posts/os/</guid><description>操作系统是计算机科学的基石，理解其原理是进行系统编程、性能优化与问题排查的前提。本专题系统覆盖进程与线程模型（PCB、调度算法 CFS/多级反馈队列）、内存管理机制（虚拟内存、页表、MMU、TLB、换页策略）、文件系统与 I/O 栈（VFS、inode、DMA、mmap、epoll/io_uring、NVMe 多队列与 io_uring 结合）、死锁与同步原语（信号量、互斥锁、条件变量、读写锁、RCU）、中断机制与系统调用、Linux 内核源码导读（启动流程、模块编程、内核数据结构）、容器与虚拟化的操作系统支撑（cgroups/namespace/KVM）、eBPF 可观测与内核追踪、实时调度（PREEMPT_RT）与可信安全加固（LSM/TPM），为后端工程师与系统开发者建立扎实的操作系统理论底座。</description></item></channel></rss>