Файл - это именованная часть данных на диске. Для работы с файлами на диске должна быть создана соответствующая структура. Файловая система - это порядок организации, хранения и именования данных. Сейчас существует множество файловых систем, но приложения не обязаны знать, как работать с каждой из них. Для приложений существует свой уровень абстракции - виртуальная файловая система, с помощью которой приложения пишут и читают с диска (справедливо только для Linux).
Минимальная единица, с которой работает файловая система - это блок (в ОС Linux) или кластер (в ОС Windows). Блок или кластер состоит из нескольких секторов и мы не можем занять в файловой системе место меньше, чем один блок или кластер.
Все файловые системы можно разделить на 2 группы - журналируемые и нежурналируемые, в зависимости от того, будет ли как-то контролироваться факт записи на диск или нет. Для записи на диск нужно выполнить следующие действия:

  • зарезервировать место в файловой системе;
  • записать данные на диск;
  • записать информацию о местонахождении данных;
  • создать имя файла.

Нежурналируемые ФС

Примером таких систем может быть ext2 и fat. Если в процессе записи на диск действие будет остановлено (например, отключится электричество), то в ФС возникнут ошибки, будут повреждены файлы и директории. У таких ФС есть одно преимущество - это скорость. Поэтому сейчас они используются в основном в качестве разделов для временных файлов. Кроме того, они используются на флеш-накопителях, т.к. меньше используют операции перезаписи из-за отсутствия журнала.

Журналируемые ФС

Журналируемые файловые системы работают по транзакционному принципу. В структуре раздела есть журнал, в котором записываются действия перед тем, как будут произведены. И после их выполнения журнал очищается. Транзакция — это набор действий, выполняемых как одно целое, то есть оно или полностью завершено, или нет. Если транзакция будет прервана, то в соответствии с записью в журнале эти изменения откатятся, и транзакция будет считаться невыполненной. Такой подход делает работу удобнее и надежнее. Чтобы в нежурналируемой системе обнаружить незавершенные действия, требуется проверить целиком весь диск, всю файловую систему. Журналируемые ФС работают медленнее, чем если бы они были отформатированы в аналогичные нежурналируемые. Примером таких ФС могут быть - ext4, NTFS.

Файловая система Windows - NTFS

NTFS - new technology file system, основная файловая система ОС Windows.
Основные особенности:

  • повышенная надежность - NTFS использует файл журнала и сведения о контрольных точках для восстановления согласованности файловой системы при перезагрузке компьютера после сбоя системы;
  • повышенная безопасность - безопасность на основе списка управления доступом (ACL) для файлов и папок, а также поддержка шифрования диска BitLocker;
  • поддержка больших томов - NTFS может поддерживать тома размером до 8 ПБ в версии Windows Server 2019 и выше и Windows 10;
  • максимальная длина имени файла и пути к файлу - поддержка длинных имен файлов с обратной совместимостью, поддержка длины пути свыше 260 симоволов;
  • динамическое выделение емкости - применение дисковых квот для отслеживания и контроля использования дискового пространства в томах NTFS для отдельных пользователей, сжатие файловой системы, увеличение размера тома NTFS возможно путем добавления нераспределенного пространства с того же или с другого диска.
  • for_students/os/fs.txt
  • Последнее изменение: 2022/01/27 09:35
  • ejlka