24.02.2013 Aufrufe

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

2.4 Daten <strong>in</strong> Ruhe: Files 63<br />

2.4.8 Inodes und L<strong>in</strong>ks<br />

Die Verzeichnisse enthalten nur die Zuordnung File-Name zu e<strong>in</strong>er File-<br />

Nummer, die als Inode-Nummer (Index-Node) bezeichnet wird. In der<br />

Inode-Liste, die vom System verwaltet wird, stehen zu jeder Inode-Nummer<br />

alle weiteren Informationen über e<strong>in</strong> File e<strong>in</strong>schließlich der Startadresse und<br />

der Größe des Datenbereiches. Insbesondere s<strong>in</strong>d dort die Zugriffsrechte und<br />

die Zeitstempel vermerkt. E<strong>in</strong>zelheiten s<strong>in</strong>d im Handbuch unter <strong>in</strong>ode(5)<br />

und fs(5) zu f<strong>in</strong>den. Das Kommando ls -i zeigt die Inode-Nummern an.<br />

Der System-Manager kann sich mit ncheck(1M) e<strong>in</strong>e Liste aller Inode-<br />

Nummern samt zugehöriger absoluter Filenamen e<strong>in</strong>es Filesystems ausgeben<br />

lassen. Harte L<strong>in</strong>ks ersche<strong>in</strong>en mehrfach entsprechend der Anzahl zugehöriger<br />

Namen. Wie die Informationen der Inode <strong>in</strong> eigenen Programmen<br />

abgefragt werden, steht <strong>in</strong> Abschnitt 2.11.3 Beispiel File-Informationen auf<br />

Seite 209.<br />

Diese Zweiteilung <strong>in</strong> Verzeichnisse und Inode-Liste erlaubt e<strong>in</strong>e nützliche<br />

Konstruktion, die <strong>in</strong> MS-DOS oder IBM-OS/2 bei aller sonstigen Ähnlichkeit<br />

nicht möglich ist. Man kann e<strong>in</strong>em File sprich e<strong>in</strong>er Inode-Nummer<br />

nämlich mehrere Filenamen, unter Umständen <strong>in</strong> verschiedenen Verzeichnissen,<br />

zuordnen. Das nennt man l<strong>in</strong>ken 21 . Das File, auf das mehrere Filenamen<br />

gel<strong>in</strong>kt s<strong>in</strong>d, existiert nur e<strong>in</strong>mal (deshalb macht es ke<strong>in</strong>en S<strong>in</strong>n, von e<strong>in</strong>em<br />

Orig<strong>in</strong>al zu reden), aber es gibt mehrere Zugangswege, siehe Abb. 2.5 auf Seite<br />

64. Zwangsläufig gehören zu gel<strong>in</strong>kten Filenamen dieselben Zeitstempel<br />

und Zugriffsrechte, da den Namen nur e<strong>in</strong>e e<strong>in</strong>zige Inode zu Grunde liegt.<br />

Das Kommando zum L<strong>in</strong>ken zweier Filenamen lautet ln(1):<br />

ln oldname newname<br />

Auf diese Weise spart man Speicher und braucht beim Aktualisieren nur<br />

e<strong>in</strong> e<strong>in</strong>ziges File zu berücksichtigen. Die Kopie e<strong>in</strong>es Files mittels cp(1) h<strong>in</strong>gegen<br />

ist e<strong>in</strong> eigenes File mit eigener Inode-Nr., dessen weiterer Lebenslauf<br />

unabhängig vom Orig<strong>in</strong>al ist. Beim L<strong>in</strong>ken e<strong>in</strong>es Files wird se<strong>in</strong> L<strong>in</strong>kzähler<br />

um e<strong>in</strong>s erhöht. Beim Löschen e<strong>in</strong>es L<strong>in</strong>ks wird der Zähler herabgesetzt; ist<br />

er auf Null angekommen, wird der vom File belegte Speicherplatz freigegeben.<br />

Bei e<strong>in</strong>em Verzeichnis hat der L<strong>in</strong>kzähler immer den Wert 2, da jedes<br />

Verzeichnis e<strong>in</strong>en L<strong>in</strong>k auf sich selbst enthält, dargestellt durch den Punkt<br />

beim Auflisten. So ist die wichtigste Information über e<strong>in</strong> Verzeichnis – se<strong>in</strong>e<br />

Inode-Nummer – doppelt gespeichert, nämlich im übergeordneten Verzeichnis<br />

und im Verzeichnis selbst. Ebenso ist <strong>in</strong> jedem Verzeichnis an zweiter<br />

Stelle die Inode-Nummer des übergeordneten Verzeichnisses abgelegt. Jedes<br />

Verzeichnis weiß selbst, wie es heißt und woh<strong>in</strong> es gehört. Das ermöglicht<br />

Reparaturen des Filesystems bei Unfällen. Als Benutzer kann man Verzeichnisse<br />

weder kopieren noch l<strong>in</strong>ken, sondern nur die <strong>in</strong> e<strong>in</strong>em Verzeichnis versammelten<br />

Files. Old Root kann natürlich wieder mehr, siehe l<strong>in</strong>k(1M) und<br />

l<strong>in</strong>k(2).<br />

21 Das Wort l<strong>in</strong>ken hat e<strong>in</strong>e zweite Bedeutung im Zusammenhang mit dem Kompi-<br />

lieren von Programmen.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!