作者 | Surendra Anne
譯者 | ChenYi (cyleft) ? ? ? 共計翻譯:23 篇 貢獻時間:73 天
我們在之前的文章中已經分析了其他重要系統目錄,比如 /bin
、/boot
、/dev
、 /etc
等。可以根據自己的興趣進入下列連結瞭解更多資訊。本文中,讓我們來看看 /lib
目錄都有些什麼。
Linux 中,/lib 檔案夾是什麼?
/lib
檔案夾是 庫檔案目錄 ,包含了所有對系統有用的庫檔案。簡單來說,它是應用程式、命令或行程正確執行所需要的檔案。在 /bin
或 /sbin
目錄中的命令的動態庫檔案正是在此目錄中。核心模組同樣也在這裡。
以 pwd
命令執行為例。執行它需要呼叫一些庫檔案。讓我們來探索一下 pwd
命令執行時都發生了什麼。我們需要使用 strace 命令[7] 找出呼叫的庫檔案。
示例:
root@linuxnix:~# strace -e open pwd
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
/root
+++ exited with 0 +++
root@linuxnix:~#
如果你註意到的話,會發現我們使用的 pwd
命令的執行需要呼叫兩個庫檔案。
Linux 中 /lib 檔案夾內部資訊
正如之前所說,這個檔案夾包含了標的檔案和一些庫檔案,如果能瞭解這個檔案夾的一些重要子檔案,想必是極好的。下麵列舉的內容是基於我自己的系統,對於你的來說,可能會有所不同。
root@linuxnix:/lib# find . -maxdepth 1 -type d
./firmware
./modprobe.d
./xtables
./apparmor
./terminfo
./plymouth
./init
./lsb
./recovery-mode
./resolvconf
./crda
./modules
./hdparm
./udev
./ufw
./ifupdown
./systemd
./modules-load.d
/lib/firmware
– 這個檔案夾包含了一些硬體、韌體程式碼。
硬體和韌體之間有什麼不同?
為了使硬體正常執行,很多裝置軟體由兩部分軟體組成。載入到實際硬體的程式碼部分就是韌體,用於在韌體和核心之間通訊的軟體被稱為驅動程式。這樣一來,核心就可以直接與硬體通訊,並確保硬體完成核心指派的工作。
/lib/modprobe.d
– modprobe 命令的配置目錄。
/lib/modules
– 所有的可載入核心模組都儲存在這個目錄下。如果你有多個核心,你會在這個目錄下看到代表美國內核的目錄。
/lib/hdparm
– 包含 SATA/IDE 硬碟正確執行的引數。
/lib/udev
– 使用者空間 /dev 是 Linux 核心裝置管理器。這個檔案夾包含了所有的 udev 相關的檔案和檔案夾,例如 rules.d
包含了 udev 規範檔案。
/lib 的姊妹檔案夾:/lib32 和 /lib64
這兩個檔案夾包含了特殊結構的庫檔案。它們幾乎和 /lib
檔案夾一樣,除了架構級別的差異。
Linux 其他的庫檔案
/usr/lib
– 所有軟體的庫都安裝在這裡。但是不包含系統預設庫檔案和核心庫檔案。
/usr/local/lib
– 放置額外的系統檔案。這些庫能夠用於各種應用。
/var/lib
– 儲存動態資料的庫和檔案,例如 rpm/dpkg 資料和遊戲記錄。
via: https://www.linuxnix.com/linux-directory-structure-lib-explained/
作者:Surendra Anne[9] 譯者:CYLeft 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出