Оцените этот текст:


В Unix помимо обычных файлов и каталогов существуют  еще и спе-
циальные файлы. Они используются для обозначения физических ус-
тройств компьютера. (Железок). В сущности, что  такое файл? Это
"нечто", куда можно записывать  данные  как последовательность
байтов  и  считывать их оттуда. И, значит, вполне  естественным
выглядит, например,  файл  /dev/console  - соответствующий кон-
сольному  терминалу.  Все,  что  выводится в файл /dev/console,
будет просто появляться на экране терминала. При попытке чтения
из  файла  /dev/console вы будете  получать (внимание!)  не то,
что нарисовано в данный момент на экране, а то, что вводится  с
клавиатуры. Попробуйте выполнить команды

  su
  echo Привет > /dev/console
  cat /dev/console

  Ctrl-C

Для  каждого  терминала  unix-машины существует соответствующий
ему  файл.  Обычным  терминалам  соответствуют  файлы,  которые
называются примерно так:

  /dev/contty01 или /dev/tty02 или /dev/ttyFD02 или /dev/ttyS0
  (и т.д., возможны варианты)

Псевдотерминалам (они эмулируются, когда вы входите в  систему
по сети, посредством команд типа telnet, rlogin) соответствуют
специальные файлы

  /dev/pty*, или /dev/pty/*

Команда  who,  или  who  am  i  сообщит вам, как называется ваш
собственный терминал.

Существуют специальные файлы, соответствующие жесткому диску  в
целом   (/dev/rdsk/m197_c0d0s7)     и   всем   его    разделам
(/dev/dsk/m197_c0d0s*). Если  вы  будете читать из этих файлов,
то  получите  все  байтики,  как  они лежат на жестком диске, с
нулевого цилиндра и до последнего... А  если  вы  в  этот  файл
что-нибудь  запишете,  то  получите  (потом)  богатый  опыт  по
переформатированию и разметке жесткого диска.

/dev/mem   - файл, изображающий оперативную память.

/dev/audio - если  "закатить"  в него  файл  звукового  формата
             (*.wav, *.au, ...?) - то он  будет озвучен динами-
             ком  компьютера,  а  команда cat /dev/audio  будет
             принимать все, что произносится в микрофон.  Впро-
             чем,  я  отвлекся,  у  нас ведь не PC,  не  Silicon
             Graphic и не SPARCstation.

/dev/zero  - из него можно считать сколько угодно нулевых байтов

/dev/null  - а в  него можно писать, и  читать из него - тоже, в
             неограниченных количествах и с неизменным резуль-
             татом: NULL - он и есть null. А в MSDOS его аналог
             называется    NUL.

Специальные файлы бывают двух типов:

  блочные  - запись и  чтение допускаются только блоками.  Нап-
             ример, разделы дисков с файловой системой являются
             таковыми.

  ls -al /dev/fd*
brw-rw----  1 root floppy    2,  28 Jul 18  1994 /dev/fd0H1440
brw-rw----  1 root floppy    2,  32 Jul 18  1994 /dev/fd0H2880
brw-rw----  1 root floppy    2,  12 Jul 18  1994 /dev/fd0H360


 символьные(бесструктурные, сырые, row) - можно читать и писать
           отдельными байтами. К ним относятся терминалы,  маг-
           нитные ленты, неформатированные диски и разделы дис-
           ков без файловой системы.

  ls -al /dev/tty*
crw--w--w-   1 moshkow  sys        4,   1 Jan 15 22:00 /dev/tty1
crw--w--w-   1 root     root       4,   2 Jan 15 20:37 /dev/tty2
crw--w--w-   1 root     root       4,   2 Jan 15 20:37 /dev/tty2

Различие - первая буква в листинге команды ls  -l

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



 Обычно  их  создавать  не  нужно  -  они все уже есть для всех
известных  настоящих   и   будущих   устройств.   Созданы   при
инсталляции системы.

 Ручное создание спецфайла

   mknod /dev/filename { c | b }  MAJOR MINOR



При  начальной  загрузке  в  /etc/inittab  отрабатывает  скрипт
/sbin/ioinitrc, который, обнаружив  новые  платы  и  устройства,
автоматически  запускает команду их инициализации, конфигурации
и создания необходимых для них спецфайлов.

см. документацию по командам

 ioscan
 mksf
 insf



При загрузке выйти в boot-монитор и загрузиться с ключем -r

STOP+A

ok boot -r         - реконфигурационная загрузка

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

Last-modified: Fri, 11 Aug 2000 15:29:06 GMT
Оцените этот текст: