Failu sistēma

Datorikā **failu sistēma** ir failu un to saturošo datu glabāšanas un organizēšanas veids. Failu sistēmas var izmantot datu uzglabāšanas ierīces, piemēram, cietos diskus vai CD-ROM, un uzturēt failu fizisko glabāšanu, piedāvāt piekļuvi servera resursiem (piemēram, NFS, SMB un 9P klienti), vai tās var piedāvāt piekļuvi virtuāliem failiem (piemēram, procfs).

Datu uzglabāšanas ierīces (magnētiskās lentes, magnētiskie un optiskie diski, kaut kādā mērā arī flašatmiņa) hardware līmenī ir pieejami kā lielas nolasāmu un ierakstāmu (ne vienmēr (CDROM)) bloku kopas. Nolasīšanas un ierakstīšanas funkcijām viens no parametriem ir adrese (vieta), kur sāk lasīt vai rakstīt. Faili reprezentē šādu bloku kopas. Magnētiskajiem diskiem lietotajām failsistēmām ir iespējama tāda parādība kā fragmentācija, tas ir, fails vairs nav viens vesels datu nesēja apgabals, bet ir vairāki, loģiski saistīti datu nesēja (diska) apgabali.

Tīkla failsistēmas parasti ir lietojumslāņa protokoli. Tie ir līdzīgi failu pārsūtīšanas protokoliem, tikai šo protokolu klientus parasti iebūvē operētājsistēmās un piekļuve serverī esošajiem failiem, no lietotāja un tā programmu puses izskatās līdzīga kā piekļuve lokālajiem failiem.

Faili satur datus (failā esošie dati), kas nav atkarīgi no failsistēmas um metadatus (faila vārds, izmainīšanas un izveidošanas laiki), kas ir atkarīgi no lietotās failsistēmas. Failu metadatus parasti glabā atsevišķi no failu datiem (lai arī uz tā paša datu nesēja). Kopējot failus starp dažādām failsistēmām ar dažādu veidu metadatiem, var būt metadatu zudumi (piem. Kopējot failu ar garu faila vārdu no NTFS uz FAT12 bez garo failu vārdu atbalsta, tiks izmainīts faila vārds (jo sākotnējais faila vārds tur neielien iekšā)).

Populārākās failsistēmas: 

Magnētiskajiem diskiem un flašatmiņām:
* DOS/Windows:
** FAT (File Allocation Table)
*** FAT12 (lieto disketēm)
*** FAT16 (lietoja cietajiem diskiem līdz Win95 un mūsdienās lieto USB flašatmiņām)
*** FAT32 (lieto cietajiem diskiem sākot ar Win95 jaunākajām versijām un Win98, lieto lielām USB flašatmiņām)
** NTFS (lieto cietajiem diskiem NT bāzētajās windows operētājsistēmās)
* Linux:
** ext2
** ext3 (daļēji atpakaļsavietojama ar ext2)
** ext4 (diski līdz 1 eksabaitam un failu izmēri līdz 16 terabaitiem)
** reiserfs

Optiskajiem diskiem (tie nekad nav bijuši piesaistīti kādai operētājsistēmai):
* ISO9660 (CDFS) - visplašāk lietotā failsistēma datu kompaktdiskiem un daļai DVD, audioCD nesatur nekādu failsistēmu
** Joliet - pilnībā atpakaļsavietojams ISO9660 paplašinājums lai varētu lietot garākus failu vārdus
* UDF - DVD standarta failsistēma, šim ir vairākas versijas, vecāku versiju nolasītāji var nespēt nolasīt jaunākas versijas, šo izveidoja, lai apietu ISO9660 ierobežojumus (piem., ISO9660 maksimālais faila izmērs var būt tikai 1GB). Šo failsistēmu ir mēģinājuši lietot arī reti lietojamiem magnētiskajiem diskiem.

Tīkla failsistēmas:
* CIFS (SMB) - windows tīkla failsistēma (klients un serveris nāk līdzi visām windows versijām)
* NFS - unix tīkla failsistēma

## Failu sistēmas uzdevumi
Jebkuras failu sistēmas galvenās funkcijas ir šādu uzdevumu risināšana:

* failu nosaukšana;
* programmu interfeiss darbam ar failiem;
* failu sistēmas darba spēju saglabāšana gadījumos, ja notiek barošanas traucējumi, programmu un citas kļūdas;
* failu parametru saglabāšana, kuri nepieciešami to pareizajai sadarbībai ar citiem sistēmas objektiem (kodols, pielikumi u.c.)

Vairāku lietotāju sistēmās parādās vēl viens uzdevums: viena lietotāja failu aizsargāšana no kāda cita lietotāja neatļautas piekļuves tiem, kā arī
kopīga darba nodrošināšana ar failiem, piemēram, ja failu atver kāds lietotājs, tad pārējiem tas īslaicīgi būs pieejams tikai kā "Read only" fails.

## Failu sistēmu klasifikācija
Pēc to pielietojuma failu sistemas var klasificēt šādās kategorijās:

* Datu nesējiem ar brīvu piekļuvi (piemēram, cietais disks): FAT32, HPFS, ext2 u.c. Diezgan populāra ir NTFS failu sistēma.
* Optiskiem datu nesējiem — CD un DVD: ISO9660, ISO9690, HFS, UDF u.c.
* Virtuālās failu sistēmas: AEFS u.c.
* Tīkla failu sistēmas: NFS, CIFS, SSHFS, GmailFS u.c.
* Flash atmiņām: YAFFS, ExtremeFFS.
* Citas failu sistēmas, kuras paredzētas specifiskiem uzdevumiem, piemēram, VMFS paredzēta citu failu sistēmu uzglabāšanai.