Filsystemer: Anvendelse 1
Lageret er hierarkisk - Fokus: disk Sekundært lager er nødvendigt: Data i RAM forsvinder når processer terminerer o.lign. Og der er også brug for pladsen 2
Lageret er hierarkisk - Fokus: disk Sekundært lager er nødvendigt: Data i RAM forsvinder når processer terminerer o.lign. Og der er også brug for pladsen 2
[Q/A] Hvad er en fil? Monitor Bus 3
[Q/A] Hvad er en fil? Monitor Bus Er en fil en fysisk genstand? Mål, vægt, længde, højde? 3
Filbegrebet Monitor Bus 4
Filbegrebet Monitor Skal være persistent Skal kunne rumme mange oplysninger Skal kunne tilgås fra processer En fil er en samling data gemt på et sekundært lager, bestemt af en overordnet fortolkning: metadata Bus 4
Filsystemer (1) OS administrerer lagring af filer via filsystemet 5
Filsystemer (1) OS administrerer lagring af filer via filsystemet Hvad skal stilles tilrådighed? Hvordan? 5
Filsystemer (1) OS administrerer lagring af filer via filsystemet 6
Filsystemer (1) OS administrerer lagring af filer via filsystemet Et hierarkisk navnerum der skjuler kompleksiteten, og samtidig sikrer en effektiv udnyttelse, samt organisering af data... 6
Filsystemer (2) Grænseflade Samling af systemkald... Kataloghåndtering Afbildning: symbolsk filnavn fil Filhåndtering Åbning, lukning, læsning, skrivning Organisering af filer Afbildning fra fil til diskblokke 7
Egenskaber ved filer: Navn, Type Filer har symbolske navne, oftest organiseret i et hierarki Under UNIX styrer brugeren valg af navne... 8
Filstruktur En sekvens af bytes, en sekvens af records, et træ af records? a) Record med fast størrelse b) Record med variabel størrelse c) Fast størrelse, med nøgle d) Variabel størrelse, med nøgle 9
Filstruktur En sekvens af bytes, en sekvens af records, et træ af records? a) Record med fast størrelse b) Record med variabel størrelse c) Fast størrelse, med nøgle d) Variabel størrelse, med nøgle... i UNIX og Windows er en fil en sekvens af bytes... 9
[Q/A] Hvilke konsekvenser har det for sekventiel/vilkårlig adgang? a) Record med fast størrelse b) Record med variabel størrelse c) Fast størrelse, med nøgle d) Variabel størrelse, med nøgle 10
[Q/A] Hvilke konsekvenser har det for sekventiel/vilkårlig adgang? a) Record med fast størrelse b) Record med variabel størrelse c) Fast størrelse, med nøgle d) Variabel størrelse, med nøgle 10
Filtyper forskel på et dybere niveau UNIX har... - kataloger - almindelige filer - character special files - block special files - FIFOs... En almindelig fil kan rumme et program, et bibliotek, men OS skal stort set kun kende formatet for en eksekverbar 11
Filattributter 12
Filattributter 12
Filattributter 12
Filattributter 12
Filattributter 12
Filattributter 12
Filtyper og rettigheder i UNIX... 16 bit mode fås ved et OR af følgende bitmønstre... 1111 0000 0000 0000 bitmask for the file type bitfields 1100 0000 0000 0000 socket 1010 0000 0000 0000 symbolic link 1000 0000 0000 0000 regular file 0110 0000 0000 0000 block device 0100 0000 0000 0000 directory 0010 0000 0000 0000 character device 0001 0000 0000 0000 fifo 0000 1000 0000 0000 set UID bit 0000 0100 0000 0000 set GID bit (see below) 0000 0010 0000 0000 sticky bit (see below) 0000 0001 1100 0000 mask for file owner permissions 0000 0001 0000 0000 owner has read permission 0000 0000 1000 0000 owner has write permission 0000 0000 0100 0000 owner has execute permission 0000 0000 0011 1000 mask for group permissions 0000 0000 0010 0000 group has read permission 0000 0000 0001 0000 group has write permission 0000 0000 0000 1000 group has execute permission 0000 0000 0000 0111 mask for permissions for others (not in group) 0000 0000 0000 0100 others have read permission 0000 0000 0000 0010 others have write permisson 0000 0000 0000 0001 others have execute permission 13
Eksempel: Ændring af rettigheder s = chmod(name, mode) $ ls -l total 44 drwx------ 3 eernst users 4096 Nov 12 09:24 Desktop drwx------ 7 eernst users 4096 Nov 13 20:02 Mail drwxrwxr-x 2 eernst users 4096 Oct 10 22:17 bin drwxrwxr-x 3 eernst users 4096 Sep 10 15:45 cvs -rwxr-xr-x 1 eernst users 24 Nov 13 12:46 foo.sh $ $ chmod 700 foo.sh $ $ ls -l total 44 drwx------ 3 eernst users 4096 Nov 12 09:24 Desktop drwx------ 7 eernst users 4096 Nov 13 20:02 Mail drwxrwxr-x 2 eernst users 4096 Oct 10 22:17 bin drwxrwxr-x 3 eernst users 4096 Sep 10 15:45 cvs -rwx------ 1 eernst users 24 Nov 13 12:46 foo.sh 14
Eksempel: Ændring af rettigheder s = chmod(name, mode) $ ls -l total 44 drwx------ 3 eernst users 4096 Nov 12 09:24 Desktop drwx------ 7 eernst users 4096 Nov 13 20:02 Mail drwxrwxr-x 2 eernst users 4096 Oct 10 22:17 bin drwxrwxr-x 3 eernst users 4096 Sep 10 15:45 cvs -rwxr-xr-x 1 eernst users 24 Nov 13 12:46 foo.sh $ $ chmod 700 foo.sh $ $ ls -l total 44 drwx------ 3 eernst users 4096 Nov 12 09:24 Desktop drwx------ 7 eernst users 4096 Nov 13 20:02 Mail drwxrwxr-x 2 eernst users 4096 Oct 10 22:17 bin drwxrwxr-x 3 eernst users 4096 Sep 10 15:45 cvs -rwx------ 1 eernst users 24 Nov 13 12:46 foo.sh 700 i octal er 0000000111000000 i binær 14
Operationer: UNIX systemkald Åbne filer identificeres med en file descriptor: stdout (0), stdin (1), stderr (2) 15
Eksempel: kopiering af en fil (1)... 16
Eksempel: kopiering af en fil (2) 17
Kataloger / Directories For alle praktiske formål bruges et hierarkisk filsystem! 18
Fortolkning af en sti (path name) 19
Katalogstruktur (1) Simpel træstruktur Simple insert, delete, search operationer... Ingen deling mellem kataloger, hver fil har kun een forgænger... 20
Katalogstruktur (2) DAG-struktur Deling mellem kataloger, en fil har mange forældre... Hvad med delete? Enhver forælder kan fjerne filen, men kun sidste gang den fjernes skal den fjernes fysisk. Behov for reference count... 21
Katalogstruktur (2*) DAG-struktur Deling mellem kataloger, en fil har mange forældre... Hvad med delete? Enhver forælder kan fjerne filen, men kun sidste gang den fjernes skal den fjernes fysisk. Behov for reference count... Cykler er også et problem ved search og delete... 22
Katalogstruktur (3) Træstruktur med sym-links Deling mellem kataloger, en fil kan have mange forgængere Hvad med delete? Ved delete af et sym-link, fjernes kun linket. Intet behov for reference counting eller garbage collection 23
Katalogstruktur (3) Træstruktur med sym-links Deling mellem kataloger, en fil kan have mange forgængere Hvad med delete? Ved delete af et sym-link, fjernes kun linket. Intet behov for reference counting eller garbage collection Et typisk Unix-filsystem understøtter denne form for katalog-struktur, et symbolsk link skabes med ln -s <file> <symlnk> 23
[Click] Træstruktur med sym-links Hvad så med sidste delete på en fil? A. Sletter alle symlinks B. Efterlader symlinks ødelagte C. Har ingen virkning hvis der findes symlinks D. Ændrer et symlink til et link E. Ved ikke 24
Operationer: UNIX systemkald 25
Opsummering l l l l l Filbegrebet: data på sekundært lagermedie, fortolkes Attributter: Navn, type, størrelse, rettigheder OS støtte: Dir.mgmnt, Basic FS, Device org. Filstruktur Katalogstrukturer: træ, DAG, løkker, symlinks 26