Linux 知识图谱
本知识库以节点、关系和可验证证据组织 Linux,而不是按问答或命令手册堆砌内容。每个核心节点都连接前置知识、底层机制、观测命令、指标、故障现象、验证实验和官方来源。
高频面试题
定位与读者
- 系统学习者:沿前置关系建立内核、用户空间和运维工具的整体模型。
- SRE(Site Reliability Engineering,站点可靠性工程)与运维工程师:从现象节点进入指标、组件、命令、原因和修复链。
- 性能与安全工程师:追踪跨 CPU、内存、I/O、网络、Cgroup 和安全控制的影响。
- RAG(Retrieval-Augmented Generation,检索增强生成)系统:以稳定节点 ID 和独立 Markdown 页面切分、引用和溯源。
基线与边界
- 内核机制:面向当前受支持的 Linux 6.x 系列,版本敏感项单独标注。
- 发行版:同时覆盖 Debian 13、Ubuntu 24.04 LTS 与 RHEL 9/10。
- init:以 systemd 为主,明确它是用户空间实现而不是 Linux 内核组成。
- Shell:区分 POSIX Shell、GNU Bash 和具体工具实现。
- 实验:只读命令可在隔离 Linux 容器或虚拟机执行;危险写操作不自动执行。
总体图谱
本体规范
- 图谱设计(开发工具)
- 节点类型(知识图谱本体——开发工具)
- 关系类型(知识图谱本体——开发工具)
- Schema(知识图谱本体——开发工具)
- ID 与命名规则(知识图谱本体——开发工具)
节点唯一 ID 使用 linux.<domain>.<concept>。关系方向使用主动语义,例如 Command -[:OBSERVES]-> KernelSubsystem,因果关系必须携带条件或证据。
领域目录
| 领域 | 核心节点 | 范围 |
|---|---|---|
| 01 Linux 基础、定位与硬件边界 | 4 | 建立内核、发行版、用户空间、CPU 特权级、中断与异常的边界。 |
| 02 内核接口与系统调用 | 4 | 解释系统调用 ABI、调用路径、异常返回以及内核状态接口。 |
| 03 启动流程与 systemd | 4 | 连接固件、Bootloader、内核、initramfs、PID 1 与服务依赖图。 |
| 04 进程、调度与 IPC | 6 | 覆盖 task、进程/线程、创建回收、调度、信号与进程间通信。 |
| 05 虚拟内存与内存压力 | 6 | 连接地址转换、进程映射、页缓存、回收、Swap、OOM、NUMA 与压力指标。 |
| 06 文件系统、VFS 与 I/O | 5 | 连接路径解析、inode、打开文件、挂载、文件系统实现和 I/O 路径。 |
| 07 块存储、LVM 与 RAID | 4 | 解释块设备、分区、设备映射、LVM、RAID 与文件系统的层级关系。 |
| 08 身份、权限与安全控制 | 6 | 覆盖 DAC、ACL、特殊权限、Capabilities、PAM、SSH、LSM、Seccomp 与加固。 |
| 09 Linux 网络栈与虚拟网络 | 5 | 从 Socket 经 TCP/IP、路由、Netfilter 到网卡和容器虚拟网络。 |
| 10 Shell、工具链与定时任务 | 4 | 覆盖 Shell 解析、文本处理、动态链接、软件包、环境变量和调度。 |
| 11 日志、状态接口与可观测性 | 4 | 建立日志来源、/proc 与 /sys、经典工具、系统调用和 eBPF 的证据链。 |
| 12 性能工程与容量基线 | 4 | 坚持测量、定位、修改、回归的闭环,并区分利用率、饱和度和错误。 |
| 13 容器、Cgroup 与虚拟化 | 4 | 连接 Namespace、Cgroup、OverlayFS、容器运行时、虚拟机与宿主资源。 |
| 14 故障排查图谱 | 18 条链路 | 从现象到指标、组件、诊断、原因和修复 |
跨领域程序启动路径
学习与排障入口
- 学习路径(开发工具)
- 故障排查路径(开发工具)
- 命令与底层对象映射(开发工具)
- 跨领域可视化(开发工具)
- 覆盖矩阵(开发工具)
- 来源与验证报告(开发工具)
机器可读图数据
图谱数据(开发工具) 提供 nodes.jsonl、edges.jsonl、CSV、JSON Schema 和 Neo4j Cypher 导入模板。JSONL 保留完整属性,CSV 用于交换和批量导入。
图数据库导入
- 将
nodes.csv与edges.csv放入 Neo4j import 目录。 - 执行
import.cypher,先按id合并节点,再按source/target创建RELATED关系。 - 关系真实类型保存在
relation属性中,以避免动态 Cypher 和 APOC 依赖。 - 导入后检查节点数、关系数、孤立节点和重复 ID。
RAG 切分建议
- 主切分单位:一个核心节点 Markdown 文件。
- 主键:frontmatter 的
id,禁止以文件名作为唯一业务键。 - 元数据过滤:
domain、type、difficulty、kernel_versions、verified_at。 - 召回扩展:命中节点后沿
REQUIRES_KNOWLEDGE_OF、OBSERVES、DIAGNOSED_BY和NEXT_STEP扩一跳。 - 答案溯源:优先引用节点自身的官方来源,不把 Mermaid 当作事实数据源。
生成批次
| 批次 | 范围 | 状态 |
|---|---|---|
| 01 | 本体、Schema、命名、基础、系统调用、启动、进程 | 已完成 |
| 02 | 内存、文件系统、存储、权限与安全 | 已完成 |
| 03 | 网络、Shell、日志、性能、容器与虚拟化 | 已完成 |
| 04 | 18 条故障链、学习路径、可视化与覆盖矩阵 | 已完成 |
| 05 | JSONL、CSV、Cypher、Schema 与自动校验 | 已完成 |
来源与验证规则
关键结论优先来自 Linux Kernel Documentation、man-pages、systemd、GNU/POSIX、RFC 和主流发行版官方文档。生成环境为 macOS,不能冒充 Linux 运行证据;已在隔离 Linux 容器验证的内容记录在验证报告,其余节点标记为来源核验或目标环境待验证。
