U n i x O S Vilniaus Universitetas Matematikos ir Informatikos fakultetas Rolandas Naujikas 2008
FA I L Ų S I S T E M A : F I Z I N I S D I S K O S K I R S T Y M A S 2007 MIF.VU 2
TA R K I M E... = 2007 MIF.VU 3
W I N D O W S D I S KO S K I R S T Y M A S 2007 MIF.VU 4
W I N D O W S D I S KO S K I R S T Y M A S FAT, FAT32, NTFS 2007 MIF.VU 5
U N I X i r n e U N I X t e r m i n o l o g i j a Partition: disko skirsnis SWAP: virtuali atmintis / root directory, ~ /home directory i-node pasiekiamumo ir tipo informacija kam priklauso laiko informacija: modifikacijos, naudojimas nuorod ų skaičius, failo dydis fizin ė failo adres ų informacija diske 2007 MIF.VU 6
U N I X H I E R A R C H I N F S ( B S D ) Ė 2007 MIF.VU 7
P r i j u n g i m o t a š k a s ( m o u n t p o i n t ) / (root dir) /mnt SWAP vair s renginiai Į ū į Floopy CD-ROM USB Raktai, grotuvai ir t.t. 2007 MIF.VU 8
U N I X D I S KO S K I R S T Y M A S BFF, UFS, S5FS, ext2, ext3 ir t.t. 2007 MIF.VU 9
V I R T U A L I FA I L Ų S I S T E M A : V I S K A S U N I X O S Y R A FA I L A I 2007 MIF.VU 10
V I S K A S U N I X O S Y R A FA I L A I Katalogo failai: fail ų vard ų sąrašas inodai: pasiekiamumo ir tipo informacija(mode) kam priklauso laiko informacija: modifikacijos, naudojimas nuorod ų skaičius, failo dydis fizin ė failo adres ų informacija diske Įprasti arba paprasti failai Specialūs arba įrengini ų failai Kanalai ir nuorodos 2007 MIF.VU 11
U N I X H I E R A R C H I N F S ( B S D ) Ė 2007 MIF.VU 12
Pa p r a s t i e j i f a i l a i Įvairios bait ų sekos, kuri ų paskirtis OS visiškai nesvarbi, pvz: tekstiniai paleidžiamieji bibliotekos kiti 2007 MIF.VU 13
S i m b o l i n i ų i r b l o k i n i į r e n g i n i ų f a i l a i /dev failai per kuriuos bendraujama su tvarkyklėmis, šie failai persiunčia komandas tvarkyklėms. Simboliniai: nedideli duomen ų srautai Blokiniai: dideli bit ų blokai ų Pvz.: cat /dev/urandom > /dev/speaker 2007 MIF.VU 14
V i e t i n i a i i r F I F O k a n a l a i Tarpprocesiniai ryšio kanalai Vartotojas gali tik skaityti Keisti gali tik patys procesai FIFO kanalai relizuoja FIFO struktūrą Pvz.: cat /dev/urandom > /dev/speaker 2007 MIF.VU 15
S i m b o l i n ė s i r k i e t o s i o s n u o r o d o s Kietoji nuoroda sukuria dar vien ą nuorod ą į fail ą, visi atributai lieka tokie paty Simbolin ė nuoroda susiejama, per vard ą. 2007 MIF.VU 16
D AU G I AVA RT O T O J I Š K U M A S I R FA I L Ų AT R I B U TA I 2007 MIF.VU 17
l s - l 2007 MIF.VU 18
Va r t o t o j a i i r g r u p ė s Kiekvienas failas turi savinink ą ir grup ę. Kiekvienas naudotojas ir grup ė turi savo numerį Pagrindinis naudotojas root, grup ė wheel (arba root) 2007 MIF.VU 19
Fa i l ų a t r i b u t a i TUUUGGGOOO failo atribut ų struktūra 2007 MIF.VU 20
Fa i l ų a t r i b u t a i : T TUUUGGGOOO failo atribut ų struktūra T nusako failo tip ą: paprastas failas: - katalogas: d simbolinio įrenginio failas: c blokinio įrenginio failas: b UNIX vietinis kanalas: s FIFO kanalas: p Minkštoji, simbolin ė nuoroda: l 2007 MIF.VU 21
Fa i l ų a t r i b u t a i : U U U TUUUGGGOOO failo atribut ų struktūra UUU failo savininko leidimai: r galima skaityti(400) w galima rašyti(200) x galima paleisti(100) 2007 MIF.VU 22
Fa i l ų a t r i b u t a i : G G G TUUUGGGOOO failo atribut ų struktūra GGG failo grup s leidimai: ė r galima skaityti(40) w galima rašyti(20) x galima paleisti(10) 2007 MIF.VU 23
Fa i l ų a t r i b u t a i : O O O TUUUGGGOOO failo atribut ų struktūra OOO failo vis ų kit ų leidimai: r galima skaityti(4) w galima rašyti(2) x galima paleisti(1) 2007 MIF.VU 24
Fa i l ų a t r i b u t a i : p a v y z d ž i a i -rwxrwxrwx(777) galima visiems viskas ---x------(100) fail ą galima tik paleisti -rw-r--r--(644) savininkui rašyti ir skaityti, o kitiems tik skaityti. -rwxr-x-w-(752) -??? 2007 MIF.VU 25
FA I L Ų S I S T E M A I Š V I D A U S 2007 MIF.VU 26
Pa g r i n d i n ė s F S d a l y s FFS, UFS, ext2, ext3, s5fs ir kt. Superblokas Indeks ų apraš ų sąrašas Patys indeks ų aprašai Duomen ų blokas 2007 MIF.VU 27
S u p e r b l o k a s Saugoma info apie fail ų sistem ą, jos architektūr ą, blok ų ir indeks ų apraš ų skaiči ų. struct s_type: fail ų sistemos tipas s_fsize: sistemos dydis s_isize: indeks ų apraš ų masyvo dydis s_tfree: laisv ų fail ų blok ų skaičius s_tinode: laisv ų inode skaičius požymiai(s_fmod, s_fronly) bloko dydis 512, 1024, 2048 laisv ų inode numeri ų sąrašas laisv ų blok ų adres ų sąrašas 2007 MIF.VU 28
I n d e k s ų a p r a š a i / i n o d e 2007 MIF.VU 29
K a t a l o g a i Fail ų vardai inode nesaugomi Katalogo failo strukt ra: ū d_ino d_reclen d_namlen d_name[] 2007 MIF.VU 30
Tr i n i m a s i š k a t a l o g o 2007 MIF.VU 31
V i r t u a l i Fa i l S i s t e m a V F S ų 2007 MIF.VU 32
P R A K T I N I A I D A LY K A I 2007 MIF.VU 33
N a u d i n g i p a t a r i m a i i r p a s t e b ė j i m a i Fail ų vardai yra case sensitive, AA ir aa ne tas pats. Nedirbkite root vartotoju Trindami du kartus pamatuokite. Jei nenutuokiate k ą daro komanda neeksperimentuokite per daug Geriau neredaguokite katalog ų Nenaudokite rm rf * 2007 MIF.VU 34
u o s i s. m i f. v u. l t 2007 MIF.VU 35
p w d parodo kuriame kataloge mes esame 2007 MIF.VU 36
c d pakeičia einamąj į katalogą cd.. grįžta į prieš tai esantį cd/ cd ~ grįžta į namų 2007 MIF.VU 37
l s, l s - l parodo fail ų sąrašą parodo detal ų failo sąrašą 2007 MIF.VU 38
m o u n t / u m o u n t mount -t vfat /dev/fd0 /mnt/floppy mount -t iso9660 -r /dev/cdrom /mnt/cdrom umount /dev/fd0 umount /mnt/floppy Prijungia aparatūrin ę įrang ą, kitas fail ų sistemas 2007 MIF.VU 39
f i l e 2007 MIF.VU 40
c h m o d / c h o w n 2007 MIF.VU 41
V i s a g a l i s M C i r m a n 2007 MIF.VU 42
V i r t u a l i Fa i l ų s i s t e m a 2007 MIF.VU 43
V i r t u a l i Fa i l ų s i s t e m a Įvairi ų tip ų failinės sistemos skiriasi: vidine sandara darbo organizacija Galima išskirti: Lokalias Nutolusias FS ateiviai (DOS,VFAT,NTFS ir t.t.) 2007 MIF.VU 44
V i r t u a l i Fa i l ų s i s t e m a Sisteminių komandų sąsaja Procesas read(),write(), ioctl() Virtualios FS sąsaja vfs ufs DOS specfs... NFS 2007 MIF.VU 45
V i r t u a l ū s i n d e k s ų d e s k r i p t o r i a i Failas diske susiejamas su DS inode Procesas susietas su failu turi DS vnode (virtual node) 2007 MIF.VU 46
V i r t u a l ū s i n d e k s ų d e s k r i p t o r i a i vnode DS esminiai laukai: vflag v_count *v_filock vnode pažymiai (u_short) # nuorod ų sk. į vnode failo blokavimas *v_vfsmountedhere nuoroda į prijungt ą FS v_vfsp v_type v_data *v_op nuoroda į FS, kur yra Failas vnode tipas nuoroda į duom. realioje sist. vnode operacijos 2007 MIF.VU 47
V i r t u a l ū s i n d e k s ų d e s k r i p t o r i a i Jei v_count == 0, tai kviečiamas vn_inactive() Operacijos su v_node galima atlikti: int (* vn_open)() //atidarom failą int (* vn_close)() //uždarom bylą read, write, getaddr, setaddr, access, lookup, create, remove, link, mkdir rmdir, readdir, symlink, readlink ir inactive. 2007 MIF.VU 48
V F S p r i j u n g i m a s ( m o n t a v i m a s ) FS prijungiama prie VFS hierarchijos Kiekvienam primontuotam FS'ui saugoma vfs DS. Jos sudedamos į sąraš ą. Sąrašas vadinamas montavimo lentele 2007 MIF.VU 49
V F S p r i j u n g i m a s ( m o n t a v i m a s ) vfs DS: struct vfs *vfs_next //sekanti FS lentelėj struct vfsops *vfs_op //FS operacijos struct vnode *vfs_vnodecovered //vnode, kuri perdengia duotoji FS int vfs_flags int vfs_bsize caddr_t vfs_data //Požymiai (ro,rw) //FS bloko dydis //nuoroda į spec. duomenis 2007 MIF.VU 50
F r a k i n i m a s ( b l o k a v i m a s ) leidžia prieiti prie F keliems procesams read(), write() atominės, nedalomos OS sinchronizuoja atnaujinimus OS leidžia rakinti bait ų regionus (fcntl) 2007 MIF.VU 51
F r a k i n i m a s ( b l o k a v i m a s ) Rakinimo lentel ė: Egzistuojantis Bandymas rakinti rakinimas F_RDLCK F_WRLCK F_UNLCK 1 1 F_RDLCK 1 0 F_WRLCK 0 0 Rakinimas yra rekomendacinio lygio branduolys nekontroliuoja ir leidžia rašyti į užrakintas dalis Procesas turi pats pasitikrinti ar resurasas laisvas 2007 MIF.VU 52
F r a k i n i m o p a v y z d y s struct flock lock;... lock.l_type=f_wrlck; lock.whence=seek_set; lock.l_start=0; lock.len=0; fcntl(fd, SETLKW, &lock);... fwrite(fd,record, sizeof(record));... lock.l_type=f_unlck; fcntl(fd, SETLKW, &lock); 2007 MIF.VU 53
F r a k i n i m a s ( b l o k a v i m a s ) UNIX turi ir privalomus rakinimus gali sukelti potencialiai problemą 2007 MIF.VU 54
D i s ko ( l a i k m e n o s ) b u f e r i s Kam to reikia: I/O operacijos su išorine laikmena trunka ilgiau nei I/O su operatyviąja atmintimi (RAM) skaitymas iš disko gali skirtis nuo 10x iki 1000x Sprendimas: Padėti dažnai naudojamus duomenis į podel į (keš ą) 2007 MIF.VU 55
D i s ko ( l a i k m e n o s ) b u f e r i s Virtuali FS s5fs ufs... Disko buferis Disko tvarkyklė Disko tvarkyklė 2007 MIF.VU 56
D i s ko ( l a i k m e n o s ) b u f e r i s DS buf laukai: b_flags //buferio būsena (B_BUSY, B_DONE, B_READ,... ir B_PHYS) av_forw, av_back //dvikrypčio buf. sąr. nuorodos b_bcount b_un.b_addr b_blkno b_dev //bait ų sk. perdavimui //buf. virt. adresas //duomen ų pradžios bloko numeris //vyr. ir jaun. /dev/ nr. 2007 MIF.VU 57