На последната конференция на Linux Plumbers 2019 Google
След като проектът е готов, доставчиците ще бъдат помолени да предоставят базово ядро, базирано на основното ядро на Linux. Компонентите за хардуерна поддръжка ще се доставят от доставчици само под формата на допълнителни модули на ядрото, без да се прилагат пачове към ядрото. Модулите трябва да са съвместими с основното ядро на ниво пространство от имена на символи на ядрото. Всички промени, засягащи основното ядро, ще бъдат повишени към upstream. За да се поддържа съвместимост със собствени модули в рамките на LTS клонове, се предлага да се поддържа API и ABI на ядрото в стабилна форма, което ще поддържа съвместимостта на модула с актуализации за всеки общ клон на ядрото.
В течение на една година функции като подсистемата PSI (Pressure Stall Information) за анализиране на информация за времето на изчакване за получаване на различни ресурси (CPU, памет, I/O) и псевдофайловата система BinderFS за комуникация между процесите механизъм са прехвърлени към основното ядро на Linux от изданието на ядрото на Android Binder и енергийно ефективен планировчик на задачи EAS (Energy Aware Scheduling). В бъдеще се планира Android да бъде прехвърлен от специфичния планировчик SchedTune към новата подсистема UtilClamp, разработена в ARM, базирана на cgroups2 и стандартни механизми на ядрото.
Нека припомним, че досега ядрото за платформата Android премина през няколко етапа на подготовка:
- Въз основа на основните LTS ядра (3.18, 4.4, 4.9 и 4.14) беше създаден клон на „Android Common Kernel“, в който бяха прехвърлени специфични за Android корекции (преди това размерът на промените достигна няколко милиона реда, но наскоро промените са намалени до няколко хиляди реда код).
- Въз основа на „Общото ядро на Android“, производители на чипове като Qualcomm създадоха „SoC ядро“, което включва добавки за поддръжка на хардуера.
- Въз основа на ядрото на SoC, производителите на устройства създадоха ядрото на устройството, което включва промени, свързани с поддръжката на допълнително оборудване, екрани, камери, звукови системи и др.
По същество всяко устройство има свое собствено ядро, което не може да се използва на други устройства. Такава схема значително усложнява внедряването на актуализации за премахване на уязвимостите и прехода към нови клонове на ядрото. Например, най-новият смартфон Pixel 4, пуснат през октомври, се доставя с Linux ядро 4.14, пуснато преди две години. Отчасти Google се опита да опрости поддръжката, като популяризира системата
Източник: opennet.ru