Dateisysteme Marcel Waldvogel Dateisysteme Was ist eine Datei

  • Slides: 14
Download presentation
Dateisysteme Marcel Waldvogel

Dateisysteme Marcel Waldvogel

Dateisysteme $Was ist eine Datei? $Struktur $Attribute � Typen? $Operationen � Einheitliches Inteface $Rechte

Dateisysteme $Was ist eine Datei? $Struktur $Attribute � Typen? $Operationen � Einheitliches Inteface $Rechte $Garantien? $Logische Dateien Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 2

Dateien unter Unix $Unstrukturierter Bytestrom ohne Bedeutung (auf Betriebssystemebene) � Bedeutung und Struktur erst

Dateien unter Unix $Unstrukturierter Bytestrom ohne Bedeutung (auf Betriebssystemebene) � Bedeutung und Struktur erst durch benutzende Programme $Abgesehen von Programmen meist Textdateien � Vor-, Nachteile? $Operationen auf Inhalten � open(), read(), write(), lseek(), fcntl/ioctl(), mmap(), close() Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 3

Unix: Dateiattribute $Gespeichert in inode � Länge � Zeiten: Modifikation, Zugriff, inode-Mod. � Eindeutige

Unix: Dateiattribute $Gespeichert in inode � Länge � Zeiten: Modifikation, Zugriff, inode-Mod. � Eindeutige Kennung: Geräte-, inode-Nummer � Benutzer und Gruppe � Zugriffsrechte; evt. ACL � Belegte Diskblöcke � Links � Typ (? !? ) $Userversion mittels stat() Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 4

Verzeichnisse $Baumstruktur (auf jeder Disk) $Wurzelverzeichnis inode=2 $Jedes Verzeichnis � Liste von Tupeln (Name,

Verzeichnisse $Baumstruktur (auf jeder Disk) $Wurzelverzeichnis inode=2 $Jedes Verzeichnis � Liste von Tupeln (Name, inode-Nummer) $Mount ("aufsetzen") $Konzept "aktuelles Verzeichnis" Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 5

Dateisysteme $Pro logische Partition (=Teilbereich der Disk bzw. des Disksatzes) ein Dateisystem $Grössere Verzeichnisse

Dateisysteme $Pro logische Partition (=Teilbereich der Disk bzw. des Disksatzes) ein Dateisystem $Grössere Verzeichnisse durch mounten $Verschiedene Dateisystemtypen (Eigenschaften) � Lokal, Remote, Verteilt $Dateisysteme ohne Disk � proc, devfs, tmpfs, shm Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 6

Operationen auf Dateien $Verzeichnis lesen � opendir(), readdir(), closedir() ; Wieso nicht open(), read(),

Operationen auf Dateien $Verzeichnis lesen � opendir(), readdir(), closedir() ; Wieso nicht open(), read(), close()? $Dateien/Verzeichnisse erstellen � open(), creat(), unlink() [Wieso dieser Name? ] � mkdir(), rmdir() � mknod() $exec(): Kombination welcher Funktionen? $Kopieren, Archivieren? Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 7

Datenbanken $Unterschiede zwischen Dateisystemen und Datenbanken? � Atomare Transaktionen � Identisches Format � Strukturierter,

Datenbanken $Unterschiede zwischen Dateisystemen und Datenbanken? � Atomare Transaktionen � Identisches Format � Strukturierter, typisierter Inhalt � Referenzen � Referentielle Integrität � Freiheiten � Zentral vs. lokal Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 8

Dateizweige (Forks) $Macintosh � Data Fork: Unstrukturierter Bytestrom � Resource Fork: Hierarchisch, typisiert ;

Dateizweige (Forks) $Macintosh � Data Fork: Unstrukturierter Bytestrom � Resource Fork: Hierarchisch, typisiert ; ; ; 'CODE' + 32 -bit-Zahl 'WIND' + 32 -bit-Zahl. . . $Ne. XT, Mac. OS X � Übertragung auf Unix: Systembibliothek ; Strukturierte Objektdateien, "File Wrappers" $Windows � "Office"-Struktur (OLE) � Mehrere unstrukturierte "Streams" Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 9

Kommunikation $Dateien � Zwischen Assembler und Linker, Linker und Lader, . . . Quellprogramm

Kommunikation $Dateien � Zwischen Assembler und Linker, Linker und Lader, . . . Quellprogramm Übersetzer Maschinenprogramm Quellzustand Programmebene Maschinenebene Referenzinformation Debugger Maschinenzustand Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 10

Linker und Lader $Aufgaben � Modularisierung � Mischen von Code und Daten � Auflösung

Linker und Lader $Aufgaben � Modularisierung � Mischen von Code und Daten � Auflösung externer Referenzen ; Direkt im Code; mittels Adresstabelle � Initialisierung der Module $Objektformat � Vorspann � Code � Globale Daten � Bindeinformation ; Exportliste, Importliste, Referenzliste � Programmsymbole Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 11

Kommunikation (2) $Dateien: Zwischen. . . � Präprozessor, Compiler, Assembler, Linker und Lader �

Kommunikation (2) $Dateien: Zwischen. . . � Präprozessor, Compiler, Assembler, Linker und Lader � z. T. temporäre Dateien $Temporäre Dateien "teuer" � Abhilfe? � stdio-Konzept mit Pipes ; grep muster datei | cut -f 1 | sort | uniq -c | sort -n $Vereinheitlichung auf nicht-Dateien � Spezielle Filesysteme (proc, shm, . . . ) � Gerätedateien Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 12

Sockets $Netzwerktaugliche Version der Pipes � Abstrakter Netzwerkdienst � Basiert auf Filedeskriptoren � Ermöglicht

Sockets $Netzwerktaugliche Version der Pipes � Abstrakter Netzwerkdienst � Basiert auf Filedeskriptoren � Ermöglicht Netzzugriff auf stdio-Dienste $Client � socket(), connect(), read(), write(), close() $Server � socket(), bind(), listen(), accept()*, close() � accept() liefert neuen Filedeskriptor Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 13

Mikrokernel $Kommunikation eine der wichtigsten Systemkomponenten $Limitierte Mikro-, Nanokernel � Prozessverwaltung � Interprozesskommunikation (Nachrichten)

Mikrokernel $Kommunikation eine der wichtigsten Systemkomponenten $Limitierte Mikro-, Nanokernel � Prozessverwaltung � Interprozesskommunikation (Nachrichten) � Oftmals nur minimale Speicherverwaltung, kein virtueller Speicher � Kein Dateisystem (externe Programme) � Keine Ein-/Ausgabe (Text, Grafik) $Beispiele � Mach (CMU), Topsy (ETHZ) Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 14