當前位置:首頁 » 操作系統 » elflinux

elflinux

發布時間: 2024-07-02 23:31:53

linux下運行elf的可執行文件,都調用了哪些系統調用

ELF(Executable and Linking Format)是一種對象文件的格式,用於定義不同類型的對象文件(Object files)中都放了什麼東西、以及都以什麼樣的格式去放這些東西。它自最早在 System V 系統上出現後,被 xNIX 世界所廣泛接受,作為預設的二進制文件格式來使用。可以說,ELF是構成眾多xNIX系統的基礎之一,所以作為嵌入式Linux系統乃至內核驅動程序開發人員,你最好熟悉並掌握它。
其實,關於ELF這個主題,網路上已經有相當多的文章存在,但是其介紹的內容比較分散,使得初學者不太容易從中得到一個系統性的認識。為了幫助大家學習,我這里打算寫一系列連貫的文章來介紹ELF以及相關的應用。這是這個系列中的第一篇文章,主要是通過不同工具的使用來熟悉ELF文件的內部結構以及相關的基本概念。後面的文章,我們會介紹很多高級的概念和應用,比方動態鏈接和載入,動態庫的開發,C語言Main函數是被誰以及如何被調用的,ELF格式在內核中的支持,Linux內核中對ELF section的擴展使用等等。
好的,開始我們的第一篇文章。在詳細進入正題之前,先給大家介紹一點ELF文件格式的參考資料。在ELF格式出來之後,TISC(Tool Interface Standard Committee)委員會定義了一套ELF標准。你可以從這里(http://refspecs.freestandards.org/elf/)找到詳細的標准文檔。TISC委員會前後出了兩個版本,v1.1和v1.2。兩個版本內容上差不多,但就可讀性上來講,我還是推薦你讀 v1.2的。因為在v1.2版本中,TISC重新組織原本在v1.1版本中的內容,將它們分成為三個部分(books):
a) Book I
介紹了通用的適用於所有32位架構處理器的ELF相關內容
b) Book II
介紹了處理器特定的ELF相關內容,這里是以Intel x86 架構處理器作為例子介紹
c) Book III
介紹了操作系統特定的ELF相關內容,這里是以運行在x86上面的 UNIX System V.4 作為例子介紹
值得一說的是,雖然TISC是以x86為例子介紹ELF規范的,但是如果你是想知道非x86下面的ELF實現情況,那也可以在http://refspecs.freestandards.org/elf/中找到特定處理器相關的Supplment文檔。比方ARM相關的,或者MIPS相關的等等。另外,相比較UNIX系統的另外一個分支BSD Unix,Linux系統更靠近 System V 系統。所以關於操作系統特定的ELF內容,你可以直接參考v1.2標准中的內容。
這里多說些廢話:別忘了 Linus 在實現Linux的第一個版本的時候,就是看了介紹Unix內部細節的書:《The of the Unix Operating System》,得到很多啟發。這本書對應的操作系統是System V 的第二個Release。這本書介紹了操作系統的很多設計觀念,並且行文簡單易懂。所以雖然現在的Linux也吸取了其他很多Unix變種的設計理念,但是如果你想研究學習Linux內核,那還是以看這本書作為開始為好。這本書也是我在接觸Linux內核之前所看的第一本介紹操作系統的書,所以我極力向大家推薦。(在學校雖然學過操作系統原理,但學的也是很糟糕最後導致期末考試才四十來分,記憶彷彿還在昨天:))
好了,還是回來開始我們第一篇ELF主題相關的文章吧。這篇文章主要是通過使用不同的工具來分析對象文件,來使你掌握ELF文件的基本格式,以及了解相關的基本概念。你在讀這篇文章的時候,希望你在電腦上已經打開了那個 v1.2 版本的ELF規范,並對照著文章內容看規范里的文字。

❷ Linux裡面ps -elf作用是什麼

ps -elf與ps aux 查詢目的是一樣的, 顯示所有在運行的進程, 前者是用bsd的格式輸出,後者是用標准格式輸出。

❸ Linux下編譯.elf的問題

呵呵 騎驢找驢 linux下的可執行文件和共享庫都是elf格式。明白了嗎?
你可以用readelf,objmp查看elf文件格式 elf問文件格式 其對*.out *.o *.a 的關系 就想到於PE對於*.exe , *.dll 的關系一樣。這是常識,再常識上出錯,別人會笑話你阿。

熱點內容
c語言二級改錯題 發布:2024-07-05 01:50:20 瀏覽:63
crt如何保存交換機配置文件 發布:2024-07-05 01:50:18 瀏覽:63
ftp伺服器550 發布:2024-07-05 01:02:51 瀏覽:315
phppdo配置 發布:2024-07-05 00:47:24 瀏覽:302
dex編譯器mt管理器 發布:2024-07-05 00:23:37 瀏覽:231
伺服器ip怎麼解鎖 發布:2024-07-04 23:39:54 瀏覽:50
安卓手機嶺南通app如何使用 發布:2024-07-04 23:36:19 瀏覽:809
matlab演算法工具箱 發布:2024-07-04 23:34:57 瀏覽:769
怎麼玩體驗伺服器 發布:2024-07-04 23:29:41 瀏覽:183
電腦如何開安卓軟體分身 發布:2024-07-04 23:23:21 瀏覽:343