Читая о драйверах устройств Linux и API управления питанием, я постоянно сталкиваюсь с такими терминами, как «уровень системы», «подсистема», «платформа», «класс» и т. д.
Какая связь между ними? Является ли система подтипом платформы? Или система и платформа существуют параллельно без отношения включения? Чем «класс» отличается от «системы»? Для чего хорош каждый домен (например, если я хочу реализовать определенную функциональность, должна ли это быть функциональность уровня класса, или функциональность платформы, или что-то еще и т. д.)?
Короче говоря, может ли кто-нибудь объяснить мне, что это за разные вещи?
решение1
Их трудно определить. Обычно в контексте перечисления устройств,
«Платформенные» устройства — это устройства, которые обычно можно найти на ПК или на Raspberry Pi.
Ядро начинает искать их, поскольку оно было скомпилировано для работы на ПК или на RPi. Некоторые компоненты материнской платы, а также ЦП и память попадают в эту категорию.
«подсистема» — это, по сути, группа драйверов со схожей функциональностью для различного оборудования.
Отдельные драйверы могут затем, в свою очередь, использовать драйверы из другой подсистемы. Например, драйверы подсистемы «звук» обрабатывают отдельные звуковые карты и представляют общий интерфейс звуковой карты, в то время как драйвер может использовать подсистему PCI для поиска звуковой карты, независимо от типа используемого чипа южного моста.
драйвер «класса» имеет дело с устройствами от разных поставщиков, реализующими общий интерфейс.
Это типично для USB-устройств, где, например, существует стандарт для запоминающих устройств большой емкости, и один драйвер управляет всеми устройствами, которые заявляют о своей совместимости.