Linux 目錄結(jié)構(gòu):/lib 分析
我們?cè)谥暗奈恼轮幸呀?jīng)分析了其他重要系統(tǒng)目錄,比如 /bin
、/boot
、/dev
、 /etc
等??梢愿鶕?jù)自己的興趣進(jìn)入下列鏈接了解更多信息。本文中,讓我們來(lái)看看 /lib
目錄都有些什么。
- 目錄結(jié)構(gòu)分析:/bin 文件夾
- 目錄結(jié)構(gòu)分析:/boot 文件夾
- 目錄結(jié)構(gòu)分析:/dev 文件夾
- 目錄結(jié)構(gòu)分析:/etc 文件夾
- 目錄結(jié)構(gòu)分析:/lost+found 文件夾
- 目錄結(jié)構(gòu)分析:/home 文件夾
Linux 中,/lib 文件夾是什么?
/lib
文件夾是 庫(kù)文件目錄 ,包含了所有對(duì)系統(tǒng)有用的庫(kù)文件。簡(jiǎn)單來(lái)說(shuō),它是應(yīng)用程序、命令或進(jìn)程正確執(zhí)行所需要的文件。在 /bin
或 /sbin
目錄中的命令的動(dòng)態(tài)庫(kù)文件正是在此目錄中。內(nèi)核模塊同樣也在這里。
以 pwd
命令執(zhí)行為例。執(zhí)行它需要調(diào)用一些庫(kù)文件。讓我們來(lái)探索一下 pwd
命令執(zhí)行時(shí)都發(fā)生了什么。我們需要使用 strace 命令 找出調(diào)用的庫(kù)文件。
示例:
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:~#
如果你注意到的話,會(huì)發(fā)現(xiàn)我們使用的 pwd
命令的執(zhí)行需要調(diào)用兩個(gè)庫(kù)文件。
Linux 中 /lib 文件夾內(nèi)部信息
正如之前所說(shuō),這個(gè)文件夾包含了目標(biāo)文件和一些庫(kù)文件,如果能了解這個(gè)文件夾的一些重要子文件,想必是極好的。下面列舉的內(nèi)容是基于我自己的系統(tǒng),對(duì)于你的來(lái)說(shuō),可能會(huì)有所不同。
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
- 這個(gè)文件夾包含了一些硬件、固件代碼。
硬件和固件之間有什么不同?
為了使硬件正常運(yùn)行,很多設(shè)備軟件由兩部分軟件組成。加載到實(shí)際硬件的代碼部分就是固件,用于在固件和內(nèi)核之間通訊的軟件被稱為驅(qū)動(dòng)程序。這樣一來(lái),內(nèi)核就可以直接與硬件通訊,并確保硬件完成內(nèi)核指派的工作。
/lib/modprobe.d
- modprobe 命令的配置目錄。
/lib/modules
- 所有的可加載內(nèi)核模塊都存儲(chǔ)在這個(gè)目錄下。如果你有多個(gè)內(nèi)核,你會(huì)在這個(gè)目錄下看到代表美國(guó)內(nèi)核的目錄。
/lib/hdparm
- 包含 SATA/IDE 硬盤(pán)正確運(yùn)行的參數(shù)。
/lib/udev
- 用戶空間 /dev 是 Linux 內(nèi)核設(shè)備管理器。這個(gè)文件夾包含了所有的 udev 相關(guān)的文件和文件夾,例如 rules.d
包含了 udev 規(guī)范文件。
/lib 的姊妹文件夾:/lib32 和 /lib64
這兩個(gè)文件夾包含了特殊結(jié)構(gòu)的庫(kù)文件。它們幾乎和 /lib
文件夾一樣,除了架構(gòu)級(jí)別的差異。
Linux 其他的庫(kù)文件
/usr/lib
- 所有軟件的庫(kù)都安裝在這里。但是不包含系統(tǒng)默認(rèn)庫(kù)文件和內(nèi)核庫(kù)文件。
/usr/local/lib
- 放置額外的系統(tǒng)文件。這些庫(kù)能夠用于各種應(yīng)用。
/var/lib
- 存儲(chǔ)動(dòng)態(tài)數(shù)據(jù)的庫(kù)和文件,例如 rpm/dpkg 數(shù)據(jù)和游戲記錄。