41
Betriebssysteme I WS 2018/19 Prof. Dr. Dirk Müller 4 Dateisysteme

Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

Betriebssysteme I

WS 2018/19

Prof. Dr. Dirk Müller

4 Dateisysteme

Page 2: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 2/41Dirk Müller: Betriebssysteme I

Überblick

● Motivation● Speicherhierarchie● Ziele eines Dateisystems● Festplatten

– Aufbau, Adressierung, Markt, Zukunft, CD

● Dateisysteme● Dateien und Verzeichnisse

– Dateioperationen

● gemeinsame Nutzung von Dateien– harte und weiche Links

● Zugriffsrechte● Zusammenfassung

Page 3: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 3/41Dirk Müller: Betriebssysteme I

Motivation

● Dateisysteme als für den durchschnittlichen Nutzer sichtbarster Kontakt mit dem Betriebssystem– sowohl in der Kommandozeile als auch in einer GUI

● Anforderungen an Datenspeicher– möglichst groß (Videos, 3-D-Bilder, Musik, Programme, etc.)– möglichst schnell

– möglichst kurze Zugriffszeit– möglichst hohe Transferrate

– möglichst persistent(Daten bleiben auch ohne Strom erhalten)

– möglichst billig

● so nicht realisierbar=> Kompromiss durch hierarchische Anordnung verschieden schneller, großer und teurer Speicherarten in einer Speicherpyramide

Page 4: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 4/41Dirk Müller: Betriebssysteme I

Speicherhierarchie

Quelle: [1], S. 345

heute auchLevel-3-Caches

üblich

Anomalie: schnellerals Festplatten; kann

zur Auslagerunggenutzt werden;

z. B. „ReadyBoost“unter MS Windows

B

KB

MB

GB

TB

Page 5: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 5/41Dirk Müller: Betriebssysteme I

Mobiler Datenträger zum Auslagern?

● seit MS Windows Vista (2007) verfügbar

● min. 230 MB müssen von min. 256 MB frei sein, min. USB 2.0

● machte damals Sinn, zusätzlicher Cache für Festplatten

● auf heutigen Rechnern mit SSD und viel RAM kein Vorteil mehr zu erwarten (siehe Abb.)

Page 6: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 6/41Dirk Müller: Betriebssysteme I

Ziele eines Dateisystems

● Strukturierung der abzulegenden Daten– anpassbarer Schlüssel für eine Datei: selbst gewählter Name– wahlfreier Zugriff über den Dateinamen (und ggf. Pfad im Baum)– Management des Freispeichers

● Herausforderungen– Langsamkeit mechanischer Technologien– riesige Datenmengen– Fehlertoleranz– Sicherheit (Zugriffsrechte, Sichern und Wiederherstellen)– Lesen und Schreiben von Dateien in anderen Dateisystemen

● Heterogenität der Datenträger– magnetische– optische– elektrische

Page 7: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 7/41Dirk Müller: Betriebssysteme I

Festplatte● genauer Festplattenlaufwerk (engl. Hard Disk Drive, HDD)● Stapel von rotierenden Magnetscheiben, konstante

Rotationsgeschwindigkeit (CAV – Constant Angular Velocity)– Rotationsgeschwindigkeit ca. 5.400 – 15.000 U/min

● 2-16 Platter (rotierende Scheiben)● konzentrische Spuren (Tracks), ca. 10.000 pro Oberfläche● übereinanderliegende Spuren bilden einen sog. Zylinder● kleinste ansprechbare Einheit: physischer Block („Sektor“;

Byte), z. B. 150-300 Sektoren pro Spur● 1 Schreib-Lesekopf pro Plattenoberfläche, radiale Bewegung

aller Köpfe gemeinsam● Kapazität 100 GB – 10 TB, Zugriffszeit ca. 10 ms,

Transferrate 10 MB/s – 100 MB/s, mittlerer Preis ca. 50 Euro

Page 8: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 8/41Dirk Müller: Betriebssysteme I

Festplatte: Adressierung

● historisch: Adressierung eines Blocks über (Zylinder, Kopf, Sektor)-Tripel (Cylinder, Head, Sector – CHS)

● heute: Logical Block Addressing (LBA), einfache Durchnummerierung aller Blöcke

● physisches Layout vor Nutzer verborgen: Abbildung logischer Blocknummern auf physische Blocknummern (LBN → PBN)durch Festplatten-Controller

● Zone Bit Recording: mehrBlöcke pro Spur in äußeren Zonen– insgesamt mehr Blöcke– auf äußeren Spuren höchste

Datentransferrate, HDD wird langsamermit der Zeit

Page 9: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 9/41Dirk Müller: Betriebssysteme I

Festplatte: Aufbau

Köpfe jeweils oben und untenzu einem Platter, also hier 8 Köpfe

Page 10: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 10/41Dirk Müller: Betriebssysteme I

Festplatte: Markt als Oligopol

Quelle: [2]Quelle:Juventas, Download am 13.09.2016,https://upload.wikimedia.org/wikipedia/commons/8/87/Diagram_of_Hard_Disk_Drive_Manufacturer_Consolidation.svg

SanDisk2016

Toshiba

(geschätzt)

Page 11: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 11/41Dirk Müller: Betriebssysteme I

Festplatte: Zukunft?● seit 2014 High-End-HDDs mit Heliumfüllung statt Luft

– geringere Dichte, höhere Wärmeleitfähigkeit,mehr Platter bei gleicher Bauhöhe möglich

● wird langsam vom Markt verschwinden, ca. 2020-2025– Aktienkurse der Marktführer Seagate und WD bereits auf Talfahrt– evtl. noch länger für Server

● Solid State Disks (SSDs)haben sie 2016 in allenwichtigen technischenParametern überholt [3]– mittl. Zugriffszeit

100 µs vs. 10 ms– mittl. Transferrate

300 MB/s vs. 100 MB/s– max. Kapazität

60 TB vs. 14 TB– Preis/TB jedoch noch 3- bis 5-fach; in 3-5 Jahren gleich erwartet

2017 neuer TrendGlassubstrate

2016 Rettung durchKauf von SanDisk?

Western-Digital-Aktienkurs 1997-2018Quelle: http://www.finanzen.net/aktien/Western_Digital-Aktie,Download am 30.10.2018

Page 12: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 12/41Dirk Müller: Betriebssysteme I

Dual-Aktuator-Platten?

● Seagateplant Einführungam Markt für 2019

● Ziel: schnellererwahlfreierZugriff

● Idee schonlange da

● altes Patent von Conner an Seagate übergegangen Quelle: [6]

Page 13: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 13/41Dirk Müller: Betriebssysteme I

Compact Disc (CD)

● Abtastung mittels eines Infrarotlasers, unterschiedliches Reflexionsverhalten von Pits und Lands

● eine (!) Spur (Breite: 0.5 µm), von innen nach außen gelesen, Abstand 1.6 µm

● konstante Speicherdichte → Constant Linear Velocity (CLV) → variable Umdrehungsgeschwindigkeit je nach Position auf Medium

● 2 (CD-Audio) bzw. 3 unabhängige Fehlerkorrektur-Schichten:– Symbol: 8 Bit Payload pro 14 Bit-Symbol (Eight-to-Fourteen-

Modulation, EFM)– Frame: SYNC + CTL + 32 Symbole (Summe 588 Bit, davon 24 Byte

Nutzlast)– Sektor: 98 Frames à 24 Byte Nutzlast = 2352 Byte Länge

● kleinste adressierbare Einheit: Sektor (CD-ROM)

Page 14: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 14/41Dirk Müller: Betriebssysteme I

Wichtige Dateisysteme

Betriebssystem Dateisystem

MS-DOS (Disk, Platte) FAT12, FAT16

MS Windows 9x FAT32 mit VFAT-Erweiterung

MS Windows NT incl.MS Windows 10

NTFS

Mac OS X jHFS+, APFS

Linux ext4, XFS, Btrfs, ReiserFS

Android ext4, f2fs

(CD-ROM, DVD) ISO 9660, UDF

(SD-Card, USB-Stick) FAT16, FAT32, exFAT, ext4, NTFS

Page 15: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 15/41Dirk Müller: Betriebssysteme I

Wichtige Linux-Dateisysteme

Quelle: [4]

NTFS

B+ tree

1993

256 TB

16 TB/256 TB

232

255 bytes

Yes

Yes (per file)

Yes (per file)

Yes (Win Server 2012)

Yes

Yes

232

Page 16: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 16/41Dirk Müller: Betriebssysteme I

Datei

● Nutzdaten und Attribute (Metadaten)● typische Attribute

– Dateiname– Größe der Datei– Stellung des Dateipositionszeigers– Eigentümer, Gruppe– Zeitstempel

– Geburt, Birth– Geändert, Change: Attribute geändert– Modifiziert, Modify: Schreibzugriff– Zugriff, Access: Lesezugriff

– nur lesen (read-only)– versteckt (hidden)

● Linux: stat <Dateiname>– lsattrib <Dateiname>

bei Linux Streit, ob escreate time oder

birth time heißen soll undSuche nach Anwendungsfall

für SSDs unter Linux bitte pernoatime ausschalten, da sonstjedes Mal Attribut geschriebenwird und SSD schneller altert

für die Standard-Dateisystemeext2, ext3 und ext4

Page 17: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 17/41Dirk Müller: Betriebssysteme I

Dateiarbeit

● Dateien müssen vor Zugriff geöffnet werden und sollten danach geschlossen werden– ulimit -a liefert unter Linux (u. a.) Maximum der zugleich

geöffneten Dateien, z. B. 256

● Lese- und Schreiboperationen nutzen gemeinsam den Dateipositionszeiger– Anfangswert 0, kann beliebig abgefragt und gesetzt werden– implizit durch Lesen und Schreiben versetzt

● Dateiende durch Konstante EOF (End of File) angezeigt● zur Arbeit mit einer (ganzen) Datei

– Einlesen in Hauptspeicher, Bearbeiten, Zurückschreiben– schneller: Einblenden in Hauptspeicher

Page 18: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 18/41Dirk Müller: Betriebssysteme I

Wichtige DateioperationenC-Bibliothek stdio.h

UNIX-basierte BSunistd.h POSIX Windows (Win32) Beschreibung

fopen() creat(), open() CreateFile() Datei anlegen/öffnen

fclose() close() CloseFile() Datei schließen

fread() read() ReadFile() sequenzielles Lesen

fwrite() write() WriteFile() sequenzielles Schreiben

fprintf() formatiertes Schreiben

feof() Test auf Dateiende

ferror() Test auf Fehler

fseek()lseek() SetFilePointer()

Dateipositionszeiger setzen

ftell() Abfrage des Dateipositionszeigers

flock() fcntl() LockFile() Datei sperren

link() CreateHardLink() harten Link anlegen

rename() rename() MoveFile() Datei umbenennen

mmap() CreateFileMapping() Datei in Hauptspeicher einblenden

kein Standard

Page 19: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 19/41Dirk Müller: Betriebssysteme I

Abstraktionen bei der Dateiarbeit

<stdio.h>: BS-unabhängig, also portabel-geöffnete Datei durch FILE* identifiziert-gepufferte E/A-3 Spezialdateien zur Eingabe, Ausgabe und Fehlerausgabe: stdin, stdout, stderr-standardisiert nach ANSI-C (seit 1989, dann auch ISO-Standard ab 1990)-mächtig, gut strukturiert und vorausschauend-Ausnahme: gets() im Standard C11 entfernt, da Quelle vieler Pufferüberläufe

<unistd.h>: für alle UNIX-basierten BS-geöffnete Datei durch Dateideskriptor vom Typ int identifiziert-3 kleinste bereits vergeben:

#define STDIN_FILENO 0;#define STDOUT_FILENO 1;#define STDERR_FILENO 2;

-von Cygwin und MinGW angeboten, um gewisse POSIX-Konformität zu erreichen

<windows.h> Windows-32-API-geöffnete Datei durch HANDLE identifiziert-typedef PVOID HANDLE; in <winnt.h>, also Zeiger auf beliebigen Datentyp-114 Funktionen zur Arbeit mit Dateien-komplexe Schnittstellen mit vielen Parametern sind charakteristisch-auch High-Level-Funktionen wie CopyFile() zu finden-GUI-Funktionen („Fenster“) auch enthalten

Page 20: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 20/41Dirk Müller: Betriebssysteme I

Dateitypen● Unterscheidung

– Dateinamensuffix– Magic Number als Metadatum, das

am Beginn der Nutzdaten eingebettet ist– bereits bekannt: Shell-Skript startet mit #!/bin/bash

– Attribute (Metadaten)

● Linux: file <Dateiname>– Test auf Attribute (d, l, c, b, p, s)– Test auf leere Datei (Länge 0)– Vergleich mit Magic-Number-Datenbank in /etc/magic

– zuerst nur Dateianfang– dann ganze Datei, kontextsensitiv

– gar nichts passt: Rückfall auf Datendatei

● Beispiel: Shell-Skript ohne Magic Number manchmal lauffähig, aber nur mit ihr sicher klassifiziert

vs.

Page 21: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 21/41Dirk Müller: Betriebssysteme I

Magic Numbers

Initialen des Erfindersdes EXE-FormatsMark Zbikowski

Page 22: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 22/41Dirk Müller: Betriebssysteme I

Dateinamen

● MS-DOS: 8.3-Regel– .COM und .EXE ausführbare Dateien– COMMAND.COM als Shell– .BAT Batch-Dateien, entspricht Shell-Skripten

● MS Windows 95: VFAT zur Ermöglichung langer Dateinamen (bis 255 Zeichen) mit Unicode-Zeichensatz

● Windows NT: lange Dateinamen nativ in NTFS unterstützt● Mac OS X: lange Dateinamen nativ in jHFS+ unterstützt● Linux: ext4

– lange Dateinamen nativ unterstützt– Unterscheidung von Groß- und Kleinschreibung– Konventionen für Benennung mit Suffix (auch mehrere möglich)

.c, .h, .a, .so, .sh, .info.gz– führender Punkt für versteckte Dateien, z. B. .bashrc

Page 23: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 23/41Dirk Müller: Betriebssysteme I

FAT-Dateisysteme

MS-DOS 5.0 mit FAT16auf Festplatte

MS-DOS mit FAT12auf 3,5“-2HD-Diskette

MS Windows 98 mit VFAT32

Page 24: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 24/41Dirk Müller: Betriebssysteme I

Hierarchisches Verzeichnissystem

● Konzept in allen modernen Dateisystemen– sehr mächtiger Ansatz, um Dateien strukturiert abzulegen

● Baum, Verzeichnis als innerer Knoten, Datei als Blatt● meist keine Beschränkung bei Baumtiefe

– Verzeichnisse in Verzeichnissen (aka Unterverzeichnisse)– Ausnahme: ursprüngliches (1987) ISO 9660 mit maximaler Tiefe 8

A B C

B B C

C C

C C C C

B

B CA

Wurzelverzeichnis

Nutzerverzeichnisse

Unterverzeichnisseder Nutzer

Quelle: [Tan2016], S. 346

Page 25: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 25/41Dirk Müller: Betriebssysteme I

Besondere Verzeichnisse in Linux in der Bash

● Wurzelverzeichnis, root directory /● aktuelles Verzeichnis, current directory, $PWD .● übergeordnetes Verzeichnis, parent directory ..● Home-Verzeichnis, home directory, $HOME ~ ● Login-Verzeichnis, login directory ~<NKZ>● vorheriges (zeitlich) Verzeichnis, old dir, $OLDPWD -

– selbstreflexiv, d. h. zweites cd – zur Rückkehr

Merke: Das übergeordnete Verzeichnisdes Wurzelverzeichnisses ist diesesselbst!

Page 26: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 26/41Dirk Müller: Betriebssysteme I

Wurzelverzeichnis und Pfadtrenner

BS Wurzelverzeichnis(-se) Pfadtrenner

MS-DOS undMS Windows

A:\,B:\,..,Z:\ \

UNIX, Linux,Mac OS X

/ /

MULTICS > >

Mac OS Classic

<Laufwerk>: :

CP/M <Laufwerksbuchstabe>keiner, da keinhierarchischesDateisystem

Page 27: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 27/41Dirk Müller: Betriebssysteme I

Absolute und relative Pfadnamen

absolute● beginnen beim

Wurzelverzeichnis● dann Auflistung der Namen

aller Verzeichnisse auf dem Weg zur Datei durch den Dateibaum mit Pfadtrenner als Separator

● enden mit dem Dateinamen

relative● beginnen mit einem

Namen, der im aktuellen Verzeichnis enthalten ist

● dann Auflistung der Namen aller Verzeichnisse auf dem Weg zur Datei durch den Dateibaum mit Pfadtrenner als Separator

● enden mit dem Dateinamen

Merke: relativer Pfadname niemals beginnendmit / oder \

Page 28: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 28/41Dirk Müller: Betriebssysteme I

Gemeinsam genutzte Dateien

● Ziele– Vermeidung von Redundanz– Vereinfachung der Aktualisierung– Erhöhung der Flexibilität

● harte Links– mehrere Namen für dieselbe Datei– nur im selben Dateisystem möglich– völlig symmetrische Struktur– beim Setzen/Löschen wird Referenzzähler in-/dekrementiert

● weiche (symbolische) Links– Zeiger auf einen Dateinamen,

der dann auf eine Datei zeigt– Ziel merkt (statisch) nichts– Aufruf kann aber dynamisch ausgewertet werden

Page 29: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 29/41Dirk Müller: Betriebssysteme I

Harte Links in Linux

● Anzahl der harten Links auf eine Datei anzeigen– stat <Dateiname> oder ls -l <Dateiname>

● I-Node-Nummer der Datei anzeigen lassen– ls -i

● zwei standardmäßig gesetzte harte Links in jedem Verzeichnis zu finden: . und ..

● harte Links auf Verzeichnisse meist nicht gestattet– ernste Gefahr, Wohlordnung (Baumstruktur des Dateisystems)

korrumpiert (Wo zeigt .. hin?)

● schnellerer Zugriff, da keine Indirektion; platzsparender● Anlegen mittels ln <Ziel> <Linkname>

– Ziel muss bereits existieren

● Entfernen mittels unlink <Linkname>

Page 30: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 30/41Dirk Müller: Betriebssysteme I

Harte Links und belegter Speicher

Schätzung der Platzbelegung eines Verzeichnisses● naive Methode mit ls -ls berücksichtigt harte Links gar

nicht● du -ca liefert Schätzung für die tatsächliche

Plattenbelegung, harteLinks im Verzeichnis nureinmal gezählt

● scheitert bei harten Linksaus anderenVerzeichnissen

● ls überschätzt Platzbedarf– auch bei Sparse-Dateien

Page 31: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 31/41Dirk Müller: Betriebssysteme I

Symbolische (weiche) Links in Linux

● können über Dateisystemgrenzen hinweg genutzt werden– attraktiv für Parallelinstallationen von Betriebssystemen

● Gefahr des Anlegens von Kreisen– einfach abzufangen mittels eines

Limits bei der Anzahl der Ebenen:Too many levels of symbolic links

● typische Anwendung bei Shell-Aufruf– /bin/sh zeigt auf /bin/bash– angepasstes Verhalten an Aufruf möglich mittels Auswertung von

argv[0] (Ziel: POSIX-Konformität)– früher auch häufig als harter Link implementiert

– schneller + platzsparender, aber nicht so transparent

● Anlegen mittels ln -s <Ziel> <Linkname>● Entfernen mittels unlink <Linkname>

extrem: BusyBox als einProgramm, das >100

Kommandos auf eingeb.Systemen in 1 Datei packt

Page 32: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 32/41Dirk Müller: Betriebssysteme I

Zugriffsrechte von Dateien

● Schutz vor Löschung oder Manipulation von Daten durch– unkundige Nutzer– bösartige Nutzer („Angreifer“)– fehlerhafte Software

● Principle of Least Authority (POLA)– Jeder hat nur so viele Rechte, wie er zur Ausführung seiner

Aufgabe benötigt.

● allgemeines Modell: Zugriffsmatrix– Spalten: (passive) Objekte; z. B. Dateien, die

Zugriffsbeschränkungen unterliegen Wofür?– Zeilen: (aktive) Subjekte; z. B. Nutzer oder Prozesse, deren

Zugriff beschränkt werden soll Wer?– Zellen: erlaubte Operationen, gewährte Rechte;

z. B. Lesen, Schreiben, Ausführen, Löschen Was?

Page 33: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 33/41Dirk Müller: Betriebssysteme I

Beispiel einer Zugriffsmatrix

Datei1 Datei2 Datei3 Datei4

Alice {read, write}

Bob {execute} {read, execute} {read}

Cindy{read, write, execute}

{write}

ObjektSubjekt

● Wechsel zwischen Subjekten muss ebenso kontrolliert werden (sonst leicht aushebelbar)

● Zugriffsmatrix häufig nur dünn besetzt– Verschwendung von Speicher

● 2 prinzipielle Möglichkeiten der platzsparenden Realisierung– nach Spalten: Zugriffskontroll-Listen (Access Control Lists, ACLs)– nach Zeilen: Capability List

Page 34: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 34/41Dirk Müller: Betriebssysteme I

Zugriffskontroll-Listen

● Subjekte und deren Rechte beim Objekt gespeichert● für jedes Objekt gespeichert, welches Subjekt welche

Operationen mit ihm ausführen darf● im Beispiel

– ACL(Datei1)=((Alice, {read, write}),(Bob, {execute}))– ACL(Datei2)=((Bob, {read, execute}))– ACL(Datei3)=((Cindy, {read, write, execute}))– ACL(Datei4)=((Bob, {read}), (Cindy, {write}))

● Vorteile– einfach zu implementieren– Rechterücknahme per Objekt leicht möglich

● Nachteile– ACL-Kontrolle bei jedem Zugriff auf ein Objekt– Bestimmung der Subjekt-Rechte sehr aufwändig

Page 35: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 35/41Dirk Müller: Betriebssysteme I

Traditionelle UNIX-Zugriffsrechte

● Subjekte in 3 Rollen unterschieden– Eigentümer (u)– Gruppenmitglieder (g)– alle anderen Nutzer (o)

● Operationen– Lesen (r) 4– Schreiben (w): incl. Änderung der Dateirechte 2– Ausführen (x): bei Verzeichnis Bedeutung „Hineinwechseln“ 1

● 9-Bit-Maske mit grundlegenden Rechten, Beispiele– rwxr-x--x 751– -wx-w-rw- 326

● Rechte ändern mittels chmod, Beispiel– chmod u=,g+r-x,o+w ./secret.sh

● Standard bei neuer Datei mittels umask anschauen/setzen

binäreWertigkeiten

enthält Bits, diegelöscht werden;

x-Bits meistautomatisch vom

BS gelöscht

Oktalzahl,da Bit-Tripel

aka: Besitzer-Gruppe-Welt-Modell

Page 36: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 36/41Dirk Müller: Betriebssysteme I

Beispiele für Zugriffsrechte auf eine Datei

BinärzahlcodeOktal-

zahlcodesymboli-

scher Codeerlaubte Dateizugriffe

111000000 700 rwx------ Nur der Eigentümer kann die Datei lesen, schreiben und ausführen.

111111000 770 rwxrwx---Nur der Eigentümer und die

Gruppenmitglieder können die Datei lesen, schreiben und ausführen.

110100000 640 rw-r-----Der Eigentümer kann die Datei lesen und schreiben, die Gruppenmitglieder können sie nur lesen. Andere sind ohne Rechte.

111101101 755 rwxr-xr-xDer Eigentümer hat alle Rechte.

Gruppenmitglieder und andere können die Datei nur lesen und ausführen.

000000000 000 --------- Niemand hat irgendwelche Rechte.

000000111 007 ------rwx Nur andere können die Datei lesen, schreiben und ausführen.

Quelle: [5], S. 799 f.

Page 37: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 37/41Dirk Müller: Betriebssysteme I

ACL-Varianten

● MS-DOS: kein Schutz gegen Angreifer (Einbenutzersystem)– Archive: Datei geändert, sollte archiviert (gesichert) werden– Hidden: Datei versteckt; unsichtbar, falls nicht explizit gewünscht– System: Datei wichtig fürs BS, sollte keinesfalls gelöscht werden– Read-only: Datei schreibgeschützt

● rwxrwxrwx-Schema im traditionellen UNIX● ACL-Implementierung in modernen Linux-Varianten

– Kommandos getfacl und setfacl– höhere Flexibilität als im traditionellen UNIX, auch Vererbbarkeit

● MS Windows NT: Vererbbarkeit, Deny überstimmt Allow● Andrew File System (AFS, ein verteiltes Dateisystem)

– Verzeichnisse: Lookup, Insert, Delete, Administer– Dateien und Verzeichnisse: Read, Write, Lock

Page 38: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 38/41Dirk Müller: Betriebssysteme I

Capability Lists● zeilenweise Realisierung der Matrix● Capability: Zugriffsticket mit Objekt-ID und Rechtebits● für jedes Subjekt gespeichert, wie sie auf welche Objekte

zugreifen dürfen; im Beispiel:– CList(Alice) = ((Datei1, {read, write})– CList(Bob) = ((Datei1, {execute}), (Datei2, {read, execute}),

(Datei4, {read}))– CList(Cindy) = ((Datei3, {read, write, execute}, (Datei4, {write}))

● Vorteile– einfache und schnelle Zugriffskontrolle (nur Ticket zeigen)– einfache Delegation an andere; Ticketfälschung durch Hardware,

Kernel oder Kryptographie zu verhindern

● Nachteile– Rücknahme von Rechten schwierig– Objekt-Sicht auf Rechte schwierig zu erhalten

● z. B.: IBM AS/400, Amoeba

Page 39: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 39/41Dirk Müller: Betriebssysteme I

Ausgabe des Kommandos ls -l

Dateityp (-,d,l,c,b,p,s)Rechte des Eigentümers

Rechte der GruppenmitgliederRechte der anderen Nutzer

ggf. + für ACL-Rechte (Details mit getfacl <Dateiname>) Anzahl der harten Links auf diese Datei

EigentümerGruppe Dateigröße in Byte

Zeitstempel des letzten Schreibzugriffs

Dateiname, ggf. nach ->Ziel des symbolischen Links

Summe der Größe der angezeigten Dateien in Blöcken (Standard 1024 Byte)

identische Dateigröße und Anzahl der harten Links gleich und >1 liefert Verdacht aufgleichlaufende harte Links, Überprüfung der Hypothese mit ls -li (I-Node-Nummern gleich?)

Page 40: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 40/41Dirk Müller: Betriebssysteme I

Zusammenfassung

● Dateien werden derzeit persistent u. a. auf Festplatten (Bedeutung fallend), SSDs (immer wichtiger) und optischen Datenträgern (CDs, DVDs) abgespeichert

● Dateioperationen portabel mittels <stdio.h> oderBS-spezifisch über POSIX- oder Windows-API

● hierarchisches Verzeichnissystem als Standard seit ca. 1985● Dateitypen mittels Dateisuffixen, Magic Numbers und

Attributen (Metadaten) identifiziert● harte und weiche Links: flexibel und platzsparend● Zugriffsrechte über Zugriffskontroll-Listen (per Datei) oder

Capability Lists (per Subjekt) festlegbar– UNIX-Zugriffsrechte einfach zu implementieren, flexibel und schnell;

Einarbeitung in „ugo/rwx“ bzw. die Oktalzahlen nötig– ACLs noch flexibler, Standard-Feature moderner Betriebssysteme

Page 41: Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem MS-DOS (Disk, Platte) FAT12, FAT16 MS Windows 9x FAT32 mit VFAT-Erweiterung MS Windows

WS 2018/19 41/41Dirk Müller: Betriebssysteme I

Literatur

[1] Linda Null, Julia Lobur: „The Essentials of Computer Organization and Architecture“, 4th ed., Jones & Bartlett Publishers 2014

[2] Michael Günsch: “Festplatten: Seagate ist neuer Marktführer vor Western Digital”, 5.11.2018, Download am 8.11.2018, https://www.computerbase.de/2018-11/festplatten-seagate-marktfuehrer-hdd-marktanteil/

[3] Thomas Scherer: „Samsungs 32-TB-SSD: Der Anfang vom Ende der Festplatte“, 15.08.2016, Download am 13.09.2016, https://www.elektormagazine.de/news/samsungs-32-tb-ssd-der-anfang-vom-ende-der-festplatte

[4] William Wong: “What’s the Difference Between Linux EXT, XFS, and BTRFS Filesystems?“, 19.04.2017, Electronic Design, Download am 01.10.2017, http://www.electronicdesign.com/industrial/what-s-difference-between-linux-ext-xfs-and-btrfs-file-systems

[5] Andrew S. Tanenbaum: „Modern Operating Systems“, 3rd edition, Pearson Education, Upper Saddle River, 2009

[6] Lutz Labs: „Seagate steigert IOPS-Leistung von Festplatten“, heise-Online, 19.12.2017, Download am 19.12.2017, https://www.heise.de/newsticker/meldung/Seagate-steigert-IOPS-Leistung-von-Festplatten-3923467.html