Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem...
Transcript of Betriebssysteme I, WS 2018/19 - HTW Dresdenmuellerd/BSI_WS201819/... · Betriebssystem Dateisystem...
Betriebssysteme I
WS 2018/19
Prof. Dr. Dirk Müller
4 Dateisysteme
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
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
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
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.)
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
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
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
WS 2018/19 9/41Dirk Müller: Betriebssysteme I
Festplatte: Aufbau
Köpfe jeweils oben und untenzu einem Platter, also hier 8 Köpfe
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)
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
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]
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)
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
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
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
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
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
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
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.
WS 2018/19 21/41Dirk Müller: Betriebssysteme I
Magic Numbers
Initialen des Erfindersdes EXE-FormatsMark Zbikowski
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
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
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
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!
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
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 \
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
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>
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
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
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?
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
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
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
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.
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
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
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?)
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
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