Книга: Linux программирование в примерах
1.1.4. Устройства
1.1.4. Устройства
Одним из самых замечательных новшеств Unix было объединение файлового ввода- вывода и ввода-вывода от устройств.[14] Устройства выглядят в файловой системе как файлы, для доступа к ним используются обычные права доступа, а для их открытия, чтения, записи и закрытия используются те же самые системные вызовы ввода-вывода. Вся «магия», заставляющая устройства выглядеть подобно файлам, скрыта в ядре. Это просто другой аспект движущего принципа простоты в действии, мы можем выразить это как никаких частных случаев для кода пользователя.
В повседневной практике, в частности, на уровне оболочки, часто появляются два устройства: /dev/null
и /dev/tty
.
/dev/null
является «битоприемником». Все данные, посылаемые /dev/null
, уничтожаются операционной системой, а все попытки прочесть отсюда немедленно возвращают конец файла (EOF).
/dev/tty
является текущим управляющим терминалом процесса — тем, который он слушает, когда пользователь набирает символ прерывания (обычно CTRL-C) или выполняет управление заданием (CTRL-Z).
Системы GNU/Linux и многие современные системы Unix предоставляют устройства /dev/stdin
, /dev/stdout
и /dev/stderr
, которые дают возможность указать открытые файлы, которые каждый процесс наследует при своем запуске.
Другие устройства представляют реальное оборудование, такое, как ленточные и дисковые приводы, приводы CD-ROM и последовательные порты. Имеются также программные устройства, такие, как псевдотерминалы, которые используются для сетевых входов в систему и систем управления окнами, /dev/console
представляет системную консоль, особое аппаратное устройство мини-компьютеров. В современных компьютерах /dev/console
представлен экраном и клавиатурой, но это может быть также и последовательный порт
К сожалению, соглашения по именованию устройств не стандартизированы, и каждая операционная система использует для лент, дисков и т.п. собственные имена. (К счастью, это не представляет проблемы для того, что мы рассматриваем в данной книге.) Устройства имеют в выводе 'ls -l
' в качестве первого символа b или с
.
$ ls -l /dev/tty /dev/hda
brw-rw-rw- 1 root disk 3, 0 Aug 31 02:31 /dev/hda
crw-rw-rw- 1 root root 5, 0 Feb 26 08:44 /dev/tty
Начальная 'b' представляет блочные устройства, а 'c
' представляет символьные устройства. Файлы устройств обсуждаются далее в разделе 5.4, «Получение информации о файлах».
- 1.5 Структура драйвера устройства Windows
- 5.7 Устройства NAS под управлением Windows и моментальные снимки
- 5.2.2.2. Устройства ввода информации в персональный компьютер
- Возле часов постоянно отображается значок Безопасное извлечение устройства, который предлагает отключить жесткий диск и ...
- Не всегда отображается значок Безопасное извлечение устройства, когда вставляю «флэшку». Это началось после установки ст...
- Переносные устройства на основе flash-памяти
- Основные сведения об устройствах и драйверах
- Ответная реакция устройства и пульты дистанционного управления домашней электронной техникой
- Глава 6 Устройства
- 3.3. Устройства персонального компьютера
- Устройства считывания
- Устройства Ethernet