2011-08-17 71 views
3

我知道目标文件通常包含代码,数据,堆和堆栈部分。
但我想知道这是如何安排在Windows可执行文件和Linux可执行文件。
我在互联网上搜索,发现一些结构。
我明白.text是代码,.data是全局变量。
我想知道这里是Linux和Windows平台的堆栈和堆?
任何人都可以告诉我可执行文件结构吗?Windows可执行文件结构

在此先感谢...

+1

对于Windows PE/COFF请参阅http://stackoverflow.com/questions/2856756/portable-executable-structure-explanation/2856849#2856849 – 2011-08-17 11:22:08

+0

我实际上有文档。这是整个规范。我只需要知道这些部分是如何安排的。有人告诉我,我们不能在Linux中执行Windows程序的原因之一就是因为这个原因。所以我只需要总体纲要 – Harikrishnan 2011-08-17 11:42:24

回答

3

这是规范,微软已经发布:

http://msdn.microsoft.com/en-us/windows/hardware/gg463119

而且这是关于这个问题的一个很好的阅读: http://msdn.microsoft.com/en-us/magazine/cc301805.aspx

编辑:

堆栈/堆是在内存中创建的结构/ m在运行期间修饰,所以实质上它们不在文件本身 - 它们不能。把它们想象成内存中的一个特殊地方,每个程序都可以存储运行时数据,而运行时数据则是指变量。函数调用,返回值和所有在底层开发的基本内容。

相关问题