Что такое файловая система?
- Категория: Что такое?
- – Автор: Игорь (Администратор)
В рамках данного обзора, я расскажу вам что такое файловая система, а так же про некоторые ее особенности.
Часто, когда заходит речь о компьютерах, можно услышать такой термин как "файловая система". В подобных ситуациях, многим людям интуитивно понятно, что речь идет о привычных каталогах и файлах, но вот что-то более существенное сказать может не каждый. Поэтому далее рассмотрим этот термин более подробно.
Примечание: Данный обзор предназначен для начинающих и обычных пользователей.
Файловая система это
Файловая система - это метод организации, хранения и именования данных в носителях информации. При этом важно отметить, что разновидностей файловых систем существует достаточно много. Например, операционный системы Windows и Linux, по умолчанию, используют принципиально разные файловые системы.
Но, обо всем по порядку.
Зачем нужна файловая система?
Суть проблемы в следующем:
Первое. Жесткий диск (советую прочитать обзор, чтобы было проще понимать) это некоторое место, разбитое по секторам данных, доступных для записи и чтения. Если приводить аналогию из жизни, то это как коробки с вещами в большом здании. При этом вещи могут храниться только в коробках (секторах) и не важно полностью ли они забиты или нет.
Второе. Пользователю необходимо хранить свои данные (складывать коробки с барахлом в свободных местах здания) и, в принципе, он может самостоятельно записывать их в сектора. Однако, размеры дисков настолько велики, что нужна какая-либо система адресации (не будете же вы каждый раз проверять каждую коробку в поисках, где вы оставили свои вещи).
Третье. Система адресации должна подразумевать многоуровневую адресацию, из-за большого объема пользовательских данных. Например, каталог "вещи" с подкаталогами "одежда", "книги" и прочее. При этом внутри каждого каталога или подкаталога могут находится отдельные файлы. Например, коробка с футболками, коробка с носками, коробка с книгами и тому подобное.
Примечание: Стоит знать, что самые первые подходы подразумевали одноуровневую файловую систему. Простыми словами, в них не существовало каталогов, а были только файлы. Происходило это потому, что хранилища данных были крайне малы.
Четвертое. Каждый из файлов может занимать достаточно много места. Например, у некоторых дам гардероб может занимать более одной коробки (шкафа, комнат, хранилищ, зданий...). Поэтому необходимо, чтобы адресация в файловой системе подразумевала, что данные могут храниться фрагментами и в разных частях жесткого диска. Например, десять коробок с косметикой образуют один файл "косметика.doc", а вот физически храниться эти коробки могут в разных частях здания.
Примечание: Дополнительно советую ознакомиться с обзором что такое файл.
Все эти проблемы решает файловая система, позволяя пользователю обращаться к данным не на физическом уровне (к отдельным секторам диска), а на логическом. Иными словами, неважно как были сохранены данные файла (в одном месте диска или везде по чуть-чуть), пользователь может получить доступ к информации, задав только лишь логический путь до файла. Например, "C:\Разобрать\Фотки\Котята\Моська.jpg". Это будет означать, что нужно открыть диск "C", затем каталог "Разобрать", затем "Фотки", затем "Котята" и наконец открыть файл "Моська.jpg", считав все нужные данных из секторов жесткого диска, где бы они не располагались. Однако, делать это будет не пользователь (копаться в секторах), а файловая система.
Примечание: Стоит знать, что, привычный для пользователей Windows, разделитель каталогов и файлов символ "\" может быть иным в других операционных системах. Например, в Linux разделитель это символ "/" (обратный слеш).
Почему в файловых системах может быть нужна дефрагментация?
Для понимания зачем нужна дефрагментация в файловых системах, рассмотрим небольшой пример проблемы фрагментации. Допустим, жесткий диск состоит из 10 секторов с номерами от 1 до 10. Считывающая и записывающая головка этого диска в один момент времени может находится только в одном из секторов. Например, в секторе 3. Каждый сдвиг головки от сектора к сектору требует определенного времени. Например, перемещение головки из сектора 3 в сектор 4 выполняется существенно быстрее (всего 1 сдвиг), чем перемещение из сектора 3 в сектор 10 (целых 7 сдвигов). Если продолжить пример с коробками, то если коробки лежат рядом, то их легче просматривать, чем если они лежат в разных углах помещения.
Исходя из вышеописанного, логично, что гораздо выгоднее данные файлов сохранять в близкие к друг другу сектора (в порядке их следования). Например, если файл состоит из трех блоков А, Б и В (в строгой последовательности), то его выгодно расположить так: в секторе 1 данные А, в секторе 2 данные Б, а в секторе 3 данные В.
Теперь, представим, что вы записали на жесткий диск 10 файлов, размером по 1 сектору. В секторе 1 файл 1, в секторе 2 файл 2 и так далее. Затем удалим 2-й, 6-й и 10-й файл. Соответственно, 2-й, 6-й и 10-й сектор стали доступными для записи. Теперь, запишем некий файл "котег.jpg", размером 3 сектора. Его данные будут записаны во 2-й, затем в 6-й и в 10-й секторы.
Не сложно догадаться, что если вы захотите открыть файл "котег.jpg", то головке диска вначале необходимо будет сдвинуться во 2-й сектор, затем в 6-й, а затем в 10-й. По времени это займет: перемещение головки до сектора 2 + 3 операции считывания + 8 операция сдвига по секторам. Логично, что первые две части не зависят от порядка хранения информации, а вот третья часть зависит. Например, если бы сектора размещались подряд (2-3-4), то потребовалось бы не 8, а всего 2 операции сдвига по секторам.
Это и называется фрагментацией, когда отдельные части файлов хранятся в разных местах диска (а не последовательно), что приводит к снижению скорости считывания информации. Решается эта проблема путем переразмещения данных, иными словами дефрагментацией. Например, файл "котег.jpg" расположить в секторах 1,2 и 3, а остальные файлы в оставшихся секторах.
Примечание: Стоит знать, что в SSD дисках такой проблемы нет, но зато существуют иные.
Наиболее известные файловые системы
1. FAT (FAT12, FAT16 и FAT32). Данная файловая система является одной из простых. Вначале использовалась в простейшей операционной системе DOS, а затем в Windows. FAT12 использовалась в дискетах, а FAT16 и FAT32 для более массивных данных. Например, FAT32 можно до сих пор встретить во флешках.
Примечание: Стоит знать, что FAT32 очень быстро стала непопулярной, в связи с ростом вместимости жестких дисков. Дело в том, что, во-первых, в Windows файловая система FAT32 не поддерживает логические диски, размером более 32 Гб, а, во-вторых, максимальный размер файла в ней составляет 4Гб.
2. NTFS. Данная файловая система была создана специально для Windows. Решает проблему размеров в FAT32 (как диска, так и отдельных файлов), а так же предполагает ряд дополнительных преимуществ. Например, NTFS более устойчива к различного вида сбоям, таким как внезапное отключение питания компьютера.
3. Ext2, Ext3, Ext4. Эти файловые системы применяются в Unix / Linux семействе. При этом Ext3 это расширение Ext2, в нее добавилось журналирование записи, а Ext4 это расширение Ext3, в нее добавились оптимизация и расширенные атрибуты файлов.
4. HFS и HFS+. Обе применяются в операционных системах семейства MacOS.
Дополнительно советую ознакомиться с обзором про место на жестком диске и почему его меньше, где рассказывается о некоторых специфических особенностях, с которыми вряд ли знаком обычный пользователь.
Теперь, вы знаете что такое файловая система и некоторые ее особенности.
☕ Понравился обзор? Поделитесь с друзьями!