Після двох місяців розробки Лінус Торвальдс представив реліз ядра Linux 7.3. Серед найбільш помітних змін: механізм ізоляції ФС на базі псевдо-ФС failfs і системного виклику fchroot(), підтримка створення вкладених планувальників SCHED_EXT, BPF-обробники запуску виконуваних файлів, альтернативні потоки даних у NTFS3, оптимізації продуктивності FUSE, Btrfs ksmbd, видалення ФС EFS та FreeVxFS, режим прямого доступу до блокових пристроїв, покращення обробки нестачі відеопам'яті, відстеження звернень до пам'яті гостьової системи через userfaultfd, стиснення правил AppArmor, обмеження доступу до AF_ALG, підтримка чіпів Apple M3 Pro, Max та Ultra.
У нову версію прийнято 20 260 виправлень від 3 171 розробника, з яких 807 вперше відправили свої зміни в ядро. Розмір патча - 63 МБ (зміни торкнулися 14923 файлів, додано 943849 рядків коду,
видалено 297515 рядків). У минулому випуску було 17 833 виправлень від 2766 розробників, розмір патчу - 68 МБ. Близько 44% всіх представлених у 7.3 змін пов'язані з драйверами пристроїв, приблизно 12% змін стосуються оновлення коду, специфічного для апаратних архітектур, 12% пов'язано з мережевим стеком, 5% — з файловими системами і 3% з внутрішніми підсистемами ядра.
Основні нововведення в ядрі 7.3 (1, 2, 3):
- Дискова підсистема, введення/виведення та файлові системи
- Проведено оптимізацію продуктивності ФС Btrfs. Для не SSD-накопичувачів видалена зайва затримка, що призвело до п'ятикратного підвищення пропускної спроможності навантажень з активним використанням функції fsync, таких як запис логів. У fsync відключено визначення порожнин у файлах з великою кількістю екстентів і без порожнеч, що прискорило виконання деяких специфічних тестів у 5 разів.
При відстеженні буферів екстентів, що не кешуються, структура xarray замінена на локальний LRU-список, що призвело до підвищення продуктивності даних операцій в 3 рази. Усунено провали у продуктивності при використанні режиму прямого введення/виводу, спричинені регресії в попередніх випусках ядра. Скорочено блокування при попереджувальному читанні екстентів, що знизило накладні витрати при зверненні різних завдань до областей, що перекриваються.
- У Btrfs видалено підтримку першої версії кешу з інформацією про вільне місце. ФС, створені на старих системах, необхідно перекласти на другу версію кешу за допомогою утиліти btrfstune, інакше вони працюватимуть повільніше. Також видалено опцію монтування «usebackuproot», замість якої слід використовувати «rescue=usebackuproot».
- У ФС Ext4 підвищено продуктивність паралельних операцій запису під час прямого введення/виведення (Direct I/O) і прискорено резервування порожніх областей через виклик fallocate(). Усунено регресію, що знижувала продуктивність при буферизованому записі.
- У ФС Ext4 режим монтування "data = journal" переведений у розряд застарілих. Підтримку цієї опції монтування мають намір припинити у 2028 році. Опція "data=journal" включає режим повного журналування, при якому в журнал записуються не тільки метадані, але і самі дані, що забезпечує високу стійкість у разі збоїв, але ускладнює супровід коду, що призводить до значного зниження продуктивності в порівнянні з режимами "data=ordered" та "data=writeback".
- Видалена файлова система EFS, яка застосовувалася в ранніх версіях ОС IRIX, перестала використовуватися близько 30 років тому і вже понад 20 років без супроводу. Для тих кому необхідний доступ розділам з EFS існують утиліти, що працюють у просторі користувача.
- Видалено файлову систему FreeVxFS, що реалізує формат ФС VERITAS VxFS, що застосовувався в SCO UnixWare в 1990-і роки і давно не використовується на практиці.
- У механізмі створення файлових систем у просторі користувача FUSE підвищено продуктивність та скорочено споживання пам'яті під час використання системи асинхронного введення/виведення io_uring. Прискорення досягнуто завдяки доданню можливості передачі пулів буферів з простору користувача в ядро і виключенню зайвої буферизації (zero-copy) при доступі FUSE-сервера до сторінок пам'яті клієнтського процесу або сторінкового кешу.
- Для блокових пристроїв реалізований прапор RWF_DONTCACHE, схожий на режим прямого введення/виводу
(Direct I/O), який можна використовувати у функціях preadv2() і pwritev2() або в запитах на читання та запис через io_uring для доступу до блокового пристрою в обхід сторінкового кешу. Наприклад, прапор може застосовуватись у СУБД для низькорівневої роботи з блоковими пристроями. - У ФС overlayfs додано підтримку картки ідентифікаторів користувачів, що застосовується для зіставлення файлів певного користувача на примонтованому чужому розділі з іншим користувачем в поточній системі.
- Поліпшено підтримку монтування декількох ФС з одного блокового пристрою.
- У драйвері ntfs3 реалізована початкова підтримка альтернативних потоків даних, що поділяються через двокрапку в імені файлу. Для створення нового альтернативного потоку можна використовувати команду "touch file: поток", читання - "cat file: поток", видалення - "rm file: поток", виведення доступних потоків - "cat file: query_streams".
- У новій реалізації NTFS (ntfsplus) у режимі лише читання з'явилася підтримка технології прозорого стискування файлів з використанням оверлейних фільтрів WOF (Windows Оverlay Filter).
- У NFS-сервер додано підтримку операції CB_NOTIFY, що дозволяє клієнту кешувати метадані директорій на своїй стороні, отримуючи повідомлення про зміни від сервера.
- У ФС F2FS додано підтримку динамічного (без відмонтування ФС) видалення розділів із загального пулу з автоматичним перенесенням даних на інші розділи та повернення назад (наприклад, можна тимчасово вилучити накопичувач для інших потреб).
- У XFS додано підтримку прапора FALLOC_FL_WRITE_ZEROES у системному виклику fallocate(), що дозволяє заповнити нулями зазначений діапазон у файлі, використовуючи підтримувану деякими SSD-накопичувачами команду WRITE_ZERO, що виконує обнулення без операцій введення/виведення.
- Проведено оптимізацію продуктивності ФС Btrfs. Для не SSD-накопичувачів видалена зайва затримка, що призвело до п'ятикратного підвищення пропускної спроможності навантажень з активним використанням функції fsync, таких як запис логів. У fsync відключено визначення порожнин у файлах з великою кількістю екстентів і без порожнеч, що прискорило виконання деяких специфічних тестів у 5 разів.
- Пам'ять та системні сервіси
- Покращено обробку нестачі відеопам'яті. У ситуації вичерпання вільної відеопам'яті ядро тепер намагається витіснити з відеопам'яті до системної пам'яті (GTT) буфери додатків, які мають гарантованої квоти пам'яті (dmem cgroup), а чи не відразу відмовляти у виділенні відеопам'яті. Такий підхід гарантує виділення ресурсів додатку, якому система зарезервувала певний обсяг відеопам'яті, навіть якщо пам'ять вже виділено іншим програмам. Раніше, якщо додатку без квот вже була виділена відеопам'ять, то в ситуації нестачі відеопам'яті додаток з гарантованими квотами не міг отримати її, і замість відеопам'яті через підсистему TTM (Translation Table Maps) додатку виділялася більш повільна оперативна пам'ять, адресована з GPU (GTT).
Підтримка dmem cgroup реалізована для драйверів nouveau, xe та amdgpu. - У механізмі SCHED_EXT, що дозволяє використовувати BPF для створення планувальників CPU, завершено роботу над можливістю створення вкладених планувальників (sub-scheduler), за допомогою яких для кожного cgroup можна задіяти власний планувальник завдань.
- У планувальник завдань внесено покращення, пов'язані з обробкою cgroup та вирішенням проблем із розподілом ваг, через які виникали додаткові накладні витрати та затримки. Запропоновано кілька методів розподілу ваги для cgroup — 'up', 'max', 'concur' і 'tasks', що виставляються через параметр cgroup_mode. Задіяно єдину чергу виконання (runqueue) для планування завдань усередині cgroup. Скорочено затримки при плануванні завдань, яким виділяються короткі кванти процесорного часу, за рахунок
можливості за необхідності скасовувати, оновлювати чи мінімізувати час виконання завдань, захищених від витіснення. - У механізмі binfmt_misc (/proc/sys/fs/binfmt_misc) реалізована
можливість підключення BPF-обробників для додавання підтримки нових форматів файлів, що виконуються. Зміна дозволяє програмно в момент кожного запуску аналізувати тип файлу, що виконується, і вибирати для нього інтерпретатор або динамічний завантажувач без хаків типу використання утиліти patchelf і скриптових обв'язок. Наприклад, у BPF-програмі можна визначати виконувані файли для інших архітектур або платформ і запускати відповідні емулятори або Wine, а також спростити організацію запуску файлів, що виконуються в пакетах, встановлених в різні каталоги в системах з пакетним менеджером Nix. - Продовжено перенесення змін з гілки Rust-for-Linux, пов'язаних з використанням мови Rust як другої мови для розробки драйверів і модулів ядра (підтримка Rust не активна за замовчуванням, і не призводить до включення Rust до обов'язкових складальних залежностей до ядра). З'явилася можливість використання Rust для PowerPC. Реалізовані: модуль для цілочисельних перетворень без втрат, режим обфусцованого логування значень покажчиків для запобігання витоку відомостей про адресний простір, обв'язування над функцією synchronize_rcu(), бар'єри пам'яті, модуль interrupt для вмикання/відключення переривань, типи для введення/виведення (sleepable read-copy-update), обв'язування над gem shmem,
spinlock-блокування SpinLockIrq, що не допускає переривання у критичних секціях. - Доданий sysctl-параметр syscall_user_dispatch для керування включенням режиму диспетчеризації системних викликів у користувальницькому просторі, що дозволяє одному процесу перехоплювати системні виклики іншого процесу (застосовується у Wine для емуляції системних викликів Windows).
- У BPF додано функцію bpf_sock_read_xattr(), за допомогою якої BPF-програми можуть читати розширені атрибути, що виставляються користувачем.
(user.*) з inode сокетів. У BPF-додатках з'явилася можливість визначення глобальних змінних, прив'язаних до CPU. У верифікаторі BPF-програм надано додаткову інформацію про виявлені помилки, що спрощує визначення причин проблем. - У механізмах трасування kprobes, uprobes та fprobes реалізована підтримка приведення типів, використовуючи дані BTF (BPF Type Format) з інформацією для перевірки типів у псевдокоді BPF, а також покращено вилучення відомостей про змінні.
- У підсистему DAMON (Data Access MONitor), що дозволяє відстежувати доступ процесу до даних в оперативній пам'яті (наприклад, можна дізнатися до яких областей пам'яті звертався процес, а які області пам'яті залишилися незатребуваними), додана можливість моніторингу зміни атрибутів даних (анонімна пам'ять, відображені в пам'ять файлів, доступ тільки.
- У механізмі KHO (Kexec HandOver), який використовується для запуску нового ядра зі старого без втрати стану системи, забезпечений облік виділення великих сторінок пам'яті (huge pages) під час завантаження. Подібні сторінки пам'яті тепер маркуються та зберігаються після запуску нового ядра.
- Низькорівневий код системи підкачки (swap) переведено на нову низькорівневу структуру даних swap_ops, яка спростила супровід коду та реалізувала абстракції, необхідні для розширення функціональності у майбутньому.
- Додані ioctl-команди ALLOCINFO_IOC_CONTENT_ID, ALLOCINFO_IOC_GET_AT та ALLOCINFO_IOC_GET_NEXT, що дозволяють вибірково передавати в простір користувача дані профілювання виділення пам'яті. У порівнянні з раніше доступним інтерфейсом /proc/allocinfo, запропоновані ioctl-дзвінки дозволяють до 20 разів підвищити продуктивність запитів профілювання за рахунок фільтрації зайвих даних.
- Покращено обробку нестачі відеопам'яті. У ситуації вичерпання вільної відеопам'яті ядро тепер намагається витіснити з відеопам'яті до системної пам'яті (GTT) буфери додатків, які мають гарантованої квоти пам'яті (dmem cgroup), а чи не відразу відмовляти у виділенні відеопам'яті. Такий підхід гарантує виділення ресурсів додатку, якому система зарезервувала певний обсяг відеопам'яті, навіть якщо пам'ять вже виділено іншим програмам. Раніше, якщо додатку без квот вже була виділена відеопам'ять, то в ситуації нестачі відеопам'яті додаток з гарантованими квотами не міг отримати її, і замість відеопам'яті через підсистему TTM (Translation Table Maps) додатку виділялася більш повільна оперативна пам'ять, адресована з GPU (GTT).
- Віртуалізація та безпека
- Запропоновано новий механізм ізоляції, що блокує доступ до вмісту файлових систем, за винятком ресурсів, які явно передані в sandbox-оточення через файлові дескриптори. Механізм реалізований за допомогою псевдо-ФС failfs і системного виклику fchroot.
Псевдо-ФС failfs нагадує ФС nullfs, але, на відміну від останньої, реалізує принцип «нічого не підтримується» замість «нічого не зберігається». Подібна властивість не дозволяє монтувати щось поверх failfs, клонувати ФС і відстежувати стан через statmount(), listmount(), /proc/ /mountinfo та /proc/filesystems. Якщо кореневий чи робочий каталог процесу перебуває у failfs, то блокуються будь-які спроби навігації ФС з використанням абсолютних файлових шляхів, символічних посилань і відносних шляхів, залежних від поточного робочого каталогу. Процесу залишається лише можливість звернення до певного каталогу файлових дескрипторів, відкритих до ізоляції.
Для переходу до нового режиму ізоляції додано системний виклик fchroot, схожий на системний виклик chroot, але працює на рівні файлових дескрипторів. У системні виклики fchdir доданий прапор FD_FAILFS_ROOT для переміщення робочого каталогу процесу у ФС failfs.
Аналогічний прапор доступний у системному виклику fchroot. - Додано можливість відстеження звернень до пам'яті гостьової системи за допомогою механізму userfaultfd, що дозволяє створювати обробники звернень до невиділених або захищених сторінок пам'яті у просторі користувача. На практиці запропонована можливість дозволяє гіпервізору визначати сторінки пам'яті, до яких у віртуальній машині не було звернень, для їх витіснення в повільнішу пам'ять або в зовнішнє сховище. Для відстеження порушень виставленої заборони читання і запису в області пам'яті, що відстежується, доданий прапор UFFDIO_REGISTER_MODE_RWP, який може використовуватися як більш високопродуктивний аналог застосування mprotect(PROT_NONE) спільно з обробником сигналу, генерованого при зверненні до пам'яті, для якої виставлено заборону на читання оброблюваний у просторі користувача). Зміна підготовлена за допомогою AI (Assisted-by: Claude:claude-opus-4-6).
- Посилено поділ між потоками ядра (kthread) та init-процесом (PID 1). Раніше в потоках ядра і PID 1 спільно використовувався загальний стан файлової системи,
що дозволяло через виклик pivot_root() перевизначити стан ФС всім потоків ядра. У новій версії PID 1 задіяна повністю окрема структура fs_struct, а потоки ядра ізольовані в окремій точці монтування з nullfs. - До вбудованої криптографічної бібліотеки (libcrypto) додано підтримку режимів шифрування AES - ECB, CBC, CBC-CTS, CTR, XCTR, XTS, GCM і CCM.
- У системі мандатного керування доступом AppArmor реалізована можливість завантаження стислих наборів правил та доданий режим аудиту.
- Доданий sysctl-параметр af_alg_restrict, який управляє включенням доступу до криптографічного API AF_ALG з простору користувача. AF_ALG дозволяє використовувати апаратні прискорювачі для криптографічних обчислень в Crypto API ядра, але застосовується в досить специфічних ситуаціях і не завжди дає приріст продуктивності в порівнянні з реалізацією прискорення в просторі користувача. При цьому у пов'язаних з AF_ALG обробниках виявлено серію вразливостей, таких як Copy Fail, що дозволяють змінити дані у сторінковому кеші. Для зниження поверхні атаки за промовчанням доступ до AF_ALG частково обмежений. Розглядається можливість видалення AF_ALG у одному з майбутніх випусків.
- Посилено верифікацію BPF-програм, завірених цифровим підписом. Додано перевірку цілісності метаданих BPF-програм перед її завантаженням.
- До системного виклику landlock_restrict_self(), який використовується для активації блокувань Landlock, додано прапор
LANDLOCK_RESTRICT_SELF_NO_NEW_PRIVS, що забороняє поточному процесу отримання будь-яких нових привілеїв. Механізм Landlock дозволяє непривілейованим програмам скидати непотрібні для роботи привілеї, добровільно обмежуючи свій подальший доступ до системи для підвищення безпеки, наприклад, для захисту у разі спроб експлуатації вразливостей у програмі. - У драйвер VirtIO-GPU, що забезпечує роботу віртуального GPU, додано підтримку сплячого режиму S4 (hibernation).
- Запропоновано новий механізм ізоляції, що блокує доступ до вмісту файлових систем, за винятком ресурсів, які явно передані в sandbox-оточення через файлові дескриптори. Механізм реалізований за допомогою псевдо-ФС failfs і системного виклику fchroot.
- Мережева підсистема
- У ksmbd, вбудований в ядро сервер для протоколу SMB, додано підтримку розширень Apple Time Machine для зберігання резервних копій, створюваних в macOS через цей додаток. Реалізовано механізм ізоляції послідовностей команд SMB у прив'язці до MessageId для блокування атак через відправлення недійсних чи дубльованих запитів. Додано підтримку відправлення повторних запитів протоколом SMB3 без порушення стану сеансу, якщо попередній запит було втрачено. У SMB3 реалізована можливість шифрування лише на рівні окремих загальних сховищ (share). Додано підтримку шифрування каналу зв'язку SMB Direct, що використовує технологію RDMA (Remote Direct Memory Access).
- Реалізовано можливість використання TCP-пакетів з розширенням BIG TCP, що дозволяє збільшити максимальний розмір TCP-пакету до 4ГБ у UDP-тунелях на базі протоколів VXLAN та GENEVE.
- Додано підтримку прокидання протоколу MCTP (Management Component Transport Protocol) поверх USB (MCTP-over-USB 1.1).
- Надано можливість відключення (unregistration) мережевих пристроїв (netkit, veth, vxcan, bareudp, geneve, ipvlan, macvlan тощо) для вибраних просторів імен.
- Для Bluetooth 6.2+ реалізовано підтримку механізму SCI (Shorter Connection Interval) для зниження затримок при передачі даних у режимі Bluetooth LE (Low Energy).
- В API nl80211 додано уніфікований механізм (NL80211_CMD_PROBE_PEER) для перевірки підключених бенкетів, що працює як у бездротових точках доступу, так і на стороні клієнта.
- Обладнання
- Оголошені застарілими та намічені для видалення в ядрі 7.5 старі ARM-платформи, які майже не використовуються та заважають супроводу актуальних підсистем. До видалення намічено близько 55 тисяч рядків коду, пов'язаного з підтримкою платформ sa1100, omap24xx, i.MX31, samv7, lpc18xx, riscpc, axxia, footbridge, старих плат pxa, orion, dove та mv78xx0, чіпів без блоку stm32f4/f7/h7.
- Додана початкова підтримка чіпів Apple M3 Pro, Max та Ultra. Реалізовано керування станом енергоспоживання для SoC Apple.
- До системи DRM (Direct Rendering Manager) додано властивість «color format», що дозволяє користувачеві переключити формат подання кольору для пристрою виведення. Властивість реалізована для драйверів GPU i915 (HDMI, DP), amdgpu (HDMI, DP) та rockchip (HDMI). Для тестування можна використовувати команду виду "modetest -s 115:1920×1080-60@NV12 -w 115:'color format':4", в якій 115 - ідентифікатор конектора, а '4' номер формату YUV420.
- У драйвер amdgpu додано підтримку модифікаторів DRM для GPU AMD серій GFX6-8 (Southern Islands, Sea Islands та Volcanic Islands). Реалізовано початкову підтримку DCN 6.0.0 (Display Core Next). Проведено чищення застарілого коду.
Включено підтримку CACP (Content Adaptive Contrast and Power), що дозволяє знизити енергоспоживання OLED-панелей. Для дисплейних двигунів на архітектурі DCN4 включено підтримку механізму IPS (Idle Power State) для зниження енергоспоживання під час неактивності. Додано підтримку відеокарт AMD Barco. - У драйвері i915 перероблено код для визначення можливостей та відновлення стану конекторів DisplayPort. Для GPU Novalake (NVL) додано підтримку CMTG (Common mode timing generator) та DC3DO (Display C3 with Clock Off).
- Продовжено роботу над drm-драйвером (Direct Rendering Manager) Xe для GPU на базі архітектури Intel Xe, яка використовується у відеокартах Intel сімейства Arc та інтегрованої графіки, починаючи з процесорів Tiger Lake. Додано нові ідентифікатори пристроїв, що підтримуються. У configfs реалізований атрибут 'enable_multi_queue' для відключення одночасного використання кількох черг передачі команд. Поліпшено підтримку переходу в сплячий режим.
- Продовжено інтеграцію компонентів драйвера Nova для GPU NVIDIA, оснащених GSP-прошивками, що використовуються починаючи з серії NVIDIA GeForce RTX 2000 на базі мікроархітектури Turing. Драйвер написаний мовою Rust. У новій версії здійснено перехід на нові образи прошивок TLV замість старих варіантів, що використовуються в драйвері Nouveau. Додана підтримка
запуску прошивки для чіпа GSP (GPU System Processor) із включенням vGPU. Доданий API для отримання інформації про розмір відеопам'яті. - У драйвер Tyr, написаний мовою Rust і що забезпечує роботу з GPU ARM Mali, додано можливість завантаження прошивок у форматі Mali CSF, активації віртуальної пам'яті GPU та запуску MCU.
- У драйвер msm додана підтримка GPU Adreno Shikra (A704) та Eliza (722).
- Додано підтримку звукових пристроїв та ASoC: Pioneer DJ DJM-S11,
AW88399 (Lenovo Legion Pro), AW88399 (Lenovo Legion), Lisuan, ALC235, RME HDSPe AIO, SDCA RT766/RT767, Maili, Hawi, CS35L62 (SoundWire), RT766/RT767 VA1. - Додано підтримку Steam Controller (модель 2026 року); мишей Logitech G502 X Plus та G502 X Lightspeed,; клавіатури Endorfy Thock TKL, Zenbook A16; гарнітур Nova 5X, Nova 7 та Arctis 7; ігрового керма Turtle Beach VelocityOne Race; геймпаду MSI Claw.
- Покращена підтримка звуку на пристроях ASUS VivoBook M515DA/X515DAP,
LG gram 16 (16Z90TR), Minisforum AI X1 Pro, HP Pavilion 15-eh2xxx, HP Laptop 15-dy0xxx та HP Spectre x360 16-aa0xxx, HP EliteBook 6 G1, HP OmniBook X Flip 14, Lenovo Yoga Pro 7, Hua
ThinkPad X1 Carbon 6th, HP ProBook 440 G5, Acer Aspire A515-57. - Додано підтримку смартфонів, планшетів і ноутбуків: Motorola Edge 30, Motorola Moto G2, Xiaomi 12 Lite 5G, Microsoft Surface Pro, Honor MagicBook Art 1412, Sony Xperia M2, Vicharak Axon, Axon Mini та Vaaman2, Asus Zenbook A16, Lenovo Th.
- Додана підтримка ARM-плат і SoC Samsung Exynos 1580 (використовується у флагманських смартфонах з 2024 року), Orange Pi 5 pro, Sophgo SG2000 (гібрид Arm/RISC-V), BeagleBadge, Qualcomm "Shikra" та "Altera" (Cortex-A (Cortex-A720), Alientek ATK-DLRV1126, Variscite SoC DART-MX8M-PLUS, DART-MX8M-MINI, VAR-SOM-MX8QM та плати Sonata/Symphony на їх основі, 9Tripod X3568 v4, Youyeoto CM5, Freescale Verdin iMX8M Mini, Anbernic rg vita-pro, Embedfire lubancat 4, Vicharak Vaaman, LincStation E1, HINLINK H28K.
Одночасно латиноамериканський Фонд вільного програмного забезпечення сформував
варіант повністю вільного ядра 7.3 - Linux-libre 7.3-gnu, очищеного від елементів прошивок та драйверів, що містять невільні компоненти або ділянки коду, сфера застосування яких обмежена виробником. У випуску 7.3 проведено чищення від бобів нових драйверів для GPU Mali Tyr, Morse Micro mm81x wi-fi, NXP wi-fi, та мережевих карток на чіпах Realtek. Оновлено код чищення в драйверах nova-core, amdgpu, adreno, tegra, iris, rtw89 та mt76 wifi, Qualcomm Q6V5 PAS, qla2xxx scsi та звукових кодеках aw88399. Здійснено чищення імен blob-ів у dts-файлах (devicetree) для ARM-чіпів Qualcomm.
Джерело: opennet.ru
