56

Я использовал Windows с детства, и когда я слышу фразу "Файловая система Windows", я вспоминаю каталоги (папки) внутри каталогов, папку с именем SYSTEM, папку с файлами PROGRAM FILES и т.д. Является ли это системой? Просто расположение папок?

А потом я недавно начал использовать Linux, и мой справочник говорит, что в файловой системе Linux все начинается с корня и оттуда ветвится. Чем это действительно отличается от Windows? Я имею в виду, что система linux и система windows - это всего лишь два способа настройки дерева каталогов. Это то, что означает файловая система?

4 ответа4

131

Просто расположение папок?

Звучит слишком хорошо, чтобы быть правдой...

Давайте возьмем файловую систему FAT32 в качестве примера. Я могу установить Windows XP на него, но я также могу использовать его на карте памяти. На карте памяти нет тех папок, которые вы суммируете.

Так... Не путайте структуру каталогов семейства операционных систем с файловой системой.

Это то, что означает файловая система?

Нет ... Это относится к основным битам и байтам, которые заставляют вашу структуру каталогов работать.

Основные биты и байты? Покажите мне FAT32!

Давайте посмотрим, как выглядит FAT32 :

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

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

Запись каталога будет указывать на список записей каталога / файла ...

В пространстве кластеров мы можем теперь путешествовать по нашим кластерам, чтобы найти нужные нам данные. Кластер в основном содержит данные и информацию, где следующие фрагменты

Отличаются ли другие файловые системы? Покажи мне NTFS!

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

Основная идея заключается в том, что NTFS является огромным улучшением по сравнению с FAT32, который является более надежным / эффективным. Имея лучшее представление о (не) используемом пространстве, используя растровое изображение, чтобы дополнительно помочь в борьбе с фрагментацией. И так далее...

- http://thinkdifferent.typepad.com/photos/uncategorized/04ntfsfilesystem.png

Как насчет файловых систем в Linux? Покажите мне ext2/3!

Идея состоит в том, что ext2/ext3 используют суперблоки и иноды; это позволяет использовать мягкие и жесткие ссылки, каталоги, которые являются файлами, файлы с несколькими именами и так далее. Основная суть состоит в том, чтобы абстрагироваться от файловой системы, чтобы она могла выполнять больше меташиша ...

- http://thinkdifferent.typepad.com/photos/uncategorized/03extfilesystem.png

14

Большая разница между Linux и Windows, по крайней мере, когда дело доходит до их файловых систем и деревьев каталогов, заключается в том, что в Linux "все является файлом", и все происходит от одного корня. Это также относится практически ко всем производным от Unix ОС, таким как BSD, OS X, Solaris и т.д., Но я собираюсь просто сказать "Linux", чтобы быть универсальным (если не совсем точным).

Но что это означает на практике?

Windows допускает наличие нескольких именованных корней для своих файловых систем. Вы понимаете это как буквы дисков: C: D: E: и так далее. У каждого есть корень (\) и дерево, которое происходит от него. Последние версии Windows допускают такие вещи, как точки монтирования тома, где том (то, что вы считаете разделом) можно монтировать в существующую пустую папку. Таким образом, вместо D:\, представляющего корень, скажем, вашего оптического (CD/DVD/BR) привода, вы можете вместо этого смонтировать его в C:\Optical . Это больше похоже на то, что делает Linux. Существует также базовое, однокорневое пространство имен объектов для всего в Windows, аналогичное тому, что использует Linux и которым управляет диспетчер объектов, но большинство пользователей редко видят в нем ссылки, поскольку оно в основном используется ядром.

У Linux один корень: / . Все происходит от него, и он не обязательно должен представлять ваш жесткий диск. Жесткие диски, оптические приводы, карты памяти, сетевые ресурсы, принтеры, сканеры, процессоры, оперативная память, процессы ... все это представлено где-то внутри этого единого пространства имен и может быть доступно любому процессу с помощью стандартных API-интерфейсов управления файлами, если у вас есть достаточно высокий уровень доступа. То, что вы можете читать или писать с него, не означает, что это файл на вашем жестком диске в Linux. Например, устройства обычно монтируются в /dev , поэтому доступ к ним часто означает, что вы разговариваете с устройством - может быть, это звуковая карта, или сканер, или камера и т.д. Они называются файлами устройств . Procfs - это специальная "файловая система", которая обычно монтируется в /proc и имеет "каталог" для каждого запущенного процесса, с файлами в каждом каталоге, относящимися к таким вещам, как командная строка, используемая для вызова этого процесса, карты памяти, открытые файлы и т.д. Sysfs - это другая специальная файловая система (смонтированная в /sys), используемая для предоставления обширной информации о запущенных объектах ядра, а также для точной настройки работающего ядра путем простой записи в определенный файл.

3

Файловая система не только о том, как настроено дерево каталогов, но также и о том, как эта информация кодируется на носителе. Для Linux существует несколько файловых систем: ext3, xfs, raiserfs и т.д.

3

Вы можете думать о файловых системах как о различных форматах для хранения файлов и папок, в некоторой степени аналогично тому, как MS Word и PDF - это разные форматы для хранения документов, или MP3 и WAV - это разные форматы для хранения аудио.

Имея несколько файлов и папок, файловая система - это формат и код, который сохраняет их на диск, чтобы их можно было снова прочитать.

И точно так же, как не все видеоплееры могут воспроизводить все форматы видео, не все операционные системы могут читать все файловые системы. Например, если вы храните файл из Linux на USB-накопителе в формате ext3, Windows не сможет прочитать файл, поскольку не знает, как обращаться с файловой системой ext3.

Общие файловые системы включают

  • FAT и NTFS (Windows, NTFS является стандартной в более новых версиях Windows)
  • ext3 и ext4 (Linux)
  • HFS plus (OS X)
  • ISO 9660 и UDF (CD, DVD и Blu-Ray)

Смотрите Википедию для сравнения файловых систем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .