1.4处理器读并解释储存在内存中的指令
此刻,hello.c源程序已经被编译系统翻译成了可执行目标文件hello,并被存放在 磁盘上。要想在Unix系统上运行该可执行文件,我们将它的文件名输入到称为shell的应 用程序中:
linux> ./hello
hello, world
linux>
shell是一个命令行解释器,它输出一个提示符,等待输入一个命令行,然后执行这 个命令。如果该命令行的第一个单词不是一个内置的shell命令,那么shell就会假设这是 一个可执行文件的名字,它将加载并运行这个文件。所以在此例中,shell将加载并运行hello程序,然后等待程序终止。hello程序在屏幕上输出它的消息,然后终止。shell 随后输出一个提示符,等待下一个输入的命令行。
1.4. 1系统的硬件组成
为了理解运行hello程序时发生了什么,我们需要了解一个典型系统的硬件组织,如 图所示。这张图是近期Intel系统产品族的模型,但是所有其他系统也有相同的外观 和特性。现在不要担心这张图很复杂一一我们将在本书分阶段对其进行详尽的介绍。
1.总线
贯穿整个系统的是一组电子管道,称作总线,它携带信息字节并负责在各个部件间传 递。通常总线被设计成传送定长的字节块,也就是字(word)o字中的字节数(即字长)是一 个基本的系统参数,各个系统中都不尽相同。现在的大多数机器字长要么是4个字节(32 位),要么是8个字节(64位)。本书中,我们不对字长做任何固定的假设。相反,我们将 在需要明确定义的上下文中具