3
我對虛擬內存有這個微妙的問題。在一本書當執行ELF文件,文本和兩個數據段被加載 到虛擬內存關於虛擬內存
的獨立區域我讀到這句話
但是,如果我們例如編譯C由兩個源文件組成的程序不連接它將產生兩個目標文件。在兩個目標文件中,尋址都從零開始。然後,如果我們將兩個目標文件鏈接到一個可執行文件並檢查它,我們將觀察到尋址不再從零開始,而是一些地址已經分配給每個段。據我所知,這個分配的地址是一個虛擬內存地址。所以,我有兩個問題:
- 所以我是正確的,這是請求從OS的一些虛擬內存範圍,並賦予它細分編程連接器?
- 引用的作者是什麼意思,當他說虛擬地址是在進程執行時分配的?
感謝您的回答,可能是你知道使用了哪些系統調用由連接到要求作爲基礎,虛擬地址? – 2012-01-07 00:48:41
我不是100%勝任這方面的工作,但從我的理解中,鏈接器指定它自己的任意虛擬地址,而不需要從操作系統請求。 – ExtremeCoder 2012-01-07 12:33:54