Вход

Файловые системы

Реферат по программированию
Дата добавления: 22 мая 2010
Язык реферата: Русский
Word, rtf, 396 кб (архив zip, 50 кб)
Реферат можно скачать бесплатно
Скачать
Не подходит данная работа?
Вы можете заказать написание любой учебной работы на любую тему.
Заказать новую работу

20





Введение


В настоящее время на одном диске в среднем записывается несколько десятков тысяч файлов. Как разобраться во всем этом многообразии с тем, чтобы точно адресоваться к файлу? Назначение файловой системы - эффективное решение, указанной задачи.

Файловая система с точки зрения пользователя- это «пространство», в котором размещаются файлы. А как научный термин - это способ хранения и организации доступа к данным на информационном носителе или его разделе. Наличие файловой системы позволяет определить, как называется файл, где он находится. Поскольку на IBM PC - совместимых компьютерах информация храниться в основном на дисках, то применяемые на них файловые системы определяют организацию данных именно на дисках (точнее, на логических дисках).


1. Файловая система.


???????? ??????? (англ. file system) — регламент, определяющий способ организации, хранения и именования данных на носителях информации. Она определяет формат физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имени файла (папки), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов.

Файловая система связывает носитель информации с одной стороны и API (набор готовых классов, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для её использования во внешних программных продуктах.) для доступа к файлам — с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же, как и на каком физическом типе носителя (CD, жёстком диске, магнитной ленте или блоке флэш-памяти) он записан. Всё, что знает программа — это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).

С точки зрения операционной системы (базовый набор функций, обеспечивающий управление аппаратными средствами компьютера. ОС позволяет абстрагироваться от деталей реализации аппаратного обеспечения, предоставляя разработчикам программного обеспечения минимально необходимый набор функций. С точки зрения обычных пользователей компьютерной техники ОС включает в себя и программы пользовательского интерфейса.), весь диск представляет из себя набор кластеров размером от 512 байт и выше. Драйверы файловой системы организуют кластеры в файлы и каталоги (реально являющиеся файлами, содержащими список файлов в этом каталоге). Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные.

Однако файловая система не обязательно напрямую связана с физическим носителем информации. Существуют виртуальные файловые системы, а также сетевые файловые системы, которые являются лишь способом доступа к файлам, находящимся на удалённом компьютере.


    1. Носители информации.


Носители информации- любой материальный объект или среда, содержащий (несущий) информацию, могущий достаточно длительное время сохранять в своей структуре занесённую в/на него информацию — камень, дерево, бумага, металл, пластмассы, кремний (и др. виды полупроводников), лента с намагниченным слоем (в бобинах и кассетах), пластик со специальными свойствами (для оптической записи информации — CD, DVD и т.д.), ЭМИ (электромагнитное излучение), и т. д.

Зачастую непосредственный носитель информации помещается в защитную оболочку, повышающую его сохранность и, соответственно, надежность сохранения информации (к примеру: бумажные листы — в обложку, микросхему памяти — в пластик (смарт-карта), магнитную ленту — в корпус, и т.д.).

Носители информации в быту, науке (библиотеки), технике (скажем, для нужд связи), общественной жизни (СМИ) применяются для: записи информации, хранения информации, чтения информации, передачи (распространения) информации.

Классификация носителей:

По основному назначению: общего (широкого) назначения (к примеру, бумага);

специализированные(для цифровой записи);

По количеству циклов записи: для однократной записи информации;

для многократной записи информации;

По долговечности: для кратковременного хранения (накопления) информации;

для долговременного хранении информации.

(в общем случае границы между этими разновидностями носителей довольно расплывчаты и могут варьироваться в зависимости от ситуации и внешних условий).

Устройства хранения информации (запоминающее устройство).Носитель, вкупе с механизмом для записи на него информации, называется устройством хранения информации (также — накопитель информации, если оно предусматривает дозапись поступающей информации к уже имеющейся). Эти устройства могут быть основаны на самых разных физических принципах записи. В некоторых случаях (для гарантии считывания, при редкости носителя и т.п.) носитель информации доставляется потребителю вместе с запоминающими устройством для его считывания.


2. Дисковая файловая система


Дисковые файловые системы обычно являются поток-ориентированными. Файлы в поток-ориентированых файловых системах представляются последовательностью битов, часто предоставляющие такие функции, как чтение, запись, изменение данных и произвольный доступ.

ADFS (Acorn's Advanced Disc filing system, приемник DFS); AdvFS (Advanced File System, создана в Digital Equipment Corporation для Digital UNIX/Tru64 UNIX операционной системы.); AFS (Acer Fast Filesystem, используется в SCO OpenServer.); Ami File Safe (коммерческая файловая система, поставлялась вместе с Amiga в 90х годах. Структурно совместима с PFS.); FFS (Amiga) (Fast File System, используется в ОС семейства AmigaOS (также поддерживается ОС MorphOS). На данный момент считается устаревшей. Имеет расширения FFS1, FFS Intl, FFS DCache, FFS2.); AthFS (AtheOS File System, 64-битная журналируемая файловая система (Журналируемая файловая система — файловая система, в которой осуществляется ведение журнала, хранящего список изменений и в той или иной степени помогающего сохранить целостность файловой системы при сбоях), сейчас используется в ОС Syllable. Также известная, как AFS.); BeFS (Be File System, используется в ОС BeOS); Btrfs (Файловая система, основанная на структурах двоичных деревьев (Двои?чное де?рево — древовидная структура данных , в которой каждый узел имеет не более двух потомков (детей). Как правило, первый называется родительским узлом, а дети называются левым и правым сыновьями.) (B-Tree), созданная Oracle Corporation в 2007 году.); CBMFS (Использовалась на большинстве Commodore 64 совместимых флоппи-дисководах.); CMDFS (— Расширение файловой системы CMBFS добавленное Creative Micro Designs для использования своих 3.5" флоппи дисководов, RAM дисков и контроллеров жестких дисков.); Cramfs (Compressed ROM file system); DTFS (Desktop File System, специализирующаяся на сжатии, используется в SCO OpenServer); EAFS (Extended Acer Fast Filesystem, обычно используется для хранения начального загрузчика и ядра в семействе UNIX?„Ђ„r„Ќ„‡ „O„R SCO OpenServer. „O„q„Ќ„‰„~„Ђ „}„Ђ„~„„„y„‚„…„u„„„ѓ„‘ „{„p„{ /boot.); EFS (IRIX) („T„ѓ„„„p„‚„u„r„Љ„p„‘ „Ѓ„Ђ„q„|„Ђ„‰„~„p„‘ „ѓ„y„ѓ„„„u„}„p „t„|„‘ „O„R IRIX.); EFS (Encrypted filesystem, „Џ„„„Ђ „‚„p„ѓ„Љ„y„‚„u„~„y„u „t„|„‘ NTFS); Ext („Q„p„ѓ„Љ„y„‚„u„~„~„p„‘ „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p, „‚„p„x„‚„p„q„Ђ„„„p„~„~„p„‘ „t„|„‘ „O„R „~„p „‘„t„‚„u Linux); ext2 („B„„„Ђ„‚„Ђ„u „‚„p„ѓ„Љ„y„‚„u„~„y„u „†„p„z„|„Ђ„r„Ђ„z „ѓ„y„ѓ„„„u„}„Ќ, „‚„p„x„‚„p„q„Ђ„„„p„~„~„Ђ„z „t„|„‘ „O„R „~„p „‘„t„‚„u Linux), ext3 („S„p„{ „~„p„x„Ќ„r„p„u„„„ѓ„‘ „w„…„‚„~„p„|„y„‚„…„u„}„p„‘ „r„u„‚„ѓ„y„‘ ext2); ext3cow („U„Ђ„‚„}„p „†„p„z„|„Ђ„r„Ђ„z „ѓ„y„ѓ„„„u„}„Ќ ext3 „ѓ „Ѓ„Ђ„t„t„u„‚„w„{„Ђ„z „ѓ„~„p„Ѓ„Љ„Ђ„„„Ђ„r.); ext4 („N„Ђ„r„p„‘ „r„u„‚„ѓ„y„‘ „†„p„z„|„Ђ„r„Ђ„z „ѓ„y„ѓ„„„u„}„Ќ ext3, „ѓ „Ѓ„Ђ„t„t„u„‚„w„{„Ђ„z „Џ„{„ѓ„„„u„~„„„Ђ„r.); FAT („I„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„„„ѓ„‘ „r DOS „y Microsoft Windows. „Q„p„x„|„y„‰„p„u„„„ѓ„‘ „‚„p„x„}„u„‚„Ђ„} „„„p„q„|„y„€ (12, 16 „y 32 „q„y„„).); FATX („M„Ђ„t„y„†„y„€„y„‚„Ђ„r„p„~„~„p„‘ „r„u„‚„ѓ„y„‘ FAT, „y„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„„„ѓ„‘ „r „Ђ„‚„y„s„y„~„p„|„Ћ„~„Ќ„‡ Xbox „y„s„‚„Ђ„r„Ќ„‡ „{„Ђ„~„ѓ„Ђ„|„‘„‡.); VFAT („B„u„‚„ѓ„y„‘ FAT, „Ѓ„Ђ„x„r„Ђ„|„‘„ђ„‹„p„‘ „t„|„y„~„~„Ќ„u („t„Ђ 255 „x„~„p„{„Ђ„r) „y„}„u„~„p „†„p„z„|„Ђ„r, „r„}„u„ѓ„„„Ђ „†„Ђ„‚„}„p„„„p 8.3 „y„}„u„~„y „†„p„z„|„p.); FFS (Ѓ\ Fast File System, „y„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„}„p„‘ „t„|„‘ „O„R „ѓ„u„}„u„z„ѓ„„„r„p BSD. „Q„p„x„‚„p„q„Ђ„„„p„~„p „r „A„u„‚„{„|„y.); GCR (Group Code Recording, „†„Ђ„‚„}„p„„ „‡„‚„p„~„u„~„y„‘ „t„p„~„~„Ќ„‡ „~„p 5?ЃЌ „t„y„ѓ„{„u„„„p„‡, „y„ѓ„Ѓ„Ђ„|„Ћ„x„Ђ„r„p„r„Љ„y„‡„ѓ„‘ 8?„}„y „q„y„„„~„Ќ„}„y Apple II „y Commodore Business Machines.); Fossil („@„‚„‡„y„r„~„p„‘ „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p „Ђ„„ Plan 9 Bell Labs.); Files-11 („U„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p „t„|„‘ „O„R OpenVMS); HFS (Hierarchical File System, „y„ѓ„Ѓ„Ђ„|„Ћ„x„Ђ„r„p„|„p„ѓ„Ћ „r „ѓ„„„p„‚„Ќ„‡ „r„u„‚„ѓ„y„‘„‡ „O„R „ѓ„u„}„u„z„ѓ„„„r„p Mac OS); HFS Plus („O„q„~„Ђ„r„|„v„~„~„p„‘ „r„u„‚„ѓ„y„‘ HFS, „y„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„}„p„‘ „r „Ѓ„Ђ„ѓ„|„u„t„~„y„‡ „r„u„‚„ѓ„y„‘„‡ „O„R „ѓ„u„}„u„z„ѓ„„„r„p Mac OS); HPFS (High Performance Filesystem, „y„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„„„ѓ„‘ „r „O„R OS/2); HTFS (Throughput Filesystem, „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p „O„R SCO OpenServer 5 High); ISO 9660 („I„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„„„ѓ„‘ „~„p CD-ROM „y DVD „t„y„ѓ„{„p„‡. „I„}„u„u„„ „‚„p„ѓ„Љ„y„‚„u„~„y„‘ Roc„{ Ridge „y Joliet.); JFS („G„…„‚„~„p„|„y„‚„…„u„}„p„‘ „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p, „ѓ„Ђ„x„t„p„~„~„p„‘ IBM, „ѓ„…„‹„u„ѓ„„„r„…„u„„ „t„|„‘ „O„R „~„p „‘„t„‚„u Linux, OS/2, „y AIX, „Ѓ„Ђ„t„t„u„‚„w„y„r„p„u„„ „Џ„{„ѓ„„„u„~„„„Ќ.); LFS („U„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p „ѓ„„„‚„…„{„„„…„‚„y„‚„Ђ„r„p„~„~„Ќ„‡ „|„Ђ„s„Ђ„r.); MFS (Macintosh File System, „{„Ђ„s„t„p-„„„Ђ „y„ѓ„Ѓ„Ђ„|„Ћ„x„Ђ„r„p„|„p„ѓ„Ћ „r „‚„p„~„~„y„‡ „O„R „ѓ„u„}„u„z„ѓ„„„r„p Mac OS); MFS (TivoЃfs Media File System, „Ѓ„p„„„u„~„„„Ђ„r„p„~„~„Ќ„z „ѓ„„„Ђ„z„{„y„z „{ „Ђ„Љ„y„q„{„p„} „†„Ђ„‚„}„p„„, „y„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„}„Ќ„z „r Tivo „w„u„ѓ„„„{„y„‡ „t„y„ѓ„{„p„‡ „t„|„‘ „x„p„Ѓ„y„ѓ„y „„„u„|„u„r„y„x„y„Ђ„~„~„Ќ„‡ „Ѓ„u„‚„u„t„p„‰.); Minix („I„ѓ„Ѓ„Ђ„|„Ћ„x„Ђ„r„p„|„p„ѓ„Ћ „r „O„R Minix); MicroDOS („U„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p „ѓ „~„u „†„‚„p„s„}„u„~„„„y„‚„…„u„}„Ќ„} „†„Ђ„‚„}„p„„„Ђ„} „x„p„Ѓ„y„ѓ„y „†„p„z„|„Ђ„r. „I„ѓ„Ѓ„Ђ„|„Ћ„x„Ђ„r„p„|„p„ѓ„Ћ „~„p „Ѓ„u„‚„ѓ„Ђ„~„p„|„Ћ„~„Ќ„‡ „{„Ђ„}„Ѓ„Ћ„ђ„„„u„‚„p„‡ „A„K „r „Ђ„Ѓ„u„‚„p„€„y„Ђ„~„~„Ќ„‡ „ѓ„y„ѓ„„„u„}„p„‡ MKDOS, AO-DOS, NORD, MicroDOS, NORTON-„A„K, PascalDOS „y „t„‚. „P„Ђ„t„t„u„‚„w„y„r„p„|„p„ѓ„Ћ „„„Ђ„|„Ћ„{„Ђ „t„|„‘ „‰„„„u„~„y„‘ „r ANDOS. „B „‚„p„x„|„y„‰„~„Ќ„‡ „O„R „x„p„‰„p„ѓ„„„…„ђ „Ѓ„Ђ„t„t„u„‚„w„y„r„p„|„y„ѓ„Ћ „Ђ„„„|„y„‰„p„ђ„‹„y„u„ѓ„‘ „t„‚„…„s „Ђ„„ „t„‚„…„s„p, „~„u „r„ѓ„u„s„t„p „Ѓ„Ђ„|„~„Ђ„ѓ„„„Ћ„ђ „ѓ„Ђ„r„}„u„ѓ„„„y„}„Ќ„u „}„Ђ„t„y„†„y„{„p„€„y„y.); MUFS (Multiuser Filesystem, „‚„p„ѓ„Љ„y„‚„u„~„y„u „t„|„‘ „†„p„z„|„Ђ„r„Ќ„‡ „ѓ„y„ѓ„„„u„} AmigaOS, „Ѓ„Ђ„x„r„Ђ„|„‘„ђ„‹„u„u „‚„u„p„|„y„x„Ђ„r„p„„„Ћ „Ѓ„Ђ„|„Ћ„x„Ђ„r„p„„„u„|„Ћ„ѓ„{„y„u „Ѓ„‚„p„r„p); NetWare File System („O„‚„y„s„y„~„p„|„Ћ„~„p„‘ „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p „t„|„‘ NetWare 2.x Ѓ\ 5.x, „y„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„}„p„‘ „Ђ„Ѓ„€„y„Ђ„~„p„|„Ћ„~„Ђ „r „ѓ„|„u„t„…„ђ„‹„y„‡ „r„u„‚„ѓ„y„‘„‡.); NILFS (Linux „r„u„‚„ѓ„y„‘ LFS); NSS (Novell Storage Services. „^„„„Ђ „~„Ђ„r„p„‘ 64-„q„y„„„~„p„‘ „w„…„‚„~„p„|„y„‚„…„u„}„p„‘ „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p „y„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„„ „p„|„s„Ђ„‚„y„„„} «„q„p„|„p„~„ѓ„y„‚„…„u„}„Ђ„s„Ђ „t„u„‚„u„r„p». „B„ѓ„„„‚„u„‰„p„u„„„ѓ„‘ „r „O„R NetWare „~„p„‰„y„~„p„‘ „ѓ „r„u„‚„ѓ„y„y 5.0-up, „„„p„{„w„u „Ѓ„Ђ„‚„„„y„‚„Ђ„r„p„~„p „r „O„R GNU/Linux.); NTFS („I„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„}„p„‘ „r „|„y„~„u„z„{„u „O„R Microsoft Windows NT „w„…„‚„~„p„|„y„‚„…„u„}„p„‘ „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p.); OFS (Old File System, „t„|„‘ AmigaOS. „I„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„„„ѓ„‘ „r „Ђ„ѓ„~„Ђ„r„~„Ђ„} „t„|„‘ „t„y„ѓ„{„u„„.); PFS („p „„„p„{„w„u PFS2, PFS3, „y „„. „Ѓ. „‚„p„x„r„y„„„p„‘ „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p, „t„Ђ„ѓ„„„…„Ѓ„~„p„‘ „t„|„‘ „O„R „ѓ„u„}„u„z„ѓ„„„r„p AmigaOS „y „Ђ„q„|„p„t„p„ђ„‹„p„‘ „r„Ќ„ѓ„Ђ„{„Ђ„z „~„p„t„v„w„~„Ђ„ѓ„„„Ћ„ђ.); Qnx4fs („U„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p, „y„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„}„p„‘ „r QNX „r„u„‚„ѓ„y„‘„‡ 4 „y 6.); Qnx6fs („N„Ђ„r„p„‘ copy-on-write „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p, „Ѓ„‚„u„t„ѓ„„„p„r„|„u„~„~„p„‘ „r QNX 6.4.0 „y „y„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„}„p„‘ „{„p„{ „Ђ„ѓ„~„Ђ„r„~„p„‘ „~„p„‰„y„~„p„‘ „ѓ 6.4.1.); ReiserFS („U„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p, „ѓ„Ѓ„Ђ„ѓ„Ђ„q„~„p„‘ „{ „w„…„‚„~„p„|„y„‚„Ђ„r„p„~„y„ђ); Reiser4 („U„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p, „ѓ„Ѓ„Ђ„ѓ„Ђ„q„~„p„‘ „{ „w„…„‚„~„p„|„y„‚„Ђ„r„p„~„y„ђ, „~„Ђ„r„p„‘ «„‚„u„y„~„{„p„‚„~„p„€„y„‘» ReiserFS.); S51K (AT&T UNIX System V 1KB „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p, „y„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„„„ѓ„‘ „r SCO OpenServer.); SkyFS („U„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p „‚„p„x„‚„p„q„p„„„Ќ„r„p„u„}„p„‘ „Ѓ„‚„Ђ„u„{„„„Ђ„} SkyOS „t„|„‘ „x„p„}„u„~„Ќ „y„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„}„Ђ„z „r „„„u„{„…„‹„y„z „}„Ђ„}„u„~„„ BFS „Ђ„„ BeOS); SFS (Smart File System, „‚„p„x„r„y„„„p„‘ „w„…„‚„~„p„|„y„‚„…„u„}„p„‘ „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p, „t„Ђ„ѓ„„„…„Ѓ„~„p„‘ „t„|„‘ „O„R „ѓ„u„}„u„z„ѓ„„„r„p AmigaOS, „p „„„p„{„w„u MorphOS „y AROS. „O„t„~„Ђ„z „y„x „Ђ„ѓ„Ђ„q„u„~„~„Ђ„ѓ„„„u„z „Џ„„„Ђ„z „ѓ„y„ѓ„„„u„}„Ќ „‘„r„|„‘„u„„„ѓ„‘ „r„Ђ„x„}„Ђ„w„~„Ђ„ѓ„„„Ћ „Ѓ„‚„Ђ„r„Ђ„t„y„„„Ћ „t„u„†„‚„p„s„}„u„~„„„p„€„y„ђ „t„p„w„u „r„Ђ „r„‚„u„}„‘ „‚„p„q„Ђ„„„Ќ „ѓ „†„p„z„|„p„}„y.); SpadFS („N„u„w„…„‚„~„p„|„y„‚„…„u„}„p„‘ „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p, „ѓ „r„Ђ„x„}„Ђ„w„~„Ђ„ѓ„„„Ћ„ђ „Ѓ„‚„Ђ„ѓ„}„Ђ„„„‚„p „‡„Џ„Љ„p „‚„u„p„|„y„x„Ђ„r„p„~„p „Ѓ„Ђ„t Linux.); STL (Standard language file system Ѓ\ „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p „ѓ„Ђ„x„t„p„~„~„p„‘ „r IBM.); UFS (Unix Filesystem, „ѓ„„„p„~„t„p„‚„„„~„p„‘ „ѓ„y„ѓ„„„u„}„p, „y„ѓ„Ѓ„Ђ„|„Ћ„x„Ђ„r„p„r„Љ„p„‘„ѓ„‘ „r „ѓ„„„p„‚„Ќ„‡ „O„R „ѓ„u„}„u„z„ѓ„„„r„p BSD); UFS2 (Unix Filesystem, „y„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„}„p„‘ „r „Ѓ„Ђ„ѓ„|„u„t„~„y„‡ „r„u„‚„ѓ„y„‘„‡ „O„R „ѓ„u„}„u„z„ѓ„„„r„p BSD); UDF („P„p„{„u„„„~„p„‘ „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p „t„|„‘ „…„ѓ„„„‚„Ђ„z„ѓ„„„r WORM/RW („„„p„{„y„‡ „{„p„{ CD-RW „y DVD).); VxFS („U„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p, „ѓ„Ђ„x„t„p„~„~„p„‘ Veritas, „Ѓ„u„‚„r„p„‘ „{„Ђ„}„}„u„‚„‰„u„ѓ„{„p„‘ „w„…„‚„~„p„|„y„‚„…„u„}„p„‘ „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p; HP-UX, Solaris, Linux, AIX); VSAM („S„‚„p„~„x„p„{„€„y„Ђ„~„~„p„‘ „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p, „}„p„~„y„Ѓ„…„|„y„‚„…„ђ„‹„p„‘ „r„y„‚„„„…„p„|„Ћ„~„Ќ„} „‡„‚„p„~„y„|„y„‹„u„} „t„p„~„~„Ќ„‡); WinFS  (Windows Future Storage, „Ѓ„|„p„~„y„‚„…„u„„„ѓ„‘ „{„p„{ „x„p„}„u„~„p „t„|„‘ NTFS. „N„p „t„p„~„~„Ќ„z „}„Ђ„}„u„~„„ „ѓ„…„‹„u„ѓ„„„r„…„u„„ „„„Ђ„|„Ћ„{„Ђ „r „q„u„„„p „r„u„‚„ѓ„y„y „y „y„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„„„ѓ„‘ „r„~„…„„„‚„y „{„Ђ„}„Ѓ„p„~„y„y Microsoft.); WAFL („B„~„…„„„‚„u„~„~„‘„‘ „r„Ќ„ѓ„Ђ„{„Ђ„Ѓ„‚„Ђ„y„x„r„Ђ„t„y„„„u„|„Ћ„~„p„‘ „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p, „y„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„}„p„‘ „r „ѓ„Ѓ„u„€„y„p„|„y„x„y„‚„Ђ„r„p„~„~„Ђ„z „O„R Data ONTAP „r „ѓ„u„„„u„r„Ќ„‡ „ѓ„y„ѓ„„„u„}„p „‡„‚„p„~„u„~„y„‘ „t„p„~„~„Ќ„‡ „Ђ„„ „†„y„‚„}„Ќ NetApp.); XFS („I„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„„„ѓ„‘ „r „O„R IRIX, GNU/Linux „y BSD); ZFS (Zettabyte filesystem, „Ђ„„„{„‚„Ќ„„„p„‘ „†„p„z„|„Ђ„r„p„‘ „ѓ„y„ѓ„„„u„}„p „Ђ„„ Sun Microsystems. „I„ѓ„Ѓ„Ђ„|„Ћ„x„…„u„„„ѓ„‘ „r „O„R Solaris 10, Solaris Express Developer Edition, FreeBSD, Mac OS X Leopard, Linux („r userland).); CSI-DOS („I„ѓ„Ѓ„Ђ„|„Ћ„x„Ђ„r„p„|„p„ѓ„Ћ „~„p „A„K „r „Ђ„Ѓ„u„‚„p„€„y„Ђ„~„~„Ђ„z „ѓ„y„ѓ„„„u„}„u CSI-DOS); „O„R „A„K-11 („I„ѓ„Ѓ„Ђ„|„Ћ„x„Ђ„r„p„|„p„ѓ„Ћ „~„p „A„K „r „O„R „A„K-11.).


2.1. Файловые системы для флэш-дисков/ твердотельных носителей.


Твердотельные носители, такие, как флеш-диски, своим интерфейсом данных похожи на обычные жёсткие диски, но имеют свои проблемы и недостатки. Когда проходит время поиска они нуждаются в особой обработке такими алгоритмами как, Wear leveling и Error detection and correction.

FAT (исходно дисковая файловая система — теперь часто используется на флеш-дисках. Имеет ограничение на размер файла в 4 гигабайта.); exFAT (Расширенная версия FAT, используемая для флеш-дисков. Запатентована Microsoft, часто называется как FAT64 — ограничение 264 байт (16 эксабайт).); FFS2 (Продолжение файловой системы FFS1, Одна из ранних файловых систем для флеш-карт. Разработана и запатентована Microsoft в начале 1990х годов. U.S. Patent 5392427  (англ.)); TFAT (Транзакционная версия FAT файловой системы); JFFS (Оригинальная лог-структурированная Linux файловая система для NOR-флеш-носителей); JFFS2 (Продолжение JFFS для NAND- и NOR-флеш-носителей); LogFS  (Предназначена для замены JFFS2, лучшая расширяемость. Находится на ранней стадии разработки.); Non-Volatile File System  (файловая система для флеш-дисков, разработанная Palm, Inc..); YAFFS  (Лог структурированная файловая система, предназначенная для NAND-флеш, но может использоваться в NOR-флеш-дисках.).


2.2. Запись ориентированные файловые системы.


В запись-ориентированных файловых системах файлы хранятся как коллекция записей. Такие файловые системы ассоциируются, прежде всего, со старыми мейнфреймами и операционными системами для миникомпьютеров. Программы считывают и записывают целыми записями, вместо байт, записанных, в определенном порядке.

Files-11  (Ранняя версия была запись-ориентированной; поддержка потоков была добавлена позднее.); Virtual storage access method (VSAM) (Использовалась в System/370 и MVS); Structured File Server (SFS) (Запись-ориентированная файловая система от IBM, оригинальная часть системы Encina, теперь интегрирована в CICS.); RSD (record sequential delimited) ((разделенная последовательность записей) — Запись ориентированная файловая система от IBM.).

2.3. Файловые системы для сетевых хранилищ

Файловые системы для общих дисков (также известные как Файловые системы для сетевых (общих) хранилищ (файловая система SAN) или кластерные файловые системы) в основном используются в сетевых хранилищах, где все узлы сети имеют прямой доступ к блоковому устройству хранения, где расположена эта файловая система. Такие файловые системы функционируют, даже при поломке одного из узлов. Данные файловые системы, обычно, используются в кластерах высокой доступности вместе с аппаратным RAID. Файловые системы для сетевых хранилищ, обычно не расширяются больше 64 или 128 узлов.

Могут быть симметричными, когда метаданные распределены между узлами, или асимметричными — с централизованными хранилищами метаданных.

CXFS (XFS для кластера) (Файловая система расширяющая XFS для использования в сети имеющей SGI-сервера. Сфера применения типична для решений Silicon Graphics — видеомонтаж, обработка массивов видеоматериалов.); EMC Celerra HighRoad (от компании EMC. Доступна для ОС AIX, HP-UX, IRIX, Solaris и Windows. Ассимметрична.); Files-11 (Для кластеров VMS, выпущена DEC в 1983, ныне компания HP. Симметрична.); Global File System (GFS) (Компания Red Hat. Выпущена в Linux под лицензией GPL. Симметрична (GDLM) и асимметрична (GULM).); HP Cluster File System (CFS) (TruCluster) (компания HP. Доступна для Tru64 UNIX.); Melio FS (Компания Sanbolic. Доступна для Windows. Симметрична.); Nasan (Файловая система от компании DataPlow. Доступна в Linux и Solaris. Ассимметрична.); OCFS (Oracle Cluster File System, Кластерная файловая система от Oracle. Лицензия GNU GPL. Симметрична); PolyServe file system (PSFS) (Компания PolyServe (используется в их PolyServe Matrix Server, который фокусируется на экспортировании клиентам через CIFS или NFS, также как и Microsoft SQL Server и Oracle 9i RAC и 10g. Доступна в Linux и Windows. Симметрична.); SAN файловая система (Компания DataPlow. Доступна в IRIX, Linux, Solaris и Windows. Симметрична.); StorNext файловая система (От Quantum. Асимметрична. Доступна в AIX, HP-UX, IRIX, Linux, Mac OS, Solaris и Windows. Совместима с Xsan.); QFS (Создана компанией Sun Microsystems. Доступна в Linux (только клиентская часть) и Solaris (полностью). Асимметрична.); Veritas Storage Foundation Cluster File System (CFS) (компания Symantec. Доступна в AIX, HP-UX, Linux и Solaris. Асимметрична.); Xsan (Кластерная файловая система созданная компанией Apple Computer, Inc. Асимметрична, доступна в Mac OS. Совместима с StorNext File System.); VMFS (От компаний VMware/EMC Corporation. Доступна в VMware ESX Server. Симметрична.).

3. Распределенные файловые системы

Распределенные файловые системы известны и как сетевые файловые системы. AFS ((Andrew File System) масштабируемая и независимая от расположения, имеет сильный кэш клиент и использует Kerberos для авторизации. Различные внедрения используют оригинальные части от IBM (ранее Transarc), Arla и OpenAFS.); Arla (Свободно распространяемые сервер и клиент с поддержкой AFS); Apple Filing Protocol ((AFP) от Apple Computer. AFP может использовать протокол Kerberos для авторизации.); CIFS (Сетевая файловая система, основанная на SMB с поддержкой UNIX прав и блокировок, при этом использующая DNS имена машин, а не NetBIOS, в отличие от SMB.); DCE Distributed File System ((DCE/DFS) от IBM (ранее Transarc) похожа на AFS и полностью соответствует стандарту POSIX и стандартам систем высокой доступности. Доступна для ОС AIX и Solaris под запатентованной лицензией.); NetWare Core Protocol ((NCP) от Novell используется в сетях, основанных на NetWare.); Network File System ((NFS) изначально от Sun Microsystems, теперь является стандартом в UNIX-подобных сетях. NFS может использовать протокол Kerberos для авторизации и кэш клиента.); OpenAFS (Открытая реализация распределенной файловой системы AFS.); Self-certifying File System ((SFS), Глобальная сетевая файловая система, разработанная для безопасного доступа к файлам через различные административные домены.); Server Message Block ((SMB) Изначально IBM (большинство общих версий серьезно модифицировано Microsoft) — является стандартом в Windows-ориентированных сетях. SMB также известна как Common Internet File System (CIFS) — Общая Файловая система в Интернет. SMB может использовать протокол Kerberos для авторизации.); v9fs  (Распределённая файловая система для ОС Plan 9 и Inferno.).

3.1. Распределенные параллельные файловые системы с защитой от сбоев.

Распределенные файловые систем, являющиеся параллельными и с защитой от сбоев, разделяют и реплицируют данные на многие сервера для высокой производительности и обеспечения целостности данных. Даже когда сервер дает сбой, данные не теряются. Данные файловые системы используются в высокоскоростных вычислениях и кластерах высокой доступности.

Все здесь перечисленные файловые системы фокусируются на высокой доступности, масштабируемости и высокой производительности, если не указано иначе.

dCache (От компаний Fermilab и DESY, бесплатная файловая система (однако не относится к свободному программному обеспечению из-за лицензионных ограничений.)); ExaFS (Распределенная файловая система от Exanet. Идет как часть ExaStore, основанном на Linux NAS решении запущенном на оборудовании Intel, обслуживает NFS v2/v3, SMB/CIFS и AFP для Microsoft Windows, Mac Os, Linux и других UNIX клиентов. Доступна под патентованной лицензией.); Gfarm файловая система (использует OpenLDAP или PostgreSQL для метаданных и FUSE или LUFS для монтирования. Доступна в Linux, FreeBSD, NetBSD и Solaris под лицензией X11.); GlusterFS (Настраиваемая, высоко производительная кластерная файловая система, как часть GNU Clustering Platform. Доступна для любой POSIX совместимой операционной системы, под лицензией GPL.); GPFS (General Parallel File System, виртуальная файловая система для параллельной обработки данных разработанная IBM. Поддерживает репликацию между подсоединенными блочными устройствами хранения. Доступна в AIX, Linux и Windows. Синхронная или асинхронная репликация (настраиваемо).); Google File System  (Кластерная система оптимизированная для работы с большими блоками данных по 64 Мб, а также обладающая повышенной защитой от сбоев. Вся информация копируется и хранится в трех местах одновременно, при этом система способна очень быстро находить реплицированные копии, если какая-то машина вышла из строя. Задачи автоматического восстановления после сбоя решаются с помощью программ, созданных по модели MapReduce. Является коммерческой тайной компании Google. Доступна только через Google App Engine.); IBRIX Fusion (Программный пакет Fusion Software Suite, реализующий кластерную файловую систему Segmented File System. Создана компанией IBRIX. Доступна в Linux под патентованной лицензией.); Lustre (Предназначена для использования в больших Linux кластерах (от 1000 машин) Используется на многих самых производительных кластерах в мире. Лицензия GNU GPL.); MogileFS  (Распределенная файловая система созданная в рамках проекта LiveJournal и реализованная на уровне многоплатформенного приложения на Perl. POSIX не совместима, использующая плоское пространство имен, уровень приложений, использует MySQL для метаданных и протокол HTTP для транспорта. Разработана компанией Danga Interactive. Доступна в Linux (но может быть портирована) под лицензией GPL.); Isilon OneFS  (Кластерная файловая система OneFS позволяет хранить более 150 Тбайт данных. Является коммерческой тайной компании Isilon.); OneFS distributed file system  (Компания Isilon. Основанная на ОС BSD на выделенном Intel оборудовании, обслуживает NFS v3 и SMV/CIFS для Windows, Mac OS, Linux и других UNIX клиентов, доступна под патентованной лицензией.); Panasas ActiveScale File System (PanFS) (Компания Panasas — использует объектные устройства хранения. Доступна в Linux под патентованной лицензией.); PeerFS   Radiant Data Corporation  (Фокусируется на высокой доступности и высокой производительности, использует репликацию типа точка-точка с множественными источниками и целями. Доступна в Linux под патентованной лицензией.); POHMELFS ((Parallel Optimized Host Message Exchange Layered File System) кэш-согласованная распределенная файловая система, может рассматриваться как более быстрая и изящная замена широко распространенного протокола сетевого доступа к файловым системам Network File System (NFS). 9 июня 2009 года поддержка POHMELFS была включена в версию ядра Linux 2.6.30.); Tahoe (данные дублируются, шифруются, поддерживается контроль доступа, написана на Python под GPLv2); TerraGrid Cluster File System  — Terrascale Technologies Inc  (Реализует связанность кэша под запросу и использует стандарт iSCSI и модифицированную версию файловой системы XFS. Доступна в Linux под патентованной лицензией.

В разработке:

zFS (от компании IBM (не путать с ZFS от Sun Microsystems) фокусируется на кооперативном КЭШе и распределенных транзакциях, использует объектные устройства хранения. Находится в разработке и на данный момент недоступна.); Hadoop Distributed File System  (Бесплатный клон GoogleFS — в разработке); Kosmos Distributed File System  (Файловая система разработанная Kosmix, теперь является свободным ПО.), HAMMER/ANVIL от Matt Dillon, OASIS (от ETRI. Весьма схожа с Lustre или Panasas. Доступна в Linux через специальную программу переноса программ, предоставленную ETRI.); Parallax  (Файловая система); XtreemFS (Бесплатная открытая параллельная, объектно-ориентированная файловая система. Разработана как часть XtreemOS, полностью интегрирована с управлением Virtual organization (VO).).


3.2. Файловые системы точка-точка.

CFS  (Файловая система только для чтения, основанная на распределенной таблице хэшей Chord DHT.); Cleversafe (Используется Cauchy Reed-Solomon Information Dispersa Algorithms — Дисперсионные информационные алгоритмы — (IDAs) для разделения данных в неопределимых срезах и распространения их через безопасные соединения через Internet на множественные места хранения.); Infinit  (Это широко масштабируемая файловая система точка-точка, разработанная в C++, дает пользователям надежное и безопасное хранение их файлов пространственно-независимым и реплицируемым путем. Позволяет делиться файлами с контролируемым набором пользователей, друзей и т. д.), Ivy  (Файловая система чтения/записи основанная на логах, отсюда невозможность масштабирования с большим количеством пользователей.); Pastis  (французская файловая система точка-точка, разработанная на Java.).


4. Файловые системы специального назначения.


AppleShare  (Сетевая файловая система в ранних версиях Mac OS); archfs   (Архивирующая файловая система); cdfs  (Система поддержки чтения и записи CD); cfs  (Кэширующая файловая система); Coda  (Файловая система с поддержкой автономной работы, происходит из OpenAFS.); compFUSEd (оверлей прозрачного сжатия — чтение/запись, основан на FUSE); Cramfs  (Compressed ROM file system, свободная сжатая файловая система для GNU/Linux для встраиваемых систем основанных на ПЗУ.); Cromfs  (Работающая в пользовательском пространстве (FUSE) файловая система только для чтения использующая эффективность LZMA алгоритма сжатия.), Datalight Reliance (Транзакционная файловая система для 32 битных встроенных систем от Datalight.); Davfs2  (Расширение файловой системы WebDAV); DFS  (Распределённая (сетевая) файловая система для ОС семейства Microsoft Windows); DRBD  (Позволяет создать общее для кластера зеркальное дисковое пространство, грубо говоря, RAID1 между накопителями на разных машинах в сети. Когда на одной машине производится запись на диск, DRBD сразу синхронизирует эти данные на дисках других машин.); FDI  (Файловая система разработанная Intel для Flash носителей. Используется, в частности, в сотовых телефонах марки Motorola.); Freenet (Децентрализованная, сетевая файловая система анонимного обмена зашифрованными файлами, в некотором смысле аналогичная проектам Gnutella и Napster.); ftpfs  (Файловая система, используемая при доступе по протоколу ftp); fuse (Файловая система пользователя, аналогична lufs но имеет лучшую архитектуру.); FuseCompress  (Основана на FUSE, предоставляет прозрачное сжатие данных.), GmailFS  ((Google Mail File System) — Файловая система Google для своей почтовой системы GMail.); HDFS  (Распределенная файловая система, являющаяся частью проекта Apache Hadoop.); InterMezzo  (Является преемником Coda, поддерживает синхронизацию с сервером и кэширование файлов.); Kimberlite  (Система позволяющая подключить две машины под ОС GNU/Linux к одному SCSI-накопителю.); lnfs  (Система поддержки длинных имён); LUFS  (Система для доступа по протоколам ftpfs, ftp ssh); MapFS  (Распределённая файловая система компании Levanta. Позволяет монтировать группе машин удаленную файловую систему доступную в режиме только для чтения, но дающую возможность модификации файлов, при этом изменения произведенные на каждой машине сохраняются локально. Лицензия GNU GPL.); MelioFS  (Распределённая файловая система компании Sanbolic. Позволяет множеству машин одновременно работать на чтение и на запись не только с одним томом, а даже с одним файлом. Поддерживается множество родных возможностей по работе с файловыми системами MS Windows.); mini fo ((The mini fanout overlay file system) — Перенаправляет модифицированные операции в записываемое пространство названное директориях хранения, оставляет оригинальные данные в основной директории незатронутыми. При считывании, файловая система смешивает модифицированные данными и оригинальные, так чтобы только наиболее новая версия была показана.); MVFS  (MultiVersion File System — Мультиверсионная файловая система, пропиеритарная, используется Rational ClearCase.); NBD  (Модуль для Linux реализующий поддержку виртуальных дисковых разделов, физически расположенных на другой машине в сети. Прекрасно подходит для реализации RAID-массива, распределённого по сети.); NCUFS  (The NetWare UNIX Client File System (NUCFS), сетевая файловая система от SCO, используется для подключения UNIX-клиентов к файловым ресурсам серверов Novell NetWare.); nntpfs  (Система поддерживающая протокол netnews); NOOFS  (Сетевая файловая система, использующая в качестве хранилища данных SQL-базу, в частности PostgreSQL.); ParFiSys   (Экспериментальная файловая система для параллельной обработки данных); plumber (Plan 9) (Система обмена сообщениями между работающими процессами, иначе реализация механизма «многопоточности»); PVFS  (Распределенная файловая система, заменяющая NFS для кластера. Состоит из централизованного сервера метаданных и множества демонов ввода/вывода, непосредственно занимающихся отдачей и сохранением информации. Данные хранятся на специально отведенных анодах кластера, возможности резервирования пока отсутствуют.); ramfs  (Система используемая для создания RAM-диска в процессе загрузки ОС семейства BSD и на ядре Linux); romfs   ((ROM filesystem) — Чрезвычайно простая файловая система, без многих функций, предназначена для записи важных файлов в EEPROM. Доступна в Linux, и возможно в других UNIX-похожих системах.); Squashfs  (Система компрессирующая данные с атрибутом «только для чтения»); tmpfs  (Файловая система поддерживающая работу с виртуальной памятью.); UMSDOS  (Файловая система подобная FAT, но расширенная для хранения прав доступа и метаданных, используется в ОС на ядре Linux.); UnionFS   (Каскадно-объединенная файловая система, которая может смешивать содержимое различных директорий (ветви), оставляя содержимое физически разделенным.); WDK.VFS  (SiteAdmin CMS  — Виртуальная файловая система, представлена Evgenios Skitsanos.); wikifs  (Файловая система, используемая Википедией); Barracuda WebDAV plugin (безопасный сетевой файловый сервер для встроенных устройств.); SysmanFS ((Основана на FUSE), виртуальная файловая система для управления кластерами.); pramfs (Защищенная и постоянная файловая система для RAM-устройств.); ERTFS ProPlus64 (идёт с интегрированной операцией защиты от сбоев, по умолчанию работает в журналируемом режиме.); Callback File System (виртуальная файловая система для Windows.); Owner-Free Filesystem (распределённая файловая система, в которой никакой файл не хранится целиком на единственном компьютере.);


    1. Псевдо- и виртуальные файловые системы.


devfs  (Устаревшая система файловых устройств в ОС семейств BSD, GNU/Linux.); procfs  (Система для обслуживания процессов, устаревший механизм ОС семейств BSD, GNU/Linux.); specfs  (Специальная файловая система для файловых устройств.); sysfs   (Получение информации о системных устройствах и драйверах в GNU/Linux.); CrossDOS (Промежуточная файловая система для переноса данных между другими файловыми системами в AmigaOS.).


4.2. Шифрованные файловые системы.


eCryptfs  (Криптографическая файловая система в ядре Linux начиная с версии 2.6.19); EncFS , GPL Encrypted filesystem ((Шифрованная файловая система) — в пользовательском пространстве.); EFS ((Encrypted file system, Шифрованная файловая система) — для Microsoft Windows систем. Является расширением файловой системы NTFS, использует сертификаты шифрования.); FSFS (Fast Secure File System — Быстрая Безопасная Файловая Система); FreeOTFE (Бесплатное свободное программное обеспечение для шифрования в Windows, Windows Mobile, и Linux.); PhoneBookFS ; Rubberhose filesystem ; Solid File System ((SolFS) — кроссплатформенная однофайловая виртуальная файловая система с шифрованием и сжатием.); Secure Shell File System ((SSHFS) — позволяет локально монтировать директорию с удаленного сервера, используя только учетные данные secure shell .); TrueCrypt  (Бесплатное свободное программное обеспечение для шифрования в Windows, Mac OS X и Linux.); ZFS  (Поддержка шифрования в файловой системе ZFS.).


Файловые системы с защитой от сбоев.


Файловые системы с встроенной избыточностью. Обычные файловые системы для встроенных систем использующие транзакции или журналы не должны попасть в этот список.

RAIF (Redundant Array of Independent Filesystems — Избыточный Массив Независимых Файловых систем — файловая система похожая на структуру RAID.); ZFS (Содержит свое внедрение RAID-5 и RAID-6 — RAID-Z и RAID-Z2 соответственно.).


5. Задачи файловой системы.


Основные функции любой файловой системы нацелены на решение следующих задач: именование файлов; программный интерфейс работы с файлами для приложений; отображения логической модели файловой системы на физическую организацию хранилища данных; организация устойчивости файловой системы к сбоям питания, ошибкам аппаратных и программных средств; содержание параметров файла, необходимых для правильного его взаимодействия с другими объектами системы (ядро, приложения и пр.).

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



6. Файловые системы FAT и NTFS – что круче?



А сейчас подумаем о самых известных и распространенных файловых системах FAT и NTFS. Посмотрим, какая все таки файловая система лучше, круче.

Самое фундаментальное свойство любой файловой системы, влияющее на быстродействие всех дисковых операций - структура организации и хранения информации, т.е. то, как, собственно, устроена сама файловая система. Первый раздел - попытка анализа именно этого аспекта работы, т.е. физической работы со структурами и данными файловой системы.

Для начала хотелось бы заметить, что любая файловая система так или иначе хранит файлы. Доступ к данным файлов - основная и неотъемлемая часть работы с файловой системой, и поэтому, прежде всего, нужно сказать пару слов об этом. Любая файловая система хранит данные файлов в неких объемах - секторах, которые используются аппаратурой и драйвером как самая маленькая единица полезной информации диска. Размер сектора в подавляющем числе современных систем составляет 512 байт, и все файловые системы просто читают эту информацию и передают её без какой либо обработки приложениям. Есть ли тут какие-то исключения? Практически нет. Если файл хранится в сжатом или закодированном виде - как это возможно, к примеру, в системе NTFS - то, конечно, на восстановление или расшифровку информации тратится время и ресурсы процессора. В остальных случаях чтение и запись самих данных файла осуществляется с одинаковой скоростью, какую файловую систему вы не использовали бы.

Обратим внимание на основные процессы, осуществляемые системой для доступа к файлам: Поиск данных файла

Выяснение того, в каких областях диска хранится тот или иной фрагмент файла - процесс, который имеет принципиально разное воплощение в различных файловых системах. Имейте в виду, что это лишь поиск информации о местоположении файла - доступ к самим данным, фрагментированы они или нет, здесь уже не рассматривается, так как этот процесс совершенно одинаков для всех систем. Речь идет о тех "лишних" действиях, которые приходится выполнять системе перед доступом к реальным данным файлов.

На что влияет этот параметр: на скорость навигации по файлу (доступ к произвольному фрагменту файла). Любая работа с большими файлами данных и документов, если их размер - несколько мегабайт и более. Этот параметр показывает, насколько сильно сама файловая система страдает от фрагментации файлов. NTFS способна обеспечить быстрый поиск фрагментов, поскольку вся информация хранится в нескольких очень компактных записях (типичный размер - несколько килобайт). Если файл очень сильно фрагментирован (содержит большое число фрагментов) - NTFS придется использовать много записей, что часто заставит хранить их в разных местах. Лишние движения головок при поиске этих данных, в таком случае, приведут к сильному замедлению процесса поиска данных о местоположении файла.

FAT32, из-за большой области самой таблицы размещения будет испытывать огромные трудности, если фрагменты файла разбросаны по всему диску. Дело в том, что FAT (File Allocation Table, таблица размещения файлов) представляет собой мини-образ диска, куда включен каждый его кластер. Для доступа к фрагменту файла в системе FAT16 и FAT32 приходится обращаться к соответствующей частичке FAT. Если файл, к примеру, расположен в трех фрагментах - в начале диска, в середине, и в конце - то в системе FAT нам придется обратиться к фрагменту FAT также в его начале, в середине и в конце. В системе FAT16, где максимальный размер области FAT составляет 128 Кбайт, это не составит проблемы - вся область FAT просто хранится в памяти, или же считывается с диска целиком за один проход и буферизируется. FAT32 же, напротив, имеет типичный размер области FAT порядка сотен килобайт, а на больших дисках - даже несколько мегабайт. Если файл расположен в разных частях диска - это вынуждает систему совершать движения головок винчестера столько раз, сколько групп фрагментов в разных областях имеет файл, а это очень и очень сильно замедляет процесс поиска фрагментов файла.

Вывод: Абсолютный лидер - FAT16, он никогда не заставит систему делать лишние дисковые операции для данной цели. Затем идет NTFS - эта система также не требует чтения лишней информации, по крайней мере, до того момента, пока файл имеет разумное число фрагментов. FAT32 испытывает огромные трудности, вплоть до чтения лишних сотен килобайт из области FAT, если файл разбросан разным областям диска. Работа с внушительными по размеру файлами на FAT32 в любом случае сопряжена с огромными трудностями - понять, в каком месте на диске расположен тот или иной фрагмент файла, можно лишь изучив всю последовательность кластеров файла с самого начала, обрабатывая за один раз один кластер (через каждые 4 Кбайт файла в типичной системе). Стоит отметить, что если файл фрагментирован, но лежит компактной кучей фрагментов - FAT32 всё же не испытывает больших трудностей, так как физический доступ к области FAT будет также компактен и буферизован.

Обратим внимание на основные процессы, осуществляемые системой для доступа к файлам:
" Поиск данных файла
Выяснение того, в каких областях диска хранится тот или иной фрагмент файла - процесс, который имеет принципиально разное воплощение в различных файловых системах. Имейте в виду, что это лишь поиск информации о местоположении файла - доступ к самим данным, фрагментированы они или нет, здесь уже не рассматривается, так как этот процесс совершенно одинаков для всех систем. Речь идет о тех "лишних" действиях, которые приходится выполнять системе перед доступом к реальным данным файлов.
На что влияет этот параметр: на скорость навигации по файлу (доступ к произвольному фрагменту файла). Любая работа с большими файлами данных и документов, если их размер - несколько мегабайт и более. Этот параметр показывает, насколько сильно сама файловая система страдает от фрагментации файлов.
" NTFS способна обеспечить быстрый поиск фрагментов, поскольку вся информация хранится в нескольких очень компактных записях (типичный размер - несколько килобайт). Если файл очень сильно фрагментирован (содержит большое число фрагментов) - NTFS придется использовать много записей, что часто заставит хранить их в разных местах. Лишние движения головок при поиске этих данных, в таком случае, приведут к сильному замедлению процесса поиска данных о местоположении файла.
" FAT32, из-за большой области самой таблицы размещения будет испытывать огромные трудности, если фрагменты файла разбросаны по всему диску. Дело в том, что FAT (File Allocation Table, таблица размещения файлов) представляет собой мини-образ диска, куда включен каждый его кластер. Для доступа к фрагменту файла в системе FAT16 и FAT32 приходится обращаться к соответствующей частичке FAT. Если файл, к примеру, расположен в трех фрагментах - в начале диска, в середине, и в конце - то в системе FAT нам придется обратиться к фрагменту FAT также в его начале, в середине и в конце. В системе FAT16, где максимальный размер области FAT составляет 128 Кбайт, это не составит проблемы - вся область FAT просто хранится в памяти, или же считывается с диска целиком за один проход и буферизируется. FAT32 же, напротив, имеет типичный размер области FAT порядка сотен килобайт, а на больших дисках - даже несколько мегабайт. Если файл расположен в разных частях диска - это вынуждает систему совершать движения головок винчестера столько раз, сколько групп фрагментов в разных областях имеет файл, а это очень и очень сильно замедляет процесс поиска фрагментов файла.
Вывод: Абсолютный лидер - FAT16, он никогда не заставит систему делать лишние дисковые операции для данной цели. Затем идет NTFS - эта система также не требует чтения лишней информации, по крайней мере, до того момента, пока файл имеет разумное число фрагментов. FAT32 испытывает огромные трудности, вплоть до чтения лишних сотен килобайт из области FAT, если файл разбросан разным областям диска. Работа с внушительными по размеру файлами на FAT32 в любом случае сопряжена с огромными трудностями - понять, в каком месте на диске расположен тот или иной фрагмент файла, можно лишь изучив всю последовательность кластеров файла с самого начала, обрабатывая за один раз один кластер (через каждые 4 Кбайт файла в типичной системе). Стоит отметить, что если файл фрагментирован, но лежит компактной кучей фрагментов - FAT32 всё же не испытывает больших трудностей, так как физический доступ к области FAT будет также компактен и буферизован.

Вывод: NTFS имеет наиболее эффективную систему нахождения свободного места. Стоит отметить, что действовать "в лоб" на FAT16 или FAT32 очень медленно, поэтому для нахождения свободного места в этих системах применяются различные методы оптимизации, в результате чего и там достигается приемлемая скорость. (Одно можно сказать наверняка - поиск свободного места при работе в DOS на FAT32 - катастрофический по скорости процесс, поскольку никакая оптимизация невозможна без поддержки хоть сколь серьезной операционной системы).

Работа с каталогами и файлами
Каждая файловая система выполняет элементарные операции с файлами - доступ, удаление, создание, перемещение и т.д. Скорость работы этих операций зависит от принципов организации хранения данных об отдельных файлах и от устройства структур каталогов.
На что влияет этот параметр: на скорость осуществления любых операций с файлом, в том числе - на скорость любой операции доступа к файлу, особенно - в каталогах с большим числом файлов (тысячи).
" FAT16 и FAT32 имеют очень компактные каталоги, размер каждой записи которых предельно мал. Более того, из-за сложившейся исторически системы хранения длинных имен файлов (более 11 символов), в каталогах систем FAT используется не очень эффективная и на первый взгляд неудачная, но зато очень экономная структура хранения этих самих длинных имен файлов. Работа с каталогами FAT производится достаточно быстро, так как в подавляющем числе случаев каталог (файл данных каталога) не фрагментирован и находится на диске в одном месте.
Единственная проблема, которая может существенно понизить скорость работы каталогов FAT - большое количество файлов в одном каталоге (порядка тысячи или более).

NTFS использует гораздо более эффективный способ адресации - бинарное дерево. Эта организация позволяет эффективно работать с каталогами любого размера - каталогам NTFS не страшно увеличение количества файлов в одном каталоге и до десятков тысяч.
Стоит заметить, однако, что сам каталог NTFS представляет собой гораздо менее компактную структуру, нежели каталог FAT - это связано с гораздо большим (в несколько раз) размером одной записи каталога. Данное обстоятельство приводит к тому, что каталоги на томе NTFS в подавляющем числе случаев сильно фрагментированы. Размер типичного каталога на FAT-е укладывается в один кластер, тогда как сотня файлов (и даже меньше) в каталоге на NTFS уже приводит к размеру файла каталога, превышающему типичный размер одного кластера. Это, в свою очередь, почти гарантирует фрагментацию файла каталога, что, к сожалению, довольно часто сводит на нет все преимущества гораздо более эффективной организации самих данных.

Вывод: структура каталогов на NTFS теоретически гораздо эффективнее, но при размере каталога в несколько сотен файлов это практически не имеет значения. Фрагментация каталогов NTFS, однако, уверенно наступает уже при таком размере каталога. Для малых и средних каталогов NTFS, как это не печально, имеет на практике меньшее быстродействие.

К сожалению, как это часто бывает во всевозможных компьютерных вопросах, практика не очень хорошо согласуется с теорией. NTFS, имеющаяся, казалось бы, очевидные преимущества в структуре, показывает не настолько уж фантастические результаты, как можно было бы ожидать. Какие еще соображения влияют на быстродействие файловой системы? Каждый из рассматриваемых далее вопросов вносит свой вклад в итоговое быстродействие. Помните, однако, что реальное быстродействие - результат действия сразу всех факторов, поэтому и в этой части статьи не стоит делать поспешных выводов.

FAT16 имеет очень мало данных, отвечающих за организацию файловой системы. Из служебных областей можно выделить только саму область FAT, которая не может превышать 128 Кбайт - эта область отвечает и за поиск фрагментов файлов, и за поиск свободного места на томе. Каталоги системы FAT также очень компактны. Общий объем памяти, необходимый для предельно эффективной работы с FAT-ом, может колебаться от сотни килобайт и до мегабайта-другого - при условии огромного числа и размера каталогов, с которыми ведется работа.

FAT32 отличается от FAT16 лишь тем, что сама область FAT может иметь более внушительные размеры. На томах порядка 5 - 10 Гбайт область FAT может занимать объем в несколько Мбайт, и это уже очень внушительный объем, надежно кэшировать который не представляется возможным. Тем не менее, область FAT, а вернее те фрагменты, которые отвечают за местоположение рабочих файлов, в подавляющем большинстве систем находятся в памяти машины - на это расходуется порядка нескольких Мбайт оперативной памяти.

NTFS, к сожалению, имеет гораздо большие требования к памяти, необходимой для работы системы. Прежде всего, кэширование сильно затрудняет большие размеры каталогов. Размер одних только каталогов, с которыми активно ведет работу система, может запросто доходить до нескольких Мбайт и даже десятков Мбайт! Добавьте к этому необходимость кэшировать карту свободного места тома (сотни Кбайт) и записи MFT для файлов, с которыми осуществляется работа (в типичной системе - по 1 Кбайт на каждый файл). К счастью, NTFS имеет удачную систему хранения данных, которая не приводит к увеличению каких-либо фиксированных областей при увеличении объема диска. Количество данных, с которым оперирует система на основе NTFS, практически не зависит от объема тома, и основной вклад в объемы данных, которые необходимо кэшировать, вносят каталоги. Тем не менее, уже этого вполне достаточно для того, чтобы только минимальный объем данных, необходимых для кэширования базовых областей NTFS, доходил до 5 - 8 Мбайт.

К сожалению, можно с уверенностью сказать: NTFS теряет огромное количество своего теоретического быстродействия из-за недостаточного кэширования. На системах, имеющих менее 64 Мбайт памяти, NTFS просто не может оказаться быстрее FAT16 или FAT32. Единственное исключение из этого правила - диски FAT32, имеющие объем десятки Гбайт (я бы лично серьезно опасался дисков FAT32 объемом свыше, скажем, 30 Гбайт). В остальных же случаях - системы с менее чем 64 мегабайтами памяти просто обязаны работать с FAT32 быстрее.

Системы с более чем 64 Мбайтами, а особенно - со 128 Мбайт и более памяти, смогут уверенно кэшировать абсолютно всё, что необходимо для работы систем, и вот на таких компьютерах NTFS, скорее всего, покажет более высокое быстродействие из-за более продуманной организации данных.

Время случайного доступа (random seek time). К сожалению, для доступа к системным областям на типичном диске более сложной файловой системы (NTFS) приходится совершать, в среднем, больше движений головками диска, чем в более простых системах (FAT16 и FAT32). Гораздо большая фрагментация каталогов, возможность фрагментации системных областей - всё это делает диски NTFS гораздо более чувствительными к скорости считывания произвольных (случайных) областей диска. По этой причине использовать NTFS на медленных (старых) дисках не рекомендуется, так как высокое (худшее) время поиска дорожки дает еще один плюс в пользу систем FAT.

Наличие Bus Mastering. Bus Mastering - специальный режим работы драйвера и контроллера, при использовании которого обмен с диском производится без участия процессора. Стоит отметить, что система запаздывающего кэширования NTFS сможет действовать гораздо более эффективно при наличии Bus Mastering, т.к. NTFS производит отложенную запись гораздо большего числа данных.

Подводя краткий итог влиянию быстродействия диска и контроллера на быстродействия системы в целом, можно сказать так: NTFS страдает от медленных дисков гораздо сильнее, чем FAT.

Быстродействие системы FAT32, напротив, можно довольно существенно повысить, увеличив размер кластера. Если в NTFS размер кластера почти не влияет на размер и характер данных системных областей, то в системе FAT увеличивая кластер в два раза, мы сокращаем область FAT в те же два раза. Вспомните, что в типичной системе FAT32 эта очень важная для быстродействия область занимает несколько Мбайт. Сокращение области FAT в несколько раз даст заметное увеличение быстродействия, так как объем системных данных файловой системы сильно сократиться - уменьшается и время, затрачиваемое на чтение данных о расположении файлов, и объем оперативной памяти, необходимый для буферизации этой информации.

FAT - плюсы:
--Для эффективной работы требуется немного оперативной памяти.
--Быстрая работа с малыми и средними каталогами.
--Диск совершает в среднем меньшее количество движений головок (в сравнении с NTFS).
--Эффективная работа на медленных дисках.
FAT - минусы:
--Катастрофическая потеря быстродействия с увеличением фрагментации, особенно для больших дисков (только FAT32).
--Сложности с произвольным доступом к большим (скажем, 10% и более от размера диска) файлам.
--Очень медленная работа с каталогами, содержащими большое количество файлов.
NTFS - плюсы:
--Фрагментация файлов не имеет практически никаких последствий для самой файловой системы - работа фрагментированной системы ухудшается только с точки зрения доступа к самим данным файлов.
--Сложность структуры каталогов и число файлов в одном каталоге также не чинит особых препятствий быстродействию.
--Быстрый доступ к произвольному фрагменту файла (например, редактирование больших .wav файлов).
--Очень быстрый доступ к маленьким файлам (несколько сотен байт) - весь файл находится в том же месте, где и системные данные (запись MFT).
NTFS - минусы:
--Существенные требования к памяти системы (64 Мбайт - абсолютный минимум, лучше - больше).
--Медленные диски и контроллеры без Bus Mastering сильно снижают быстродействие NTFS.
--Работа с каталогами средних размеров затруднена тем, что они почти всегда фрагментированы.
--Диск, долго работающий в заполненном на 80% - 90% состоянии, будет показывать крайне низкое быстродействие.

Хотелось бы еще раз подчеркнуть, что на практике основной фактор, от которого зависит быстродействие файловой системы - это, как ни странно, объем памяти машины. Системы с памятью 64-96 Мбайт - некий рубеж, на котором быстродействие NTFS и FAT32 примерно эквивалентно. Обратите внимание также на сложность организации данных на вашей машине. Если вы не используете ничего, кроме простейших приложений и самой операционной системы - может случиться так, что FAT32 сможет показать более высокое быстродействие и на машинах с большим количеством памяти.

NTFS - система, которая закладывалась на будущее, и это будущее для большинства реальных применений сегодняшнего дня еще, к сожалению, видимо не наступило. На данный момент NTFS обеспечивает стабильное и равнодушное к целому ряду факторов, но, пожалуй, всё же невысокое - на типичной "игровой" домашней системе - быстродействие. Основное преимущество NTFS с точки зрения быстродействия заключается в том, что этой системе безразличны такие параметры, как сложность каталогов (число файлов в одном каталоге), размер диска, фрагментация и т.д. В системах FAT же, напротив, каждый из этих факторов приведет к существенному снижению скорости работы.

Только в сложных высокопроизводительных системах - например, на графических станциях или просто на серьезных офисных компьютерах с тысячами документов, или, тем более, на файл-серверах - преимущества структуры NTFS смогут дать реальный выигрыш быстродействия, который порой заметен невооруженным глазом. Пользователям, не имеющим большие диски, забитые информацией, и не пользующимся сложными программами, не стоит ждать от NTFS чудес скорости - с точки зрения быстродействия на простых домашних системах гораздо лучше покажет себя FAT32.



Заключение



Cегодня в Windows применяются файловые системы: FAT, FAT32, HPFS и NTFS.
Преимущества FAT - низкие накладные расходы на хранение данных и тотальная совместимость с огромным количеством операционных систем и аппаратных платформ. Этой файловой системой по-прежнему пользуются для форматирования дискет, где большой объем раздела, поддерживаемый другими файловыми системами, не играет роли, а низкие накладные расходы позволяют экономно использовать малый объем дискеты (NTFS требует для хранения данных больше места, что совершенно не приемлемо для дискет).

Область применения FAT32 на самом деле гораздо уже - эту файловую систему стоит применять, если Вы собираетесь получать доступ к разделам и с помощью Windows 9x и с помощью Windows 2000/XP. Но так как актуальность Windows 9x сегодня практически сошла на нет, то и использование этой файловой системы не представляет особого интереса.

Некоторые из возможностей, обеспечиваемых на сегодняшний день только файловой системой NTFS, перечислены ниже:

1). NTFS обеспечивает широкий диапазон разрешений, в отличие от FAT, что дает возможность индивидуальной установки разрешений для конкретных файлов и каталогов. Это позволяет указать, какие пользователи и группы имеют доступ к файлу или папке и указать тип доступа.

2). Встроенные средства восстановления данных; поэтому ситуации, когда пользователь должен запускать на томе NTFS программу восстановления диска, достаточно редки. Даже в случае краха системы NTFS имеет возможность автоматически восстановить непротиворечивость файловой системы, используя журнал транзакций и информацию контрольных точек.

3). Реализованная в виде бинарного-дерева структура папок файловой системы NTFS позволяет существенно ускорить доступ к файлам в папках большого объема по сравнению со скоростью доступа к папкам такого же объема на томах FAT.

4). NTFS позволяет осуществлять сжатие отдельных папок и файлов, можно читать сжатые файлы и писать в них без необходимости вызова программы, производящей декомпрессию.

Список литературы

1. Гук М. Аппаратные средства IBM PC: Бестселлер - 2-е изд.: Питер, 2005.

2. В.Э. Фигурнов «IBM PC для пользователя» - 7е изд., перераб. и доп. - М. ИНФА-М, 1998.

3. Обзор файловых систем FAT, HPFS и NTFS [Электронный ресурс] - Режим доступа: http://support.microsoft.com/kb/100108 - Заголовок с экрана.

4. Дмитрий Бардиян. Файловые системы FAT и NTFS.





© Рефератбанк, 2002 - 2017