TGViewer
LinuxCamp | DevOps LinuxCamp | DevOps @linuxcamp_tg · 13.6K subscribers
Post #180 6.64K
Раскрываем завесу тайн над устройствами

Для многих пользователей Linux долгое время может быть неясна суть устройств, каталогов dev/sys и различий между ними. Хорошо бы в этом немного разбираться, т.к. иногда приходится работать с дисками, разделами, tty, pty.

Что еще за dev?

В каталоге dev находятся файлы, которые являются интерфейсом взаимодействия ядра с физическими (принтер, камера, SSD и т.д.) и виртуальными (null, urandom, tty и т.д.) устройствами, подключенными к системе и готовыми к работе.

Сами файлы драйверами не являются, при работе с ними ядро отказывается от своих обычных файловых операций и использует необходимые драйвера.

Устройства бывают разных типов:


$ ls -l
brw-rw---- 1 root disk 8, 1 Sep 6 08:37 sda1
crw-rw-rw- 1 root root 1, 3 Sep 6 08:37 null
prw-r--r-- 1 root root 0 Mar 3 19:17 fdata
srw-rw-rw- 1 root root 0 Dec 18 07:43 log


Обратите внимание на первый символ каждой строки. Если он входит в перечисление: b (block), c (character), p (pipe) или s (socket), то файл является устройством.

Сейчас кратко рассмотрим типы, без излишнего углубления, т.к. знать тут все на начальных порах необязательно.

Блочные устройства

Доступ к данным блочного устройства происходит фиксированными частями определенного размера. Устройство sda1 в приведенном примере - это дисковое устройство, которое является типом блочного устройства.

Обычно устройства данного типа характеризуются возможностью хостить файловую систему: HDD, SSD, USB накопители.

Символьные устройства

К символьным устройствам можно обращаться как к потокам данных. Чтение и запись происходит посимвольно либо небольшими блоками за раз. Примерами устройств являются: принтер, мышь, клавиатура, tty, null.

Именованный конвейер

По структуре такой же, как символьное устройство, но с другим процессом на конце потока ввода-вывода вместо драйвера ядра.

Фактически - это обыкновенный pipe |, у которого есть имя, которое можно указывать всюду, где требуется файл.

Сокет

Специальный интерфейс для межпроцессной связи. Они позволяют обмениваться данными через сетевые соединения или внутри одного компьютера (с помощью Unix-сокетов).

Номера major и minor

К блочным и символьным устройствам применимы специальные номера major и minor, которые ядро использует для идентификации:


8, 1 Sep 6 08:37 sda1


Major (8) говорит о том, какой драйвер использовать, minor (1) - описывает номер устройства, для которого используется драйвер, подвязанный к номеру major.

Скажем, HDD может быть разбит на несколько разделов, каждый из которых будет иметь отдельный номер minor и единый major, т.к. один и тот же драйвер используется для каждого раздела.

Файлы в каталоге dev не являются постоянными, они создаются либо в момент старта системы либо при подключении и определении устройства. Создаются демонами: udevd или mdevd. Как раз эти программы отвечают за определение устройства и подгрузку соответсвующих драйверов.

Драйвер - программа, которая позволяет нашей ОС общаться с оборудованием. Представлен он может быть, например, динамически подгружаемым модулем ядра либо его статической частью. Подключили мышку, нужен драйвер, который позволить с ней работать.

LinuxCamp
  • 👍 47
  • 🔥 13
  • ❤‍🔥 3
  • ❤ 2
More from @linuxcamp_tg
  1. Sep 28, 2026Проекту GNU вчера исполнилось 43 года 1983 год: Ричард Столлман объявил планы разработать…
  2. Sep 25, 2026Linux будет работать на ноутах с Snapdragon X2. Qualcomm добавляет полноценную поддержку L…
  3. Sep 24, 2026Так все по делу)) Советует же самый быстрый фикс LinuxCamp | #memes
  4. Sep 23, 2026Планы на 3 октября — прийти на RWB Infra x Security Meetup Мы направим прожекторы на инфра…
  5. Sep 22, 2026Ещё одна рекордная неделя для AI-разработки в Linux. На прошлой неделе в ядро попало 1 634…
  6. Sep 17, 2026Открыл плейлист, а как выйти - непонятно 😁 LinuxCamp | #memes
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →