Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Über die Autoren
Über dieses Buch
Linux vs. BSD
1 Der Kernel
2 Die Grundlagen aus Anwendersicht
3 Die Shell
4 Reguläre Ausdrücke
5 Tools zur Dateibearbeitung
6 Die Editoren
7 Shellskriptprogrammierung
8 Benutzerverwaltung
9 Grundlegende Verwaltungsaufgaben
10 Netzwerk-Grundlagen
11 Anwendersoftware für das Netzwerk
12 Netzwerkdienste
13 Mailserver unter Linux
14 LAMP
15 DNS-Server
16 Secure Shell
17 Die grafische Oberfläche
18 Window-Manager und Desktops
19 X11-Programme
20 Multimedia und Spiele
21 Softwareentwicklung
22 Crashkurs in C und Perl
23 Sicherheit
24 Prozesse und IPC
25 Bootstrap und Shutdown
26 Dateisysteme
27 Virtualisierung und Emulatoren
A Die Installation
B Lösungen zu den einzelnen Aufgaben
C Kommandoreferenz
D X11-InputDevices
E MBR
F Die Buch-DVDs
G Glossar
H Literatur

Download:
- ZIP, ca. 6,3 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Linux von Johannes Plötner, Steffen Wendzel
Das distributionsunabhängige Handbuch
Buch: Linux

Linux
2., aktualisierte und erweiterte Auflage
1119 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1090-4
gp 26 Dateisysteme
  gp 26.1 Der Aufbau von Speichermedien
    gp 26.1.1 Die physikalische Struktur
    gp 26.1.2 Die logische Struktur
    gp 26.1.3 Integration ins VFS
  gp 26.2 Dateisysteme
    gp 26.2.1 ext2, ext3 und reiserfs
    gp 26.2.2 FFS und UFS/UFS2
    gp 26.2.3 ISO 9660
    gp 26.2.4 Loop Device und Ramdisk
    gp 26.2.5 Swap
    gp 26.2.6 DevFS
    gp 26.2.7 ProcFS
    gp 26.2.8 NFS
    gp 26.2.9 Ecryptfs
    gp 26.2.10 Weitere Dateisysteme
  gp 26.3 Dateitypen
    gp 26.3.1 Reguläre Dateien
    gp 26.3.2 Verzeichnisse
    gp 26.3.3 Links
    gp 26.3.4 Sockets
    gp 26.3.5 Named Pipes
    gp 26.3.6 Gerätedateien
  gp 26.4 Inodes
    gp 26.4.1 Die Metadaten
    gp 26.4.2 Alternative Konzepte
  gp 26.5 Administration
    gp 26.5.1 qtparted und gparted
    gp 26.5.2 disklabel
    gp 26.5.3 hdparm
    gp 26.5.4 fdisk und cfdisk
    gp 26.5.5 Das Tool cfdisk
    gp 26.5.6 mkfs
    gp 26.5.7 tune2fs
    gp 26.5.8 fsck
  gp 26.6 Praktische Beispiele
    gp 26.6.1 ZIP-Laufwerke
    gp 26.6.2 Neue Festplatten integrieren
    gp 26.6.3 Eine Datei als Dateisystem: Loop Device
    gp 26.6.4 USB-Sticks und -Platten, Digitalkameras und Co.
    gp 26.6.5 Das Device ansprechen
  gp 26.7 Zusammenfassung
  gp 26.8 Aufgaben

When each day is the same as the next, it's because people fail to recognize the good things that happen in their lives every day that the sun shines. -- Paulo Coelho, The Alchimist

26 Dateisysteme

Eine zentrale Komponente eines Betriebssystems ist die Implementierung eines Dateisystems. Linux unterstützt dabei gleich eine ganze Menge solcher Dateisysteme, sodass jeder Administrator das von der Funktionalität und Performance her für seine Zwecke beste Dateisystem wählen kann. Zudem werden wir auf die BSD-Dateisysteme eingehen.


Galileo Computing

26.1 Der Aufbau von Speichermedien  downtop

Vor den eigentlichen Dateisystemen stehen natürlich die Speichermedien an sich. Dabei wollen wir exemplarisch Festplatten behandeln, andere Speichermedien wie CD-ROMs verhalten sich aber ähnlich.


Galileo Computing

26.1.1 Die physikalische Struktur  downtop

Magnetische Speicherung

Natürlich müssen Bits und Bytes physikalisch gespeichert werden. Bei Festplatten passiert das immer noch magnetisch. Eine Platte besteht vereinfacht gesehen aus folgenden Komponenten:

  • einer oder mehreren drehbaren Magnetscheiben (inklusive Antrieb etc.)
  • beweglichen Lese-/Schreibköpfen (inklusive Lager, Antrieb etc.)
  • einem Hochleistungs-DSP für die Schreib-/Leseköpfe.
  • der Schnittstelle zur Verbindung mit dem Computer
  • dem Festplattencache

Die magnetisierbaren Scheiben sind nun übereinander angeordnet und besitzen jeweils einen oder zwei Lese-/Schreibköpfe.

Ob jede Magnetscheibe dabei doppelseitig genutzt wird, ist vom jeweiligen Modell abhängig. Sollen nun Daten gelesen beziehungsweise geschrieben werden, so müssen die Lese-/Schreibköpfe zuerst in die richtige Position fahren und die Scheiben zu rotieren beginnen. Diese mechanischen Vorgänge haben im Allgemeinen eine Gesamt-Latenzzeit von 5 bis 10 Millisekunden, was im Vergleich zu den Zugriffszeiten auf den RAM wirklich extrem langsam ist. Sollen dann jedoch größere zusammenhängende Datenstrukturen gelesen werden, ist der Zugriff allerdings recht schnell.

Heutzutage wird jedoch diese interne Geometrie vor dem Betriebssystem versteckt. Wusste das Betriebssystem früher über die dreidimensionale CHS-Ansteuerung – Cylinder, Head und Sektor – noch genau, wo sich ein Datenblock physikalisch auf der Platte befand, werden die Blöcke heute einfach nur gezählt.

Ein Block – oder besser: Sektor – ist dabei immer 512 Byte groß.

So wird dem Fakt Rechnung getragen, dass eine Festplatte nur bei größeren Datenmengen ausreichend schnell ist. Und anstatt die Köpfe und Platten direkt anzusprechen, kann das Betriebssystem nun dank dem LBA-Modus (engl. logical block addressing – logische Blockadressierung) die Festplattenblöcke über eine einfache Nummer ansprechen.

Automatische Komprimierung

Der Festplattencontroller kann so auch selbst Optimierungen vornehmen, indem er beispielsweise Daten anders anordnet oder indem er auch defekte Blöcke intern markiert und durch eine »Reserve« ersetzt. So bekommt das Betriebssystem von defekten Blöcken nichts mit und muss sich auch nicht um Optimierungen kümmern. Interessant ist ebenfalls, dass der Controller die Daten beim Schreiben auf die Platte auch gleich komprimiert.


Galileo Computing

26.1.2 Die logische Struktur  downtop

Die nächste Schicht ist natürlich das jeweilige Dateisystem. Dafür wird nur selten die gesamte Festplatte genutzt.

In der Regel teilt man die Festplatte in mehrere Partitionen auf. Möchte man mehrere Betriebssysteme auf einem Rechner installieren, kommt man um diese Aufteilung nicht herum – schließlich sollen sich die beiden Systeme ja auch nicht in die Quere kommen. Im Vergleich zu unserem vorherigen Abschnitt sind wir im Dateisystemkontext eine Abstraktionsstufe höher und damit von der Adressierung der Daten über Blocknummern weiter weg:

Ein Dateisystem erlaubt den Zugriff auf gespeicherte Daten über Dateinamen.

Blöcke im Dateisystem

In erster Linie verwaltet ein Dateisystem also die Zuordnung von Dateinamen zu Datenblöcken auf der Festplatte. Dabei werden teilweise mehrere Festplattenblöcke zu Dateisystemblöcken zusammengefasst: So kommt man dann schließlich zu Blockgrößen von 2048 oder 4096 bei Dateisystemen. Schließlich müssen diese Blocknummern ja verwaltet werden, und kleinere Blöcke bedeuten mehr Nummern, was wiederum einen höheren Speicher- und Verwaltungsaufwand bedeutet. Außerdem kann auf zusammenhängende Daten schneller zugegriffen werden, als wenn diese wild auf der Platte verteilt sind: Große Blöcke bringen also vor allem auch einen Geschwindigkeitsvorteil.

Der Preis, mit dem man sich diese Geschwindigkeit erkauft, ist nun aber »Platzverlust« durch interne Fragmentierung. Schließlich kann das Dateisystem nur einzelne Blöcke adressieren. Ist eine Datei also im Besonderen kleiner als die Blockgröße beziehungsweise wird bei größeren Dateien der letzte Block nicht ganz voll, so wird dieser Platz verschenkt. <Eine Ausnahme ist das Dateisystem ReiserFS 4: Hier werden halb leere Blöcke noch durch kleine Dateien aufgefüllt. Es können sich also zwei Dateien einen Datenblock »teilen«.>

Das Dateisystem muss natürlich auch die folgenden Funktionen erfüllen:

  • Metadaten bereitstellen
  • Eigentümer & Co.

  • Eine Datei hat natürlich nicht nur ihren Inhalt, sondern auch verschiedene Metadaten – in allererster Linie natürlich ihren Namen, aber auch Benutzer, Gruppen und die dazugehörigen Rechte gehören dazu. Auch die Zeit der letzten Modifikation und alles, was man sonst so mit einer Datei verbindet, gehört hier dazu. Das Dateisystem muss diese Informationen speichern und natürlich mit der betreffenden Datei verknüpfen.
  • Hierarchie ermöglichen
  • Heutzutage sind eigentlich die meisten Dateisysteme hierarchisch, kennen also Verzeichnisse zum Ordnen von Dateien.
  • Freie Blöcke verwalten
  • Das Dateisystem muss natürlich auch den freien Speicherplatz verwalten. Am einfachsten passiert dies durch eine »Free-list«, also eine Liste aller freien Blöcke.

Galileo Computing

26.1.3 Integration ins VFS  toptop

Nun gibt es aber mehr als nur »ein« Dateisystem. Schon allein die Auswahl für Festplatten scheint gigantisch:

Jedes Betriebssystem hat so ziemlich seinen Favoriten, und der liegt in der Regel auch noch in mehreren Versionen vor. Aber auch besondere Speichermedien wie CD-ROMs bringen ihr eigenes Dateisystem – wie bei CD-ROMs das bekannte ISO9660 – mit, damit den besonderen Eigenschaften dieser Medien auch Rechnung getragen werden kann.

Damit ein Betriebssystem nun auf die unterschiedlichen Dateisysteme zugreifen kann, gibt es das bereits aus dem ersten Kapitel bekannte virtuelle Dateisystem, das VFS. Das VFS bildet die Abstraktion und die einheitliche Schnittstelle, in die alle Dateisystemtreiber integriert werden können. Probleme bei ausgefallenen Features sind bei dieser Integration zwar die absolute Ausnahme, aber doch nicht unmöglich, wie die Probleme mit der Integration von ReiserFS Version 4 in den Linux-Kernel zeigen.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: Linux






 Linux
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: Einstieg in Linux






 Einstieg in Linux


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-
 Programmierung


Zum Katalog: Praxisbuch Netzwerk-Sicherheit






 Praxisbuch
 Netzwerk-Sicherheit


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de