2. типы устройств

В Linux основным принципом является то, что «всё является файлом». Эта философия распространяется и на аппаратные компоненты, которые представлены в файловой системе специальными файлами. Понимание этих Linux-устройств и соответствующих им файлов имеет решающее значение для системного администрирования. Давайте начнем с изучения каталога /dev, традиционного места для каждого файла устройства.

Изучение Linux-устройств в /dev

Вы можете вывести список файлов в каталоге /dev, чтобы увидеть, как система представляет различные Linux-устройства.

$ ls -l /dev
brw-rw----   1 root disk      8,   0 Dec 20 20:13 sda
crw-rw-rw-   1 root root      1,   3 Dec 20 20:13 null
srw-rw-rw-   1 root root           0 Dec 20 20:13 log
prw-r--r--   1 root root           0 Dec 20 20:13 fdata

Вот разбивка столбцов слева направо:

  • Права доступа
  • Владелец
  • Группа
  • Основной номер устройства
  • Дополнительный номер устройства
  • Временная метка
  • Имя устройства

Идентификация типов Linux-устройств

Первый символ в строке прав доступа вывода ls -l указывает на тип файла. Для файла устройства вы увидите один из следующих символов, который помогает идентифицировать конкретные типы Linux-устройств:

  • c - символьное (character)
  • b - блочное (block)
  • p - именованный канал (pipe)
  • s - сокет (socket)

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

Эти устройства передают данные по одному символу за раз. Многие псевдоустройства, которые не подключены физически, но обеспечивают основные функции ОС, представлены как символьные устройства. Классическим примером является /dev/null.

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

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

Устройства-каналы (Pipe)

Именованные каналы, или FIFO (First-In, First-Out), позволяют осуществлять межпроцессное взаимодействие. Они действуют как символьные устройства, но направляют свой вывод другому процессу, а не физическому устройству.

Устройства-сокеты (Socket)

Устройства-сокеты также облегчают связь между процессами. В отличие от каналов, они более универсальны и могут поддерживать связь между несколькими процессами, даже через сеть.

Понимание номеров устройств

Каждое Linux-устройство уникально идентифицируется двумя числами: основным номером устройства и дополнительным номером устройства. Вы можете увидеть их в выводе ls, разделенными запятой. Для устройства с номерами 8, 0:

Основной номер (8) идентифицирует драйвер, отвечающий за устройство. В данном случае 8 обычно используется для дисковых накопителей SCSI. Дополнительный номер (0) указывает драйверу, какой конкретный экземпляр устройства он обслуживает. Здесь 0 представляет первый диск (a).

Войдите, чтобы сохранить ваш прогресс обучения

Вход

Упражнения

Чтобы применить полученные знания о Linux-устройствах, мы рекомендуем следующие практические лабораторные работы. Эти упражнения помогут вам обрести уверенность во взаимодействии с устройствами и управлении ими в реальных сценариях.

  1. Управление разделами и файловыми системами Linux — Практикуйтесь в создании и управлении разделами дисков и файловыми системами, которые являются фундаментальными блочными устройствами в Linux.
  2. Исследование аппаратных устройств в Linux — Научитесь идентифицировать и проверять различные аппаратные устройства, понимая, как они представлены в каталоге /dev.
  3. Создание и активация файла подкачки в Linux — Получите практический опыт создания и активации файла подкачки, который функционирует как виртуальное устройство памяти.

Тест

Какой символ обозначает символьные устройства в команде `ls -l`? (Укажите один строчный символ английского алфавита в качестве ответа)