Типы устройств

     В системе UNIX, а следовательно и Linux, существует два типа устройств: блочные устройства с прямым доступом (такие как диски) и символьные устройства (такие как ленточные накопители и последовательные порты), некоторые из них могут быть последовательными, а некоторые - с прямым доступом. Каждое поддерживаемое устройство представляется в файловой системе файлом устройства. При выполнении операций чтения или записи с подобным
файлом, происходит обмен данными между устройством, на которое указывает этот файл. Такой способ доступа к устройствам позволяет не использовать специальные программы (а также специальные методы програмирования, такие как работа с прерываниями). Например, для распечатки файла на принтере, используется следующая команда:
ttyp5 root ~ $ cat filename > /dev/lp1
ttyp5 root ~ $

     Однако, для распечатки файлов используется специальная программа (обычно lpr(1)), которая контролирует поток поступающих файлов во избежание возникновения конфликтных ситуаций, например, при попытке распечатать на одном принтере одновpеменно несколько разных файлов. По мере распечатки, новые файлы поступают автоматически. По подобной схеме работает большинство устройств. Однако с файлами устройств проблемы возникают очень редко.

      Так как устройства отображаются как файлы в файловой системе (в каталоге /dev), несложно обнаружить с помощью команды ls(1) какие существуют файлы устройств. После выполнения команды ls –l на экран выводится список файлов, причем в первой колонке содержится тип файла и права доступа к нему. Например, для просмотра файла, соответствующего последовательному порту,
используется следующая команда:
ttyp5 root ~ $ ls -l /dev/cua0
crw-rw-rw-   1 root       uucp        5,   64  Nov  30    1993    /dev/cua0
ttyp5 root ~ $

     Первый символ в первой колонке, т.е. 'c', показывает тип файла, в данном случае символьное устройство. Для обычных файлов используется символ '-', для каталогов - 'd', для блочных устройств - 'b' (см. pуководство к команде ls(1) для более подробной информации).

     Наличие большого количества файлов устройств совсем не означает, что эти устройства на самом деле установлены. Наличие файла /dev/sda ни о чем не говорит и совсем не означает, что в компьютере установлен жесткий диск SCSI. Это предусмотрено для облегчения установки программ и нового оборудования (нет необходимости искать нужные параметры и создавать файлы для новых
устройств).