CSAPP 系统 I/O 实验室
CsappSystemIoLab
对应 CSAPP 第 10 章「系统级 I/O」。交互式学习 Unix I/O 模型:文件描述符、read/write 系统调用、RIO(带缓冲的 I/O)包。可视化进程打开文件表、系统级文件表、v-node 表的关系,理解文件共享和重定向的本质。
Unix I/O 操作模拟
CSAPP 第 10 章:Unix I/O 模型是所有 I/O 的基础。文件描述符、read/write 系统调用、 以及进程打开文件表的关系,是理解重定向和管道的前提。
1
int fd = open("data.txt", O_RDONLY);打开文件,返回文件描述符 32
read(fd, buf, 100);3
close(fd);4
int fd2 = open("output.txt", O_WRONLY|O_CREAT, 0644);5
write(fd2, "Hello", 5);6
dup2(fd2, 1);0 / 6 步
进程文件描述符表
| FD | 名称 | 类型 | 位置 | 标志 |
|---|---|---|---|---|
| 0 | stdin | stdin | 0 | O_RDONLY |
| 1 | stdout | stdout | 0 | O_WRONLY |
| 2 | stderr | stderr | 0 | O_WRONLY |
关联教材
以下教材与本沙盒涉及的抽象层级相关,建议系统学习:
关联教材章节
以下教材章节与本沙盒涉及的抽象层级相关,建议配合阅读:
第3章深入理解计算机系统
程序的机器级表示
有时候你要学会像机器一样思考
x86-64汇编寻址模式栈帧过程调用
第5章深入理解计算机系统
优化程序性能
我们可以做的更好
编译器优化循环展开并行性存储器山
第7章深入理解计算机系统
链接
欢迎来到灰色地带
静态链接目标文件符号解析重定位
第8章深入理解计算机系统
异常控制流
操作系统:唯一的使命就是帮助程序运行
异常进程系统调用信号
第9章深入理解计算机系统
虚拟内存
假装我们有用不完的物理内存
虚拟地址页表TLB内存映射
第10章深入理解计算机系统
系统级I/O
务必搞清楚你自己正在和整个系统的哪一层打交道
文件描述符RIO包I/O重定向
第12章深入理解计算机系统
并发编程
并发与并行,傻傻分不清楚?
线程互斥锁信号量生产者-消费者
第4章计算机系统要素
机器语言
CPU 能理解的指令
指令集寻址模式汇编
第6章计算机系统要素
汇编器
从助记符到机器码
符号解析代码生成
第7章计算机系统要素
虚拟机(上)
栈式机器
栈操作算术指令内存访问
第8章计算机系统要素
虚拟机(下)
控制流
标签分支函数调用
第10章计算机系统要素
编译器(上)
语法分析
词法分析递归下降
学习路径推荐
建议按以下顺序学习,循序渐进掌握计算机科学:
前置沙盒(建议先学习)
使用说明
- •调整参数观察行为变化,实时反馈
- •状态自动编码到 URL,可直接分享给他人
- •支持键盘操作(Tab 切换、方向键调整)