SUCHE MIT Google
Web virtualuniversity.ch
HOME DIDAKTIK ECDL ELEKTRONIK GUIDES HR MANAGEMENT MATHEMATIK SOFTWARE TELEKOM
DIENSTE
Anmeldung
Newsletter abonnieren
Sag's einem Freund!
VirtualUniversity als Startseite
Zu den Favoriten hinzufügen
Feedback Formular
e-Learning für Lehrer
Spenden
Autoren login
KURSE SUCHEN
Kurse veröffentlichen

Suche nach Datum:

Suche mit Schlüsselwort:

Suche nach Land:

Suche nach Kategorie:
PARTNER
ausbildung24.ch - Ausbildungsportal, Seminare, Kursen... 

 
HTMLopen.de - Alles was ein Webmaster braucht

 
PCopen.de - PC LAN Netze und Netzwerke - alles was ein IT Profi und Systemtechnicker braucht

GUIDES UND TUTORIAL

Das Dateisystem

Struktur und Zugriffsrechte

Das Dateisystem ist hierarchisch strukturiert in Form eines (umgedrehten)Baumes.

Da Unix ein Multiuser-System ist, muß der Zugriff auf einzelne Dateien undVerzeichnisse vom System schon so geregelt werden, daß kein Benutzer dieDaten der anderen Benutzer manipulieren oder vertrauliche Daten unbefugterweise einsehen kann. Das wird dadurch gewährleistet, daß jede Datei und jedes Verzeichnis einen Besitzer (Owner) hat, und dieser Besitzer kann mit Hilfe bestimmter Befehle festlegen, welcher der anderen Benutzer auf welche Weise auf seine Dateien zugreifen darf. Die meisten Dateien und Verzeichnisse in einem Unix-System gehören natuergemäß dem Systemverwalter (der den Usernamen "root" trägt) und jeder Benutzer kann auf diese Dateien lesend zugreifen, sie aber nicht verändern (zu dieser Art von Dateien gehören zum Beispiel alle Anwendungsprogramme, die das System zur Verfügung stellt).

Man unterscheidet grob drei Dateitypen (weitere Typen weiter unten):

  • Normale Dateien (normal files)
    • Dateien im üblichen Sinn: Text- oder Binärdateien
    • Das System unterstützt keine Dateistruktur (keine Datei-Header)
    • Dateien sind Bytefolgen (Strukturierung nur durch das Programm)
    • Zugriffsarten:
      • sequentiell
      • random access (Bytepositionierung)
  • Verzeichnisse (directories)
    • Strukturierung des Dateisystems
    • Zugriff auf normale Dateien auch über mehrere Namen
    • Verzeichnisse werden auf der Platte wie Dateien gespeichert
  • Spezialdateien (special files)
    • E/A-Geräte werden als Spezialdatei eingetragen
    • Zugriff auf Gerät <--> Zugriff auf eine Datei
    • gleicher Schutzmechanismus wie für normale Dateien
    • es gibt blockorientierte und zeichenorientierte Geräte
      • Platte /dev/hda1
      • Drucker /dev/lp
      • Speicher /dev/mem
      • Terminal /dev/tty

Unix arbeitet mit einem Filesystem, das auf den ersten Blick dem von DOS sehr ähnlich ist (nur auf den ersten). Also gibt es eine Baumstruktur von verschiedenen Verzeichnissen (Directories), in der sich jede Datei irgendwo befindet. Beachten Sie aber, daß ein Directory beim Anzeigen zunächst genauso aussieht, wie eine Datei!. Die einzelnen Verzeichnisnamen werden durch normale Schrägstriche ('/') getrennt, NICHT durch Backslashes ('\') wie bei DOS/Windows!

Nach dem Einloggen landen Sie in Ihrem sogenannten Homedirectory (Meist '/home/username'). Es gehört Ihnen ganz alleine, damit können Sie machen, was Sie wollen. Zum Beispiel können Sie dort Dateien oder weitere Verzeichnisse anlegen. An dieser Stelle gleich einige wichtige Punkte:

Dateinamen
Dateinamen können bei Unix aus Groß und Kleinbuchstaben bestehen, wobei die unterschiedliche Schreibweise auch unterschiedliche Dateinamen bezeichnet. Die Datei 'test' ist also eine andere als 'Test' oder gar 'TEST'.
Dateilisten
Wo Dateieingaben erwartet werden, können in der Regel beliebig viele Dateinamen stehen.
Sonderzeichen
Dateinamen können ausser dem '/' so ziemlich alle Zeichen enthalten. Auch Leerzeichen oder Steuerzeichen.

Pfadnamen

Dateien werden über ihren Pfad spezifiziert: Angabe von Verzeichnissen und zum Schluß des Namens, getrennt durch Schrägstrich.
  • vollständiger Pfadname, beginnend bei root (absoluter Pfad) Angabe beginnt mit dem Schrägstrich. Zum Beispiel:

    /usr/projekt1/meier/test/steuerung

  • relativer Pfadname, beginnend beim aktuellen Verzeichnis (kurzer Pfad), zum Beispiel:

    steuerung(akt. Verz.: /usr/projekt1/meier/test)
    test/steuerung(akt. Verz.: /usr/projekt1/meier)

Das aktuelle Verzeichnis ist immer jenes, dessen Inhalt wir gerade bearbeiten. Das aktuelle Verzeichnis läßt sich jederzeit wechseln, aber ein Verzeichnis ist zu einem bestimmten Zeitpunkt immer das aktuelle und alle unsere Kommandos beziehen sich dann auf dieses eine, aktuelle, Verzeichnis.

Eine besondere Erwähnung verdienen die beiden Verzeichnis-Einträge "." und "..". Das sind Stellvertreter für Verzeichnisnamen, die man statt der realen Namen (abkürzend) benutzen kann. Und zwar bezeichnet "." das jeweils aktuelle Verzeichnis, und ".." das dem aktuellen Verzeichnis übergeordnete Verzeichnis.

Schutzmechanismen

  • Jeder UNIX-Benutzer hat eine Benutzerkennung (user id, kurz: uid) mit der er sich gegenüber dem BS identifizieren kann.
  • Jeder UNIX-Benutzer gehört einer Gruppe an und besitzt damit eine Gruppen-ID, kurz:gid)
  • Jede Datei hat einen Eigentümer und eine Gruppe, die bei der Erzeugung der Datei eingetragen werden
  • Jeder Benutzer kann seine Dateien explizit einem anderen Benutzer (bzw. einer anderen Gruppe) "schenken".
  • Jede Datei besitzt 12 voneinander unabhängige Schutzbits

Bedeutung der drei Schutzbits SUID, SGID und STICKY

Wenn das SUID-Bit (Set User ID) gesetzt ist, behält das Programm für die Dauer der Ausführung die Rechte des Programmeigentümers und nicht jene dessen, der die Programme aufruft. Setzen durch das Kommando: "chmod u+s datei". Anzeige: "s" statt "x" bei den User-Rechten. Dazu ein Beispiel:

Alle Benutzer sind in einer speziellen Datei gespeichert, die nur der Superuser ändern darf - sonst könnte ja jeder einen neuen Benutzer eintragen.
Jeder Benutzer kann aber sein Passwort ändern, das auch in dieser Datei steht. Dazu muß er schreibend auf die Datei zugreifen - obwohl er dazu keine Berechtigung besitzt. Das Programm "passwd" gehört dem Superuser, hat das SUID-Bit gesetzt und kann so auf die User-Datei schreibend zugreifen.

Wenn das SGID-Bit (Set Group ID) gesetzt ist, hat das Programm die Rechte der Gruppe, zu der es gehört. Dieses Feature wird z. B. beim Drucker-Spooling verwendet. Bei Dateien ohne Ausführungsrecht sorgt dieses Bit dafür, daß die Datei nur von einem Prozeß geöffnet werden kann (Vermeiden von Verklemmungen).
Bei Verzeichnissen hat das SGID-Bit eine andere Aufgabe. Dateien, die in ein SGID-Verzeichnis kopiert werden, erhalten automatisch die Gruppe des Verzeichnisses (man muß also nicht mehr explizit die Gruppe setzen, um den Mitgliedern einer Gruppe Zugriff zu ermöglichen). Setzen durch das Kommando: "chmod g+s datei". Anzeige: "s" statt "x" bei den Gruppen-Rechten ("l" bei Daten-Dateien).

Das STICKY-Bit sollte früher den Systemdurchsatz verbessern. Programme, bei denen dieses Bit gesetzt ist, verbleiben nach dem ersten Aufruf im Speicher und starten bei den folgenden Aufrufen schneller. Heute ist das nicht mehr nötig.
Bei Verzeichnissen dient dieses Bit der Systemsicherheit. Auch wenn im Verzeichnis für alle User Schreibrecht existiert (= Löschen und Anlegen von Dateien), können bei gesetztem Sticky-Bit nur Dateien gelöscht werden, die einer folgenden Bedingungen genügen:

  • die Datei gehört dem Benutzer, der sie löschen will
  • das Verzeichnis, in dem die Datei liegt, gehört dem Benutzer
  • der Benutzer hat Schreibrecht für die Datei
  • der Superuser will die Datei löschen
Setzen durch das Kommando : "chmod +t datei". Anzeige: "t" statt "x" bei den "Others"-Rechten.

Die Implementierung des Dateisystems

Ein physisches Dateisystem ist eine dateiorientierte Struktur auf einem logischen Datenträger (Partition, Slice). UNIX bietet die Möglichkeit, mehrere dieser logischen Datenträger auf einem physischen Datenträger (Festplattenlaufwerk) zu verwalten. Desweiteren können neben den permanent vorhandenen physischen Dateisystemen (Dateisysteme auf dem Systemlaufwerk) auch weitere Dateisysteme auf montierbaren Datenträgern (Festplattenlaufwerke anderer Rechnersysteme, Wechselplatten, Disketten, usw. ) in den Dateibaum eingehängt bzw. entfernt werden.

Schaut man sich ein physisches Dateisystem genauer an, so erkennt man den Betriebssytemblock als kleinste Einheit (im Bereich von 512 Byte bis 16 kByte). Das physische Dateisystem wird in in vier Bereiche aufgespalten:

  • Boot-Block:
    Er enthielt im root-Dateisystem ein Urlader-Programm, welches das eigentliche UNIX-System (Betriebssystemkern) in den Arbeitsspeicher lädt. Dieser Bereich ist bei heutigen Systemen leer.
  • Super-Block:
    Er enthält alle relevanten Verwaltungsinformationen zu einem physischen Dateisystem:
    • Name und Größe des physischen Dateisystems
    • Größe der nachfolgenden Bereiche des physischen Dateisystems (Inodeliste, Nutzdatenbereich)
    • Verweise auf die Liste der freien Datenblöcke und die Liste der freien Inodes
    • Datum der letzten Sicherung und Modifikation
    • und weitere Angaben
  • Inodeliste:
    Sie stellt ein Inhaltsverzeichnis aller in dem Dateisystem existierenden Dateien dar. Sie besteht aus einer Folge von Inodes (Dateiköpfen), die die Verwaltungsdaten zu jeder Datei enthalten.
  • Nutzdatenbereich: Hier befinden sich die freien Blöcke, Datenblöcke (Inhalte von Dateien und Verzeichnissen) und Referenzblöcke, die zur Adressierung der Datenblöcke eingesetzt werden.

Die Größe der einzelnen Bereiche wird bei der Initialisierung eines physischen Dateisystems festgelegt und kann im nachhinein nicht mehr dynamisch verändert werden (außer im UNIX-System AIX von IBM). Das dazu notwendige Kommando ist 'mkfs' (make file system). Die Bereiche eines physischen Dateisystems sind auf die Kapazität eines logisch Datenträgers und damit maximal auf die Gesamtkapazität eines Festplattenlaufwerks beschränkt, d. h. festplattenübergreifende physische Dateisysteme sind nicht möglich.

Die Verwaltungsinformation über Dateien steht also nicht wie bei DOS oder Windows in den Dateien selbst, sondern in den Inodes. Jede Datei besitzt einen eigenen Inode (eine eigene Datei-Nummer). Der Zugriff erfolgt entweder sequentiell (Datei ist ein Strom von Bytes ohne weitere Strukturierung) oder wahlfrei (random access) durch Positionierung auf ein bestimmtes Byte in der Datei. Das BS hat einen Cache-Mechanismus implementiert, der einen Teil der Datei im Speicher hält. Ziel: Reduzierung der Plattenzugriffe.

Problem: Dateien müssen regelmäßig aktualisiert werden (Cache-Inhalt auf die Platte schreiben), Gefahr der Inkonsistenz von Daten bei Prozeß-Abbruch oder Stromausfall.

Inodes (I-Knoten)

Da alle Inodes die identische Länge von 128 Byte haben, erübrigt sich die Abspeicherung der Knotennummer innerhalb des Inodes. Ein Inode enthält die relevanten Verwaltungsattribute einer Datei:
  • Dateityp und Zugriffsrechte
  • Eigentümer, Gruppe
  • Link-Zähler (siehe später)
  • Zeitstempel
    • Datum der letzten Änderung am i-Node
    • Datum der letzten Modifikation
    • Datum des letzten Zugriffs
  • Dateigröße in Byte
  • 10 Verweise auf Plattenblöcke
  • Einfach indirekter Verweis
  • Zweifach indirekter Verweis
  • Dreifach indirekter Verweis

Zu beachten ist, daß der Name der Datei nicht aufgeführt wird. Diese Systemarchitektur ermöglicht es, unter mehreren (verschiedenen) Namen als Einträge von Verzeichnissen die gleiche Datei (genauer gesagt Inode und Dateiinhalt) anzusprechen. Der Inode fungiert somit als Bindeglied zwischen dem Namen und dem Inhalt einer Datei. Für die Adressierung der Inhalte einer Datei ergibt sich eine bestimmte Verweisstruktur.

Eine Datei mit bis zu 10 Plattenblöcken (Blockgröße 512 oder 1024 Bytes) kann also direkt angesprochen werden. Größere Dateien haben zusätzlich einen Verweis (einfach indirekt) auf einen Datenblock, der seinerseits 128 Verweisfelder enthält. Reicht das noch nicht, wird zweimal (128 Blöcke mit je 128 Verweisen) oder dreimal indiziert (Dateigröße bis 2 GByte bei 512-Byte-Blöcken, bis 16 GByte bei 1KByte-Blöcken).

Links

Dies sind Verweise auf Dateien, d. h. über ein Link kann eine Datei unter einem zweiten Namen angesprochen werden. Eine Datei mit mehreren Links hat also mehrere Namen, ist jedoch nur einmal vorhanden. Beim Löschen eines Links - das für den Benutzer wie eine "normale" Datei wirkt - wird nur der Link und nicht die Datei gelöscht. erst beim Löschen des letzten Links verschwindet auch die Datei. Links sind nicht an den Eigentümer der Datei gebunden, d. h. Benutzer A kann ein Link auf die Datei von Benutzer B haben. Die Dateizugriffsrechte bleiben davon aber unberührt. Problem: Benutzer A löscht eine Datei, auf die Benutzer B ein Link hat. Dann bleibt die Datei zwar wegen des zweiten Links erhalten, wenn nun aber Benutzer A gelöscht wird, dann gibt es eine Datei ohne Eigentümer.

Das System der Links wird generell verwendet. So gibt es unter UNIX keinen Systemaufruf zum Löschen einer Datei, sondern lediglich einen Unlink-Call. Wenn der Link-Zähler einer Datei auf Null gesunken ist (durch entsprechend viele Unlink-Aufrufe), wird deren Inode und der durch die Datei belegte Plattenplatz freigegeben.

Der Superblock

Der Superblock bildet die Verwaltungseinheit für eine Platte oder Plattenpartition (= Dateisystem). Er enthält folgende Felder:
  • Größe des Dateisystems
  • Anzahl und Liste der freien Blöcke
  • Index auf den nächsten freien Block der Liste
  • Größe der Inode-Liste - Anzahl und Liste der freien Inodes
  • Index auf den nächsten freien Inode der Liste
  • ....

Geräte

Alle Peripheriegeräte des UNIX-Rechners (Platte, Floppy-Disk, Magnetband, Terminals, Drucker, usw.) werden über das Dateisystem, also prinzipiell wie Dateien angesprochen. Dazu sind (normalerweise im Verzeichnis /dev) spezielle Programme, sogenannte Geräte-Treiber (device drivers), vorhanden, die über spezielle Dateien (special files) angesprochen werden können. Diese Gerätedateien sorgen für den Anschluß der Geräte an das UNIX-Dateisystem. Für die Namen der Dateien sind von AT&T Namenskonventionen vereinbahrt worden, an die sich jedoch nicht alle Systeme halten.

Gerätedateien dienen zur Abwicklung des Datenverkehrs zwischen den Programmen und der Peripherie. Da sie, wie die abstrakten Komponenten (normale Dateien, Verzeichnisse, usw.) einheitlich in den Systembaum integriert werden, sind auch für sie die Zugriffsschutzmechanismen und Ein- /Ausgabeumleitung gültig. Die Geräte werden durch logische Namen angesprochen, die die Gerätetreiber der Peripheriegeräte bezeichnen. Intern wird jedes Gerät durch eine Treiber-Nummer (major device number) und eine Geräte-Nummer (minor device number) markiert. Diese Nummern sind im ls -l Eintrag in dem Feld enthalten, das die Dateigröße angibt.

  • major device number:Angabe des Gerätetyps (Platte,Terminal, Drucker, etc.)
  • minor device number: Angabe über die E/A-Schnittstelle oder nähere Umstände der Ansteuerung (z.B. Band zurückspulen/nicht zurückspulen)
Ein Gerät kann durchaus über verschiedene Treiber angesprochen werden. Normalerweise werden die Geräte vom Benutzer nicht direkt, sondern über Dienstprogramme angesprochen. Wenn jemand z. B. den Drucker direkt anspricht, während ein anderer Benutzer über den Spooler ausdruckt, gibt es "Datenmüll" auf dem Papier. Zwei interessante Geräte können jedoch alle Benutzer ansprechen:
  • /dev/null
    Daten, die an dieses Gerät geschickt werden, landen in einem "schwarzen Loch" - ideal für Ausgaben eines Programms. Wenn von diesem Gerät gelesen wird, liefert es immer "End Of File".
  • /dev/zero ist das zweite "Spezialgerät". Beim Lesen von diesem Gerät werden beliebig viele Nullbytes geliefert. Man verwendet es z. B. zum Füllen von Dateien oder wenn man eine "Dummy-Engabe" benötigt.

Es gibt bei UNIX prinzipiell zwei Typen von Treibern:

  • Zeichentreiber Für zeichenorientierte Geräte (Terminal, Drucker, etc.). Eingehende Daten werden in der Regel gepuffert und dann vom Programm aus dem Puffer gelesen, beim Schreiben erfolgt analog die Pufferung in Ausgangsrichtung.
  • Blocktreiber für blockorientierte Geräte (z. B. Platte). Hier ist meist noch ein Software-Cache (Schreib-Lesepuffer mit entsprechenden Zugriffsroutinen) zur Beschleunigung der E/A-Operationen implementiert. Zur Einrichtung von Treibern und Zuweisung der "device numbers" existiert ein passendes Kommando (mknode), das nur vom Superuser aufgerufen werden kann. Die Gerätedateien enthalten selbst keine Treiber, sondern legen nur fest, welcher Treiber im Kernel über die Gerätedatei angesprochen werden soll.
DIPLOMARBEITEN UND BÜCHER

Diplomarbeiten zum Runterladen:

Suche im Katalog:
Architektur / Raumplanung
Betriebswirtschaft - Funktional
Erziehungswissenschaften
Geowissenschaften
Geschichtswissenschaften
Informatik
Kulturwissenschaften
Medien- und Kommunikationswissenschaften
Medizin
Psychologie
Physik
Rechtswissenschaft
Soziale Arbeit
Sozialwissenschaften


JOBS
HOME | E-LEARNING | SITEMAP | LOGIN AUTOREN | SUPPORT | FAQ | KONTAKT | IMPRESSUM
Virtual University in: Italiano - Français - English - Español
VirtualUniversity, WEB-SET Interactive GmbH, www.web-set.com, 6301 Zug

Partner:   Seminare7.de - PCopen.de - HTMLopen.de - WEB-SET.com - YesMMS.com - Ausbildung24.ch - Manager24.ch - Job und Karriere