一、程序的编译过程
在unix上,从源文件到目标文件的转化是由编译器驱动程序完成:unix> gcc -o hello hello.c 。这个过程可以分为四个阶段,分别为(预处理,编译,汇编,链接)
1)预处理阶段:根据以字符#开头的命令,修改原始的C程序。
2)编译阶段:将文本文件(.i)翻译成文本文件(.s),它包含一个汇编语言程序。
3)汇编阶段:将.s文件翻译成机器语言指令,把这些指令打包成可重定位目标程序的格式,并将结果保存在目标文件.o中。.o文件是一个二进制文件,它的字节编码是机器语言指令而不是字符。
4)链接阶段:将程序调用的标准库预编译好的目标文件,合并到.o程序中,形成可执行目标文件。可以被加载到内存中,由系统执行。
二、系统的硬件组织
1)总线:在各个部件间传递字节信息。通常被设计成传送定长的字节快,也就是字。
2)I/O设备:系统与外部世界的联系通道。
控制器是置于I/O设备本身的或者系统的主板上的芯片组。
适配器是一块插在主板插槽上的卡。
3)主存:一个临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。存储器是一个线性的字节数组,每个字节都有其唯一的地址。
4)处理器(CPU):解释(或执行)存储在主存中指令的引擎。
三、操作系统的两个基本功能
1)防止硬件被失控的应用程序滥用。
2)向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备。