По предназначению файловые системы можно классифицировать на нижеследующие категории.
· Для носителей с произвольным доступом (например, жёсткий диск): 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 и др.
· Для флэш-памяти: YAFFS, ExtremeFFS, exFAT.
· Немного выпадают из общей классификации специализированные файловые системы: ZFS (собственно файловой системой является только часть ZFS),VMFS (т. н. кластерная файловая система, которая предназначена для хранения других файловых систем) и др.
Задачи файловой системы
Основные функции любой файловой системы нацелены на решение следующих задач:
· именование файлов;
· программный интерфейс работы с файлами для приложений;
· отображения логической модели файловой системы на физическую организацию хранилища данных;
· организация устойчивости файловой системы к сбоям питания, ошибкам аппаратных и программных средств;
· содержание параметров файла, необходимых для правильного его взаимодействия с другими объектами системы (ядро, приложения и пр.).
В многопользовательских системах появляется ещё одна задача: защита файлов одного пользователя от несанкционированного доступа другого пользователя, а также обеспечение совместной работы с файлами, к примеру, при открытии файла одним из пользователей, для других этот же файл временно будет доступен в режиме «только чтение».