檔案系統階層標準

出自Local Chinese Wikipedia
(重新導向自FHS
跳至導覽 跳至搜尋
檔案系統階層標準
網路媒體型式{{#property:P1163}}
開發者Linux基金會
首次發佈1994年2月14日,​32年前​(1994-02-14
最新版本
3.0
2015年6月3日,​11年前​(2015-06-03
網站官方網站
Official website (Historical)

檔案系統階層標準(英語:Filesystem Hierarchy StandardFHS)定義了Linux作業系統中的主要目錄及目錄內容。[1]FHS由Linux基金會維護。 目前版本為3.0版,於2015年發佈。[2]

概述[編輯]

多數Linux發行版遵從FHS標準並且聲明其自身政策以維護FHS的要求。 [3] [4] [5] [6] 但截至2009年,包括由自由標準小組成員參與開發的版本在內的絕大多數發行版,並不完全執行建議的標準。

當FHS建立之時,其他的UNIX和類Unix作業系統已經有了自己的標準,尤其是hier(7)檔案系統佈局描述。 自從第七版Unix(於1979年發佈)以來已經存在,或是SunOS filesystem(7)[7] 和之後的Solaris filesystem(5)。 例如,macOS使用如 /Library/Applications/Users 等長名與傳統UNIX目錄層次保持一致。

現在的Linux發行版包含一個/sys目錄作為虛擬檔案系統(sysfs,類似於 /proc,一個procfs),它儲存且允許修改連接到系統的裝置,然而許多傳統UNIX和類Unix作業系統使用/sys作為內核代碼樹的符號連結

一些Linux系統如GoboLinuxSyllable Server使用了和FHS完全不同的檔案系統層次組織方法。

歷史[編輯]

開發一套檔案系統階層標準的行程始於1993年8月,標準努力重整Linux的檔案和目錄結構。FSSTND(英文Filesystem Standard),一個針對Linux作業系統的檔案系統階層標準在1994年2月14日發佈。 後續的修正版本分別在1994年10月9日和1995年3月28日發佈。

在1996年初, 開發一個更加全面的、不僅解決Linux,而且解決其他類Unix系統目錄階層問題的FSSTND的計劃在BSD開發社群成員的協助下正式被採納。因此,計劃重點解決在類Unix系統上普遍存在的問題。 為了適應標準範圍的擴充,標準的名稱修改為檔案系統階層標準。

目錄結構[編輯]

在FHS中,所有的檔案和目錄都出現在根目錄"/"下,即使他們儲存在不同的物理裝置中。但是請注意,這些目錄中的一些可能或可能不會在Unix系統上出現,這取決於系統是否含有某些子系統,例如X Window系統的安裝與否。

這些目錄中的絕大多數都在所有的UNIX作業系統中存在,並且一般都以大致類似的方法使用;然而,這裏的描述是針對於FHS的,並未考慮除了Linux平台以外的權威性。

目錄 描述
/ 第一階層 的根、 整個檔案系統階層的根目錄
/bin/ 需要在單用戶模式可用的必要命令(可執行檔案);面向所有用戶,例如catlscp
/boot/ 引導程式檔案,例如: kernelinitrd;時常是一個單獨的分區[8]
/dev/ 必要裝置, 例如:/dev/null.
/etc/ 特定主機,系統範圍內的設定檔

關於這個名稱目前有爭議。在貝爾實驗室關於UNIX實現文件的早期版本中,/etc 被稱為etcetera[9] 這是由於過去此目錄中存放所有不屬於別處的所有東西(然而,FHS限制/etc只能存放靜態設定檔,不能包含二進制檔案)。 [10] 自從早期文件出版以來,目錄名稱已被以各種方式重新稱呼。最近的解釋包括逆向首字母縮略詞如:"可編輯的文字組態"(英文 "Editable Text Configuration")或"擴充工具箱"(英文 "Extended Tool Chest")。 [11]

/etc/opt/
/opt/的設定檔
/etc/X11/
X Window系統(版本11)的設定檔
/etc/sgml/
SGML的設定檔
/etc/xml/
XML的設定檔
/home/ 用戶的家目錄,包含儲存的檔案、個人設置等,一般為單獨的分區。
/lib/ /bin//sbin/中二進制檔案必要的檔案。
/media/ 可移除媒體(如CD-ROM)的掛載點 (在FHS-2.3中出現)。
/mnt/ 臨時掛載的檔案系統。
/opt/ 可選應用軟件 [12]
/proc/ 虛擬檔案系統,將內核行程狀態歸檔為文字檔案。例如:uptime、 network。在Linux中,對應Procfs格式掛載。
/root/ 超級用戶家目錄
/sbin/ 必要的系統二進制檔案,例如: init、 ip、 mount。
/srv/ 站點的具體數據,由系統提供。
/tmp/ 臨時檔案(參見 /var/tmp),在系統重新啟動時目錄中檔案不會被保留。
/usr/ 用於儲存唯讀用戶數據的第二層次; 包含絕大多數的()用戶工具和應用程式[13]
/usr/bin/
非必要可執行檔案 (在單用戶模式中不需要);面向所有用戶。
/usr/include/
標準包含檔案
/usr/lib/
/usr/bin//usr/sbin/中二進制檔案的
/usr/sbin/
非必要的系統二進制檔案,例如:大量網絡服務常駐程式
/usr/share/
體系結構無關(共用)數據。
/usr/src/
原始碼,例如:內核原始碼及其標頭檔。
/usr/X11R6/
X Window系統 版本 11, Release 6.
/usr/local/
本地數據的第三層次, 具體到本台主機。通常而言有進一步的子目錄, 例如:bin/lib/share/.

[14]

/var/ 變量檔案——在正常執行的系統中其內容不斷變化的檔案,如紀錄檔,離線檔案和臨時電子郵件檔案。有時是一個單獨的分區。
/var/cache/
應用程式快取數據。這些數據是在本地生成的一個耗時的I/O或計算結果。應用程式必須能夠再生或恢復數據。快取的檔案可以被刪除而不導致數據遺失。
/var/lib/
狀態資訊。 由程式在執行時維護的永續性數據。 例如:資料庫、包裝的系統元數據等。
/var/lock/
鎖檔案,一類跟蹤當前使用中資源的檔案。
/var/log/
紀錄檔檔案,包含大量紀錄檔檔案,為了防止紀錄檔佔滿根分區,生產環境中一般是單獨分區。
/var/mail/
用戶的電子郵箱
/var/run/
自最後一次啟動以來執行中的系統的資訊,例如:當前登入的用戶和執行中的常駐程式、一些常駐程式的pid檔案、socket檔案。現已經被/run代替[15]
/var/spool/
等待處理的任務的離線檔案例如:列印佇列和未讀的郵件。
/var/spool/mail/
用戶的郵箱(不鼓勵的儲存位置)
/var/tmp/
在系統重新啟動過程中可以保留的臨時檔案。
/run/ 代替/var/run目錄。

參考文獻[編輯]

  1. FilesystemHierarchyStandard - Debian Wiki. wiki.debian.org. [2016-07-06]. (原始內容存檔於2021-02-24). 
  2. FHS 3.0 Released. June 3, 2015 [2018-06-29]. (原始內容存檔於2016-05-31). 
  3. Red Hat reference guide on file system structure頁面存檔備份,存於互聯網檔案館
  4. SuSE Linux Enterprise Server Administration, Novell authorized courseware, by Jason W. Eckert, Novell; Course Technology, 2006; ISBN 1418837318, 9781418837310
  5. Debian policy on FHS compliance頁面存檔備份,存於互聯網檔案館
  6. Ubuntu file system tree overview頁面存檔備份,存於互聯網檔案館
  7. SunOS 4.1.3 manual page for filesystem(7)頁面存檔備份,存於互聯網檔案館), dated 10 January 1988 (from the FreeBSD Man Pages library)
  8. A separate partition is generally only used when bootloaders are incapable of reading the main filesystem (e.g. SILO does not recognize XFS) or other problems not easily resolvable by users.
  9. J. DeFelicc. E.0. Preliminary Release of UNIX Implementation Document (PDF). 1972-03-17: 8 [2011-03-20]. IMO.1-1. (原始內容 (PDF)存檔於2011-07-19).  |issue=被忽略 (幫助)
  10. 存档副本. [2011-03-20]. (原始內容存檔於2019-11-22). 
  11. 存档副本. [2020-10-11]. (原始內容存檔於2015-09-19). 
  12. 存档副本. [2011-03-20]. (原始內容存檔於2019-11-22). 
  13. Should be shareable and read-only, cf. http://www.pathname.com/fhs/pub/fhs-2.3.html頁面存檔備份,存於互聯網檔案館).
  14. Historically and strictly according to the standard, /usr/local/ is for data that must be stored on the local host (as opposed to /usr/, which may be mounted across a network). Most of the time /usr/local/ is used for installing software/data that are not part of the standard operating system distribution (in such case, /usr/ would only contain software/data that are part of the standard operating system distribution). It is possible that the FHS standard may in the future be changed to reflect this de-facto convention).
  15. Introducing /run-What's this /run directory doing on my system and where does it come from?頁面存檔備份,存於互聯網檔案館)March 30, 2011 by corbe

外部連結[編輯]