Quire

Специальный файл устройства

From Quire, the open reference··3 min read
Redirected from /dev
Каталог /dev с файлами устройств
Каталог /dev с файлами устройств Image: source and license
Значок блочных файлов устройств
Значок блочных файлов устройств Image: source and license
Значок символьных файлов устройств
Значок символьных файлов устройств Image: source and license

Специальный файл устройства, или просто файл устройства (англ. special device file) — интерфейс доступа к периферийным устройствам посредством чтения или записи файла. Наиболее развит этот механизм в Unix-подобных операционных системах[1]. Фактически, специальные файлы устройств являются указателями на драйверы устройств, и когда процесс обращается к файлу устройств, он по сути работает с драйвером этого устройства[2].

Характеристика файлов устройств#edit

Поскольку в операционной системе есть разные типы устройств, то и файлы устройств бывают разными. Есть два типа файлов устройств: блочные (англ. block special files) и символьные (character special files). Блочные файлы устройств используются для передачи данных, разделённых на пакеты фиксированной длины — блоки. А символьные файлы устройств используются для небуферизованного обмена данными[1]. Большинство устройств способно принимать и отправлять данные либо блоками (блочные устройства), либо сплошным потоком байтов (символьные устройства), но некоторые (такие как жёсткий диск) сочетают в себе обе эти возможности. Работа с первым типом устройств возможна либо через блочные, либо через символьные файлы, а вот с последним типом — подходят и те и другие.

Для того чтобы операционная система могла определить файл устройства и получить некоторые характеристики о самом устройстве, в файле содержатся три специальных поля: класс устройства, старший номер устройства и младший номер устройства. Класс устройства сообщает, символьное устройство или блочное. В некоторых операционных системах (например, в Linux) есть и дополнительный класс устройств — небуферизованное символьное устройство. Кроме класса, есть ещё и тип устройства, который можно узнать по старшему номеру, например, в Linux-системе 1 означает оперативную память, 2 — дисковод гибких дисков, 3 — первый контроллер для жестких IDE-дисков, и т. д.. В разных операционных системах один и тот же старший номер может указывать на разные типы устройств. Для того чтобы отличить два устройства одного класса и типа, предусмотрели младший номер. Он используется для нумерации устройств с одинаковыми старшими номерами. Например, если в компьютере два одинаковых дисковода, то специальные файлы устройств для них будут содержать один и тот же класс устройства, один и тот же старший номер, но вот младший номер у одного из них будет 0, а у другого — 1[2].

Работа с файлами устройств#edit

Файлы устройств размещаются в каталоге /dev или в его подкаталогах.

Узнать информацию о файле устройства можно с помощью команд file и ls.

/dev (от англ. devices — устройства) — каталог в системах типа UNIX, содержащий так называемые специальные файлы — интерфейсы работы с драйверами ядра. Как правило, хотя и не всегда, /dev является обычным каталогом в корневой файловой системе, куда можно (но не нужно) помещать и обычные файлы. Доступ на запись в /dev (то есть право добавлять и перемещать специальные файлы) имеет только суперпользователь. Сами «специальные файлы» простому пользователю могут быть как доступны (терминал, псевдоустройства), так и недоступны (жёсткие диски).

Примеры содержимого#edit

  • /dev/sd буква — жёсткий диск (в системах на ядре Linux)
  • /dev/sd буква номер — раздел диска (в системах на ядре Linux)
  • /dev/sr номер (/dev/scd номер) — CD-ROM
  • /dev/eth номер — сетевые интерфейсы Ethernet
  • /dev/wlan номер — сетевые интерфейсы Wireless
  • /dev/lp номер — принтеры
  • /dev/video номер — устройства изображений, камеры, фотоаппараты и т. д.
  • /dev/bus/usb/000/номер — устройство номер на шине USB первого контроллера (000) (в системах на ядре Linux)
  • /dev/tty номер — текстовый терминал
  • /dev/dsp — звуковой вывод
  • /dev/random — случайные данные (псевдоустройство)
  • /dev/null — пусто (псевдоустройство)
  • /dev/zero — нулевые байты (псевдоустройство)

Примечания#edit

Литература#edit

  • Костромин В. А. Linux для пользователя. — «БХВ-Петербург», 2002. — ISBN 5-94157-183-6.
  • Робачевский А. М. Операционная система UNIX. — СПб.: БХВ-Петербург, 2002. — 528 с. — 5000 экз. — ISBN 5-8206-0030-4.
  • Э. Таненбаум, Х. Бос. Современные операционные системы. = Modern Operating Systems. — 4. — СПб.: Питер, 2015. — (Классика computer science). — ISBN 978-5-496-01395-6.

Ссылки#edit

This article is mirrored from “Специальный файл устройства” on Русский Wikipedia, revision 155260482, written by Wikipedia's contributors and licensed CC BY-SA 4.0. Editing it here creates a Quire copy with its own history.

Synced with Wikipedia revision 155260482 · just now