Позади Ваших вопросов существуют неправильные представления.
Раздел является частью ¹ дискового пространства, это посвящено конкретной цели. Вот некоторые общие цели для разделов.
Файловые системы представляют информацию в иерархической структуре. Вот некоторые общие виды файловых систем:
proc
и sysfs
на Linux.Unix представляет файлы в единственной иерархии, обычно называемой “файловая система” (но в этом ответе я не буду использовать слово “файловая система” в этом смысле для подавления беспорядка). Отдельные файловые системы должны быть привиты на ту иерархию для доступа к ним. ³
Вы делаете файловую систему доступной путем монтирования его. Монтирующиеся партнеры корневой каталог файловой системы Вы монтируетесь с существующим каталогом в файловой иерархии. Каталог, который имеет такую ассоциацию, известен как точка монтирования.
/
каталог./proc
, так, чтобы /proc/42/environ
определяет файл /42/environ
в proc файловой системе, которая (на Linux, по крайней мере) содержит представление только для чтения среды процесса номер 42./home
, затем /home/john/myfile.txt
определяет файл, путь которого /john/myfile.txt
от корня домашней файловой системы.В соответствии с Linux, для той же файловой системы возможно быть доступным больше чем через один путь, благодаря связывают, монтируется.
Типичный Linux файловые системы имеет много смонтированных файловых систем. (Это - пример; различные дистрибутивы, версии и установки приведут к различным смонтированным файловым системам.)
/
: корневая файловая система, смонтированная перед ядром, загружает первый процесс. Загрузчик говорит ядро, что использовать в качестве корневой файловой системы (это обычно - раздел диска, но могло быть чем-то еще, таким как экспорт NFS)./proc
: proc filessytem, с процессом и информацией о ядре./sys
: sysfs файловая система, с информацией об устройствах./dev
: файловая система в оперативной памяти, где файлы устройств автоматически создаются udev на основе доступных аппаратных средств./dev/pts
: файловая система специального назначения, содержащая файлы устройств для выполнения эмуляторов терминала./dev/shm
: файловая система в оперативной памяти используется во внутренних целях стандартной библиотекой системы.binfmt_misc
(используемый внешней подсистемой ядра формата исполняемого файла), fusectl
(используемый FUSE), nfsd
(используемый ядром сервер NFS), …/etc/fstab
(и не отмеченный noauto
) смонтирован как часть процесса начальной загрузки.mount
команда.¹ Неофициально говорящий здесь.
² Initrd и такой выходят за рамки этого ответа.
³ Это непохоже на Windows, который имеет отдельную иерархию для каждой файловой системы, например. c:
или \\hostname\sharename
.
Первоначально, в системах Unix, расширения на именах файлов были вопросом конвенции. Они позволили человеку выбирать правильную программу для открытия файла. Современная конвенция состоит в том, чтобы использовать расширения в большинстве случаев; общие исключения:
README
, TODO
. Иногда существует дополнительная часть, которые указывают на подкатегорию, например. INSTALL.linux
, INSTALL.solaris
..bashrc
, .profile
, .emacs
.Makefile
.(Это общие падежи, не твердые правила.)
Большинство форматов двоичного файла также содержит некоторый заголовок, который описывает свойства файла и обычно позволяет формату файла быть определенным через магические числа. file
управляйте смотрит на эту информацию и показывает Вам ее предположения.
Иногда расширение файла дает больше информации, чем формат файла, иногда это наоборот. Например, много форматов файлов состоят из архива zip: библиотеки Java (.jar
), документы OpenOffice (.odt
, …), документ Microsoft Office (.docx
, …), и т.д. Другим примером являются файлы исходного кода, где расширение указывает на язык программирования, который может быть трудным для компьютера предположить автоматически от содержания файла. С другой стороны некоторые расширения дико неоднозначны, например .o
используется для файлов скомпилированного кода (объектные файлы), но контроль содержания файла обычно легко показывает, для какой системы типов машины и операционной системы объектный файл.
Преимущество расширения состоит в том, что это намного быстрее для распознавания его, чем открыть файл и искать волшебные последовательности. Например, завершение имен файлов в оболочках почти всегда основано на имени (главным образом расширение), потому что чтение каждого файла в большом каталоге может занять много времени, тогда как просто чтение имен файлов достаточно быстро для нажатия Вкладки.
Иногда изменение расширения файла может позволить Вам говорить, как файл должен быть интерпретирован, когда два форматов файлов почти, но не совершенно идентичны. Например, веб-сервер мог бы рассматривать .shtml
и .html
по-другому, первый подвергающийся некоторой предварительной обработке серверной стороны, последний, обслуживаемый как есть.
В случае архивов gzip, gzip
не повторно сожмет файлы, имя которых заканчивается в .gz
, .tgz
и несколько других расширений. Тем путем можно работать gzip *
для сжатия каждого файла в каталоге, и уже сжатые файлы не изменяются.
Им, возможно, не понадобится расширение, но оно уверенный делает идентификацию их легче в выводе ls
.
tar
, таким образом, необходимо сказать это, какой архив Вы имеете.
– Kevin Cantu
17.11.2010, 22:17
Расширения файла являются, прежде всего, конвенцией для людей, которые используют систему. Существуют инструменты, которые действительно используют расширение файла, чтобы сделать вещи. Например, Наутилус показывает мне другой значок на основе расширения файла.
Если я дал Вам названный файл file
, Вы не могли бы знать, как открыть этот файл. Однако, если я дал Вам названный файл file.tar.gz
или file.tar
Вы могли быстро и легко понять это.