LinuX Filesystem Standart, oder wozu brauche ich das?
Filesystem Standart Bei diesem Wort werde viele Anwender die nicht
gerade aus einem UNIX-Umfeld kommen sicher mit den Schultern zucken.
Was ist das überhaupt und wozu braucht man das? Um diese Fragen zu klären
muß man sich erstmal damit auseinander was ein Filesystem überhaupt so
für Aufgaben hat.
Wozu dient ein Filesystem?
- Speicherung von Daten,
- verwalten von Daten,
- Schutz der Daten (Konsistenz).
Die nächste Frage ist, was erwarte man von ein Filesystem?
- eine feste Struktur, so das meine Daten nach dem nächsten Booten
immer noch da sind wo sie vorher waren :-)
- variable Handhabung der Daten, kopieren, verschieben, löschen
- Schutz der Daten vor unbefugten Zugriffen
- variable Zugriffsmöglichkeiten, z.B. Vernetzung
Das mag zwar nicht unbedingt für jeden Anwender gelten, aber ohne diese
Voraussetzung ist ein sinnvoller Verwaltung eines UNIX Systems kaum
durchführbar.
Aufgrund der oben aufgeführten Anforderungen wird klar, das eine Filesystem
zur Verwaltung und Organisation feste Strukturen benötigt. Man könnte
dahergehen und wie unter anderen Betriebssystemen, sich seine eigene
Struktur schaffen, jedoch wirft diese Variante eine Unmenge Problem auf.
- keine einheitliche Organisation, schwer adminstrierbar
- hohe Kosten bei der Installation, Dokumentation
- hohe Nebenkosten, verdeckte Kosten bei der Verwaltung
Sicher lassen sich noch viele andere Gründe finden, doch ich denke
das die aufgeführten, die Anwendung eines globalen Standards, in dem
der Zweck der einzelnen Verzichnissbaeume und Verzeichnisse festgelegt
wird, rechtfertigen.
Der Filesystem Standart unter Linux
Um überhaupt einen Standart zu definieren muß man sich zunächst mal mit der
Einteilung und Gliederung der Daten beschäftigen. Allgemein kann man sagen
die Daten lassen sich in,
- teilbare Daten, shareable, von verschieden Usern/System nutzbar
- unteilbare Daten, unshareable, nur für das lokale System verwendbar
- feste Daten, static, Programme
- variable Daten, variable,
einteilen. Das hört sich jetzt etwas undurchsichtig an, um diese Einteilung zu
verdeutlichen mal ein paar Beispiele:
z.B. das Home (/home) Verzeichnis ist teilbar (shareable), sprich ich kann in
einem Netzwerk diese Verzeichnis ohne Problem von verschieden Rechner aus nutzen.
Gleichzeitig ist es aber auch fest (static) da ich als normaler User z.B. kein
Daten in diesem Verzeichnis ändern oder löschen kann.
Hingegen das Lock (/var/lock) Verzeichnis kann immer nur für ein System verwendet
werden es ist also unteilbar mit anderen Systemen (unshareable), da hier immer nur
lokale Ressourcen gelockt werden z.B. das Modem.
Eine solche Einteilung gewinnt vorallem im Hinblick auf ein Vernetzung verschiedener
PC Bedeutung.
Beispiel für die Einteilung von Daten
| shareable
| unshareable
|
static
| /usr /home
| /etc /boot
|
variable
| /var/spool/mail /var/spool/news
| /var/run /var/lock
|
Anhand der Tabelle kann man sich ein Bild machen wie Daten eingeteilt werden.
Doch wollen wir uns nun mal den LinuX Filesystem Standart etwas näher ansehen,
und die wichtigsten Verzeichnisbäume einwenig durchleuchten.
Das Root Verzeichnis /
ist das Hauptverzeichnis eines UNIX Verzeichnisbaumes. Alle anderen
Verzeichnisse und Dateinsystemzweige sind diesem untergeordnet bzw. werden
dort gemountet.
Was gehört zu einen Root Verzeichnis:
- alle Programme zur Starten des System
- alle Konfigurationsdaten um das System zu starten
- Programme zum Wiederherstellen eines defekten Bootsystem
- Backup Programme.
Das Root Verzeichnis, und die dort gespeicherten Programme, haben also
lediglich die Aufgabe das Betriebssystem zu starten und bei Bedarf den
"Rest" des System zu warten. Deshalb ist es auch relativ klein und
paßt bei Linux z.B. auch auf 2 Disketten.
zum Root Verzeichnis gehört also nicht nur / sondern auch die Verzeichnisse
- /bin <- Programme zur Diagnose, Reparatur
- /boot <- boot loader Informationen
- /dev <- Information zur Hardware (hdd,fd etc.)
- /etc <- Information zum Starten des Systems
- /home <- User Home Verzeichnis
- /lib <- Shared libraries (libc, etc.)
- /mnt <- Mount Punkt für andere Partitionen (cdrom, disk)
- /proc <- Process information pseudo-filesystem
- /root <- Home Verzeichnis für Root
- /sbin <- Startprogramme (init)
- /tmp <- Temporary Files
- /usr <- zweites Hauptverzeichnis
- /var <- Variable Daten
Das /usr Verzeichnis
/usr is the second major section of the filesystem. /usr is shareable,
read-only data.
- X11R6 <- X Windows System, Version 11 release 6
- X386 <- X Windows System, Version 11 release 5 on x86
- bin <- user commands
- doc <- Doku's für Programme
- etc <- Systemweite Konfigurationsdaten
- include <- Header files für den gcc
- lib <- Libraries
- local <- Lokale Hierarchie
- man <- online Manuals
- src <- Source code, z.B. der Linux Kernel
In /usr sind also alle Daten, Programme und Libarays gespeichert die
man zum Arbeiten unter Linux braucht.
Ebenso befinden sich hier die Man-Pages sowie die Dokumentationen zu
verschiedenen Programmen. Unter Linux ist es üblich das hier nur
die Programme welche mit der Distribution geliefert wurden, installiert
werden. Alle anderen Programme die vom Anwender nachträglich installiert
werden sollten in /usr/local/ gespeichert werden. Somit ist gewährleistet
das (wenn die Distribution darauf ausgelegt ist) ein Update der Distribution
relativ einfach möglich ist. Das /usr/local/ Verzeichnis ist ebenso aufgebaut
wie /usr, lediglich die Verzeichnisse für X11, sind hier nicht nochmal
angelegt.
Das /var Verzeichnis
/var alle Variablen Daten, so z.B. spool Verzeichnisse, logging Files, etc.
- adm <- System admin data
- catman <- locale formatierte maunual pages
- lib <- Programm Informationen
- lock <- Lock files
- log <- Log files
- named <- DNS files
- nis <- NIS database files
- run <- Files relevante to running processes
- spool <- z.B. News, UUCP, Mail etc.
- tmp <- temporäre Daten
In /var werden also alle variablen Daten gespeichert, da wie schon
angesprochen das /usr Verzeichnis read-only sein sollte. Bei vielen
Distributionen gibt es links von /usr nach /var so z.B. ist /usr/spool
ein Link auf /var/spool, der Grund weshalb das so ist sollte jetzt kein
Geheimnis mehr sein.
Weiter Infos
Den Linux FileSystem Standart gibt es im Internet unter
ftp://tsx-11.mit.edu/pub/linux/docs/linux-standards/fsstnd .
Koordinator der Filesystem Group ist Daniel Quinlan
Daniel.Quinlan@linux.org,
und natürlich gibt es auch ein FAQ zum FSSTND
ftp://tsx-11.mit.edu/pub/linux/docs/linux-standards/fsstnd/FSSTND-FAQ
.