.so是什么庫?
.so文件是Linux so文件,是一種動態鏈接庫文件,即一種可執行文件.so文件 隱式鏈接,它允許程序共享執行特殊任務所必需的代碼和其他資源,相當于系統中的.dll,如果刪除某.so文件,則會導致手機某程序無法運行,.so文件一一對應一個應用程序,電腦里也是這樣,如果刪除某.dll文件,所對應的應用程序也將無法運行
是什么文件?
SO文件格式即ELF文件格式,它是Linux下可執行文件,共享庫文件和目標文件的統一格式。
根據看待ELF文件的不同方式,ELF文件可以分為鏈接視圖和裝載視圖。鏈接視圖是鏈接器從鏈接的角度看待靜態的ELF文件。
從鏈接視圖看ELF文件,ELF文件由多個組成,不同的擁有不同的名稱.so文件 隱式鏈接,權限。而裝載視圖是操作系統從加載ELF文件到內存的角度看待動態的ELF文件。
從裝載視圖看ELF文件,ELF文件由多個,每一個都擁有不同的權限,名稱。實際上,一個是對多個具有相同權限的的集合。
擴展資料:
由于操作系統的底層基于Linux系統,所以SO文件可以運行在平臺上。系統也同樣開放了C/C++接口供開發者開發程序。
由于基于虛擬機的編程語言JAVA更容易被人反編譯,因此越來越多的應用將其中的核心代碼以C/C++為編程語言,并且以SO文件的形式供上層JAVA代碼調用,以保證安全性。
而ELF頭表記錄了ELF文件的基本信息,包括魔數,目標文件類型(可執行文件,共享庫文件或者目標文件),文件的目標體系結構,程序入口地址(共享庫文件為此值為0),然后是表大小和數目,程序頭表的大小和數目,分別對應的是鏈接視圖和裝載視圖。
linux中把.c的文件編譯成.so?
不需要在自己的.so中調用別人的.so,只需要編譯自己的,編譯.so時,系統不會檢查未定義的函數。直接在編譯自己的應用程序時鏈接這兩個.so就可以了!gcc -o mysrc.c -L./ -lXXX-L/usr/lib -
pyo是什么意思啊?
通常是的動態鏈接庫。pyo是用非語言編寫的擴展模塊,如C/C等,相當于dll文件。pyo 在linux系統上通常是. so文件。
什么是so內核?
VDSO就是 ,就是內核提供的虛擬的.so,這個.so文件不在磁盤上,而是在內核里頭。
內核把包含某.so的內存頁在程序啟動的時候映射入其內存空間,對應的程序就可以當普通的.so來使用里頭的函數。
比如()這個函數就是在linux-vdso.so.1里頭的,但是磁盤上并沒有對應的文件.可以通過ldd/bin/bash看看。