Дерево устройств

редактировать

В computing, дерево устройств (также записывается devicetree ) - это структура данных, описывающая аппаратные компоненты конкретного компьютера, чтобы ядро ​​ операционной системы могло использовать и управлять этими компонентами, включая ЦП или ЦП, память, шины и периферийные устройства.

Дерево устройств было получено из рабочих станций на базе SPARC и серверы через проект Open Firmware. Текущая спецификация Devicetree нацелена на меньшие системы, но все еще используется с некоторыми системами серверного класса (например, описанными в Справочнике по платформе Power Architecture ).

Персональные компьютеры с архитектурой x86 обычно не используют деревья устройств, вместо этого полагаясь на различные протоколы автоматической конфигурации для обнаружения оборудования. Системы, использующие деревья устройств, обычно передают в операционную систему статическое дерево устройств (возможно, хранящееся в ПЗУ ), но также могут создавать дерево устройств на ранних этапах загрузки. Например, Das U-Boot и kexec могут передавать дерево устройств при запуске новой операционной системы. В системах с загрузчиком, который не поддерживает деревья устройств, статическое дерево устройств может быть установлено вместе с операционной системой; ядро ​​Linux поддерживает этот подход.

Спецификация Devicetree в настоящее время управляется сообществом devicetree.org, которое, среди прочего, связано с Linaro и Arm.

Содержание

  • 1 Дерево устройств форматы
  • 2 Использование в Linux
  • 3 Использование в Windows
  • 4 См. также
  • 5 Ссылки
  • 6 Внешние ссылки

Форматы дерева устройств

Дерево устройств может содержать любые вид данных, поскольку внутренне это дерево именованных узлов и свойств. Узлы содержат свойства и дочерние узлы, а свойства - это пары «имя-значение».

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

Использование в Linux

При правильном дереве устройств одно и то же скомпилированное ядро ​​может поддерживать различные конфигурации оборудования в рамках более широкого семейства архитектур. Ядро Linux для ARC, ARM, C6x, H8 / 300, MicroBlaze, MIPS, NDS32, Nios II, OpenRISC, PowerPC, RISC-V, <44 Архитектуры>SuperH и Xtensa считывают информацию дерева устройств; на ARM деревья устройств были обязательными для всех новых SoC с 2012 года. Это можно рассматривать как средство от огромного количества форков (Linux и Das U-Boot), которые исторически создавались для поддержки (незначительно) разные платы ARM. Цель состоит в том, чтобы переместить значительную часть описания оборудования из двоичного файла ядра в скомпилированный большой двоичный объект дерева устройств, который передается ядру загрузчиком , заменяя ряд специфичных для платы C исходные файлы и параметры времени компиляции в ядре.

Для дистрибутивов Linux на основе ARM было принято включать загрузчик, который обязательно был настроен для определенные платы, например Raspberry Pi или Hackberry A10. Это создало проблемы для создателей дистрибутивов Linux, поскольку некоторая часть операционной системы должна быть скомпилирована специально для каждого варианта платы или обновлена ​​для поддержки новых плат. Однако некоторые современные SoC (например, Freescale i.MX6 ) имеют предоставляемый поставщиком загрузчик с деревом устройств на отдельном чипе от операционной системы.

Собственный формат файла конфигурации используемый для аналогичных целей формат файлов FEX является стандартом де-факто среди Allwinner SoC.

Использование в Windows

В Windows дерево устройств поддерживается диспетчером Plug-and-Play для оценки таких вещей, как возможность безопасного извлечения устройств.

См. Также

Ссылки

Внешние ссылки

Последняя правка сделана 2021-05-17 03:39:06
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте