计算机系统漫游
2016年7月17日
1.1 信息就是位+上下文
计算机中由ASCII组成的文件为文本文件, 其他格式的全是二进制文件。
1.2 程序的编译过程
源程序 -> |预处理器(cpp)| -> helo.i -> |编译器(ccl)| -> hello.s -> |as汇编器| -> |链接器ld| -> 可执行
- 预处理阶段。 预处器根据以字符#开头的命令,修改源程序, 例如include展开, 宏展开。得到另一个c代码,通常以.i 结尾
- 编译阶段。编译器ccl,将 .i文件编译为汇编语言的程序, 通常以.s结尾。
- 汇编阶段。 汇编器as, 将hello.s翻译为机器语言指令,打包成为一种叫做可重定位目标文件(relocatable object program)的格式,并将目标结果保持到hello.o中。此时的产出是二进制文件。
- 链接阶段。合并程序调用的库函数,产出可执行文件。
了解计算机系统如何工作有很大的益处
- 优化程序性能
- 理解编译错误
- 避免安全漏洞
1.4 计算机系统的硬件组成
1. 总线
在系统中各个部件传递信息,通常被设计成传递定长的字节块,也就是字(word),多数机器4个字节(32位),有的是8字节(64位)
2 . IO 设备
IO设备是计算机系统与外部沟通的渠道, 我们常见的IO设备包括键盘、鼠标、显示器、硬盘等等
3. 主存
主存是一组动态随机存储器芯片组成,可以理解为一个线性的字节数组,每一个字节都有唯一的地址,即数组的索引。
4. 处理器
//todo