上QQ阅读APP看书,第一时间看更新
Chapter 2 第2章 程序生命周期阶段基础
在前一章中,读者应该已经对现代多任务操作系统在程序执行中所起到的作用有了大致的了解。那么开发人员会很自然地想到下一个问题:若想让程序能够执行,需要做什么,如何做以及为何这样做?
就像一只蝴蝶的生命周期是从毛毛虫阶段开始的一样,程序的生命周期极大地依赖于二进制文件的内部构造。操作系统装载器会加载、解包这些数据,并将这些数据用于程序的执行阶段。本章随后即将讨论的内容将围绕准备数据和嵌入数据到二进制可执行文件结构体的方法展开,读者应该不会对此感到意外。我们假定程序是用C/C++编写的。
为了完全理解整个生命周期过程,我们会对程序生命周期的剩余细节进行详细的分析,包括程序的加载与执行阶段。本书将会重点围绕以下几个程序生命周期阶段进行深入的讨论:
1)编写源代码。
2)编译。
3)链接。
4)装载。
5)执行。
实际上,相比链接、装载和执行阶段来说,本章的内容侧重于讲解编译阶段的有关细节。本章也会稍微提及其余一些阶段(特别是链接阶段)的内容,但是你仅仅会了解到这些内容的冰山一角。在介绍完大多数和链接相关的基础知识之后,本书的剩余章节将会针对装载和执行阶段进行详细的阐述。