2013-03-27

Filesystem Hierarchy Standard

如果有人跟阿舍問說,Widnows 作業系統的什麼檔案是放在那裡,可以放在那裡,檔案要去那裡找,阿舍大概都可以回答的出來吧 ! Windows 作業系統的檔案結構雖然在歷經不同版本後,有一些些的小變動,但是,變動都不算大,所以,不論是寫程式的人或是操作使用的人,大概都還可以有默契的知道程式該/會被放到那裡去哩 ! 不過,早期的 Linux 可就不是這樣子的哩 !

Linux 檔案結構 (Credit Aisoeet5)

遙想當年阿舍剛開始在碰 Linux 的時候,就遇到不同的 Linux 的發行版本會用不同的檔案結構的問題,早早期的 Linux 發行版本雖然不多,但是,門派觀念有點深,所以,每家都會有自己有些不同的檔案結構,然後,阿舍那個時候還沒定要用那一套,所以,就常換來又換去,最後,就讓阿舍對 Linux 的檔案系統給產生了點小恐懼,之後,又碰了 FreeBSD、Sun Solaris  和 AIX 之後,阿舍對 Unix-like 的檔案系統就一直很感冒哩 !

Unix-like 的作業系統的檔案結構混亂的問題,不只是使用者會麻煩而己,最麻煩的人,就是軟體開發人員了哩 ! 因為,如果要寫一套可支援多個 Linux 發行版本的軟體或是可以給多個不同的 Unix-like 作業系統來編譯的開放原始碼軟體的話,光是要確定各套作業系統的相關程式的位置及安裝路徑的話,就得花費不少時間哩 ! 因此,就有善心人士提出了 FHS (Filesystem Hierarchy Standard) 來給各個 Unix-like 的作業系統做為檔案結構的參考哩 !

雖然說,FHS (Filesystem Hierarchy Standard) 的名稱裡有個「標準 (Statnard)」的字眼,但是,就實際上的功能來說,FHS (Filesystem Hierarchy Standard) 算是一份參考文件,沒有太大的約束力,不過,倒是受到不少 Linux 發行版本的青睞和採用哩 ! 因此,後來,Linux 基金會 ( Linux Foundation) 也以 FHS 為基礎而制定了 LSB ( Linux Standard Base) 來給各發行版本參考哩 !

FHS 目前的版本是 2004年1月制定的 2.3版,之後,就一直還沒有推出新的版本 (FHS 3.0 有在研議中,但還沒有結論哩 !),不過,阿舍覺得,應該是不太會需要有什麼新的變更了吧 ! 所以,才會一直停在 2.3 版哩 ! 阿舍有去下載來看了一下,這個 FHS 2.3 版大概有 50 頁左右,裡面詳細定義了根目錄下應該要有的資料夾名稱、用途、選項及其下應包含的程式和資料夾們,而且,幾乎每個資料夾都有一一的說明,下面就 FHS 定義要有的資料夾哩 ! 有興趣的話,請參閱 FHS 2.3 文件,阿舍就不一一說明了哩 !

/bin
/boot
/dev
/etc
/etc/opt
/etc/X11
etc/sgml
/etc/xml
/lib
/media
/mnt
/opt
/root
/sbin
/srv
/tmp
/usr
/usr/X11R6
/usr/bin
/usr/include
/usr/lib
/usr/local/share
/usr/sbin
/usr/share
usr/share/dict
/usr/share/man
/usr/share/msic
/usr/share/sgml
/usr/share/xml
/var
/var/account
/var/cache
/var/cache/fonts
/var/cache/man
/var/crash
/var/game
/var/lib
/var/lib
/var/lib/hwclock
/var/lib/msic
/var/loc
/var/log
/var/mail
/var/opt
/var/run
/var/spool
/var/spool/lpd
/var/spool/rwho
/var/tmp
/var/yp

下列為 Linux 專有的資料夾。

/
/proc
/usr/src
/var/spool/cron

阿舍有拿 Ubuntu 12.04 LTS 版的資料夾來比了一下,發現 Ubuntu 的檔案結構是有符合 FHS 的規範的哩 ! 這樣阿舍就明白了,為什麼 Ubuntu 會有以前阿舍用的 Linux 所沒有的 /media 和 /sys 資料夾了哩 !

阿舍是建議,如果你和阿舍一樣,在剛閧始接觸 Linux 或 Ubuntu 的時候,老是弄不清楚 Linux 有那些檔案及各個資料夾的用途的話,就可以找個時間把 FHS 的文件載下來看看,這樣應該就可以幫助你能有方向的來快速瞭解 Linux 和 Ubuntu 的檔案結構了哩!而且,日後如果看到其它 Linux 發行版有寫有支援 FHS 的話,你就可以不用再擔心要怎麼瞭解它的檔案結構了哩 !

參考資料

推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁