← 返回专栏列表

Linux 专栏

共 7 篇文章

1. 进程与线程

进程是资源分配的最小单位,线程是 CPU 调度的最小单位。理解二者的区别与协作机制,是写出高并发 Java/Go 程序的基础。本文覆盖进程状态机、IPC 方式、线程同步原语、fork/exec 语义以及僵尸进程的成因与处理。

2. 内存管理

Linux 内存管理的核心是虚拟地址空间抽象:每个进程拥有独立的虚拟地址空间,通过页表映射到物理内存。理解分页机制、缺页中断、brk/mmap 分配方式以及 OOM Killer 的行为,是排查 Java/Go 服务内存问题的基础。

3. 文件系统

Linux "一切皆文件"的设计哲学通过 VFS(虚拟文件系统)抽象层实现。理解 inode/dentry 结构、Page Cache 工作原理以及各种 I/O 模式,是优化 Java/Go 服务磁盘 I/O 性能的前提。

4. 网络与 IO 模型

Linux 网络子系统基于 TCP/IP 四层模型构建,应用程序通过 Socket API 与内核协议栈交互。理解 5 种 I/O 模型(尤其是 epoll 的 ET/LT 模式)和零拷贝技术,是构建高并发 Java/Go 服务的理论基础。

5. 中断机制

中断是操作系统与硬件协作的核心机制,也是线程调度、I/O 处理、进程通信的底层基础。本文从硬件中断出发,逐层剖析 OS 如何利用中断驱动调度,再到 Java 的完整实现原理,理清三个层面"中断"之间的关系。

6. 性能分析工具

性能分析的核心不是工具本身,而是对系统运行原理的掌握。工具只是帮你更快观测到需要的指标。本文按 CPU/内存/IO/网络四个维度整理常用工具,并给出 USE 方法论作为分析框架。

7. eBPF 技术实战

eBPF(extended Berkeley Packet Filter)是 Linux 内核中一个安全可编程的虚拟机框架,允许在不修改内核源码、不重新编译内核的前提下,将自定义逻辑注入内核执行。它从最初的包过滤演进为覆盖网络、可观测性、安全控制的通用内核扩展平台,是当前最活跃的 Linux 内核子系统之一。