Linux для пользователя

       

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


Как уже говорилось, с точки зрения ОС Linux, все подключаемые к компьютеру устройства (жесткие и съемные диски, терминал, принтер, модем и т. д.), представляются файлами. Если, например, надо вывести на экран какую-то информацию, то система как бы производит запись в файл /dev/tty01.

Физические устройства бывают двух типов: символьными (или байт-ориентированными) и блочными (или блок-ориентированными). Различие между ними состоит в том, как производится считывание и запись информации в эти устройства. Взаимодействие с символьными устройствами производится посимвольно, в режиме потока байтов. К таким устройствам относятся, например, терминалы. На блок-ориентированных устройствах информация записывается (и, соответственно, считывается) блоками. Примером устройств этого типа являются жесткие диски. На диск невозможно записать или считать с него один байт: обмен с диском производится только блоками.

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

Если вы заглянете в каталог /dev, то увидите там огромное количество файлов физических устройств. ("Заглянуть в каталог" означает выполнить последовательно две команды cd и ls.) В табл. 4.2 приведена небольшая справка по именам наиболее часто используемых специальных файлов.

Таблица 4.2. Основные специальные файлы.

ИмяЗначение/dev/console Системная консоль, т. е. монитор и клавиатура, физически подключенные к компьютеру/dev/hd Жесткие диски с IDE-интерфейсом. Устройство /dev/hda1 соответствует первому разделу на первом жестком диске (/dev/hda), т. е. на диске, подключенном как Primary Master/dev/sd Жесткие диски с SCSI-интерфейсом/dev/fd Файлы дисководов для гибких дисков. Первому дисководу соответствует /dev/fd0, второму /dev/fd1/dev/tty Файлы поддержки пользовательских консолей. Название сохранилось с тех пор, когда к системе UNIX подключались телетайпы в качестве терминалов. В Linux эти файлы устройств обеспечивают работу виртуальных консолей (переключаться между которыми можно с помощью <Alt>+<F1> — <Alt>+<F6>)/dev/pty Файлы поддержки псевдо-терминалов. Применяются для удаленных рабочих сессий с использованием telnet/dev/ttS Файлы, обеспечивающие работу с последовательными портами. /dev/ttS0 соответствует COM1 в MS-DOS, /dev/ttS1 — COM2. Если ваша мышь подключается через последовательный порт, то /dev/mouse является символической ссылкой на соответствующий /dev/ttSN/dev/cua Специальные устройства для работы с модемами/dev/null Это устройство — просто черная дыра. Все, что записывается в /dev/null, навсегда потеряно. На это устройство можно перенаправить вывод ненужных сообщений. Если /dev/null используется как устройство ввода, то оно ведет себя как файл нулевой длины

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

Для файлов устройств команда ls -l вместо размера файла выдает старший и младший номера данного устройства.



Содержание раздела