Книга: Программирование для Linux. Профессиональный подход
6.4. Аппаратные устройства
6.4. Аппаратные устройства
В табл. 6.1 перечислены распространенные блочные устройства. "Родственные" устройства именуются схожим образом (например, второй раздел первого SCSI-диска называется /dev/sda2
). Эта информация будет полезна при анализе файла /proc/mounts
на предмет того, какие файловые системы смонтированы в настоящий момент (об этом рассказывается в разделе 7.5, "Дисководы, точки монтирования и файловые системы").
Таблица 6.1. Распространенные блочные устройства
Устройство | Имя | Старший номер | Младший номер |
---|---|---|---|
Первый дисковод гибких дисков | /dev/fd0 |
2 | 0 |
Второй дисковод гибких дисков | /dev/fd1 |
2 | 1 |
Основной IDE-контроллер, главное устройство | /dev/hda |
3 | 0 |
Основной IDE-контроллер, главное устройство, первый раздел | /dev/hda1 |
3 | 1 |
Основной IDE-контроллер, подчиненное устройство | /dev/hdb |
3 | 64 |
Основной IDE-контроллер, подчиненное устройство, первый раздел | /dev/hdb1 |
3 | 65 |
Дополнительный IDE-контроллер, главное устройство | /dev/hdc |
22 | 0 |
Дополнительный IDE-контроллер, подчиненное устройство | /dev/hdd |
22 | 64 |
Первый SCSI-диск | /dev/sda |
8 | 0 |
Первый SCSI-диск, первый раздел | /dev/sda1 |
8 | 1 |
Второй SCSI диск | /dev/sdb |
8 | 16 |
Второй SCSI-диск, первый раздел | /dev/sdb1 |
8 | 17 |
Первый SCSI-дисковод CD-ROM | /dev/scd0 |
11 | 0 |
Второй SCSI-дисковод CD-ROM | /dev/scd1 |
11 | 1 |
В табл. 6.2 перечислены распространенные символьные устройства.
Таблица 6.2. Распространенные символьные устройства
Устройство | Имя | Старший номер | Младший номер |
---|---|---|---|
Параллельный порт 0 | /dev/lp0 или /dev/par0 |
6 | 0 |
Параллельный порт 1 | /dev/lp1 или /dev/par1 |
6 | 1 |
Первый последовательный порт | /dev/ttyS0 |
4 | 64 |
Второй последовательный порт | /dev/ttyS1 |
4 | 65 |
IDE-накопитель на магнитной ленте | /dev/ht0 |
37 | 0 |
Первый SCSI-накопитель на магнитной ленте | /dev/st0 |
9 | 0 |
Второй SCSI-накопитель на магнитной ленте | /dev/st1 |
9 | 1 |
Системная консоль | /dev/console |
5 | 1 |
Первый виртуальный терминал | /dev/tty1 |
4 | 1 |
Второй виртуальный терминал | /dev/tty2 |
4 | 2 |
Текущее терминальное устройство процесса | /dev/tty |
5 | 0 |
Звуковая плата | /dev/audio |
14 | 4 |
К некоторым аппаратным компонентам можно получить доступ сразу через несколько символьных устройств. Чаще всего этим устройствам соответствует разная семантика доступа. Например, если в системе есть ленточное IDE-устройство /dev/ht0
, то Linux автоматически перематывает ленту в дисководе, когда программа закрывает дескриптор файла устройства. С помощью ссылки /dev/nht0
можно обратиться к тому же ленточному накопителю, но режим автоматической перемотки в нем будет отключен. Иногда в системе есть ссылки наподобие /dev/cua0
. Это старые интерфейсы последовательных портов, таких как /dev/ttyS0
.
Иногда требуется записывать данные непосредственно в символьные устройства. Рассмотрим примеры.
? Терминальная программа напрямую обращается к модему через устройство последовательного порта. Данные, записываемые в устройство, передаются по модему на удаленный компьютер.
? Программа резервного копирования записывает данные непосредственно на ленту. Такая программа может реализовывать свои собственные алгоритмы сжатия и проверки ошибок.
? Программа обращается к первому виртуальному терминалу,[19] записывая данные в устройство /dev/tty1
.
Терминальным окнам, работающим в графической среде, и окнам сеансов удаленной регистрации назначаются не виртуальные терминалы, а псевдотерминалы (о них говорится в разделе 6.6, "Псевдотерминалы")
? Иногда программе требуется получить доступ к терминальному устройству, с которым она связана.
Например, программа может попросить пользователя ввести пароль. Из соображений безопасности требуется проигнорировать перенаправление стандартных потоков ввода и вывода и прочитать пароль с терминала независимо от того, как пользователь вызвал программу. Для этого можно открыть файл /dev/tty
, всегда соответствующий текущему терминальному устройству процесса. Запишите в данный файл строку приглашения, а затем прочитайте пароль. Это не позволит пользователю передать программе пароль из файла с помощью следующего синтаксиса:
% secure_program < my-password.txt
? Программа воспроизводит аудиофайл через звуковую плату, посылая аудиоданные в устройство /dev/audio
. Эти данные должны быть представлены в формате Sun (такие файлы обычно имеют расширение .au
).
Например, во многие дистрибутивы Linux входит файл /usr/share/sndconfig/sample.au
. Попробуйте воспроизвести его с помощью такой команды:
% cat /usr/share/sndconfig/sample.au > /dev/audio
Те, кто хотят включить звук в свои программы, должны использовать специальные сервисы и библиотеки функций работы со звуком, имеющиеся в Linux. В графической среде Gnome есть демон EsounD (доступен по адресу http://www.tux.org/~riclude/EsounD.html
), в KDE — программа aRts (http://space.twc.de/~stefan/kde/arts-mcop-doc/
). Благодаря этим средствам приложения, обращающиеся к звуковой плате, лучше взаимодействуют друг с другом.
- 5.2. Структура и аппаратные средства современного персонального компьютера
- Глава 6 Устройства
- Аппаратные часы и таймеры
- 7.3.2. Аппаратные устройства
- 1.5 Структура драйвера устройства Windows
- 5.7 Устройства NAS под управлением Windows и моментальные снимки
- Информатика: аппаратные средства персонального компьютера
- Часть I Аппаратные средства персональных компьютеров
- 5.2.2.2. Устройства ввода информации в персональный компьютер
- Возле часов постоянно отображается значок Безопасное извлечение устройства, который предлагает отключить жесткий диск и ...
- Не всегда отображается значок Безопасное извлечение устройства, когда вставляю «флэшку». Это началось после установки ст...
- Переносные устройства на основе flash-памяти