up md md md md md md md md md md
返回上级
information - state - transition
初学计算机时,你会看到很多词:变量、对象、数组、文件、连接、缓存、进程、线程、协议、数据库记录。它们看起来来自不同课程,但底层都绕不开同一个问题:
abstraction - interface - layering
计算机系统太复杂了。一个程序运行时,下面有语言运行时、操作系统、文件系统、网络协议、CPU、内存、磁盘、网卡。没有人能在写每一行代码时同时想着所有细节。
cost - model
程序“能跑”只是最低要求。CSER 还要问:
failure - reliability
初学写程序时,我们通常只写正常路径:
representation - boundaries
计算机里没有天然的整数、小数、字符、图片、文件、请求。机器保存的只是 bit。
data - movement - buffer - cache
很多程序慢,不是慢在“算”,而是慢在“搬”。
control - flow - state - machine
程序看起来是在“执行语句”,更底层一点看,它其实一直在做两件事:
concurrency - time - order
单线程程序里,很多事情看起来很自然:
debugging - observability
调试不是猜谜,也不是靠经验随便改几行代码试试。
README · foundations
这一部分放在四大件之前。它的目标是先建立“底层共同语言”,让后面的数据结构、网络、操作系统、组成原理都能接在同一套模型上。