Чи є файлова система лише компонуванням папок?


56

Я використовував Windows з дитинства, і коли я чую фразу "Файлова система Windows", я думаю про каталоги (папки) в каталогах, папку під назвою SYSTEM, папку під назвою FILES PROGRAM і т. Д. Це система? Просто компонування папок?

І тоді я нещодавно почав використовувати Linux, і мій довідник говорить про те, що у файловій системі linux все починається з кореня та відгалужується звідти. Чим це насправді відрізняється від Windows? Я маю на увазі, здається, що система Linux та система Windows - це лише два способи налаштування дерева каталогів. Це що означає файлова система?


3
Ви спробували прочитати en.wikipedia.org/wiki/Filesystem ?
choroba

2
FYI, "Файлової системи Linux" немає. Що книга мала сказати, це дерево директорій Linux. І так, дерево каталогів - це лише макет папок.
user606723

2
У Linux відсутня концепція накопичувачів , така що все встановлено під /. У Windows це не так, оскільки йому не вистачає монтажу в стилі UNIX (виправте мене, якщо я тут помиляюся), тому все організовано навколо накопичувачів.
new123456

1
@ new123456 Відчуваю, що виправлено. Windows підтримує встановлення (починаючи з W2k або NT), хоча ця функція використовується дуже рідко.
kubanczyk

1
Одна відмінність полягає в тому, що слово "файлова система" має три різні значення .
JdeBP

Відповіді:


130

Просто компонування папок?

Звучить занадто добре, щоб бути правдою ...

Візьмемо для прикладу файлову систему FAT32. Я можу встановити на ньому Windows XP, але також можу використовувати його на картці пам'яті. На картці пам'яті у вас немає тих папок, які ви підсумуєте.

Отже ... Не плутайте макет каталогів сімейства операційних систем з файловою системою.

Це що означає файлова система?

Ні ... Це стосується базових бітів і байтів, які змушують роботу структури вашого каталогу.

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

Давайте подивимось на те, як виглядає FAT32 :

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

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

Запис у каталозі вказуватиме на список записів у каталозі / файлі ...

У просторі кластерів ми тепер можемо подорожувати своїми кластерами, щоб знайти потрібні нам дані. Кластер по суті містить дані та інформацію, де знаходяться наступні фрагменти

введіть тут опис зображення

Чи відрізняються інші файлові системи? Покажіть мені NTFS!

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

Основна ідея полягає в тому, що NTFS - це величезне поліпшення порівняно з FAT32, яке є більш надійним / ефективним. Краще уявлення про (не) використаний простір, використовуючи растрову карту для подальшої допомоги проти фрагментації. І так далі...

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

Що з файловими системами в Linux? Покажіть мені ext2 / 3!

Ідея полягає в тому, що ext2 / ext3 використовують супер блоки та inode; це дозволяє використовувати м'які та жорсткі посилання, каталоги, які є файлами, файлами з кількома іменами тощо. Основна суть - це абстрагування, щоб дозволити файловій системі бути здатним робити більше мета-ish матеріалів ...

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


@Shadok: Я можу згодом покращити пізніші розділи, хоча зараз я дуже зайнятий ... Дякую.
Тамара Війсман

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

Можливо, ви повинні написати допис у блозі про це @TomWijsman ;-)
Іво Фліпс

@IvoFlipse: "Зберігання даних: як це працює?" серія може бути можливою, ось інша відповідь . Великі та $ # картини говорять більше, ніж слова ... :)
Тамара Війсман

Однозначно, це звучить як приємна ідея
Іво Фліпс

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, тому доступ до речей там часто означає, що ви спілкуєтесь із пристроєм - можливо, це звукова карта, сканер або камера тощо. Вони відомі як файли пристроїв . Прокфце спеціальна "файлова система", яка зазвичай монтується /procі має "каталог" для кожного запущеного процесу, з файлами у кожному каталозі, що стосуються таких речей, як командний рядок, який використовується для виклику цього процесу, карт пам'яті, відкритих файлів тощо. Sysfs - це ще одна спеціальна файлова система (встановлена ​​на /sys), що використовується для викриття великої кількості інформації про запущені об'єкти ядра, а також може використовуватися для тонкої настройки працюючого ядра, просто записуючи в певний файл.


2
Зауважте, що легко сплутати файлову систему з макетом каталогу з точки зору користувача. Хоча термін файлова система насправді мається на увазі як внутрішній характер файлової системи; напр. різниця між FAT та NTFS, а також різниця між ext2 та ext3 ...
Тамара Війсман

4
@Tom: Очевидно, що ОП справді запитує про відмінності в різних ієрархіях об'єктів між Linux та Windows, а не про те, як біти розкладаються на диску. udev, procfs, sysfs, tmpfs тощо є файловими системами стільки ж, скільки ext2 або NTFS є в Linux, незважаючи на те, що вони не містять матеріалів на диску.
afrazier

Це лише частина його запитання "Чи є файлова система лише компонуванням папок?", Те, як ви відповідаєте на питання, лише робить її більш заплутаною і не вирішує це питання. Тому я залишив повідомлення для читачів ...
Тамара Війсман

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

3

Файлова система стосується не лише того, як налаштовано дерево каталогів, а й того, як ця інформація кодується і на носіях. Для Linux існує декілька файлових систем: ext3, xfs, рейзерфи тощо.


3

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

Враховуючи кілька файлів і папок, файлова система - це формат і код, який зберігає їх на диску, щоб їх можна було прочитати знову.

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

Поширені файлові системи включають

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.