可執行檔案及linux程序記憶體

2021-06-03 15:16:43 字數 290 閱讀 6048

**通過編譯器編譯為可執行檔案,linux下執行檔案的格式為elf。

linux下物理記憶體通過mmu管理對映到程序的虛擬記憶體中,虛擬記憶體的分布

2.data段:資料段,初始化的全域性變數和static變數。為何還產生bss段,為了可執行程式更加的小。

3.bss:未初始化的全域性變數和static變數。

4.堆:程式設計師分配記憶體。

5.棧:程式中區域性變數。

6.存放命令列引數及環境變數。

了解了程序記憶體分布及可執行檔案的格式。通過程式載入器,對映elf檔案到程序記憶體中。

linux 執行可執行檔案

1 首先,需要了解一下a.out這個目標檔案。a.out在linux下是elf executable linkable format 檔案格式,該目標檔案由乙個檔案頭 段 資料段 已初始化 從定位資訊區 符號表及符號名字字串構成,如下左圖所示,經過鏈結後生成執行檔案如下右圖所示,需要說明的是1 bs...

Linux下執行可執行檔案

我們通常會為計算機配置環境變數 path,echo path 檢視當前的環境變數包含的目錄。這些目錄下的可執行檔案就無需輸入完整路徑來執行,直接輸入命令就行,我們shell中常使用的一些linux命令,例如man,cat等的目錄都被包含在該path目錄中,所以直接在shell中輸入這些命令就可以。即...

可執行檔案裝載進記憶體

程式裝載面臨的挑戰 可執行程式載入後占用的記憶體空間應該是連續的。寫好的 變成了指令之後,是一條一條順序執行的就可以了 不能讓程式自己規定在記憶體中載入的位置,因為可能你想要的記憶體位址已經被其他載入了的程式占用了。虛擬記憶體位址 指令裡用到的記憶體位址 物理記憶體位址 實際在記憶體硬體裡面的空間位...