Dateisystem Hierarchie Standard

Dateisystem Hierarchie Standard
Abkürzung FHS
Status Veröffentlicht
Jahr begann 14. Februar 1994; Vor 28 Jahren
Letzte Version 3.0
3. Juni 2015; vor 7 Jahren
Organisation Linux Foundation
Domain Verzeichnisaufbau
Webseite Offizielle Website
Offizielle Website (historisch)

Das Dateisystem Hierarchie Standard (FHS) ist eine Referenz, die die für das Layout eines Unix -Systems verwendeten Konventionen beschreibt. Es wurde durch seine Verwendung in Linux -Verteilungen populär gemacht, wird jedoch auch von anderen UNIX -Varianten verwendet.[1] Es wird von der aufrechterhalten Linux Foundation. Die neueste Version ist 3.0, veröffentlicht am 3. Juni 2015.[2]

Verzeichnisaufbau

Typisch Ubuntu Dateisystemhierarchie

Im FHS alle Dateien und Verzeichnisse erscheinen unter dem Wurzelverzeichnis /auch wenn sie auf verschiedenen physischen oder virtuellen Geräten gespeichert werden. Einige dieser Verzeichnisse existieren nur in einem bestimmten System, wenn bestimmte Subsysteme wie die X Fenstersystem, sind installiert.

Die meisten dieser Verzeichnisse existieren insgesamt Unix-artig Betriebssysteme und werden im Allgemeinen auf die gleiche Weise verwendet; Die Beschreibungen hier sind jedoch diejenigen, die speziell für die FHS verwendet werden und für andere Plattformen als Linux nicht als maßgeblich angesehen werden.

Verzeichnis Beschreibung
/
Primärhierarchie Wurzel und Wurzelverzeichnis der gesamten Dateisystemhierarchie.
/Behälter
Wesentlicher Befehl Binärdateien das muss in verfügbar sein in Einzelbenutzermodus, einschließlich um das System aufzurufen oder es zu reparieren,[3] Für alle Benutzer (z. B.,, Katze, ls, CP).
/Stiefel
Bootlader Dateien (z. B.,, Kerne, initrd).
/dev
Gerätedateien (z.B., /dev/null, /dev/disk0, /dev/sda1, /dev/tty, /dev/random).
/etc
Host-spezifisches systemweit Konfigurationsdateien.

Es gab Kontroversen über die Bedeutung des Namens selbst. In frühen Versionen des UNIX -Implementierungsdokuments von Bell Labs, /etc wird als die bezeichnet und so weiter Verzeichnis,[4] Da dieses Verzeichnis historisch alles enthielt, was nicht woanders gehörte (das FHS beschränkt sich jedoch ein /etc zu statischen Konfigurationsdateien und möglicherweise keine Binärdateien enthalten).[5] Seit der Veröffentlichung der frühen Dokumentation wurde der Verzeichnisname auf verschiedene Weise erneut erklärt. Zu den jüngsten Interpretationen gehören Backronyme wie "bearbeitbare Textkonfiguration" oder "erweiterte Werkzeugkiste".[6]

/etc/opt
Konfigurationsdateien für Add-On-Pakete, die in gespeicherter in gespeicherter in gespeicherter Pakete gespeichert sind /opt.
/etc/sgml
Konfigurationsdateien wie Kataloge für Software, die sich verarbeitet SGML.
/etc/x11
Konfigurationsdateien für die X Fenstersystem, Version 11.
/etc/xml
Konfigurationsdateien wie Kataloge für Software, die sich verarbeitet Xml.
/Heimat
Benutzer Heimverzeichnis, mit gespeicherten Dateien, persönlichen Einstellungen usw. enthalten.
/lib
Bibliotheken wesentlich für die Binärdateien in /Behälter und /sbin.
/lib
Alternatives Format Wesentliche Bibliotheken. Diese werden in der Regel auf Systemen verwendet, die mehr als ein ausführbares Codeformat unterstützen, z. B. unterstützende Systeme 32-Bit und 64-Bit Versionen von an Befehlssatz. Solche Verzeichnisse sind optional, aber wenn sie existieren, haben sie einige Anforderungen.
/Medien
Montieren Punkte für Abnehmbare Medien wie zum Beispiel CD-ROMs (erschien 2004 in FHS-2.3).
/mnt
Vorübergehend montiert Dateisysteme.
/opt
Erweiterung Anwendungssoftware Pakete.[7]
/Proc
Virtuell Dateisystem Bereitstellung Prozess und Kernel Informationen als Dateien. Unter Linux entspricht a Procfs montieren. Im Allgemeinen automatisch generiert und vom System besiedelt, im laufenden Fliegen.
/Wurzel
Heimverzeichnis für die Wurzel Benutzer.
/Lauf
Variablendaten für Laufzeit: Informationen zum laufenden System seit dem letzten Boot, z. B. derzeit angemeldete Benutzer und laufend Daemons. Dateien unter diesem Verzeichnis müssen zu Beginn des Startvorgangs entweder entfernt oder abgeschnitten werden. Dies ist jedoch nicht für Systeme erforderlich, die dieses Verzeichnis als Temporäres Dateisystem (tmpfs).
/sbin
Essentielle Systembinärdateien (z. B.,, fsck, drin, Route).
/srv
Stellenspezifische Daten, die von diesem System bedient werden, wie Daten und Skripte für Webserver, Daten, die von angeboten werden Ftp Server und Repositories für Versionskontrollsysteme (erschien 2004 in FHS-2.3).
/sys
Enthält Informationen zu Geräten, Treibern und einigen Kernelfunktionen.[8]
/tmp
Verzeichnis für temporäre Dateien (siehe auch /var/tmp). Oft nicht zwischen System-Neustarts erhalten und kann stark begrenzt sein.
/usr
Sekundärhierarchie für schreibgeschützte Benutzerdaten; enthält die meisten (Multi-) Benutzerversorger und Anwendungen. Sollte freiwillig und schreibgeschützt sein.[9][10]
/usr/bin
Nicht wesentlicher Befehl Binärdateien (Nicht benötigt in Einzelbenutzermodus); für alle Benutzer.
/usr/inklusive
Standard Dateien eingeben.
/usr/lib
Bibliotheken für die Binärdateien in /usr/bin und /usr/sbin.
/usr/lib
Alternative Formatbibliotheken (z. B.,, /usr/lib32 für 32-Bit-Bibliotheken auf einem 64-Bit-Gerät (optional)).
/usr/lokal
Tertiärhierarchie Für lokale Daten, spezifisch für diesen Host. Hat typischerweise weitere Unterverzeichnisse (z. B.,, Behälter, lib, Teilen).[NB 1]
/usr/sbin
Nicht wesentliche Systembinärdateien (z. B.,, Daemons für verschiedene Netzwerkdienste).
/usr/Share
Architekturunabhängige (gemeinsam genutzte) Daten.
/usr/src
Quellcode (z. B. der Kernel -Quellcode mit seinen Header -Dateien).
/usr/x11r6
X Fenstersystem, Version 11, Release 6 (bis zu FHS-2.3, optional).
/var
Variable Dateien: Dateien, deren Inhalt während des normalen Betriebs des Systems kontinuierlich ändert, wie z. B. Protokolle, Spulendateien und temporäre E-Mail-Dateien.
/var/cache
Anwendungs ​​-Cache -Daten. Solche Daten werden lokal durch zeitaufwändige E/A oder Berechnung erzeugt. Die Anwendung muss in der Lage sein, die Daten wiederherzustellen oder wiederherzustellen. Die zwischengespeicherten Dateien können ohne Datenverlust gelöscht werden.
/var/lib
Statusinformationen. Persistente Daten, die durch Programme geändert wurden, während sie ausgeführt werden (z. B. Datenbanken, Metadaten für Verpackungssysteme usw.).
/var/lock
Dateien sperren. Dateien, die die derzeit verwendeten Ressourcen verfolgen.
/var/log
Protokolldateien. Verschiedene Protokolle.
/var/mail
Mailbox -Dateien. In einigen Verteilungen können sich diese Dateien im veralteten Bereich befinden /var/spool/mail.
/var/opt
Variable Daten aus Add-On-Paketen, die in gespeicherten in gespeicherten Daten gespeichert sind /opt.
/var/rennen
Laufzeitvariablendaten. Dieses Verzeichnis enthält Systeminformationsdaten, die das System beschreiben, seit es gestartet wurde.[11]

In FHS 3.0, /var/rennen wird durch /Lauf; Ein System sollte entweder weiterhin eine liefern /var/rennen Verzeichnis oder eine symbolische Verbindung von /var/rennen zu /Lauf Für die Rückwärtskompatibilität.[12]

/var/spool
Spule Für Aufgaben, die darauf warten, verarbeitet zu werden (z. B. Druckwarteschlangen und ausgehende E -Mail -Warteschlangen).
/var/spool/mail
Veraltet Speicherort für Benutzer Mailboxen.[13]
/var/tmp
Temporäre Dateien, die zwischen Neustarts erhalten bleiben.

FHS Compliance

Die meisten Linux -Verteilungen Befolgen Sie den Standard -System -System -Hierarchiestandard und deklarieren Sie die IT -eigene Richtlinie, um die Einhaltung der FHS zu erhalten.[14][15][16][17] Gobolinux[18] und Nixos[19] Geben Sie Beispiele für absichtliche nicht konforme Dateisystem-Implementierungen an.

Einige Verteilungen folgen im Allgemeinen dem Standard, weiten jedoch in einigen Bereichen davon ab. Das FHS ist ein "nachverfollicher Standard" und dokumentiert daher allgemeine Praktiken zu einem Zeitpunkt. Natürlich ändern sich die Zeiten und Verteilungsziele und -bedürfnisse das Experimentieren. Einige häufige Abweichungen umfassen:

  • Moderne Linux -Verteilungen umfassen a /sys Verzeichnis als a Virtueller Dateisystem (sysfs, vergleichbar mit /Proc, die ein Procfs), die gespeichert und ermöglicht die Änderung der mit dem System verbundenen Geräte,[20] während viele traditionell Unix-artig Betriebssysteme verwenden /sys Als ein symbolischer Link zum Kernel Quellbaum.[21]
  • Viele moderne unixartige Systeme (wie Freebsd über seine Häfen System) Installieren von Paketen von Drittanbietern in /usr/lokal, während der Code als Teil des Betriebssystems in Betracht gezogen wird /usr.
  • Einige Linux -Verteilungen unterscheiden sich nicht mehr dazwischen /lib und /usr/lib und haben /lib symlink zu /usr/lib.[22]
  • Einige Linux -Verteilungen unterscheiden sich nicht mehr dazwischen /Behälter und /usr/bin und dazwischen /sbin und /usr/sbin. Sie können symlink werden /Behälter zu /usr/bin und /sbin zu /usr/sbin. Andere Verteilungen entscheiden sich für die Konsolidierung aller vier /usr/bin.[23]

Moderne Linux -Verteilungen umfassen a /Lauf Verzeichnis als a Temporäres Dateisystem (tmpfs), der volatile Laufzeitdaten speichert, nach der FHS -Version 3.0. Nach der FHS -Version 2.3 wurden solche Daten in gespeichert /var/rennenAber dies war in einigen Fällen ein Problem, da dieses Verzeichnis nicht immer zum frühen Boot verfügbar ist. Infolgedessen mussten diese Programme auf Tricks zurückgreifen, beispielsweise die Verwendung /dev/.udev, /dev/.mdadm, /dev/.Systemd oder /dev/.mount Verzeichnisse, obwohl das Geräteverzeichnis nicht für solche Daten bestimmt ist.[24] Dies erleichtert unter anderem das System, das mit dem stammgeschriebenen Dateisystem montiert ist, das System einfacher zu verwenden. Im Folgenden finden Sie beispielsweise die Änderungen Debian Erstellt in seiner 2013 Kheezy -Veröffentlichung:[25]

  • /dev/.*/Lauf/*
  • /dev/shm/run/shm
  • /dev/shm/*/Lauf/*
  • /etc/* (Schriftliche Dateien) → /Lauf/*
  • /lib/init/rw/Lauf
  • /var/lock/run/lock
  • /var/rennen/Lauf
  • /tmp/run/tmp

Geschichte

FHS wurde als FSSTND erstellt (kurz für "Dateisystem Standard"[26]), weitgehend basierend auf ähnlichen Standards für andere Unix-artig Betriebssysteme. Bemerkenswerte Beispiele sind folgende: die Hier (7) Beschreibung des Dateisystemlayouts,[27] was seit der Veröffentlichung von existiert hat Version 7 Unix (1979); das Sonnenos Dateisystem (7)[28] und sein Nachfolger der Solaris Dateisystem (5).[29][30]

Veröffentlichung Geschichte

Ausführung Veröffentlichungsdatum Anmerkungen
Alte Version, nicht mehr gepflegt: 1.0 1994-02-14 FSSTND[31]
Alte Version, nicht mehr gepflegt: 1.1 1994-10-09 FSSTND[32]
Alte Version, nicht mehr gepflegt: 1.2 1995-03-28 FSSTND[33]
Alte Version, nicht mehr gepflegt: 2.0 1997-10-26 FHS 2.0 ist der direkte Nachfolger für FSSTND 1.2. Der Name des Standards wurde in den Dateisystem -Hierarchiestandard geändert.[34][35][36]
Alte Version, nicht mehr gepflegt: 2.1 2000-04-12 FHS[37][38][39]
Alte Version, nicht mehr gepflegt: 2.2 2001-05-23 FHS[40]
Alte Version, nicht mehr gepflegt: 2.3 2004-01-29 FHS[41]
Aktuelle stabile Version: 3.0 2015-05-18 FHS[42]
Legende:
Alte Version
Ältere Version, noch gepflegt
Letzte Version
Neueste Vorschau -Version
Zukünftige Veröffentlichung

Siehe auch

Anmerkungen

  1. ^ Historisch und streng nach dem Standard, /usr/lokal ist für Daten, die auf dem lokalen Host gespeichert werden müssen (im Gegensatz zu /usr, die über ein Netzwerk montiert werden können). Meistens /usr/lokal wird zur Installation von Software/Daten verwendet, die sind nicht Teil der Standardbetriebssystemverteilung (in diesem Fall, /usr würde nur Software/Daten enthalten, die sind Teil der Standard -Betriebssystemverteilung). Es ist möglich, dass der FHS -Standard in Zukunft geändert werden kann, um diese De -facto -Konvention widerzuspiegeln.

Verweise

  1. ^ "FHS". Das Linux Foundation Wiki. Abgerufen 4. Januar 2022.
  2. ^ "FHS 3.0 veröffentlicht". 3. Juni 2015.
  3. ^ "Hier (7) - Linux Manual Page". Man7.org. Abgerufen 6. Januar 2021.
  4. ^ J. DeFelicc (17. März 1972). "E.0". Vorveröffentlichung des UNIX -Implementierungsdokuments (PDF). p. 8. IMO.1-1.
  5. ^ "/etc: host-spezifische Systemkonfiguration". Dateisystem Hierarchie Standard 2.3. Abgerufen 18. Februar 2016.
  6. ^ Definieren Sie - /etc?, Gepostet von Cliff, 3. März 2007 - Slashdot.
  7. ^ "/opt: Add-On-Anwendungssoftwarepakete". Dateisystem Hierarchie Standard 2.3. Abgerufen 18. Februar 2016.
  8. ^ "/sys: Kernel- und Systeminformationen virtueller Dateisystem". Dateisystem Hierarchie Standard 3.0. Abgerufen 4. Juni 2017.
  9. ^ "Kapitel 4. Die /usr -Hierarchie". Dateisystem Hierarchie Standard 2.3.
  10. ^ "Kapitel 4. Die /usr -Hierarchie, Abschnitt 4.1 Zweck". Dateisystem Hierarchie Standard 3.0.
  11. ^ "/var/run: Laufzeit variable Daten". Dateisystem Hierarchie Standard 2.3.
  12. ^ "5.13. /Var /run: Laufzeitvariable Daten". Dateisystem Hierarchie Standard 3.0.
  13. ^ "Dateisystem Standard" (PDF). Linux Foundation. p. 5.11.1.
  14. ^ roter Hut Referenzhandbuch zu Dateisystemstruktur.
  15. ^ SUSE Linux Enterprise Server Administration, Novell Autorized Courseware, von Jason W. Eckert, Novell; Kurs Technologie, 2006; ISBN1-4188-3731-8,, ISBN978-1-4188-3731-0.
  16. ^ Debian Richtlinie auf FHS Compliance.
  17. ^ Ubuntu Linux -Dateisystem -Baumübersicht- Community Ubuntu -Dokumentation.
  18. ^ Hisham Muhammad (9. Mai 2003). "Der Unixbaum überdacht: Eine Einführung in Gobolinux". Abgerufen 4. Oktober 2016.
  19. ^ Dolstra, E.; Löh, A. (September 2008). Nixos: Eine rein funktionelle Linux -Verteilung (PDF). ICFP 2008: 13. ACM Sigplan International Conference on Functional Programing. Victoria, British Columbia, Kanada. S. 367–378.
  20. ^ "5.3 Über das virtuelle Dateisystem /sys virtuelle Datei". docs.oracle.com. Orakel. Archiviert von das Original am 8. Juli 2016. Abgerufen 8. Juli 2016.
  21. ^ Lehey, Greg (Mai 2003). Die vollständige FreeBSD: Dokumentation aus der Quelle (Viertes Ausgabe). O'Reilly Media, integriert. S. 188, 609. ISBN 9780596005160.
  22. ^ Allan McRae. "Arch Linux - Nachrichten: Das /lib -Verzeichnis wird zum Symlink". archlinux.org. Archiviert Aus dem Original am 9. September 2014. Abgerufen 14. Dezember 2019.
  23. ^ Allan McRae. "Arch Linux - Nachrichten: Binärdateien wechseln zu /usr /bin, die eine Aktualisierung der Intervention erfordern". archlinux.org. Archiviert Aus dem Original am 10. September 2014. Abgerufen 15. Dezember 2019.
  24. ^ Lennart Poettering (30. März 2011). "Was macht das /Run -Verzeichnis auf meinem System und woher kommt es?". [email protected] (Mailingliste).
  25. ^ "ReleaseGoalsRundirectory". Debian Wiki.
  26. ^ "FSSTND FAQ -Seite". Abgerufen 10. Mai 2016.
  27. ^ Hier (7)- -Freebsd Verschiedene Informationen Handbuch.
  28. ^ Sunos 4.1.3 Manuelle Seite für das Dateisystem (7), vom 10. Januar 1988 (aus der FreeBSD Man Pages -Bibliothek).
  29. ^ Dateisystem (5)- -Solaris 10 Standards, Umgebungen und Makros -Referenz Handbuch.
  30. ^ "Dateisystem Mann Seite - Solaris 10 11/06 Mannseiten". Archiviert von das Original am 4. Juli 2007. Abgerufen 15. Oktober 2011.
  31. ^ "Index von /pub/linux/docs/fstnd/old/fstnd-1.0/". Ibiblio.org. Abgerufen 16. Oktober 2012.
  32. ^ "Index von /pub/linux/docs/fstnd/old/fstnd-1.1/". Ibiblio.org. Abgerufen 16. Oktober 2012.
  33. ^ "Index von/pub/linux/docs/fSSTND/old/". Ibiblio.org. Abgerufen 16. Oktober 2012.
  34. ^ "FHS 2.0 Ankündigung". Pathname.com. Abgerufen 16. Oktober 2012.
  35. ^ Quinlan, Daniel (14. März 2012) [1997], "FHS 2.0 Ankündigung", BSD, Linux, Unix und das Internet - Forschung von Kenneth R. Saborio, San Jose, Costa Rica: Kenneth R. Saborio, archiviert von das Original am 5. März 2016, abgerufen 18. Februar 2016.
  36. ^ "Index von/pub/linux/docs/fSSTND/". Ibiblio.org. Abgerufen 16. Oktober 2012.
  37. ^ "FHS 2.1 Ankündigung". Pathname.com. Abgerufen 16. Oktober 2012.
  38. ^ "FHS 2.1 wird freigegeben". Lists.debian.org. 13. April 2000. Abgerufen 16. Oktober 2012.
  39. ^ Quinlan, Daniel (12. April 2000). "Dateisystem Hierarchie Standard - Version 2.1, Dateisystem Hierarchie Standardgruppe" (PDF). Acadia Linux Tutorials.Wolfville, Nova Scotia, Kanada: Jodrey School of Computer Science, Acadia University. Archiviert von das Original (PDF) am 27. März 2012. Abgerufen 18. Oktober 2012.
  40. ^ Russell, Rusty;Quinlan, Daniel, Hrsg.(23. Mai 2001). "Dateisystem Hierarchie Standard - Version 2.2 Finale Dateisystem Hierarchie Standardgruppe" (PDF). Dateisystem Hierarchie Standard. Abgerufen 18. Februar 2016.
  41. ^ Russell, Rusty;Quinlan, Daniel;Yeoh, Christopher, Hrsg.(28. Januar 2004). "Dateisystem Hierarchie Standard - Dateisystem Hierarchie -Standardgruppe" (PDF). Abgerufen 29. November 2014.
  42. ^ Yeoh, Christopher;Russell, Rusty;Quinlan, Daniel, Hrsg.(19. März 2015). "Dateisystem Hierarchie Standard" (PDF). Die Linux Foundation. Abgerufen 20. Mai 2015.

Externe Links