Дерево пристроїв (англ. device tree, devicetree) — структура даних, що описує компоненти обладнання для певного комп'ютера, для того, щоб ядро операційної системи могло керувати цими компонентами і працювати з ними, включаючи центральний процесор (або декілька процесорів), пам'ять, шини і периферію.
Дерево пристроїв було успадковано від робочих станцій і серверів на основі SPARC, завдяки проекту Open Firmware. Сучасна специфікація для Devicetree[1]
спрямована на невеликі системи, але досі використовується для деяких системи серверного класу (наприклад, для тих що описуються в Power Architecture Platform Reference).
Персональні комп'ютери із архітектурою x86 як правило не використовують дерева пристроїв, а замість того покладаються на різноманітні протоколи автоматичної конфігурації для пошуку обладнання. Системи, які використовують дерева пристроїв, як правило передають операційній системі статичні дерева пристроїв (які ймовірно зберігаються у ROM), але також можуть генерувати дерева пристроїв на ранній стадії завантаження. Наприклад, Das U-Boot і kexec можуть передавати дерево пристроїв при запуску нової операційної системи. На системах, де завантажувач не підтримує дерева пристроїв, статичне дерево пристроїв може ініціалізуватися разом із операційною системою; Ядро Linux підтримує цей підхід.
Специфікація щодо формування дерева пристроїв на сьогодні відбувається за підтримки спільноти, що називається devicetree.org, яка серед інших співпрацює із Linaro і ARM.
Формати дерева пристроїв
Дерево пристроїв може описувати дані будь-якого вигляду, оскільки за внутрішньою будовою воно є ієрархічною структурою із іменованими вузлами і властивостями. Вузли мають властивості і дочірні вузли. Властивості представлені у вигляді пар ім'я–значення.
Дерево пристроїв може мати два формати: бінарний формат для використання операційними системами і текстовий формат для зручного редагування і роботою з ним.[1]
Примітки
Посилання