**Файлавая сістэма** – гэта спецыфічны спосаб захоўвання і арганізацыі іменаваных даных на носьбітах інфармацыі у камп'ютарах, а таксама ў розным іншым электронным абсталяванні: лічбавых камерах, мабільных тэлефонах і г.д. Файлавая сістэма вызначае фармат зместу і спосаб фізічнага захоўвання інфармацыі, якую прынята групаваць у выглядзе файлаў. Канкрэтная файлавая сістэма вызначае памер імя файла (папкі), максімальны магчымы памер файла і падзела, набор атрыбутаў файлу. Некаторыя файлавыя сістэмы прапануюць сэрвісныя магчымасці, напрыклад, размежаванне доступу ці шыфраванне файлаў.

Файлавая сістэма звязвае носьбіт інфармацыі з аднаго боку і API для доступу да файлаў — з іншага. Калі прыкладная праграма звяртаецца да файла, яна не мае аніякага уяўлення аб тым, якім чынам размешчана інфармацыя ў канкрэтным файле, таксама, як і на якім фізічным тыпе носьбіта(CD, цвёрдым дыску, магнітнай стужцы, блоку флэш-памяці ці іншым) ён запісаны. Усё, што ведае праграма — гэта імя файла, яго памер і атрыбуты. Гэтыя даныя яна атрымоўвае ад драйвера файлавай сістэмы. Менавіта файлавая сістэма вызначае, дзе і як будзе запісаны файл на фізічным носьбіце (напрыклад, цвёрдым дыску).

З пункту гледжання аперацыйнай сістэмы, увесь дыск уяўляе сабой набор кластараў (як правіла, памерам 512 байтаў і болей). Драйверы файлавай сістэмы арганізуюць кластары у файлы і каталогі (якія насамрэч з'яўляюцца файламі, што ўтрымліваюць спіс файлаў у гэтым каталозе). Гэтыя ж драйверы адсочваюць, якія з кластараў у цяперашні час ужываюцца, якія вольныя, якія пазначаны няспраўнымі.

Аднак файлавая сістэма не абавязкова наўпрост звязана з фізічным носьбітам інфармацыі. Існуюць віртуальныя файлавыя сістэмы, а таксама сеткавыя файлавыя сістэмы, якія з'яўляюцца толькі спосабам доступу да файлаў, што знаходзяцца на аддаленым камп'ютары.

Іерархія каталогаў
------------------

Практычна заўсёды файлы на дысках аб'яднаны ў *каталогі*.

У найпростым выпадку ўсё файлы на дадзеным дыску захоўваюцца ў адным каталогу. Такая *аднаўзроўневая* схема ужывалася ў CP/M і ў першай версіі MS-DOS 1.0. *Іерархічная файлавая сістэма* з укладзенымі адзін у другі каталогамі упершыню з'явілася ў Multics, потым у UNIX.

```
Wiki.txt
Tornado.jpg
Notepad.exe
(Аднаўзроўневая файлавая сістэма)
```

Каталогі на розных дысках могуць ствараць некалькі асобных дрэваў, як у DOS/Windows, ці ж яднацца у адно дрэва, агульнае для ўсіх дыскаў, як у UNIX-падобных сістэмах.

```
C:
  \Program files
      \CDEx
           \CDEx.exe
           \CDEx.hlp
           \mppenc.exe
  \Мае дакументы
      \Wiki.txt
      \Tornado.jpg
D:
  \Music
      \ABBA
           \1974 Waterloo
           \1976 Arrival
               \Money, Money, Money.ogg
           \1977 The Album
(Іерархічная файлавая сістэма Windows/DOS)
```

У UNIX існуе толькі адзін каранёвы каталог, а усе астатнія файлы і каталогі укладзены ў яго. Каб атрымаць доступ да файлаў і каталогаў на якім-небудзь дыску, патрэбна *замантаваць* гэты дыск камандай mount. Напрыклад, каб адчыніць файлы на CD, трэба, кажучы простай мовай, сказаць аперацыйнай сістэме: «вазьмі файлавую сістэму на гэтым кампакт-дыску і пакажы яе ў каталозе /mnt/cdrom». Усе файлы і каталогі, што знаходзяцца на CD, з'явяцца у гэтым каталозе /mnt/cdrom, які завецца *пунктам мантавання* (англ.: mount point). У большасці UNIX-падобных сістэм здымныя дыскі (дыскеты і CD), флэш-носьбіты і іншыя вонкавыя прылады захоўвання даных мантуюць у каталог /mnt, /mount ці /media. Unix і UNIX-падобныя аперацыйныя сістэмы таксама дазваляюць аўтаматычна мантаваць дыскі пры загрузцы аперацыйнай сістэмы.

```
/usr                                  
    /bin                              
         /arch                        
         /ls                         
         /raw                     
    /lib                           
         /libhistory.so.5.2           
         /libgpm.so.1                
/home                                
    /lost+found                      
         /host.sh                    
    /guest                         
         /Pictures                   
              /example.png        
         /Video                     
              /matrix.avi            
              /news                
                   /lost_ship.mpeg    
(Іерархічная файлавая сістэма ў Unix і UNIX-падобных аперацыйных сістэмах)
```

*Звярніце увагу на ужыванне слэша у файлавых сістэмах Windows, UNIX і UNIX-падобных аперацыйных сістэмах (У Windows ужываецца адваротны слэш «\», а ў UNIX і UNIX-падобных аперацыйных сістэмах просты слэш «/»)*

Акрамя таго, варта адзначыць, што вышэйапісаная сістэма дазваляе мантаваць не толькі файлавыя сістэмы фізічных прылад, але і асобныя каталогі (параметр *--bind*) ці напрыклад вобраз ISO (опцыя *loop*). Такія надстройкі, як FUSE, дазваляюць таксама мантаваць целы каталог на FTP і яшчэ вельмі вялікую колькасць розных рэсурсаў.

Яшчэ больш складаная структура ужываецца ў NTFS і HFS. У гэтых файлавых сістэмах кожны файл ўяўляе сабой набор *атрыбутаў*. Атрыбутамі лічацца не толькі традыцыйныя толькі чытанне, сістэмны, але і назва файла, памер і нават змест. Такім чынам, для NTFS і HFS тое, што захоўваецца ў файле, — гэта толькі адзін з яго атрыбутаў.

Калі прытрымлівацца гэтай логікі, *адзін файл можа ўтрымліваць некалькі варыянтаў змесціва*. Такім чынам, у адным файле можна захоўваць некалькі версій аднаго дакумента, а таксама дадатковыя дадзеныя (іконка файла, звязаная з файлам праграма). Такая арганізацыя тыповая для HFS на Macintosh.

Класіфікацыя файлавых сістэм
----------------------------

Па прызначэнню файлавыя сістэмы можна класіфікаваць на наступныя катэгорыі.

* Для носьбітаў з  адвольным доступам (напрыклад, цвёрды дыск): FAT32, HPFS, ext2 і інш. Так як доступ да дыскаў у разы марудней, чым доступ да аператыўнай памяці, для паляпшэння прадукцыйнасці ў шматлікіх файлавых сістэмах ужываецца асінхронны запіс зменаў на дыск. Для гэтаго ужываецца альбо журналяванне, напрыклад у ext3, ReiserFS, JFS, NTFS, XFS, альбо механізм soft updates і інш. Журналяванне шырока распаўсюджана ў Linux, ужываецца ў NTFS. Soft updates — у BSD сістэмах.
* Для носьбітаў з паслядоўным доступам (напрыклад, [[магнітная стужка|магнітныя стужкі QIC і інш.
* Для аптычных носьбітаў — CD і DVD: ISO9660, HFS, UDF і інш.
* Віртуальныя файлавыя сістэмы: AEFS і інш.
* Сеткавыя файлавыя сістэмы: NFS, CIFS, SSHFS, GmailFS Архівавана 7 ліпеня 2009. і інш.
* Для флэш-памяці: YAFFS, ExtremeFFS, exFAT.
* Трошкі выпадаюць з агульнай класіфікацыі спецыялізаваныя файлавыя сістэмы: ZFS (менавіта файлавай сістэмай з'яўляецца толькі частка ZFS), VMFS (г. з. кластарная файлавая сістэма, якая прызначана для захоўвання іншых файлавых сістэм) і інш.

Задачы файлавай сістэмы
-----------------------

Асноўныя функцыі любой файлавай сістэмы накіраваны на вырашэнне наступных задач:

* іменаванне файлаў;
* праграмны інтерфейс работы з файламі для праграм;
* адлюстраванне лагічнай мадэлі файлавай сістэмы на фізічную арганізацыю сховішча даных;
* арганізацыя ўстойлівасці файлавай сістэмы да збояў сілкавання, памылак апаратных і праграмных сродкаў;
* змяшчэнне параметраў файла, неабходных для правільнага яго ўзаемадзеяння з іншымі аб'ектамі сістэмы (ядро, праграмы і інш.).

У шматкарыстальніцкіх сістэмах з'яўляецца яшчэ адна задача: ахова файлаў аднаго карыстальніка ад несанкцыянаванага доступу іншага карыстача, а таксама забеспячэнне сумеснай работы з файламі, напрыклад, пры адкрыцці файла адным з карыстальнікаў, для іншых гэты ж файл часова будзе даступны толькі ў рэжыме «толькі чытанне».

Зноскі
------

1. ↑  У сучасных (2010 год) цвёрдых дысках, памер кластара стаў 4096 байтаў
2. ↑  Тут ствараецца віртуальная файлавая сістэма, што служыць пасярэднікам паміж рознымі фарматамі файлавых сістэм.