Appearance
题目
下列选项中,需要在操作系统进行初始化过程中创建的是( )。
错因
B
把"OS 启动时挂载根文件系统"和"创建根目录"画了等号。挂载只是把已存在的文件系统接到目录树上(让 / 指过去),根目录早在格式化(mkfs)那一刻就写在磁盘上了——OS 启动只读不建。
C
觉得 OS 启动时要扫描硬盘构建分区表。但分区表是分区工具(fdisk / parted)一次性写在 MBR / GPT 里的元数据,磁盘自带。OS 启动时只是读它来决定怎么挂载,不会重写。
D
以为 inode 表是 OS 启动时建的。inode 表跟空闲块位图、超级块一起,都是格式化(mkfs)时落到磁盘的固定数据结构。OS 启动后只把用到的 inode 缓存到内存里,磁盘上的 inode 表本身不会重建。
总解析
把"OS 启动期建的东西"和"磁盘上早就持久存在的东西"分开就一目了然:
| 资源 | 何时创建 | 谁创建 |
|---|---|---|
| A 中断向量表 | OS 初始化时 | 内核(填 IDT,把中断号映射到对应 ISR 入口) |
| B 文件系统根目录 | 文件系统格式化时(mkfs) | 文件系统创建工具 |
| C 硬盘分区表 | 分区时(fdisk / parted) | 分区工具 |
| D 索引节点表 | 文件系统格式化时(mkfs) | 文件系统创建工具 |
中断向量表是 OS 接管中断处理的前提——必须在初始化阶段就把每个中断号绑定到对应的内核处理函数,否则后续任何一次中断都会失去归宿。它是 OS 启动期的必修课,跟磁盘上那些"出厂自带"的元数据性质完全不一样。
最终答案是 A。