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{логический_диск}
где

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

  /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