Файлавая сістэма

З пляцоўкі Вікіпедыя.
Перайсці да: рух, знайсці

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

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

Задачы файлавай сістэмы[правіць | правіць зыходнік]

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

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

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

Зноскі

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