Является ли файловая система просто макетом папок?


56

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

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


3
Вы пытались прочитать en.wikipedia.org/wiki/Filesystem ?
Чороба

2
К вашему сведению, нет "файловой системы Linux". Книга хотела сказать о дереве каталогов linux. И, да, дерево каталогов - это просто расположение папок.
user606723

2
В Linux отсутствует концепция дисков , так что под ними все монтируется /. В Windows это не так, так как в ней отсутствует монтирование в стиле UNIX (поправьте меня, если я ошибаюсь), поэтому все организовано вокруг дисков.
new123456

1
@ new123456 Почувствуйте себя исправленным. Windows поддерживает монтирование (начиная с W2k или NT), хотя эта функция используется очень редко.
Кубанчик

Ответы:


130

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

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

Давайте возьмем файловую систему 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


@Shadok: я мог бы улучшить более поздние разделы позже, хотя я довольно занят в эти дни ... Спасибо.
Тамара Вийсман

2
Я бы +2 это, если бы мог. Теперь, почему больше документов и спецификаций не может быть больше похоже на это?
великий волк

Возможно, вам следует написать в блоге об этом @TomWijsman ;-)
Ivo Flipse

@IvoFlipse: «Хранение данных: как это работает?» серия может быть возможна, вот другой ответ . Большие & $ # картинки говорят больше, чем слова ... :)
Тамара Вийсман

Определенно, звучит как хорошая идея
Ivo Flipse

14

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

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

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

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


2
Обратите внимание, что файловую систему легко спутать с планировкой каталогов с точки зрения пользователя. Хотя термин «файловая система» на самом деле предназначен для того, чтобы выглядеть как внутренний элемент файловой системы; например. разница между FAT и NTFS, а также различия между ext2 и ext3 ...
Тамара Вийсман

4
@Tom: Похоже, что OP действительно спрашивает о различиях в различных иерархиях объектов между Linux и Windows, а не о том, как биты располагаются на диске. udev, procfs, sysfs, tmpfs и т. д. являются файловыми системами так же, как ext2 или NTFS в Linux, несмотря на то, что они не связаны с содержимым на диске.
афразир

Это только часть его вопроса «Является ли файловая система просто макетом папок?», То, как вы отвечаете на вопрос, только делает его более запутанным и не решает этот вопрос. Поэтому я оставил уведомление для читателей ...
Тамара Вийсман

+1 для "все это файл" в Linux. Это большая разница между Linux и Windows для меня.
Рабарберски

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)

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.