+   [UIUC CS241 系统编程中文讲义](README.md)
+   [0\. 简介](docs/1.md)
    +   [#Informal 词汇表](docs/3.md)
    +   [#Piazza：何时以及如何寻求帮助](docs/4.md)
    +   [编程技巧，第 1 部分](docs/5.md)
    +   [系统编程短篇小说和歌曲](docs/6.md)
+   [1.学习 C](docs/7.md)
    +   [C 编程，第 1 部分：简介](docs/8.md)
    +   [C 编程，第 2 部分：文本输入和输出](docs/9.md)
    +   [C 编程，第 3 部分：常见问题](docs/10.md)
    +   [C 编程，第 4 部分：字符串和结构](docs/11.md)
    +   [C 编程，第 5 部分：调试](docs/12.md)
    +   [C 编程，复习题](docs/13.md)
+   [2.进程](docs/14.md)
    +   [进程，第 1 部分：简介](docs/15.md)
    +   [分叉，第 1 部分：简介](docs/16.md)
    +   [分叉，第 2 部分：Fork，Exec，等等](docs/17.md)
    +   [进程控制，第 1 部分：使用信号等待宏](docs/18.md)
    +   [进程复习题](docs/19.md)
+   [3.内存和分配器](docs/20.md)
    +   [内存，第 1 部分：堆内存简介](docs/21.md)
    +   [内存，第 2 部分：实现内存分配器](docs/22.md)
    +   [内存，第 3 部分：粉碎堆栈示例](docs/23.md)
    +   [内存复习题](docs/24.md)
+   [4.介绍 Pthreads](docs/25.md)
    +   [Pthreads，第 1 部分：简介](docs/26.md)
    +   [Pthreads，第 2 部分：实践中的用法](docs/27.md)
    +   [Pthreads，第 3 部分：并行问题（奖金）](docs/28.md)
    +   [Pthread 复习题](docs/29.md)
+   [5.同步](docs/30.md)
    +   [同步，第 1 部分：互斥锁](docs/31.md)
    +   [同步，第 2 部分：计算信号量](docs/32.md)
    +   [同步，第 3 部分：使用互斥锁和信号量](docs/33.md)
    +   [同步，第 4 部分：临界区问题](docs/34.md)
    +   [同步，第 5 部分：条件变量](docs/35.md)
    +   [同步，第 6 部分：实现障碍](docs/36.md)
    +   [同步，第 7 部分：读者编写器问题](docs/37.md)
    +   [同步，第 8 部分：环形缓冲区示例](docs/38.md)
    +   [同步复习题](docs/39.md)
+   [6.死锁](docs/40.md)
    +   [死锁，第 1 部分：资源分配图](docs/41.md)
    +   [死锁，第 2 部分：死锁条件](docs/42.md)
    +   [死锁，第 3 部分：餐饮哲学家](docs/43.md)
    +   [死锁复习题](docs/44.md)
+   [7.进程间通信＆amp;调度](docs/45.md)
    +   [虚拟内存，第 1 部分：虚拟内存简介](docs/46.md)
    +   [管道，第 1 部分：管道介绍](docs/47.md)
    +   [管道，第 2 部分：管道编程秘密](docs/48.md)
    +   [文件，第 1 部分：使用文件](docs/49.md)
    +   [调度，第 1 部分：调度过程](docs/50.md)
    +   [调度，第 2 部分：调度过程：算法](docs/51.md)
    +   [IPC 复习题](docs/52.md)
+   [8.网络](docs/53.md)
    +   [POSIX，第 1 部分：错误处理](docs/54.md)
    +   [网络，第 1 部分：简介](docs/55.md)
    +   [网络，第 2 部分：使用 getaddrinfo](docs/56.md)
    +   [网络，第 3 部分：构建一个简单的 TCP 客户端](docs/57.md)
    +   [网络，第 4 部分：构建一个简单的 TCP 服务器](docs/58.md)
    +   [网络，第 5 部分：关闭端口，重用端口和其他技巧](docs/59.md)
    +   [网络，第 6 部分：创建 UDP 服务器](docs/60.md)
    +   [网络，第 7 部分：非阻塞 I O，select（）和 epoll](docs/61.md)
    +   [RPC，第 1 部分：远程过程调用简介](docs/62.md)
    +   [网络复习题](docs/63.md)
+   [9.文件系统](docs/64.md)
    +   [文件系统，第 1 部分：简介](docs/65.md)
    +   [文件系统，第 2 部分：文件是 inode（其他一切只是数据...）](docs/66.md)
    +   [文件系统，第 3 部分：权限](docs/67.md)
    +   [文件系统，第 4 部分：使用目录](docs/68.md)
    +   [文件系统，第 5 部分：虚拟文件系统](docs/69.md)
    +   [文件系统，第 6 部分：内存映射文件和共享内存](docs/70.md)
    +   [文件系统，第 7 部分：可扩展且可靠的文件系统](docs/71.md)
    +   [文件系统，第 8 部分：从 Android 设备中删除预装的恶意软件](docs/72.md)
    +   [文件系统，第 9 部分：磁盘块示例](docs/73.md)
    +   [文件系统复习题](docs/74.md)
+   [10.信号](docs/75.md)
    +   [过程控制，第 1 部分：使用信号等待宏](docs/76.md)
    +   [信号，第 2 部分：待处理的信号和信号掩码](docs/77.md)
    +   [信号，第 3 部分：提高信号](docs/78.md)
    +   [信号，第 4 部分：信号](docs/79.md)
    +   [信号复习题](docs/80.md)
+   [考试练习题](docs/81.md)
    +   [考试主题](docs/82.md)
    +   [C 编程：复习题](docs/83.md)
    +   [多线程编程：复习题](docs/84.md)
    +   [同步概念：复习题](docs/85.md)
    +   [记忆：复习题](docs/86.md)
    +   [管道：复习题](docs/87.md)
    +   [文件系统：复习题](docs/88.md)
    +   [网络：复习题](docs/89.md)
    +   [信号：复习题](docs/90.md)
    +   [系统编程笑话](docs/91.md)