1.1 信息就是位加上下文
- 现代操作系统使用ASCII标准表示文本字符
- 像hello.c这样只有ASCII字符构成的文件称为文本文件,其他的称为二进制文件。
- 系统中所有的信息都是由一串比特构成的,区分不同数据对象的唯一方法是我们读到这些数据对象的上下文,如,在不同的上下文中,一个同样的字节序列可能表示一个整数、浮点数、字符串或者机器指令。
1.2 程序被其他程序翻译成不同的格式
- 预处理器阶段:根据以字符#开头的命令,修改原始的C程序,得到.i程序。
- 编译阶段:将文本文件hello.i翻译成文本文件hello.s,它包含一段汇编语言程序。
每行语句以一种文本格式描述了一条低级机器语言指令。 - 汇编阶段:将hello.o翻译成机器语言指令,打包成可重定位目标程序,结果保存在hello.o中,它是一个二进制文件。
- 链接阶段:hello程序调用了printf函数,该函数存在于名为printf.o的预编译好的目标文件中,链接器将它与hello.o合并,得到可执行文件,加载到内存中,由系统执行。