日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

UNIX 目標文件初探

Unix(R) 系統(tǒng)中運行的程序遵守一種稱為目標文件格式的精心設(shè)計 。了解更多關(guān)于目標文件格式的內(nèi)容,以及可以用來研究系統(tǒng)中目標文件的工具 。
計算機編程的最新技術(shù)將一種特殊的人性與一組特殊的工具結(jié)合在一起,用以生產(chǎn)出對其他人非常有幫助的一種神奇的產(chǎn)品,即軟件 。計算機程序員是一群注重細節(jié)的人,他們可以處理計算機中各種各樣的困難 。計算機的要求非??量?,并且不能容忍其中存在任何的偏差 。毫無疑問,無論您的個性如何以及在工作中使用了何種輔助工具,計算機程序的編寫都是非常困難的 。
在 UNIX?和 Linux?中,任何事物都是文件 。您可以認為,UNIX 和 Linux 編程實際上是編寫處理各種文件的代碼 。系統(tǒng)由許多類型的文件組成,但目標文件具有一種特殊的設(shè)計,提供了靈活和多樣的用途 。
目標文件是包含帶有附加地址和值的助記符號的路線圖 。這些符號可以用來對各種代碼段和數(shù)據(jù)段進行命名,包括經(jīng)過初始化的和未初始化的 。它們也可以用來定位嵌入的調(diào)試信息,就像語義 Web,非常適合由程序進行閱讀 。
行業(yè)工具
【UNIX 目標文件初探】計算機編程中使用的工具包括代碼編輯器,如 vi 或 EMacs,您可以使用這些工具輸入和編輯希望計算機在完成所需任務(wù)時執(zhí)行的指令,以及編譯器和連接器,它們可以生成真正實現(xiàn)這些目標的機器代碼 。
高級的工具,稱為集成調(diào)試環(huán)境 (IDE),它以統(tǒng)一的外觀集成了不同工具的功能 。IDE 使得編輯器、編譯器、連接器和調(diào)試器之間的界限變得很模糊 。因此,為了更深入地研究和了解系統(tǒng),在使用集成的套件之前,最好先單獨地使用這些工具 。(注意:IDE 也通常被稱為集成開發(fā)環(huán)境 。)
編譯器可以將您在代碼編輯器中創(chuàng)建的文本轉(zhuǎn)換為目標文件 。最初,目標文件被稱為代碼的中間表示形式,因為它用作連接編輯器(即連接器)的輸入,而連接編輯器最終完成整個任務(wù)并生成可執(zhí)行的程序作為輸出 。
從代碼到可執(zhí)行代碼的轉(zhuǎn)換過程經(jīng)過了良好的定義并實現(xiàn)了自動化,而目標文件是這個鏈中有機的連接性環(huán)節(jié) 。在這個轉(zhuǎn)換過程中,目標文件作為連接編輯器所使用的映象,使得它們能夠解析各種符號并將不同的代碼和數(shù)據(jù)段連接在一起形成統(tǒng)一的整體 。
歷史
計算機編程領(lǐng)域中存在許多著名的目標文件格式 。Dos 系列包括 COM、OBJ 和 EXE 格式 。Unix 和 Linux 使用 a.out、COFF 和 ELF 。Microsoft?Windows?使用可移植的執(zhí)行文件 (PE) 格式,而 Macintosh 使用 PEF、Mach-O 和其他文件格式 。
最初,各種類型的計算機具有自己獨特的目標文件格式,但隨著 UNIX 和其他在不同硬件平臺上提供可移植性的操作系統(tǒng)的出現(xiàn),一些常用的文件格式上升為通用的標準 。其中包括 a.out、COFF 和 ELF 格式 。
要了解目標文件,需要一組可以讀取目標文件中不同部分并以更易于讀取的格式顯示這些內(nèi)容的工具 。本文將討論這些工具中比較重要的方面 。但首先,您必須創(chuàng)建一個工作臺,并在其中建立一個研究對象 。
工作臺
啟動一個 xterm 會話,讓我們先創(chuàng)建一個空白的工作臺,并開始對目標文件進行研究 。下面的命令創(chuàng)建了一個目錄,可以將目標文件放到該目錄中進行研究:
cd
mkdir src
cd src
mkdir hw
cd hw
然后,使用您最喜歡的代碼編輯器,在 $HOME/src/hw 目錄中輸入清單 1 中的程序,并命名為 hw.c 。
清單 1. hw.c 程序#include
int main(void)
{
 printf("Hello World!
");
 return 0;
}
要使用 UNIX 工具庫中提供的各種工具,可以將這個簡單的“Hello World程序作為研究的對象 。您將學習構(gòu)建和查看目標文件的輸出,而不是使用任何快捷方法直接創(chuàng)建可執(zhí)行文件(的確有許多這樣的快捷方法) 。

推薦閱讀