日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux文件类型elf,[Linux]四种ELF对象文件类型

發布時間:2024/4/17 linux 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux文件类型elf,[Linux]四种ELF对象文件类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ELF(Executable and

Linking Format)是一種對象文件(.o or .obj,目標文件)的格式,用于定義不同類型的對象文件(Object

files)中都放了什么東西、以及都以什么樣的格式去放這些東西。它自最早在 System V 系統上出現后,被 xNIX

世界所廣泛接受,作為缺省的二進制文件格式來使用。

有四種ELF目標文件類型:

(1)可重定位的對象文件(Relocatable file)

這是由匯編器匯編生成的 .o

文件。

后面的鏈接器(linker)拿一些

Relocatable object files 作為輸入,經鏈接處理后,生成一個可執行的對象文件 (Executable file)

或者一個可被共享的對象文件(Shared object file)。我們可以使用 ar 工具將眾多的 .o Relocatable

object files 歸檔(archive)成 .a 靜態庫文件。

(3)可執行的對象文件(Executable file)

這我們見的多了,就是編譯器生產的可執行程序。

文本編輯器vi、調式用的工具gdb、播放mp3歌曲的軟件mplayer等等都是Executable object file。

主要要跟shell腳本,或者python腳本區分,這些腳本也是可執行的,但是它們的結構不是Executable

file,它們只是文本,由文件的第一行#!(shebang)定義系統應該調用那個程序來執行這個文本。

(3)可被共享的對象文件(Shared object file)

這些就是所謂的動態庫文件,也即 .so

文件。如果拿前面的靜態庫來生成可執行程序,那每個生成的可執行程序中都會有一份庫代碼的拷貝。如果在磁盤中存儲這些可執行程序,那就會占用額外的磁盤空間;另外如果拿它們放到Linux系統上一起運行,也會浪費掉寶貴的物理內存。如果將靜態庫換成動態庫,那么這些問題都不會出現。

(4) Linux下的核心轉存文件(Core Dump File)

當進程意外終止時,系統可以將該進程的地址空間的內容及終止時的一些其它信息轉存到此Dump File。

可以使用file工具來查看ELF文件的類型:

[xinlin@localhost

test]$ which file

/usr/bin/file

[xinlin@localhost test]$?file

a.out

a.out: ELF 64-bit LSB executable, x86-64, version 1 (SYSV),

dynamically linked (uses shared libs), for GNU/Linux 2.6.32,

BuildID[sha1]=7c65ebc8c17e26b13a0355435175680a9e354b2a, not

stripped

[yihect@juliantec

test]$?file

sum.o sub.o test.o libsub.so test

sum.o:?ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not

stripped

sub.o:?ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not

stripped

test.o:?ELF

32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not

stripped

libsub.so: ELF 32-bit LSB shared object, Intel 80386, version 1

(SYSV), not stripped

test:?ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for

GNU/Linux 2.2.5, dynamically linked (uses shared libs), not

stripped

本文鏈接:https://www.maixj.net/ict/elf-o-20705

總結

以上是生活随笔為你收集整理的linux文件类型elf,[Linux]四种ELF对象文件类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。