生如夏花的博客

专注于工业物联网行业数据采集,嵌入式Linux系统裁剪,5G智慧网关软件开发等

链接

链接是将各种代码和数据片段收集并组合成一个单一文件的过程,这个文件可被夹在到内存中运行。链接可以执行于编译时,也就是在源代码被翻译成机器代码时;也可以执行于加载时,也就是在程序被加载器加载到内存并执行时;甚至执行于运行时,也就是由应用程序来执行。

链接时由链接器程序自动执行的。链接器在软件开发中扮演这一个关键的角色,因为它们使得分离编译称为可能。

传统静态链接,加载时共享库的动态链接,以及运行时的共享库的动态链接。

存储器层次结构

存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构。CPU寄存器保存着最常用的数据。靠近CPU的小的、快速的高速缓存存储器(cache memory)作为一部分存储在相对慢速的主存储器中数据和指令的缓冲区域。主存缓存存储在容量较大的、慢速磁盘上的数据,而这些磁盘通常又作为存储在通过网络连接的其他机器的存盘或磁带上的数据的缓冲区域。

程序的机器级表示

计算机执行机器代码,用字节序列编码低级的操作,包括数据处理、管理内存、读写存储设备上的数据、以及利用网络通信。编译器基于编程语言的规则、目标及其的指令集和操作系统遵循的管理,经过一系列阶段生成机器代码。GCC C语言编译器以汇编代码的形式产生输出,汇编代码是机器代码的文本表示,给出程序中每一条指令。