Файловые системы, разделы и каталоги

Это не предпочтение, а то, что Midnight Commander решает в зависимости от длины имени файла и количества доступного места. Вы можете увидеть это в info.c :

 138     /* Print only lines which fit */
 139 
 140     if (i18n_adjust == 0)
 141     {
 142         /* This printf pattern string is used as a reference for size */
 143         file_label = _("File: %s");
 144         i18n_adjust = str_term_width1 (file_label) + 2;
 145     }

и позже (часть, которая делает сокращенное имя с ~ ):

 264     case 3:
 265         {
 266             const char *fname;
 267 
 268             widget_move (w, 3, 2);
 269             fname = current_panel->dir.list[current_panel->selected].fname;
 270             str_printf (buff, file_label, str_trunc (fname, w->cols - i18n_adjust));
 271             tty_print_string (buff->str);
 272         }

33
05.11.2020, 14:57
2 ответа

Конечно, в Linux используется концепция каталогов. Концепция каталогов такая же, как в Windows.

Концепция файловых систем также очень похожа на то, что используется в Windows. Windows обычно использует NTFS или FAT - Linux обычно использует ext2, ext3, ext4 и так далее, вот и вся разница.

Отличие состоит в том, что в Linux файлы / каталоги из всех доступных разделов организованы в одно дерево. В Windows вы обозначаете разные разделы буквой, например. «a:», «c:», в Linux полный путь к любому доступному файлу начинается с «/» - корневого каталога. Например, на вашем жестком диске есть отдельный раздел с файлами, восстановленными для загрузки системы: вы запускаете команду 'mount' с соответствующими аргументами, и содержимое этого раздела становится доступным по пути "/ boot /". Итак, например. Пути «/ boot» и «/ home» могут относиться к данным на разных разделах, эти разделы могут иметь разные файловые системы. Наверное, вызвало ваше недоразумение.

Каталоги, которые физически расположены в одном разделе, всегда будут «иметь одинаковую файловую систему». Когда кто-то говорит о файловой системе некоторого каталога, на самом деле речь идет о файловой системе раздела, в котором этот каталог расположен.

(Незначительное и, вероятно, не важное исправление: иногда файловая система является виртуальной и нет соответствующего раздела. Например, "/ proc" содержит что-то, что очень похоже на файлы, но эти "файлы" виртуальные, они есть не размещаются на жестком диске и содержат информацию о запущенных процессах.И есть специальная файловая система "procfs", которая обеспечивает обычный файловый интерфейс для этих данных)

10
20.08.2021, 12:16

Мы иногда называем их файловыми системами , потому что иногда они каталоги - это точки монтирования. Вот вам и единственный вопрос, который вы задали ...

файловая система может относиться к двум разным вещам ... или фактически к двум очень разным аспектам одного и того же:

  1. Логическая структура, используемая для организации данных на носитель информации.
  2. Методология, используемая ОС для предоставления процессам унифицированного доступа к данным.

Концепция файлов и каталогов - это метафора. Для компьютера это только данные, а все носители - не что иное, как устройства, которые могут хранить данные. Некоторые устройства позволяют читать и записывать данные (например, HDD), другие устройства позволяют только чтение данных (например, CD-ROM), и есть даже устройства, которые позволяют только записывать данные (например, принтер). Мы используем метафору файла и каталога для структурирования данных, чтобы иметь доступ к небольшим фрагментам данных, а не ко всему одновременно.

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

Другой аспект файловых систем заключается в том, что задача ОС - сделать данные, хранящиеся на устройствах хранения, доступными для всех программ. Это достигается двумя способами:

  1. ОС предлагает только один (программный) интерфейс для доступа и взаимодействия с файлами и каталогами. Для программ / процессов не имеет значения, является ли файловая система на устройстве хранения ext2, xfs, fat или чем-то еще. Программы / процессы имеют единообразный доступ к файлам и каталогам.

  2. ОС организует все носители данных, то есть их файловые системы, в одну структуру высшего уровня. Программы получают доступ к файлам и каталогам через эту вышестоящую структуру и не должны напрямую взаимодействовать с устройствами хранения. Таким образом, программам не нужно заботиться о том, на каком устройстве фактически хранятся данные. Эту вышестоящую структуру часто называют «виртуальной файловой системой» ядра.

Добавление файловой системы устройства хранения к виртуальной файловой системе называется «монтированием» файловой системы. Когда ваш Linux запускается, ядро ​​создает виртуальную файловую систему (VFS). Сразу после создания он пуст и состоит только из своей точки входа, также известной как его корень, записанный / . Затем ядро ​​монтирует файловую систему в корень VFS. Это либо ramdisk, либо непосредственно файловая система в разделе жесткого диска. Поскольку он добавляется в корень VFS, этот раздел часто называют корневой файловой системой.

Теперь наступает та часть, где линии размываются, и мы видим, что файловые системы на устройствах хранения и VFS ядра на самом деле являются двумя аспектами одной и той же задачи ОС: При монтировании корневой файловой системы VFS содержит множество файлов и каталогов, все из которых находятся в корневом разделе. Однако каждый каталог может стать «точкой монтирования». Точка монтирования - это место, где VFS помещает точку входа в файловую систему на устройстве хранения. Это означает, что всякий раз, когда мы монтируем файловую систему в каталог,мы сообщаем VFS, что вместо доступа к данным, хранящимся в этом каталоге, мы предпочли бы получить доступ к данным на другом устройстве хранения. Точки монтирования обычно представляют собой пустые каталоги, поэтому мы не делаем данные недоступными, монтируя сверху другие файловые системы.

Когда вы устанавливаете свою ОС, вам решать, хотите ли вы поместить все данные в одну файловую систему, которая затем станет вашей корневой файловой системой, или вы хотите разделить данные между несколькими файловыми системами. Последнее требует, чтобы ваша ОС смонтировала все отдельные файловые системы, чтобы все данные были доступны. То, как вы разделяете вещи, зависит от того, как вы проектируете свою систему. Вот почему иногда каталоги, которые вы знаете из своей установки, называют файловыми системами.

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

Для краткости остальной части этого сообщения: Разделы - еще одно средство структурирования данных на устройствах хранения. С помощью разделов можно выделить непрерывное пространство для хранения из физического устройства хранения и предложить их в качестве отдельных устройств хранения для ОС (на которых можно разместить файловые системы для монтирования в VFS). Одна из причин для этого может заключаться в том, что у вас только один жесткий диск, но вы хотите использовать много разных файловых систем. Раздел, на котором находится корневая файловая система, часто называют корневым разделом.

3
20.08.2021, 12:16

Теги

Похожие вопросы