Failisüsteem

Allikas: Vikipeedia

Failisüsteem[1] on andmestruktuuride, algoritmide ja tarkvara kogum, mille eesmärk on salvestusseadme peale andmete organiseeritud paigutamine, et need hiljem leitavad ja kättesaadavad oleksid. Failisüsteem määrab failide paiknemise ja struktuuri füüsilisel kettal, seab piirangud failinimedele ja nende suurustele. Failisüsteem võimaldab faile salvestada, kustutada, nimetada, organiseerida, pakkida ning määrata failidele ligipääsuõigusi.

Tööpõhimõte[muuda | redigeeri lähteteksti]

Ketta struktuur:
A - Rada
B - Geomeetriline sektor
C - Raja sektor
D - Klaster

Failisüsteemi üks tähtsamaid ülesandeid on organiseerida loogilisi faile füüsilisel salvestusseadmel (enamasti kõvaketas). Kõvakettal olev ruum on jaotatud sektoriteks[2] (sector), traditsiooniliselt on sektori suuruseks 512 baiti. Kuna enamasti ei ole failisüsteemil nii väikeste andmeüksustega praktiline töötada, grupeerib failisüsteem sektoreid klastriteks[3] (cluster). Klaster on mingi täisarvuline hulk kõvakettal järjestikuliselt asuvaid sektoreid, 512 baidise sektori puhul on levinumad klastri suurused baitides 2048 (4x512), 4096 (8x512), 8192 (16x512), 16384 (32x512) ja 32768 (64x512). Suurema klastri kasutamisel väheneb suuremate failide puhul fragmentatsioon, kuid väiksemate failide puhul suureneb raisatud ruum (slack) – kui fail on väiksem, kui klastri suurus, ei täideta klastris vabaks jäänud ruumi uue failiga, vaid see jääbki tühjaks. Kui fail on suurem, kui klastri suurus, jaotub fail mitmesse klastrisse.

Sõltuvalt failisüsteemist kasutab see erinevaid süsteemseid andmestruktuure, nagu tabelid ja puud (täielikult hargnenud graafid), et hoida andmeid failide kohta. Tähtsamad andmed on failinimede nimikiri, kataloogipuu kirjeldus, failide asukohad salvestusseadmel (näiteks FAT failisüsteemi puhul on salvestatud klastri number, millelt see fail algab) ning tabel tühjadest klastritest. Lisaks hoitakse ka nimekirja ketta vigastest sektoritest (bad sector) ja tabelit failide omanike ja juurdepääsuõiguste kohta.

Failinimed[muuda | redigeeri lähteteksti]

Faile eristatakse nende failinimede järgi. Tavaline failinimi koosneb kahest osast – nimest ja laiendusest (extension). Mõned failisüsteemid, näiteks Mac OSi HFS+[4], peidavad faili tüübi info otse failisüsteemi andmestruktuuridesse ning lihtsalt ei näita tavakasutajale failinime laiendeid. Teine tähtis erinevus failisüsteemide juures on suur- ja väiketähtede eristamine. Windowsi failisüsteemid ei erista suur- ja väiketähti, Unix-laadsed süsteemid eristavad[5].

Metaandmed[muuda | redigeeri lähteteksti]

Metaandmed[6] (metadata) on failidega kaasas käivad andmed, mis ei sisaldu alati otseselt faili enda sees, aga kirjeldavad antud faili. Metaandmed võivad sisaldada faili suurust, viimase muutmise kuupäeva, faili loomise kuupäeva, faili omanikku, ligipääsuõigusi ja palju muud. Failide kohta käivad metaandmed paiknevad tavaliselt failisüsteemis ning ei ole kasutajale otseselt kättesaadavad.

Hierarhilisus[muuda | redigeeri lähteteksti]

Enamus tänapäeva failisüsteemidest on hierarhilise failipaigutusega. Windowsi failisüsteemide puhul on hierarhia tipuks kettatähis (mis vastab kindlale partitsioonile), millele järgnevad alamkataloogid ning kõige lõpuks fail ise. Näide: C:\Windows\explorer.exe, mis tähistab faili “explorer.exe”, mis asub kataloogis “Windows”, mis asub omakorda C: kettal. Unix-laadsetel süsteemidel on juurkataloog “/”, ülejäänud partitsioonid ja kataloogid paigutuvad selle alla. Näide: /usr/bin/python, mis tähistab faili “python”, mis asub kataloogis “bin”, mis asub kataloogis “usr”.

Fragmentatsioon[muuda | redigeeri lähteteksti]

Failisüsteem salvestab parimal juhul faile järjestikuliselt ehk andmed paiknevad salvestusseadmel ühes piirkonnas ning neid on võimalik järjest lugeda. See on tähtis andmete lugemise jõudluse tagamiseks, sest tavalisel kõvakettal kulub lugemispea ümberpaigutamiseks aega. Fragmentatsioon on nähtus, kus andmed ei ole paigutatud järjestikuliselt, vaid mitmes tükis füüsilise salvestusseadme eri piirkondades. See esineb tavaliselt siis, kui on täidetud järgnevad tingimused: 1) partitsioonil on vähe vaba ruumi; 2) partitsioonil on palju faile ning kustutatud faile. Uue faili salvestamisel valitakse vaba piirkond, mis võib olla ka piirkond, mis on vabastatud mõne faili kustutamisega. Kui uus fail on suurem, kui kustutatud fail, ei mahu ta piirkonda ära ning fail tuleb jaotada tükkideks, proovides ülejäänud faili mõnda teise vabasse piirkonda paigutada. Fragmentatsiooniga võitlemiseks tuleb faile füüsilisel salvestusseadmel ümber paigutada – väiksed vabad piirkonnad täidetakse väikeste eelnevalt hõredalt paigutatud failidega ning sellega vabastatakse suuremaid piirkondasi suuremate failide jaoks.

Tööriistad[muuda | redigeeri lähteteksti]

Failisüsteemil on tavaliselt temale komplekt programme failisüsteemi loomiseks ja hooldamiseks. Enamasti on need programmid kaasas operatsioonisüsteemiga. Failisüsteemi loomisel tuleb partitsioon vormindada (format), selle käigus kustutatakse partitsioonilt kõik andmed ning luuakse failisüsteemi süsteemsed andmestruktuurid. Kuna andmed kettal aja jooksul fragmenteeruvad on tihti kaasas ka fragmentatsiooniga võitlemiseks mõeldud programm (defragmenter). Eraldi programmid on olemas ka failisüsteemi suurendamiseks ja kahandamiseks. Enamus failisüsteemide jaoks on olemas ka andmete taastamiseks kasutatavad programmid, juhuks kui failisüsteemi andmestruktuurid saavad kahjustada ning andmetele ei ole enam võimalik ligi pääseda. Failide taastamise programme ei ole tavaliselt operatsioonisüsteemiga kaasas, need tuleb osta kolmandalt osapoolelt lisatasu eest.

Failisüsteemid[muuda | redigeeri lähteteksti]

FAT[muuda | redigeeri lähteteksti]

Next.svg Pikemalt artiklis Failipaigutustabel

FAT16[muuda | redigeeri lähteteksti]

FAT16 on lihtne failisüsteem, mille lõplik versioon loodi 1987.[7] aastal Compaq poolt. Selle eelis on väga hea tugi kõigilt tähtsamatelt operatsioonisüsteemidelt. Suurimad miinused on piirang partitsiooni suurusele (kuni 2GB) ja failinimede pikkustele (kuni 11 tähemärki, millest 3 on faililaienduseks). Failinime pikkuse piirangu ületamiseks on kasutusel VFAT nimeline failisüsteemilaiendus, mis võimaldab kuni 255 tähemärgilisi failinimesi.

FAT32[muuda | redigeeri lähteteksti]

FAT32 on edasiarendus[8] FAT16-st. Peamine edasiminek on maksimaalse klastrite arvu suurendamine, mistõttu on võimalik kasutada partitsioone suurusega kuni 2TB. Sarnaselt FAT16-ga on FAT32 erinevate operatsioonisüsteemide poolt hästi toetatud. Hea toe ja suure lubatud partitsiooni suuruse tõttu eelistavad seda failisüsteemi ka mälupulkade ja mälukaartide tootjad – enamus müüdavatest mälupulkadest ja -kaartidest on vormindatud FAT32 failisüsteemiga. FAT32 suurim probleem on faili maksimaalse suuruse piirang – 4GiB.

NTFS[muuda | redigeeri lähteteksti]

NTFS (New Technology File System) on Microsofti poolt välja töötatud failisüsteem, mille eesmärk oli vabastada Microsofti operatsioonisüsteemid FAT failisüsteemi piirangutest. See on kasutuses alates Windows NTst[9] ning on toetatud kõigi sellest uuemate Windowsi versioonide poolt (sh XP, Vista, Windows 7, Windows Server). Kuna Microsoft ei ole NTFSi täielikku tehnilist spetsifikatsiooni välja andnud, ei ole teiste tootjate operatsioonisüsteemides kaugeltki nii head NTFSi tuge, kui on tema eelkäiale FATle. Siiski on nii Linuxil (alates 2.2) ja Mac OS'l (alates 10.3) sisseehitatud NTFS lugemise tugi. Lisaks on nii Mac OSle kui ka Linuxile on olemas tasuta tarkvara ntfs-3g[10], mis suudab NTFS failisüsteeme lugeda ja kirjutada.

NTFS uuendused[11] võrreldes FATga on maksimaalne failinimi kuni 255 tähemärki (salvestatakse UTF-16 kodeeringus), journaling (muudatuste logi, mille abil saab andmekao ohtu oluliselt vähendada), laiendatud failiattribuudid, sisseehitatud failide pakkimise võimalus, kvoodid (kettaruumi jaotamine kasutajate vahel) ning faili-, ja partitsioonisuuruse piirangute kaotamine (piir on 16EB).

Ext failisüsteemid[muuda | redigeeri lähteteksti]

Ext (extended filesystem) failisüsteeme kasutatakse traditsiooniliselt Linuxis. Praegu on kasutuses versioonid ext2, ext3 ja ext4. Ext2[12], nendest kõige vanema ja lihtsama suurim puudus on journaling toe puudumine, mis vähendab failisüsteemi usaldusväärsust. Ext2 edasiarendus on ext3[13], mis on täielikult tagasiühilduv[14] ext2-ga. See lisab journaling toe ning võimaluse failisüsteemi suurust käigu pealt muuta. Ext4[15] on võrdlemisi hiljutine (linux 2.6.28) täiendus ext3-le. Ext4 vähendab suuremate failide puhul fragmentatsiooni ja parandab lugemiskiirust, lisab journal'le kontrollsummad ning võimaldab kiiremat failisüsteemi kontrollimist.

Kõik ext failisüsteemid ühilduvad POSIX standardi failide ligipääsuõiguste süsteemiga. Windows ja OS X oskavad lugeda ja kirjutada ext2 ja ext3 failisüsteeme lisatarkvara abil (Windowsi puhul näiteks ext2 ifs, Mac OS X puhul fuse-ext2).

HFS+[muuda | redigeeri lähteteksti]

HFS Plus on Apple poolt arendatud failisüsteem, mis on peamiselt kasutuses Mac OS operatsioonisüsteemiga. Alates Mac OS X versioonist 10.2.2 on toetatud ka failisüsteemi journaling[16]. HFS+ lubab failinimesi pikkusega kuni 255 tähemärki ning salvestab nimesi UTF-16 kodeeringus. Toetatud on ka UNIX-stiilis failide ligipääsuõigused ning ACL ligipääsuõigused. HFS+ oskavad lugeda nii Mac OS, Linux kui ka Windows (MacDrive või Bootcamp driveritega).

Võrgufailisüsteemid[muuda | redigeeri lähteteksti]

NFS[muuda | redigeeri lähteteksti]

NFS[17] (Network File System) on võrguprotokoll, mille abil on võimalik NFS serveriga ühenduda ja sealsetele failidele ligi pääseda samamoodi kui need asuksid kohalikus arvutis. NFS toimimiseks peab serveris jooksma NFS tarkvara, mis on konfigureeritud faile välja jagama ja kliendi arvutil peab olema ühendus serverisse ning juurdepääsuõigused failidele. Kasutatakse enamasti Unix-laadsete operatsioonisüsteemidega, kuid on toimib ka Windowsi[18] ja Mac OS keskkonnas.

SMB[muuda | redigeeri lähteteksti]

SMB[19] (Server Message Block) on võrguprotokoll, mille peamine kasutusala on pakkuda üle võrgu ligipääsu failidele, printeritele ja teistele seadmetele. Sarnaselt NFSle võimaldab see kasutada võrgus asuvaid faile samamoodi kui need asuksid kohalikus arvutis. SMB on kõige paremini tuntud kui “Microsoft Windows Network”, kuna sellel põhineb Windowsi arvutite üle võrgu failivahetus. Sellele on ka avatud lähtekoodiga implementatsioon nimega Samba[20].

ISO9660[muuda | redigeeri lähteteksti]

ISO9660[21] on ISO poolt standardiseeritud optiliste andmekandjate jaoks mõeldud failisüsteem. Selle eesmärk on muuhulgas tagada tugi võimalikult laial valikul operatsioonisüsteemidel. ISO9660 kasutab väga lihtsaid failiattribuute ning ei toeta ligipääsuõiguste määramist. Standardi järgi on failinimedele väga ranged piirangud – ametlikult on lubatud ainult suured tähed, numbrid, alakriipsud ja punkt, kusjuures tühikud ei ole lubatud ja punkt ei tohi paikneda failinime alguses ega lõpus. Piiratud on ka failisuurused – suurim fail saab olla 4GB suur, mõned vanemad operatsioonisüsteemid suudavad lugeda vaid 2GB suuruseid faile. Nendest piirangutest möödahiilimiseks on kasutusel mitmed ISO9660 laiendused, levinumad on Joliet (lubab pikkasi failinimesi UTF-16 kodeeringus) ja Rock Ridge (säilitab POSIX faili ligipääsuõigused).

UDF[muuda | redigeeri lähteteksti]

UDF[22] (Universal Disk Format) on avatud spetsifikatsiooniga failisüsteemi standard, mille eesmärk[23] on asendada ISO9660 ja/või FAT failisüsteem. See toetab suuri partitsioone (kuni 8TB), suuri faile (kuni 16EB), pikki failinimesi (254 tähemärki, unicode kodeering), defektihaldust ja metaandmete kontrollsummasi. See on ühilduv ka optiliste ketastega ning enamus uusi DVD ja Blu-ray plaate kasutavadki UDFi.

Viited[muuda | redigeeri lähteteksti]

Välislingid[muuda | redigeeri lähteteksti]