Файловые системы в unix

Файловой системой называют часть ядра ОС, которая управляет организацией файлов и операциями над ними: в этом аспекте в одном ряду с файловой системой выступают система управления процессами и система ввода/вывода. Файловая система — это универсальный интерфейс доступа ко всем ресурсам, как локальной машины, так и компьютеров, объединенных в сеть. Универсальность интерфейса выражается в том, что все, что имеется в машине (и в сети) физически, представляется в виде файлов. Метафора файла охватывает не только компоненты программ и пользовательские данные, но и символьные и блочные устройства. Более того, интерфейс файловой системы обеспечивает доступ к протекающим в системе процессам. И даже средства межпроцессорного взаимодействия предстают в виде файлов особого типа.

Файловая система — это еще и принцип организации файлов как таковых: в этом контексте говорят о файловой системе Unix или FAT, HPFS или NTFS. И, наконец, файловая система — это физический способ организации данных на некоем устройстве. Он, как правило, специфичен для конкретной ОС. Linux способна работать, с родными с несколькими файловыми системами, начиная от традиционной ext2fs до XFS и JFS, разработанных для ОС IRIX и AIX.

Существуют еще и виртуальные файловые системы. К ним относятся уже упоминавшаяся файловая система устройств devfs и временная файловая система в оперативной памяти tmpfs, и procfs, ответственная за представление в виде файловой системы процессов, протекающих в машине.

Наконец, файловая система в Unix — это и логическая структура каталогов и файлов, которая может объединять физические и виртуальные файловые системы самых различных типов (например, дисковые разделы с файловыми системами ext2fs и FAT16, виртуальные procfs, devfs и tmpfs), причем не только на локальной машине, но и на любой удаленной. Эта структура: иерархическая, или древовидная, начинающаяся с корневого каталога, родительского по отношению ко всем прочим, от которого ответвляются отдельные файлы и дочерние каталоги, которые, в свою очередь, могут выступать как родительские по отношению к подкаталогам более глубоких уровней вложенности.

В ОС Linux структура файловой системы обычно специфична для конкретного дистрибутива или их группы, связанной единством происхождения, поэтому нередко можно столкнуться с такими выражениями, как файловая система Red Hat или Debian. Собственно, именно исторически сложившиеся различия в иерархии каталогов являются одним из критериев обособления нескольких линий дистрибутивов Linux. Однако можно надеяться, что усилиями стандартизирующих организаций, таких, как Linux Standard Base и Filesystem Hierarchy Standard, увенчаются успехом, и можно будет говорить о единой логической файловой системе Linux, подобно тому, как это имеет место в линейке BSD.

Файлы и каталоги

В большинстве операционных систем (включая систему Linux) используется понятие файла (file). Файл= — это некоторый «кусок» информации, которому дано имя, называемое именем файла (filename). Примерами файлов могут служить работа по истории, послание, пришедшее по электронной почте, а также исполняемая программа. Нужно знать, что на диске информация сохраняется только в виде отдельных файлов.

Файлы различаются по своим именам. Например, свой файл с работой по истории вы можете назвать history-paper. В этих случаях имя файла выбирается таким, чтобы оно каким-то образом характеризовало содержимое данного файла. Для имён файлов нет такого стандартного формата, какой есть в системе MS-DOS и в некоторых других операционных системах. В принципе, имя файла может содержать любые символы (за исключением символа /= — смысл этого символа будет разъяснён ниже). Длина имени файла ограничена 256 знаками.

Понятие файла тесно связано с понятием каталога (directory). Каталог= — это набор файлов. Иногда каталог называют «папка», по аналогии с папкой, в которой содержится много различных листов. Однако эта аналогия не вполне точна, поскольку каталог содержит не собственно файлы, а ссылки на файлы, а также и на другие каталоги. Более подходящая аналогия — библиотечный каталог или картотека. Каталогам даются имена, по которым их можно распознавать. Кроме этого, каталоги образуют структуру типа дерева; иными словами, существует единственный корневой каталог, который содержит внутри себя все остальные каталоги.

Как следствие, к файлу можно обращаться, указывая путь (path) к этому файлу. Путь состоит из имени каталога, за которым пишется имя файла. Пусть, например, у пользователя Ларри есть каталог papers, в котором содержится три файла: history-final, english-lit, masters-thesis. Каждый из этих трёх файлов содержит информацию о трёх работах, которыми в данный момент занимается Ларри. Чтобы обратиться к файлу english-lit, Ларри может указать путь к файлу, например, следующим образом:

papers/english-lit

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

Как указывалось выше, каталоги могут быть вложены друг в друга. Пусть, например, в одном каталоге papers имеется другой каталог с именем notes. Каталог notes содержит файлы math-notes и cheat-sheet. Путь к файлу cheat-sheet представляется следующим образом:

papers/notes/cheat-sheet

Мы видим, что путь к файлу напоминает описание пути в лабиринте. Каталог, который содержит данный подкаталог, обычно называется родительским каталогом (parent directory). В данном примере каталог papers является родительским для каталога notes.

Похожие статьи:

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Adblock
detector