Linux系统编程基础
# Linux 系统编程基础
嵌入式 Qt 开发者的底座——系统调用、进程线程、IPC、网络 IO、内存管理、动态链接、信号处理、定时器,10 篇打通 Linux 应用层核心原理。对标 Web 开发的「JavaScript 核心」模块:不会 JS 直接学 Vue 是空中楼阁,不懂系统调用直接写 Qt 同理。
# 篇目总览
| # | 名称 | 类型 | 说明 |
|---|---|---|---|
| 01 | 系统调用原理精讲 (opens new window) | 🆕 原理 | 用户态/内核态切换、系统调用开销、POSIX标准、glibc、man手册体系 |
| 02 | 文件IO深度解析 (opens new window) | 🆕 原理 | open/read/write/lseek、文件描述符、O_DIRECT/O_SYNC、零拷贝sendfile/splice |
| 03 | 进程管理深度解析 (opens new window) | 🆕 原理 | fork/vfork/clone、exec家族、僵尸/孤儿进程、waitpid、进程组/会话/守护进程 |
| 04 | 线程并发深度解读 (opens new window) | 🆕 原理 | pthread_create、互斥锁/条件变量/读写锁/自旋锁、线程局部存储(TLS)、线程池 |
| 05 | 信号处理深度解读 (opens new window) | 🆕 原理 | 信号生命周期(产生→递达→处理)、sigaction、信号屏蔽字、SIGPIPE/SIGCHLD实战、signalfd |
| 06 | 进程间通信IPC (opens new window) | 🆕 原理 | pipe/FIFO、System V IPC(消息队列/共享内存/信号量)、Unix Domain Socket、mmap共享 |
| 07 | 网络IO多路复用 (opens new window) | 🆕 原理 | socket API、TCP状态机、I/O多路复用(select/poll/epoll)、Reactor模式、tcpdump分析 |
| 08 | 内存管理深度解读 (opens new window) | 🆕 原理 | 虚拟地址空间布局(/proc/pid/maps)、malloc原理(brk/mmap)、valgrind/ASan检测、内存碎片 |
| 09 | 动态链接与共享库 (opens new window) | 🆕 原理 | ELF结构、符号解析、LD_PRELOAD、dlopen/dlsym、RPATH/RUNPATH陷阱、静/动态链接权衡 |
| 10 | Linux与定时器 (opens new window) | 🆕 原理 | CLOCK_MONOTONIC vs CLOCK_REALTIME、timerfd、高精度定时器、NTP跳变防护 |
# 学习路线图
系统基石(01) ──→ 文件与进程(02~03) ──→ 并发模型(04~05)
↓
IPC 与网络(06~07)
↓
内存与链接(08~09)
↓
时间与定时(10)
每篇都配有嵌入式场景的真实案例+代码+调优建议
# 为什么这个模块是"底座"
| 特征 | 说明 |
|---|---|
| 前置模块 | QML 基础入门(01模块) |
| 后置模块 | QT 核心库实践(02模块)依赖本模块的进程/线程/IPC知识 |
| 对标 Web | 相当于「JavaScript 核心」——不学系统调用就写 Qt = 不学 JS 就写 Vue |
| 嵌入式专属 | 每篇的案例都来自嵌入式真实场景(资源受限/无桌面/交叉调试) |
上次更新: 2026/07/12, 19:39:51