2011-08-17 69 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在運行期間修飾,所以實質上它們不在文件本身 - 它們不能。把它們想象成內存中的一個特殊地方,每個程序都可以存儲運行時數據,而運行時數據則是指變量。函數調用,返回值和所有在底層開發的基本內容。

相關問題