57
Unix OS Vilniaus Universitetas Matematikos ir Informatikos fakultetas Rolandas Naujikas 2008

Vilniaus Universitetas Matematikos ir Informatikos ...rolnas/unix_os/paskaita.2.lt.pdf · 2007 MIF.VU 6 UNIX OS UNIX ir ne UNIX terminologija Partition: disko skirsnis SWAP: virtuali

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Un ix OS

Vilniaus UniversitetasMatematikos ir Informatikos fakultetas

Rolandas Naujikas

2008

2007 MIF.VU UNIX OS2

FAILŲ S ISTEMA:F IZ IN IS DISKO SKIRSTYMAS

2007 MIF.VU UNIX OS3

TARKIME. . .

=

2007 MIF.VU UNIX OS4

WINDOWS DISKO SKIRSTYMAS

2007 MIF.VU UNIX OS5

WINDOWS DISKO SKIRSTYMAS

FAT, FAT32, NTFS

2007 MIF.VU UNIX OS6

UNIX i r ne UNIX terminologi ja●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 UNIX OS7

UNIX HIERARCHIN ĖFS(BSD)

2007 MIF.VU UNIX OS8

Pr i jungimo taškas(mount point)

●/ (root dir)●/mnt●SWAP● vair s renginiaiĮ ū į–Floopy–CD-ROM–USB Raktai, grotuvai ir t.t.

2007 MIF.VU UNIX OS9

UNIX DISKO SKIRSTYMAS

BFF, UFS, S5FS, ext2, ext3 ir t.t.

2007 MIF.VU UNIX OS10

VIRTUALI FA ILŲ S ISTEMA:

VISKAS UNIX OS YRA FAILAI

2007 MIF.VU UNIX OS11

VISKAS UNIX OS YRA FAILAI

●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 UNIX OS12

UNIX HIERARCHIN ĖFS(BSD)

2007 MIF.VU UNIX OS13

Paprast ie j i fa i la i

● vairios bait sekos, kuri paskirtis Į ų ųOS visiškai nesvarbi, pvz:–tekstiniai–paleidžiamieji–bibliotekos–kiti●

2007 MIF.VU UNIX OS14

Simbol in i i r b lok in i ų ųrengin i fa i la 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 UNIX OS15

Viet in ia i i r F IFO kanala 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 UNIX OS16

Simbol in s i r ėkietos ios nuorodos

●Kietoji nuoroda sukuria dar vien ąnuorod fail , visi atributai lieka ą į ątokie paty●Simbolin nuoroda susiejama, per ėvard .ą

2007 MIF.VU UNIX OS17

DAUGIAVARTOTOJ IŠKUMASIR FAIL ATRIBUTAIŲ

2007 MIF.VU UNIX OS18

l s - l

2007 MIF.VU UNIX OS19

Vartotoja i i r grup sė

●Kiekvienas failas turi savinink ir ągrup .ę●Kiekvienas naudotojas ir grup turi ėsavo numerį●Pagrindinis naudotojas – root, grup – ėwheel (arba root)

2007 MIF.VU UNIX OS20

Fai l atr ibuta ių

●TUUUGGGOOO – failo atribut ųstrukt raū

2007 MIF.VU UNIX OS21

Fai l atr ibuta 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 UNIX OS22

Fai l atr ibuta i : UUUų

●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 UNIX OS23

Fai l atr ibuta i : GGGų

●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 UNIX OS24

Fai l atr ibuta i : OOOų

●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 UNIX OS25

Fai l atr ibuta i : ųpavyzdž ia 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 UNIX OS26

FA I LŲ S I S T E M A IŠ V I D A U S

2007 MIF.VU UNIX OS27

Pagr indin s FS dalysė

● FFS, UFS, ext2, ext3, s5fs ir kt.●Superblokas●Indeks apraš s rašasų ų ą●Patys indeks aprašaių●Duomen blokasų●

2007 MIF.VU UNIX OS28

Superblokas

●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 UNIX OS29

Indeks aprašai / inodeų

2007 MIF.VU UNIX OS30

Katalogai

●Fail vardai inode nesaugomių●Katalogo failo strukt ra:ū–d_ino–d_reclen–d_namlen–d_name[]

2007 MIF.VU UNIX OS31

Tr in imas iš kata logo

2007 MIF.VU UNIX OS32

Virtual i Fa i l ųSistema VFS

2007 MIF.VU UNIX OS33

PRAKTINIAI DALYKAI

2007 MIF.VU UNIX OS34

Naudingi patar imai i r pasteb j imaiė●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 UNIX OS35

uos is .mif.vu. l t

2007 MIF.VU UNIX OS36

pwd

●parodo kuriame kataloge mes esame

2007 MIF.VU UNIX OS37

cd

●pakeičia einam j katalogą į ą●cd .. gr žta prieš tai esantį į į●cd/’cd ~’ gr žta namį į ų

2007 MIF.VU UNIX OS38

l s , l s - l

●parodo fail s rašų ą ą●parodo detal failo s rašų ą ą

2007 MIF.VU UNIX OS39

mount /umount

●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 UNIX OS40

f i le

2007 MIF.VU UNIX OS41

chmod/chown

2007 MIF.VU UNIX OS42

Visagal is MC i r man

2007 MIF.VU UNIX OS43

Vi r tua l i Fa i l s i s temaų

2007 MIF.VU UNIX OS44

Vi r tua l i Fa i l s i s temaų

● 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 UNIX OS45

Vi r tua l i Fa i l s i s temaų

ProcesasSisteminių komandų sąsaja read(),write(), ioctl()

Virtualios FS sąsaja vfs

DOS specFS NFSufs . . .

2007 MIF.VU UNIX OS46

Vi r tua l s i ndeks desk r ip to r ia iū ų

●Failas diske susiejamas su DS „inode“●Procesas susietas su failu turi DS „vnode“ (virtual node)

2007 MIF.VU UNIX OS47

Vi r tua l s i ndeks desk r ip to r ia iū ų

●vnode DS esminiai laukai:–vflag vnode pažymiai (u_short)

–v_count # nuorod sk. vnodeų į–*v_filock failo blokavimas

–*v_vfsmountedhere nuoroda prijungt FSį ą–v_vfsp nuoroda FS, kur yra Failasį–v_type vnode tipas

–v_data nuoroda duom. realioje sist.į–*v_op vnode operacijos

2007 MIF.VU UNIX OS48

Vi r tua l s i ndeks desk r ip to r ia 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 UNIX OS49

VFS p r i jung imas (montav imas)

●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 UNIX OS50

VFS p r i jung imas (montav imas)

●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 //Požymiai (ro,rw)

–int vfs_bsize //FS bloko dydis

–caddr_t vfs_data //nuoroda spec. duomenisį

2007 MIF.VU UNIX OS51

F rak in imas (b lokav imas)

●UNIX OS 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 UNIX OS52

F rak in imas (b lokav imas)

●Rakinimo lentel :ėEgzistuojantis Bandymas rakintirakinimas F_RDLCK F_WRLCKF_UNLCK 1 1F_RDLCK 1 0F_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 UNIX OS53

F rak in imo pavyzdys

● 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 UNIX OS54

F rak in imas (b lokav imas)

●UNIX turi ir privalomus rakinimus

–gali sukelti potencialiai problemą

2007 MIF.VU UNIX OS55

Disko ( l a ikmenos) bu fe 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 UNIX OS56

Disko ( l a ikmenos) bu fe r i s

Virtuali FS

s5fs ufs ...

Disko buferis

Disko tvarkyklė Disko tvarkyklė

2007 MIF.VU UNIX OS57

Disko ( l a ikmenos) bu fe 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 //bait sk. perdavimuių–b_un.b_addr //buf. virt. adresas

–b_blkno //duomen pradžios bloko numerisų–b_dev //vyr. ir jaun. /dev/ nr.