J UNIX-Dateisystem. 1 Umwandlung: Pfad : Inode. J.1 Funktionalität. J.2 Directories (Kataloge) 1 Umwandlung: Pfad : Inode (2) J.

Ähnliche Dokumente
Software-gestützte Pufferung: Verteilte Dateisysteme. BP 2 Software-gestützte Pufferung: Verteilte Dateisysteme BP 2 BP 2 BP 2

Betriebssysteme K_Kap11B: Files, Filesysteme Datenstrukturen

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

Kap. 8: Dateisysteme (E3 EXT2 Dateisystem) 1

Übersicht. UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32

10. Implementierung von Dateisystemen

Dateisysteme und Links

Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ. Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung

Einführung in Dateisysteme

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a

Betriebssysteme Teil 16: Dateisysteme (Beispiele)

Computer-Systeme. Teil 16: Dateisysteme

Einführung. Datei Verwaltung. Datei Verwaltung. Einführung. Einführung. Einführung. Einführung. Datei Verwaltung. Puffer Cache Verwaltung

Betriebssystemschichten ( )

Grundlagen der Informatik für Ingenieure I. Background: 4. Dateisystem/Betriebssystemschnittstelle

Betriebssysteme Teil 14: Dateisysteme

stattdessen: geräteunabhängiges, abstraktes Format für Speicherung und Transfer von Daten Datei

6.2 FAT32 Dateisystem

Rechner muß unterschiedliche Geräte bedienen können. zeichenorientierte Geräte (character devices, unstructured devices)

Wiederholung: Realisierung von Dateien

Kapitel 15: Dateien und Dateisystem

8. Verteilte Dateisysteme 8.1 Transparenter Zugriff auf nicht-lokale Dateien! Windows Dateifreigabe:

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

Technische Informatik II. SoSe 2014 Jörg Kaiser IVS EOS

Jeder Datenträger besitzt einen I-Node-Array. Jede Datei auf dem Datenträger hat einen I-Node-Eintrag.

1 Network File System ( NFS )

PVFS (Parallel Virtual File System)

BACKUP Datensicherung unter Linux

Betriebssysteme Teil 15: Dateisysteme Teil 1

RBG-Seminar Holger Kälberer

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Betriebssysteme 11/12

Leistungsanalyse von Rechnersystemen

CFS und TCFS. 2 kryptografische Dateisysteme für Unix von der Idee zur Anwendung

Verteilte Systeme. Verteilte Systeme. 9 Verteilte Dateisysteme SS 2015

Dateisystem: Einführung

Dateisystem: Einführung

I Installation und Erste Schritte 7

Verteilte Dateisysteme

Systemprogrammierung

Betriebssysteme (BS)

Konzepte von Betriebssystem-Komponenten. I/O: von der Platte zur Anwendung

Übungen zum Fach Betriebssysteme Kapitel 6

AFS / OpenAFS. Bastian Steinert. Robert Schuppenies. Präsentiert von. Und

Netzwerkspeicher und Dateisysteme

Was ist ein Dateisystem? Wozu dient es? Lokale Dateisysteme. Speichergrößen. Inhalt der Präsentation

Dateisystem: Einführung

Von der Platte zur Anwendung (Platte, Treiber, Dateisystem)

Praktikum Betriebssysteme 1. Aufgabe (1)

UNIX Systemverwaltung. Kristian Köhntopp

FILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam

Laufwerke unter Linux - Festplatten - - USB Sticks - September 2010 Oliver Werner Linuxgrundlagen 1

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Implementierung von Dateisystemen

Proseminar Konzepte von Betriebssystem-Komponenten Disk-Caches & Dateizugriff von Athanasia Kaisa

Rechnerarchitektur und Betriebssysteme (CS201): Dateisysteme I + II

VS7 Slide 1. Verteilte Systeme. Vorlesung 7 vom Dr. Sebastian Iwanowski FH Wedel

Fuse. Filesystem in Userspace PRÄSENTATION VON TIM WELGE

Betriebssystemschichten ( )

Betriebssysteme I WS 2014/2015. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Inhaltsverzeichnis. Vorwort 13

Migration von /sw vom AFS ins DCE/DFS:

Seminarvortrag Secure NFS

Die Shell - Das Vorspiel

Kapitel 8 - Das Dateisystem 1/33

I/O-Hardware Grundlagen. Ein- und Ausgabe. Memory-Mapped I/O. Device Controller

19. Mai 2004 Gewerbeschule Bad Säckingen Manuel Schneider

Halt! Wo bin ich überhaupt?... C:\

I Installation und ErsteSchritte 7. 1 Allgemeines 8

Linux Prinzipien und Programmierung

storage management (c) Till Hänisch 2003, BA Heidenheim

Rechnerarchitekturen und Betriebssysteme (CS201): Sicherheit: ACM und Passworte, OS-Timeline

Populäre Filesysteme und ihre Sicherheitsprobleme. Dr. Johann Murauer

Betriebssysteme WS Betriebssysteme. Prof. Hannelore Frank. Einführung. Prozesse und Threads. Scheduling. Synchronisation

Betriebssysteme 1. Thomas Kolarz. Folie 1

File Management. Peter Puschner Institut für Technische Informatik

5. Dateisysteme. 5.1 Definition Dateisystem

B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write

Systemprogrammierung I - Aufgaben zur Erlangung der Klausurzulassung für Informatiker und Wirtschaftsinformatiker

Storage Engineering. Version 1.0. Januar TEKKVIS Consultants GmbH. s p i c e u p y o u r k n o w l e d g e. Gartenstrasse 24 CH-5432 Neuenhof

Bitte vor der Installation lesen!

LINUX Gesamtmitschrift

Übung aus Systemprogrammierung & Systemnaher Programmierung

3. Unix Prozesse. Betriebssysteme Harald Kosch Seite 57

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Einleitung Aufbau und Struktur Kommunikation Ein einfacher Treiber. Linux - Der Kernel. Daniela Staritzbichler, Felix Wolfersberger, Bernhard Schauer

FH Frankfurt am Main WS 2007/2008. Unix-Praktikum

Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert.

1.Einleitung Zugriffsrechte Einfache Dateien Links Symbolische Links Verzeichnisse...16

Leitfaden zum Sichern einer Festplatte als Image mit der System Rescue CD

Implementierung von Dateisystemen

Die Architektur von UNIX/Linux- Betriebssystemen. Mag. Lukas Feiler, SSCP

Bedeutung der Metadateien. Alle Metadaten werden in Dateien gehalten. NTFS ist ein Journal-File-System

4 Ersetzungsstrategie bei Solaris (6) F Implementierung von Dateien. F.1 Festplatten. E.9 Zusammenfassung. (Memory) Typische Werte

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP

FileLock FLEXIBLE SKALIERBARE KOSTENEFFIZIENTE HARDWARE- UNABHÄNGIGE LÖSUNGEN ZUR LANG-ZEIT DATENARCHIVIERUNG YOUR DATA.

OpenAFS. Das weltweite Filesystem. L.Schimmer Institut für ComputerGraphik & WissensVisualisierung

Varianten der CD-ROM (Philips, Orange Book, 1988) Kapazität: 4.7 GByte (einseitig), 9.4 GByte (zweiseitig)

Transkript:

J UNIX-Dateisystem Umwandlung: Pfad : Inode J Inodes J Funktionalität Abstraktionen für Benutzersicht: Pfade, Dateinamen Dateibaum verdeckt mehrere Platten (bzw Partitionen) Dateien = unstrukturierte Byteströme special files fast wie reguläre Dateien zugreifbar diese Abstraktionen müssen vom Dateisystem auf konkrete Objekte abgebildet werden den obigen Abstraktionen entsprechen etwa folgende Objekte: / Plattenpositionen, Adressen von Gerätecontrollern, etc Platten verwalten Sektoren, Spuren und Zylinder unterschiedliche Gerätetreiber werden für E/A-Operationen auf verschiedenen Peripheriegeräten benötigt J Root = Inode Inode-Nummer ist nur in dem Directory zu finden, in dem die Datei eingetragen ist die Pfadkomponenten müssen einzeln bearbeitet werden um den Inode der jeweils nächsten Pfadkomponente zu bestimmen, muß der Inhalt des voranstehenden Directories eingelesen werden Systemkern-Funktion: lookup( ) Directory Lookup Cache zur Beschleunigung LRU Cache mit Einträgen Directory-Inode-Nummer / Datei(name) in Directory / Inode der Datei J J Directories (Kataloge) Umwandlung: Pfad : Inode () J Inodes wichtigster Bestandteil zum Aufbau eines hierarchischen Dateisystems Funktion: Strukturierung des Namensraums Directories enthalten Verweise auf Inodes (von Dateien oder weiteren Directories) J Inodes ein Inode enthält alle Informationen, die zur Verwaltung einer Datei und zum Auffinden ihres Inhalts benötigt werden beim Öffnen einer Datei werden die Inode-Daten von der Platte (disk ) in die Inode-Tabelle des Systemkerns (in-core ) gelesen Berücksichtigt werden hierbei: Symbolic Links werden beim Absteigen im Baum verfolgt Mount-Punkte beim Absteigen im Baum am Mount-Punkt Wechsel zur root des eingehängten Dateisystems beim Aufsteigen im Baum (über "") an der Root eines Dateisystems Wechsel auf den Mount-Punkt Current Root Überschreiten beim Aufsteigen im Baum (über "") wird verhindert J J

Datei öffnen Aufruf: fd path flags s fd = open(path, flags, s); File (kleiner Integer-Wert) Pfadname der Datei J Inodes Angabe über Zugriffsform (lesen, schreiben, lesen+schreiben), ob Datei neu erzeugt / vorher gelöscht wird Zugriffsrechte, falls die Datei neu erzeugt wird Datei öffnen () Kontrollstrukturen (früher) Aufruf: 5 6 file read write rd-wrt fd = open("/etc/passwd", O_RDONLY); fd = open("datei", O_WRONLY); fd = open("/etc/passwd, O_RDWR); -> fd ==, fd ==, fd == 5 ref-: (/etc/passwd) ref-: (datei) J Inodes J5 J7 Datei öffnen () J Inodes Datei öffnen () J Inodes open-algorithmus ja in-core zu Pfadnamen erzeugen (namei, lookup) (Inode suchen und einlesen) Datei existiert nicht oder keine Zugriffsrechte in-core Inode freigeben return(fehler) J6 nein file entry für Inode belegen und initialisieren belegen, Zeiger auf file entry setzen falls truncate, alte Blöcke freig return( ) Feld von Zeigern auf Einträge in der file Teil der user-area des Prozesses struct file *u_ofile[nofile] siehe <sys/userh> File (aus open( ) ist ein Index in diese Tabelle Entkopplung von Systemdatenstrukturen und Benutzerdaten Filedeskriptor = Capability (Sicherheit!) file Feld von file-strukturen (siehe <sys/fileh>), enthält Zeiger auf Eintrag in der Eintrag für Zugriffsmodus Schreib/Lesezeiger () Referenzzähler J8

Datei öffnen (5) J Inodes Kontrollstrukturen und Systemaufruf fork( ) J Inodes Feld von in-core s (siehe <ufs/h>), enthält Referenzzähler Info über physikalisches Gerät (Platte, Partition) disk Struktur Informationen für lock-funktionen (flock(), lockf()) parent proc child proc file read read? ref-: (datei) fd = open("datei", O_RDONLY); fork( ); J9 J Kontrollstrukturen und Systemaufruf dup( ) J Inodes J Vnodes 5 6 ➍ ➌ file read read ➌➍? ref-: (datei) Motivation Inode = konkrete Implementierung eines Dateiverwaltungsblocks eines speziellen Dateisystems Problem: unterschiedliche Dateisysteme in einem UNIX-System S5 SystemV-File-System UFS - UNIX-File-System NFS - Network File-System specfs - special File-System (Gerätedateien, FIFO-Dateien) Umleiten von stdin: fd = open("datei", O_RDONLY); close(); ➌ dup(fd); ➍ close(fd); unterschiedliche Implementierung (Inode, lookup-funktion, ) J J

Motivation () J Vnodes J5 Dateisysteme J5 Dateisysteme Lösung: Vnode = abstrakte Darstellung einer Datei Aufbau eines Dateisystems auf einer Disk definiert Operationen auf Dateien open, close, read/write, lookup, + allgemeine Zustandsinformationen Dateityp (regular file/directory) Referenzzähler Verwaltungsinformationen für locking etc Zeiger auf konkrete Operationen und konkreten Zustand SystemV-Dateisystem Blockgröße 5 oder Byte typ=dir,owner=root, Boot Block Super Block weitere Inodes isize Datenblöcke freie Blöcke indir Blöcke konkrete Darstellung einer Datei Implementierung der Operationen ufs_open, ufs_close, ufs_read, ufs_lookup, + konkreter Zustand in-core Inode große Unterschiede zwischen Berkeley fast-file-system und UNIX SystemV- Dateisystemen! : : : bin : etc : J J5 Kontrollstrukturen (SystemV) J Vnodes SystemV-Dateisystem () J5 Dateisysteme u_area ufchunk struct file ufs_ops ufs_open ufs_read ufs_write ufchunk ufchunk uf_ofile[] process open file struct file struct file struct file spec_ops spec_open spec_read spec_write system open file snode s_realvp rnode nfs_ops nfs_open nfs_read nfs_write struct proc credentials Super-Block Der Super-Block enthält die Verwaltungsinformationen für ein Dateisystem Größe Anzahl der freien Blöcke Liste freier Blöcke (free block list) Zeiger auf nächsten freien Block in der free block list Größe der Inode-Liste Anzahl freier Inodes Liste freier Inodes (free list) Zeiger auf ersten freien Inode Lock-Felder für free block und free list modified flag für Super-Block J J6

Berkeley Fast File System (UNIX File System UFS) für UNIX bsd entwickelt - effizienter als SystemV-Dateisysteme J5 Dateisysteme Blockgröße minimal k, meist 8k über zweifach indirekte Blöcke können bis zu 6 GB adressiert werden Directories anders aufgebaut - Dateinamen bis zu 55 Zeichen lang Dateisystem in cylinder groups aufgeteilt (cylinder group = Gruppe von aufeinanderfolgenden Zylindern auf Platte, häufig 6) pro cylinder group werden folgende Daten gehalten: Backup-Kopie des Superblocks Bitmap für freie Blöcke (statt free list) Inodes Datenblöcke J6 Virtuelles Dateisystem Überblick Vnodes bilden Schnittstelle zu dateisystemunabhängigen Operationen auf Dateien das Virtual File System (VFS) stellt eine vergleichbare Schnittstelle für Operationen auf Dateisystemen zur Verfügung z B vfs_mount, vfs_unmount vfs_statvfs Statistikdaten ermitteln vfs_root root- ermitteln vfs_sync gepufferte Daten schreiben Implementierung durch VFS-switch-Tabelle Dateisystemname, Initialisierungsfunktion, vfsops Feld mit Zeigern auf die FS-Funktionen J7 J9 Berkeley Fast File System () J5 Dateisysteme Mount-Mechanismus J6 Virtuelles Dateisystem Um Verschnitt gering zu halten, können Blöcke in, oder 8 Fragmente aufgeteilt werden, die einzeln adressierbar sind Eine Datei wird - wenn möglich - in einer cylinder group gehalten Boot block Super block Cylinder group block Inode list Data blocks über die mount-funktion wird der root-vnode eines Dateisystems auf einen Directory-Vnode des bestehenden Dateibaums montiert Systemkern verwaltet die montierten Dateisysteme in verketteten vfs-strukturen über die vfs-struktur kann ermittelt werden: auf welchen Vnode das Dateisystem montiert ist der root-vnode des Dateisystems Vnode des Mount-Punkts (Directory) enthält Eintrag mit Zeiger auf vfs- Datenstruktur des montierten Dateisystems Super block Cylinder group block Inode list Data blocks J8 J

Mount-Mechanismus () J6 Virtuelles Dateisystem Mount-Mechanismus () J6 Virtuelles Dateisystem Kontrollstrukturen vfs mount list vfs (rootvfs) vfs_next vfs_covered vfs_op vfs_data root super block vfsops vfs_data vfs vfs_next vfs_covered vfs_op root super block vfsops eines Mountpunks (Directory) im root-dateisystem system open file v_vfsmountedhere v_vfsp struct file f_ ops struct file f_ v_vfsp ops : : : dir disk : : : dir : : : : 8: dir / dir dir mount disk /dir/dir 8 : 8: : : : dir disk disk : : : dir : : : : 8: dir 8 : 8: / dir dir dir J J Mount-Mechanismus () J6 Virtuelles Dateisystem J7 Network File System (NFS) lookup-funktion des UNIX-Kerns berücksichtigt bei Pfad-Vnode- Umwandlung Mount-Punkte ist in einem vfs_mountedhere gesetzt, wird der Vnode beim Abstieg im Pfad durch den root- des VFS ersetzt ein root- eines VFS wird bei Verfolgung von "" durch vfs_covered des VFS ersetzt an Directory-Einträgen ändert sich nichts an Mount-Punkten Diskrepanz zwischen Directory-Einträgen und Ergebnis von stat() Überblick 98 von Sun Microsystems Inc entwickelt NFS ermöglicht, Teilbäume von Dateisystemen anderer Rechner in das lokale Dateisystem einzuhängen (mounten) ein Teilbaum eines Remote-Dateisystems verhält sich dadurch genau so, wie eine Partition einer lokalen Platte, die mit einem mount-befehl in den Dateibaum eingehängt wurde die Dateien des Remote-Dateisystems können mit den gleichen Kommandos und Systemaufrufen wie lokale Dateien bearbeitet werden J J