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).
 
 |