Специальные файлы

Специальные файлы

 
  • Специальные файлы
  • Создание специальных файлов
  • HP-UX: полуавтоматическое создание спецфайлов
  • Solaris: полуавтоматическое создание спецфайлов

  • В 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

    HP-UX: полуавтоматическое создание спецфайлов


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

          ioscan
          mksf
          insf

    Solaris: полуавтоматическое создание спецфайлов


    При загрузке выйти в boot-монитор и загрузиться с ключем -r
    STOP+A
    ok boot -r - реконфигурационная загрузка
    все необходимые спецфайлы для вновь подключенных устройств будут при этом созданы автоматически.


    Home | UK Shop Center |Contact | Buy Domain | Directory | Web Hosting | Resell Domains


    Copyleft 2005 ruslib.us