Библиотека сайта rus-linux.net
Цилюрик О.И. Linux-инструменты для Windows-программистов | ||
Назад | Консольные команды | Вперед |
Устройства
Все имена в каталоге /dev
соответствуют устройствам системы. Каждое устройство
(кроме имени в /dev
)
однозначно характеризуется двумя номерами: старший, major —
родовой номер класса устройств, младший, minor — индивидуальный
номер устройства внутри класса. Номера не произвольные. Все известные
номера устройств описаны в документе devices.txt
(лежит в дереве исходных кодов ядра
2):
$ cd /usr/src/linux/Documentation $ ls -l devices.txt -rw-rw-r-- 1 olej olej 118626 Мар 8 01:05 devices.txt $ cat devices.txt LINUX ALLOCATED DEVICES (2.6+ version) Maintained by Alan Cox <device@lanana.org> Last revised: 6th April 2009 ...
Все устройства делятся на символьные и блочные (устройства прямого
доступа, диски). Они различаются по первой литере в выводе
содержимого каталога /dev
:
$ ls -l /dev | grep ^c crw------- 1 root video 10, 175 Июл 31 10:42 agpgart crw-rw---- 1 root root 10, 57 Июл 31 10:43 autofs crw------- 1 root root 5, 1 Июл 31 10:42 console ... $ ls -l /dev | grep ^b ... brw-rw---- 1 root disk 8, 0 Июл 31 10:42 sda brw-rw---- 1 root disk 8, 1 Июл 31 10:42 sda1 brw-rw---- 1 root disk 8, 2 Июл 31 10:42 sda2 brw-rw---- 1 root disk 8, 3 Июл 31 10:42 sda3 ...
Старшие (major) номера символьных и блочных номеров могут совпадать: они принадлежат к разным пространствам номеров. Но вот внутри класса полной идентичности двух номеров (major+minor) не может быть.
Создание нового имени устройства в каталоге /dev
:
# mknod -m 0777 /dev/hello c 200 0
Примечание: в нарушение любых приличий, файл устройства можно создавать в произвольном месте, например, в текущем каталоге :
$ pwd /home/olej $ sudo mknod -m 0777 ./hello c 200 0 $ echo $? 0 $ ls -l hello crwxrwxrwx 1 root root 200, 0 Мар 19 16:27 hello $ sudo rm ./hello $ echo $? 0
Самые разнообразные устрйства представляются в /dev
.
Часто задаваемый вопрос: как представлены, например, последовательные
линии связи RS-232 (RS-485)? Вот они:
$ ls -l /dev/ttyS* crw-rw---- 1 root uucp 4, 64 Апр 27 06:19 /dev/ttyS0 crw-rw---- 1 root uucp 4, 65 Апр 27 06:19 /dev/ttyS1 crw-rw---- 1 root uucp 4, 66 Апр 27 06:19 /dev/ttyS2 crw-rw---- 1 root uucp 4, 67 Апр 27 06:19 /dev/ttyS3
Причём, представлены как терминальные линии все 4 (максимально возможные) каналы RS-232,
но откликаться на команды (например, конфигурироваться командой stty
)
будут только линии, реально представленные в аппаратуре компьютера (часто /dev/ttyS0
и /dev/ttyS1
— COM1
и COM2
в терминологии MS-DOS).
2. Когда
говорят о исходных кодах Linux, нужно иметь в виду, что они не
присутствуют в системе изначально, и не загружаются из репозитариев
вашего дистрибутива менеджером пакетов — их нужно загрузить
самостоятельно с адреса http://www.kernel.org/.
Вы должны выбрать оттуда архив вашей версии ядра (архив вида
linux-2.6.37.3.tar.bz2
),
разархивировать его в каталог /usr/src
(это потребует около 500Mb) и, обычно, на полученный каталог
устанавливают ссылку /usr/src/linux
— это и есть дерево исходных кодов Lnux, наслаждайтесь...
Предыдущий раздел: | Оглавление | Следующий раздел: |
Архивы | Подсистема udev |