1,信息就是位+上下文
8位一组构成1个字节,源程序实际上就是一个由0和1组成的位序列。
2,程序被其他其他程序翻译成不同的格式
编译器驱动程序读取源程序文件hello.c,把它翻译成一个可执行的目标文件hello。
3,了解编译系统如何工作是大有益处的
3.1,优化程序性能, 编译器是如何将C程序语言翻译成汇编语言。
3.2,理解链接时出现的错误。
3.3,避免安全漏洞。
4,处理器读并解释存储在存储器中的指令
shell是一种命令解释器。
4.1, 系统的硬件组成
总线:贯穿整个系统的是一组电子管道,称为总线。
字中的字节数(即字长)是一个基本的系统参数。
I/O设备
输入输出设备是系统与外界的联系通道,每个I/O设备都是通过控制器或适配器链接到I/O总线上的。
主存
主存是一个临时存储设备,在处理器执行程序时,它被用来存放程序和程序处理的数据,组成程序的机器指令都是由不定量的字节构成,与C程序变量相对应的数据项的大小是根据类型变化的。
处理器
解释(或执行)存储在主存中指令的引擎。PC是处理器的核心,在任何一个时间点上,都指向主存中的某条机器语言指令。
CPU可能会执行如下一些操作:
加载,
存储,
更新,
I/O读,
I/O写,
转移,
4.2 执行Hello程序
5,高速缓存
6,形成层次结构的存储设备
可以运用对整个存储器层次模型的理解来改善程序性能。
7,操作系统管理硬件
我们可以把操作系统看成是应用程序和硬件之间插入的一层软件。
操作系统提供的抽象表示
进程是对处理器,主存储器和I/O设备的抽象。虚拟存储器是对主存的抽象,文件是对I/O设备的抽象。
进程是操作系统对 运行程序的一种抽象,进程上下文它保存了程序运行所需的所有状态信息。
虚拟存储器由大量准确定义的区组成,每个区都由各自的功能。
- 程序代码和数据,可执行程序一开始运行时就定义和初始化好了的。
- 堆,在程序运行时动态的扩展和收缩。
- 共享库,像C标准库和数学库这样的共享库的代码和数据。
- 栈,用来实现函数调用。
- 内核虚拟存储器,内核是操作系统总是驻留在存储器的部分。
文件
文件使得应用程序可以统一的看待系统中可能还有的各式各样的I/O设备。
8,利用网络和其他系统进行通信