Server for Information Technologies Сервер поддерживается
Центром Информационных Технологий
(095) 932-9212, 932-9213, 939-0783
E-mail: info@citforum.ru
Сервер содержит море(!) аналитической информации CIT Forum CD-ROM

INTRO(7)

НАЗВАНИЕ
intro - введение в описание специальных файлов

ОПИСАНИЕ
В этом разделе описываются различные специальные файлы, соответствующие периферийным устройствам, а также драйверы устройств. Описываются также драйверы псевдоустройств [см. intro(2)], модули и средства управления псевдоустройствами [см. ioctl(2)].

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

Каждое устройство идентифицируется специальным файлом, находящимся в каталоге /dev. Этот специальный файл наделен старшим и младшим номерами устройства. Старший номер идентифицирует драйвер устройства и, следовательно, соответствующий контроллер. Младший номер идентифицирует устройство, привод, канал или что-либо еще, присоединенное к контроллеру. В некоторых случаях, например для диска, младший номер есть номер логического диска (раздела физического диска, или тома). Ядро ОС UNIX распознает два различных типа устройств: блочные и символьные.

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

 /dev/dsk/hd* Диск.
 /dev/dsk/fd* Дискета.

Символьные устройства

 /dev/console Системная консоль.
 /dev/tty*  Терминалы.
 /dev/mt   Магнитофон.

Бесструктурные устройства
Специальные символьные устройства, обеспечивающие прямой доступ к устройствам типа магнитных дисков, минуя механизм буферизации, называются бесструктурными. Нельзя по отношению к одному устройству одновременно выполнять блочный и бесструктурный ввод/вывод. Перед использованием бесструктурного ввода/вывода следует выполнить команду umount [см. mount(1M)] или крайней мере sync(1M).

 /dev/rdsk/hd* Бесструктурный ввод/вывод на диск.
 /dev/rdsk/fd* Бесструктурный ввод/вывод на дискету.
 /dev/rmt  Магнитофон.

В общем случае имена специальных файлов, соответствующих дисковым устройствам, имеют следующий формат:

  /dev/[r]dsk/{контроллер}{том}s{логический_диск}
где
  • r Означает, что устройство является бесструктурным.
  • контроллер Префикс, задающий имя контроллера, например hd.
  • том Номер тома, подсоединенного к контроллеру.
  • логический_диск Номер логического диска на томе; должен лежать в диапазоне от 0 до 7.

Прочие устройства

 /dev/tty  Виртуальный терминал; всегда связан с физическим терминалом пользователя.
 /dev/mem  Физическая память.
 /dev/kmem  Виртуальная память ядра ОС.
 /dev/error  Устройство фиксации ошибок системы.
 /dev/null  Пустое устройство: при вводе всегда возвращает признак
     конца файла, при выводе поглощает все данные.
 /dev/prf  Устройство, используемое системой профилирования [см. profiler(1M)].
 /dev/sxt/*  Виртуальные терминалы [для shl(1)].

Диски, тома, младшие номера
Томом называется физически существующий диск. Размер тома в блоках равен:

 число_цилиндров * число_головок * блоков_на_дорожке

Размер типичного тома равен 3160*5*19=300200. Том делится на разделы - логические диски. Рассмотрим следующий простой пример деления тома на разделы A, B, и C. Совокупность A+B+C составляет полный том.

  |--------A--------|----B----|--------C--------|

  A Корневая файловая система.
  B Область подкачки.
  C Дополнительная файловая система или место для
   быстрого сохранения информации.

Старший и младший номера устройства хранятся в описателе соответствующего специального файла; их можно узнать с помощью команды ls(1). Пример:

  ls -log /dev/dsk/hd0s*
  
  crw-rw-r-- 1 7, 0 Jan 27 08:30 /dev/rdsk/hd0s0
  crw-rw-r-- 1 7, 1 Feb 1 09:01 /dev/rdsk/hd0s1
  crw-rw-r-- 1 7, 2 Dec 1 08:42 /dev/rdsk/hd0s2
  crw-rw-r-- 1 7, 7 Jan 27 08:30 /dev/rdsk/hd0s7

Старший и младший номера перечисленных символьных (бесструктурных) устройств выведены перед датой.

Старший номер используется как указатель в таблице старших номеров устройств для получения доступа к драйверу. Младший номер устройства передается драйверу для выбора тома и раздела на томе: 5 старших бит младшего номера определяют том, а 3 младших - раздел, или логический диск. Логические диски не обязаны быть непересекающимися: один логический диск может содержать несколько других. Пример:

  |--------0--------|       
      |----2----|     
         |--------1--------|
  |----------------------7----------------------|

Устройство с младшим номером 7 должно соответствовать полному тому. Оно начинается с блока 0 и имеет длину A+B+C.

Устройство с младшим номером 0 обычно используется как основная файловая система, начинающаяся с блока 0 и имеющая длину A.

Устройство с младшим номером 2 может использоваться как область подкачки, начинающаяся после области A и имеющая длину B.

Устройство с младшим номером 1 может использоваться как область для быстрого сохранения файлов или, как вторая файловая система, которая может быть смонтирована. Эта область начинается с блока A+B и имеет длину C.

Специальные файлы, соответствующие дискам, нужно создавать в каталоге /dev/dsk или /dev/rdsk, с помощью команды mknod(1M).

Младшие номера, кроме последнего, можно переопределить, чтобы изменить разбиение на логические диски. Во включаемом файле <sys/io.h> хранится перечень известных системе дисковых устройств и разбиение томов. Используемые структуры описаны во включаемом файле <sys/disk.h> и применяются всеми драйверами дисков и программами обслуживания. Текущая конфигурация описана в файле /usr/src/uts/dfile.

СМ. ТАКЖЕ
io(4).

Comments: info@citmgu.ru
Designed by Andrey Novikov
Copyright © CIT
Обновлено: 13.03.2015