星巡研究院

渗透视角下的操作系统底层

**1. 干什么** Shell 是命令解释器,即运行在用户态、负责读取用户输入的命令字符串、拆分为命令名与参数、并决定由谁执行的普通程序。常见实现包括 bash、zsh、dash。终端模拟器(GNOME Terminal、iTerm2)只负责绘制窗口、接收键盘字符并把字节传给 Shell,二者是分工关系,不是同一程序。 **2. 谁在调** * 用户态主体:Shell 进程本身,以及向它输入字符串的终端模拟器。 * C 库封装层:Shell 内部使用 glibc 的字符串处理、环境变量与进程创建函数。 * 内核态主体:为 Shell 分配进程资源、在 Shell 发起创建子进程或文件操作时执行校验。 **3. 做什么业务** Shell 读取一行输入,按空白字符拆成命令名与参数。对外部命令,它遍历 PATH 环境变量列出的目录定位可执行文件。对内置命令,它在自身代码内直接完成。Shell 维护当前工作目录、环境变量、命令历史等自身状态。 **4. 组件清单** * 命令解析器(词法拆分、别名展开、通配符展开) * PATH 目录搜索逻辑 * 内置命令实现
这是进阶内容

升级理论包获取本册全部章节,从机器本质系统入门