Computer System : A Programer's Perspective
计算机系统漫游
- 编译系统组成
- 预处理器
- 编译器
- 汇编器
- 链接器
预处理阶段: 预处理器根据字符'#'开头的命令,修改原始的C程序,将头文件直接插入程序文本中,得到一个以.i作为文件扩展名的程序.
编译阶段: 编译器将文本文件.i翻译成文本文件.s,包含一个汇编语言程序.
汇编阶段: 汇编器将.s翻译成机器语言指令,并将指令打包成一种可重定位目标文件的格式,并将结果保存到一个以.o为文件扩展名的二进制文件,其中包含17个字节的main函数的指令编码.
链接阶段: 链接起负责将C库里的函数合并,得到一个可执行目标文件并加载到内存中,由系统执行
- 系统硬件的组成
- 总线
- I/O设备
- 主存
- 处理器
总线
贯穿整个系统对的一组电子管道,成为总线.通常总线被设计成传送定长的字节快.
I/O设备
I/O设备是系统与外部世界的联系通道
主存
主存是临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据.从物理上来说,主存是有一组动态随机存取的存储器芯片组成.从逻辑上来说,存储器是一个线性的字节数组,每个字节都有其唯一地址,这些地址是从零开始的.
处理器
处理器是解释存储在主存中指令的引擎.处理器的核心是一个大小为一个字的存储设备(寄存器)称为程序计数器(PC).在任何时刻,PC都指向主存中的某条机器语言指令.