Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第4部分 库与运行库

  • malloc是如何分配出内存的?
  • 局部变量存放在哪里?
  • 为什么一个编译好的简单的HelloWorld程序也需要占据好几KB的空间?
  • 为什么程序一启动就有堆、I/O或异常系统可用?

在这一部分里,我们将详细剖析在程序运行时,隐藏于背后的各种秘密:为什么程序能够执行,它是如何执行的,这些问题将在本部分一一得到解答。首先让我们对程序的运行环境有一个总览,下图描述了一个典型的程序环境。


程序环境

由此可以看到,程序的环境由以下三个部分组成:

  • 内存。
  • 运行库。
  • 系统调用。

此外,内核也可算作运行环境的一部分,但实际上系统调用部分充当了程序与内核交互的中介,因此在这里不把内核算作运行环境。在接下来的几章里,我们会对这几部分一一进行介绍。