Файловая система

Опубликовано admin - вт, 11/22/2005 - 16:14

Файловая система — это организация данных и метаданных на устройстве хранения. В Linux в отличие от Windows есть только одна файловая структура.

Файловая система в Linux

Файловая система в Linux начинается от корня (/), и все локальные файловые системы, все локальные устройства и все удаленные системы представлены в ней подкаталогами.

Операционная система Linux поддерживает множество файловых систем, от журналируемых систем до кластерных и файловых систем с шифрованием, но имеет и свою родную.файловую систему — Ext2FS (second extended filesystem).

Содержание

Файлы и их имена

Имена обычных файлов в Linux могут иметь длину до 255 символов и состоять из любых символов, кроме символа с кодом 0 и символа / (слэша). Однако имеется еще ряд символов, которые имеют в оболочке shell специальное значение и которые поэтому не рекомендуется включать в имена. Это следующие символы:

! @ # $ & ~ % * ( ) [ ] { } ' " \ : ; >

Если имя файла содержит один из этих символов (это не рекомендуется, но возможно), то вы должны перед этим символом поставить символ обратного слэша \ (в том числе и перед самим этим слэшем, то есть повторить его дважды).

$ mkdir \\my\&his

Можно также заключить имя файла или каталога с такими символами в двойные кавычки. Например, для создания каталога с именем “My old files” следует использовать команду


$ mkdir "My old files"

так как команда


$ mkdir My old files

создаст каталог с именем “My”.

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

Все выше сказанное не относится к точке, и в Linux часто ставят более одной точки в именах файлов. Такое понятие, как расширение имени файла (принятое в DOS), теряет при этом всякий смысл, хотя последние части имени, отделенные точками, используют для обозначения файлов особых типов (например, .tar.gz используют для обозначения сжатых архивов). Исполняемые и не исполняемые файлы в Linux распознаются не по расширениям имен файлов. Для этого существуют другие признаки. Точка имеет особое значение в именах файлов. Если она является первым символом имени, то данный файл считается скрытым для некоторых команд, например, он не показывается при выполнении команды ls.

В Linux различаются символы верхнего и нижнего регистра в именах файлов. Поэтому FILENAME.tar.gz и filename.tar.gz вполне могут существовать одновременно и являться именами разных файлов.

Каталоги

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

В MS Windows каталоговая структура строится отдельно для каждого физического носителя и корневой каталог каждой каталоговой структуры обозначается какой-нибудь буквой латинского алфавита, что приводит к некоторому ограничению. В Linux строится единая каталоговая структура для всех носителей, и единственный корневой каталог этой структуры обозначается символом /. В эту единую каталоговую структуру можно подключить любое число каталогов, физически расположенных на разных носителях (смонтировать файловую систему или смонтировать носитель).

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

Полным именем файла (или путем к файлу) называется список имен вложенных друг в друга подкаталогов, начинающийся с корневого каталога и оканчивающийся собственно именем файла. При этом имена подкаталогов в этом списке разделяются тем  же символом /, который служит для обозначения корневого каталога.

Кроме текущего каталога для каждого пользователя определен еще его домашний каталог — каталог, в котором пользователь имеет все права: может создавать и удалять файлы, менять права доступа к ним и т. д. В каталоговой структуре Linux домашние каталоги пользователей обычно размещаются в каталоге /home и имеют имена, совпадающие с именем пользователя. Когда пользователь входит в систему, текущим каталогом становится домашний каталог данного пользователя.

Основные каталоги в Linux:

  • / — корневой каталог;
  • /bin — основные программы;
  • /boot — каталог с файлами, используемыми при загрузке системы;
  • /dev — каталог с файлами устройств;
  • /etc — файлы конфигурации;
  • /home — домашние каталоги пользователей, зарегистрированных в системе;
  • /lib — библиотеки и модули ядра;
  • /mnt — точки монтирования (подключения) дисковых накопителей (CD-ROM, Floppy), т.е. каталоги, которые будут указывать на разделы, накопители;
  • /proc — виртуальный каталог, в котором файлы хранят информацию о системных процессах;
  • /root — каталог администратора системы;
  • /sbin — основные системные программы;
  • /sys — средства для изменения конфигурации системы;
  • /tmp — каталог временных файлов;
  • /usr — каталог, в котором содержатся все установленные пользовательские программы, документация и т.д.;
  • /var — каталог с различными данными для программ.

Типы файлов

Наряду с обычными файлами и каталогами, файлами с точки зрения Linuxявляются:

Файлы физических устройств

C точки зрения ОСLinux, все подключаемые к компьютеру устройства (жесткие и съемные диски, терминал, принтер, модем и т. д.), представляются файлами.

Взаимодействием с физическими устройствами в Linux управляют драйверы устройств, которые либо встроены в ядро, либо подключаются к нему как отдельные модули. Для взаимодействия с остальными частями операционной системы каждый драйвер образует коммуникационный интерфейс, который выглядит как файл. Большинство таких файлов для различных устройств располагаются в каталоге /dev.

Именованные каналы (pipes)

Еще один тип специальных файлов — именованные каналы, или буферы FIFO (First In — First Out). Файлы этого типа служат в основном для того, чтобы организовать обмен данными между разными приложениями (pipe переводится с английского как труба).

Доменные гнезда (sockets)

Гнезда — это соединения между процессами, которые позволяют им взаимодействовать, не подвергаясь влиянию других процессов. Среди стандартных средств, использующих гнезда — система X Window, система печати и система syslog.

Символические ссылки (symlinks)

Помимо жестких ссылок в Linux имеется другой тип ссылок, так называемые символические ссылки. Эти представляются отдельными файлами — файлами типа символических ссылок. В отличие от жестких ссылок символические ссылки могут указывать на файлы, расположенные в  другой файловой системе, например, на монтируемом носителе, или даже на другом компьютере.

Поделиться с друзьями