Перейти к содержанию

Резюме

Резюме

В этой главе мы обсудили управление оборудованием в системе и настройку модулей ядра Linux для поддержки различных установленных устройств.

Сначала мы рассмотрели различные типы устройств хранения данных в ПК. Мы рассмотрели принципы работы и настройку жёстких дисков SATA, SCSI и на основе флеш-памяти (твердотельных накопителей). Мы также рассмотрели, как изменить аппаратный идентификатор, назначенный устройствам хранения, для настройки загрузочного устройства, и изучили работу оптических и флеш-накопителей.

Затем мы рассмотрели интерфейсы подключения внешних устройств к ПК. Сначала изучили USB. Интерфейс USB использует концентраторы для создания каскадируемой топологии типа «звезда», позволяющей подключать до 127 внешних устройств. Затем рассмотрели, как IEEE 1394 решает аналогичную задачу с использованием топологии последовательного подключения (daisy-chain).

Далее мы обратились к управлению системными ресурсами. Мы рассмотрели роль и функцию прерываний, адресов ввода/вывода и каналов DMA. Мы также изучили работу системы PnP, отметив, что PCI-платы расширения используют PnP и могут быть настроены на совместное использование каналов прерываний.

Затем мы перешли к управлению встроенными устройствами. Встроенные устройства можно включать или отключать с помощью настроек системы. Конкретная клавиша для входа в системные настройки и точный пункт меню для включения или отключения встроенных устройств зависят от производителя.

Мы также рассмотрели управление системами без внешних периферийных устройств, включая клавиатуры и видеодисплеи. Такими системами можно управлять с помощью VNC или SSH, причём SSH является более защищённым вариантом.

Затем мы изучили управление и настройку драйверов для работы оборудования в Linux. Драйверы — это небольшие программы, загружаемые в оперативную память и обеспечивающие взаимодействие процессора с конкретным аппаратным компонентом. Для базовых компонентов это программное обеспечение хранится на микросхеме на материнской плате. Для других компонентов драйвер хранится на жёстком диске и должен быть загружен в оперативную память ядром операционной системы.

Многие современные компьютеры используют унифицированный расширяемый интерфейс прошивки (Unified Extensible Firmware Interface, UEFI) вместо традиционного BIOS. UEFI был разработан для устранения многих недостатков традиционного BIOS: ограничений размера памяти, ограничений размера жёсткого диска и заражения вредоносными программами типа rootkit. Установка Linux на системы на основе UEFI может быть проблематичной, поскольку прошивка UEFI, вероятно, не имеет цифрового сертификата для вашего дистрибутива Linux. На некоторых системах эту проблему можно обойти, отключив параметр SecureBoot в прошивке UEFI.

В Linux драйверы могут быть загружены двумя способами: как модули ядра после запуска операционной системы или скомпилированы непосредственно в ядро. Как правило, в ядро следует встраивать только те драйверы, которые необходимы для загрузки системы. Драйверы для остального оборудования должны загружаться как модули ядра.

Мы рассмотрели инструменты для просмотра информации об оборудовании. В каталоге /proc можно просматривать информацию об оборудовании в следующих файлах и каталогах:

  • cpuinfo
  • devices
  • dma
  • interrupt
  • iomem
  • modules
  • version
  • /scsi/
  • /bus/devices
  • /ide/

Помимо /proc, каталог /sys/ также содержит информацию об установленном оборудовании. Корневой уровень каталога /sys включает множество подкаталогов:

  • /sys/block
  • /sys/bus
  • /sys/class
  • /sys/devices
  • /sys/module

Для просмотра информации об оборудовании также можно использовать следующие утилиты командной строки:

  • hdparm /dev/устройство
  • sg_scan
  • sginfo –l
  • hwinfo
  • lsusb
  • lspci

Затем мы рассмотрели команды оболочки для управления модулями ядра:

  • lsmod — просмотр загруженных модулей ядра
  • modinfo — просмотр информации о модуле
  • depmod — построение списка зависимостей модулей
  • insmod — установка модуля ядра без учёта зависимостей
  • modprobe — установка или удаление модуля ядра с учётом зависимостей
  • rmmod — удаление модуля ядра

Команда modprobe выполняется при каждой загрузке системы и использует файл /etc/modprobe.conf для определения того, какие модули ядра должны загружаться при запуске.

В заключение мы рассмотрели устройства с горячей и холодной заменой. Устройства с холодной заменой (cold-plug devices) можно физически подключать к ПК или отключать от него только при выключенном питании. Если подключить их при работающей системе, они, вероятно, не будут обнаружены и распознаны. Такие устройства доступны через файл устройства в /dev.

Устройства с горячей заменой (hot-plug devices), напротив, предназначены для подключения и отключения в динамическом режиме при работающей системе. Программное обеспечение Linux обнаруживает изменения в системе при подключении и отключении таких устройств. При подключении устройства система распознаёт его и загружает соответствующие модули. Для этого необходимы следующие компоненты Linux:

  • sysfs
  • dbus
  • hald
  • udev

Быстрое повторение (Accelerated Review)

  • Системам ПК необходимы постоянные долгосрочные носители для хранения информации.
  • Жёсткие диски используют покрытые алюминиевые пластины для хранения данных.
  • Геометрия диска включает следующие параметры: цилиндры, головки, секторы на дорожке.
  • SATA-накопители в настоящее время являются наиболее распространённым типом жёстких дисков.
  • Каждый SATA-накопитель в системе имеет собственный выделенный канал, что значительно увеличивает скорость и пропускную способность.
  • SATA-кабели используют семиконтактный разъём.
  • SATA-устройства могут передавать данные со скоростью от 150 МБ/с до максимум 1969 МБ/с.
  • SATA-накопитель, подключённый к разъёму SATA0 на материнской плате, будет использоваться как загрузочный, поскольку ему будет присвоен идентификатор 0.
  • SCSI-накопители используются преимущественно в серверных системах.
  • SCSI-устройства соединяются в цепочку, и каждому присваивается идентификатор SCSI.
  • Чем меньше идентификатор SCSI, тем ниже приоритет устройства.
  • Чем меньше идентификатор, тем выше устройство в порядке загрузки.
  • Оба конца цепочки SCSI должны быть терминированы, а все промежуточные устройства — нет.
  • Serial Attached SCSI (SAS) сочетает лучшие черты SCSI и SATA в новом стандарте.
  • Твердотельный накопитель — это устройство хранения, функционирующее подобно стандартному жёсткому диску и использующее те же операции блочного ввода/вывода.
  • SSD использует флеш-память для хранения данных.
  • SSD использует тот же интерфейс SATA, что и традиционные жёсткие диски.
  • Оптические приводы используют впадины и плоские участки для представления двоичных 0 и 1.
  • Перезаписываемые оптические диски используют специальное светочувствительное покрытие для кодирования двоичных данных.
  • Флеш-накопители используют флеш-память для постоянного хранения данных.
  • USB позволяет подключить к ПК до 127 внешних устройств.
  • USB-устройства являются самонастраивающимися и поддерживают горячую замену.
  • Концентраторы USB можно каскадировать.
  • IEEE 1394 позволяет подключить до 63 устройств.
  • Устройства IEEE 1394 являются самонастраивающимися и поддерживают горячую замену.
  • Устройства IEEE 1394 соединяются последовательно.
  • Прерывания используются для оповещения процессора о том, что устройство требует внимания.
  • Каждому устройству в ПК должно быть назначено прерывание.
  • Два PCI-устройства могут совместно использовать прерывания.
  • Адреса ввода/вывода — это как почтовые ящики для устройств ПК.
  • Адреса ввода/вывода записываются в шестнадцатеричном формате.
  • Всем устройствам должны быть назначены адреса ввода/вывода.
  • Большинство устройств используют диапазон адресов ввода/вывода.
  • Устройства должны использовать уникальные порты ввода/вывода.
  • Каналы DMA позволяют устройству напрямую обращаться к системной оперативной памяти без использования процессора.
  • Устройства должны использовать уникальные каналы DMA.
  • PnP позволяет автоматически настраивать устройства с системными ресурсами при загрузке ПК.
  • Большинство материнских плат включают множество встроенных устройств.
  • Встроенные периферийные устройства можно легко включать или отключать с помощью системных настроек.
  • Некоторые новые компьютеры используют UEFI вместо традиционного BIOS.
  • Установка Linux на систему на основе UEFI может быть проблематичной, поскольку прошивка UEFI, вероятно, не имеет цифрового сертификата для вашего дистрибутива.
  • Может потребоваться управление системами без внешних периферийных устройств, включая клавиатуру. Для этого доступны два варианта: SSH и VNC.
  • Драйверы — это небольшие программы, загружаемые в оперативную память и обеспечивающие взаимодействие процессора с конкретным аппаратным компонентом.
  • Для базовых системных компонентов программное обеспечение драйвера хранится на микросхеме на материнской плате.
  • Более сложные компоненты требуют загрузки драйвера с жёсткого диска в оперативную память.
  • В Linux драйверы могут быть загружены двумя способами: как модули ядра после запуска операционной системы или скомпилированы непосредственно в ядро.
  • Информацию об оборудовании системы можно просматривать в каталоге /proc.
  • Для просмотра информации об оборудовании системы можно использовать следующие утилиты: hdparm –a /dev/устройство, sg_scan, scsiinfo –l, pnpdump, lsusb.
  • Для управления модулями ядра можно использовать следующие утилиты: lsmod, modinfo, depmod, insmod, modprobe, rmmod.
  • Утилита modprobe использует файл /etc/modprobe.conf для определения того, какие модули ядра должны загружаться при загрузке системы.
  • Устройства с холодной заменой можно физически подключать к ПК или отключать от него только при выключенном питании.
  • Устройства с горячей заменой, напротив, предназначены для динамического подключения и отключения при работающей системе.
  • Программное обеспечение Linux обнаруживает изменения в системе при подключении и отключении таких устройств.
  • Система распознаёт устройство при подключении и загружает соответствующие модули.
  • Для управления устройствами с горячей заменой необходимы следующие компоненты Linux: sysfs, dbus, hald, udev.