Дерево пристроїв (англ. device tree, devicetree) — структура даних, що описує компоненти обладнання для певного комп'ютера, для того, щоб ядро операційної системи могло керувати цими компонентами і працювати з ними, включаючи центральний процесор (або декілька процесорів), пам'ять, шини і периферію.

Дерево пристроїв було успадковано від робочих станцій і серверів на основі SPARC, завдяки проекту Open Firmware. Сучасна специфікація для Devicetree[1] спрямована на невеликі системи, але досі використовується для деяких системи серверного класу (наприклад, для тих що описуються в Power Architecture Platform Reference).

Персональні комп'ютери із архітектурою x86 як правило не використовують дерева пристроїв, а замість того покладаються на різноманітні протоколи автоматичної конфігурації для пошуку обладнання. Системи, які використовують дерева пристроїв, як правило передають операційній системі статичні дерева пристроїв (які ймовірно зберігаються у ROM), але також можуть генерувати дерева пристроїв на ранній стадії завантаження. Наприклад, Das U-Boot і kexec можуть передавати дерево пристроїв при запуску нової операційної системи. На системах, де завантажувач не підтримує дерева пристроїв, статичне дерево пристроїв може ініціалізуватися разом із операційною системою; Ядро Linux підтримує цей підхід.

Специфікація щодо формування дерева пристроїв на сьогодні відбувається за підтримки спільноти, що називається devicetree.org, яка серед інших співпрацює із Linaro і ARM.

Формати дерева пристроїв

ред.

Дерево пристроїв може описувати дані будь-якого вигляду, оскільки за внутрішньою будовою воно є ієрархічною структурою із іменованими вузлами і властивостями. Вузли мають властивості і дочірні вузли. Властивості представлені у вигляді пар ім'я–значення.

Дерево пристроїв може мати два формати: бінарний формат для використання операційними системами і текстовий формат для зручного редагування і роботою з ним.[1]

Примітки

ред.
  1. а б Devicetree specification (PDF). Release v0.2. devicetree.org. 20 грудня 2017.

Посилання

ред.