CSAPP
第一章 计算机系统漫游
1.1 信息就是位+上下文
- 系统中所有信息-----包括磁盘文件、内存中的程序、内存中存放的用户数据以及网络上上传的数据,都是由一串比特表示的。同时区分不同数据对象的唯一方法就是我们读到这些数据对象时的上下文。
1.2 程序被其他程序翻译成不同的格式
- 在Unix系统上,从源文件到目标文件的转化是由编译器驱动程序完成的。
- 预处理器、编译器、汇编器、链接器一起构成了编译系统(compilation system)。
1.4 处理器读并解释存储在内存中的指令
linux> ./hello
hello world
linux>
- shell是一个命令行解释器,他输出一个提示符,等待输入一个命令行,然后执行这个命令。如果该命令行的第一个单词不是一个内置的shell命令,那么shell就会假设这是一个可执行文件的名字,它将加载并运行这个文件。
- 系统的硬件组成
①总线
携带字节信息并负责在各个部件间传递。通常总线被设计成传送定长的字节块,也就是字。字中的字节数称为字长,现在大多数机器字长要么是4个字节(32位),要么是8个字节(64位)。
②I/O设备
每一个I/O设备通过一个控制器或者适配器与I/O总线相连。控制器和适配器的区别在于它们的封装方式。
③主存
④处理器
解释或执行储存在主存中的指令的引擎。处理器的核心是一个大小为一个字的寄存器。称为程序计数器
1.7 操作系统管理硬件
- 可以把操作系统看作应用程序和硬件之间插入的一层软件。
- 进程要交替切换执行,操作系统保持跟踪进程运行所需的所有状态信息,也就是上下文信息,比如寄存器文件的值、主存的内容。
- Linux中,地址空间最上面的区域是保留给操作系统中的代码和数据,这对所有进程来说都是一样的。