A Story on Operating Systems
A Story on Operating Systems
A Story on Operating Systems
从逻辑门到计算机系统
计算机系统的 “公理系统”
数字系统 = 状态机
状态:触发器 (bit array)
迁移:组合逻辑 (真值表)
Everything is a state machine
操作系统是状态机的管理者
“数码管” 作为第一个例子
UNIX Philosophy 和 “编程” 的力量
彩蛋:复习提纲是使用 UNIX Philosophy 生成的
彩蛋:我们可以让 AI 帮我们
A Story on Operating Systems
Virtualization
状态机管理
fork, execve, exit, signal, kill
进程的地址空间
mmap, munmap, mprotect
操作系统对象
open, pipe, mkfifo, close, read, write
其他
getpid - 进程构成树状的结构
A Story on Operating Systems
Concurrency
原子操作
atomic_inc, atomic_cmpxchg
线程管理
clone (spawn), exit, exit_group
同步和互斥
futex (P, V, join, mutex_lock, mutex_unlock, ...)
其他
gettid
A Story on Operating Systems
Persistence
文件 (数据 & 元数据) 管理
open, read, write, close, stat, chmod, chown, fsetxattr/fgetxattr, ftruncate, ...
目录树管理
mount, mkdir, readdir, link, symlink, unlink, rename, chdir, ...
一致性管理
sync > syncfs > fsync > fdatasync
其他
flock, pivot_root, ...
A Story on Operating Systems
从逻辑门到计算机系统
打印 Hello World
应用程序 (app) → 加载器 ld.so → 库函数 → 系统调用
操作系统课给这个稍显复杂的过程一个清晰的轮廓
你可以在其中的每一步都对应到一个
具体的示例代码
“这一切是可以掌控的”
一个改变全人类的 prompt
我在做 [X]。如果你是一位专业人士,有更好的方法和建议吗?尽可能全面。
A Story on Operating Systems
《操作系统》:你的真正 “编程” 启蒙课
你不再惧怕任何 “system”
嵌入式系统
通用操作系统
数据库系统
分布式系统
二进制安全
……
也不再惧怕任何 “需求” 的实现
只要操作系统能支持的,我就会实现!