Типы файлов
В UNIX существует несколько типов файлов, различающихся по функциональному назначению и действиям операционной системы при выполнении тех или иных операций над ними. В следующих подразделах кратко представлены основные типы файлов, их признаки в длинных листингах, а также способы их создания. Обычный файл
Представляет собой наиболее общий тип файлов, содержащий данные в некотором формате. Для операционной системы такие файлы представляют собой просто последовательность байтов. К этим файлам относятся текстовые файлы, двоичные данные и выполняемые программы.
В длинном листинге признаком обычного файла является дефис (-) в первой позиции первого столбца: -rw-rw-r-- 1 root sys 8296 Фев 23 15:39 ps_data
Обычные файлы создаются текстовыми редакторами (текстовые), компиляторами (двоичные), прикладными программами с помощью соответствующего системного вызова или путем перенаправления вывода: [kravchuk@arturo 14:40:01 /]$ cd /tmp [kravchuk@arturo 14:40:04 /tmp]$ >f1.txt [kravchuk@arturo 14:40:09 /tmp]$ ls -l f1.txt -rw-r--r-- 1 kravchuk 50 0 Мар 26 14:40 f1.txt Каталог
С помощью каталогов формируется логическое дерево файловой системы. Каталог - это файл, содержащий имена находящихся в нем файлов, а также указатели на дополнительную информацию - метаданные, позволяющие операционной системе производить действия с этими файлами. Каталоги определяют положение файла в дереве файловой системы. Любой процесс, имеющий право на чтение каталога, может прочесть его содержимое, но только ядро имеет право на запись данных каталога.
В длинном листинге признаком каталога является символ d в первой позиции первого столбца: drwxr-xr-x 2 informix informix 115 Фев 24 13:05 txt Каталоги создаются командой mkdir: mkdir каталог ... Специальный файл устройства
Обеспечивает доступ к физическим устройствам. В UNIX различают символьные (character special device) и блочные (block special device) файлы устройств. Доступ к устройствам осуществляется путем открытия, чтения и записи в специальный файл устройства.
Символьные файлы устройств используются для небуферизованного обмена данными с устройством. Блочные файлы устройств позволяют производить обмен данными в виде пакетов фиксированной длины - блоков.
В длинном листинге признаком специального символьного и блочного устройств являются символы с и b в первой позиции первого столбца, соответственно: $ cd /devices/pci\@0,0/pci-ide\@7,1/ide\@0 $ ls -l | more total 0 crw------- 1 root sys 77, 0 Фев 14 14:03 nv@0,0:0 brw-r----- 1 root sys 29, 0 Апр 20 2001 sd@0,0:a crw-r----- 1 root sys 29, 0 Апр 20 2001 sd@0,0:a,raw brw-r----- 1 root sys 29, 1 Апр 20 2001 sd@0,0:b crw-r----- 1 root sys 29, 1 Апр 20 2001 sd@0,0:b,raw brw-r----- 1 root sys 29, 2 Апр 20 2001 sd@0,0:c crw-r----- 1 root sys 29, 2 Апр 20 2001 sd@0,0:c,raw ...
Специальные файлы устройство создаются командой mknod: mknod имя b главный_номер второстепенный_номер mknod имя c главный_номер второстепенный_номер
Главный номер устройства задает драйвер (индекс в таблице драйверов системы), или тип устройства, а второстепенный - экземпляр устройства.
Создавать специальные файлы устройств обычно может только пользователь root. Вот как можно создать новый специальный файл устройства для одного из представленных в листинге выше устройств: # mknod slice1 b 29 1 # ls -l slice1 brw-r----- 1 root sys 29, 1 Мар 25 2001 slice1
|