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

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

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

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

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

правіць

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

У найпростым выпадку ўсё файлы на дадзеным дыску захоўваюцца ў адным каталогу. Такая аднаўзроўневая схема ужывалася ў 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).[2] У большасці 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.

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

правіць

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

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

правіць

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

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

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

Зноскі

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