**1. 干什么** C 语言仅为语法,文件、网络、进程能力由 C 库提供,C 库紧贴操作系统包装系统调用,三层依赖为内核、C 库、上层 C 代码。 **2. 谁在调** * 用户态主体:编写的 C 代码与命令行工具。 * 系统层封装:glibc(Linux)、CRT 加 kernel32/ntdll(Windows)、libSystem(macOS)。 * 内核态主体:各系统调用号对应的内核入口。 **3. 做什么业务** 最底层内核只认系统调用号。中间 C 库把生硬调用号包装为带缓冲、格式化与错误处理的函数,fopen 内部调 open,printf 内部调 write,socket 封装裸调用。最上层为 C 代码。同一 C 程序在三系统链接三份不同库,函数名大体兼容源于 POSIX 兼容约定,陷入指令、调用号与内核对象各不相同。 **4. 组件清单** * 内核系统调用号 * glibc / CRT 加 ntdll /libSystem * fopen・printf・socket 封装 * POSIX 兼容约定 **5. 最小可运行** `