我們在之前的文章中已經分析了其他重要系統目錄,比如 /bin
、/boot
、/dev
、 /etc
等。可以根據自己的興趣進入下列連結瞭解更多資訊。本文中,讓我們來看看 /lib
目錄都有些什麼。
- 目錄結構分析:/bin 資料夾
- 目錄結構分析:/boot 資料夾
- 目錄結構分析:/dev 資料夾
- 目錄結構分析:/etc 資料夾
- 目錄結構分析:/lost+found 資料夾
- 目錄結構分析:/home 資料夾
Linux 中,/lib 資料夾是什麼?
/lib
資料夾是 庫檔案目錄 ,包含了所有對系統有用的庫檔案。簡單來說,它是應用程式、命令或程式正確執行所需要的檔案。在 /bin
或 /sbin
目錄中的命令的動態庫檔案正是在此目錄中。核心模組同樣也在這裡。
以 pwd
命令執行為例。執行它需要呼叫一些庫檔案。讓我們來探索一下 pwd
命令執行時都發生了什麼。我們需要使用 strace 命令 找出呼叫的庫檔案。
示例:
1 2 3 4 5 6 7 8 |
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 資料夾內部資訊
正如之前所說,這個資料夾包含了目標檔案和一些庫檔案,如果能瞭解這個資料夾的一些重要子檔案,想必是極好的。下面列舉的內容是基於我自己的系統,對於你的來說,可能會有所不同。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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
– 這個資料夾包含了一些硬體、韌體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 資料和遊戲記錄。