Google працуе над выкарыстаннем звычайнага ядра Linux у Android

На канферэнцыі Linux Plumbers 2019, якая прайшла, кампанія Google распавяла аб развіцці ініцыятывы па пераносе ў асноўнае ядро ​​Linux змен, якія развіваюцца ў варыянце ядра для платформы Android. Канчатковай мэтай з'яўляецца прадастаўленне магчымасці выкарыстання ў Android аднаго агульнага ядра, замест падрыхтоўкі для кожнага прылады асобных зборак на аснове спецыфічнай для Android галінкі Агульнае ядро ​​Android. Дадзеная мэта ўжо часткова дасягнута, і на канферэнцыі быў прадэманстраваны Android-смартфон Xiaomi Poco F1 з прашыўкай на базе звычайнага немадыфікаванага ядра Linux.

Пасля гатоўнасці праекта пастаўшчыкам будзе прапанавана пастаўляць базавую ядро ​​на аснове асноўнага ядра Linux. Кампаненты для падтрымкі абсталявання будуць пастаўляцца пастаўшчыкамі толькі ў выглядзе дадатковых модуляў ядра, без накладання на ядро ​​патчаў. У модулях абавязкова павінна будзе забяспечвацца сумяшчальнасць з асноўным ядром на ўзроўні прасторы імёнаў знакаў ядра. Усе змены, якія закранаюць асноўнае ядро, будуць прасовацца ў upstream. Для захавання сумяшчальнасці з прапрыетарнымі модулямі ў рамках LTS-галінак прапануецца падтрымліваць у стабільным выглядзе API і ABI ядра, што дазволіць захаваць сумяшчальнасць модуляў з абнаўленнямі для кожнай агульнай галіны ядра.

Google працуе над выкарыстаннем звычайнага ядра Linux у Android

За год у асноўнае ядро ​​Linux з рэдакцыі ядра для Android былі перанесены такія магчымасці, як падсістэма PSI (Pressure Stall Information) для аналізу інфармацыі аб часе чакання атрымання розных рэсурсаў (CPU, памяць, увод / вывад), псеўдафайлавая сістэма BinderFS для механізму міжпрацэснага ўзаемадзеяння Binder і энергаэфектыўны планавальнік задач EAS (Energy Aware Scheduling). У далейшым Android плануецца перавесці са спецыфічнага планавальніка SchedTune на распрацаваную ў ARM новую падсістэму UtilClamp, заснаваную на cgroups2 і штатных механізмах ядра.

Google працуе над выкарыстаннем звычайнага ядра Linux у Android

Нагадаем, што да гэтага часу ядро ​​для платформы Android праходзіла некалькі стадый падрыхтоўкі:

  • На базе асноўных LTS-ядзер (3.18, 4.4, 4.9 і 4.14) стваралася адгалінаванне "Android Common Kernel", у якое пераносіліся спецыфічныя для Android патчы (раней памер змен дасягаў некалькіх мільёнаў радкоў, але апошнім часам змены былі скарочаныя да некалькіх тысяч радкоў кода ).
  • На аснове "Android Common Kernel" вытворцы чыпаў, такія як Qualcomm, фармавалі "SoC Kernel", якія ўключаюць дапаўненні для падтрымкі абсталявання.
  • На аснове "SoC Kernel" вытворцы прылад стваралі "Device Kernel", якія ўключаюць змены, звязаныя з падтрымкай дадатковага абсталявання, экранаў, камер, гукавых сістэм і да т.п.

Google працуе над выкарыстаннем звычайнага ядра Linux у Android

Па сутнасці, для кожнай прылады фармавалася сваё ўласнае ядро, якое не магло выкарыстоўвацца на іншых прыладах. Падобная схема істотна ўскладняе давядзенне абнаўленняў з ухіленнем уразлівасцяў і пераход на новыя галінкі ядра. Напрыклад, які выйшаў у кастрычніку найноўшы смартфон Pixel 4 пастаўляецца з ядром Linux 4.14, выпушчаным два гады назад. Часткова, Google паспрабаваў спрасціць суправаджэнне прасоўваючы сістэму Патроіць, якая дазваляе вытворцам ствараць універсальныя кампаненты падтрымкі абсталявання, не прывязаныя да пэўных версій Android і выкарыстоўваным выпускам ядра Linux. Treble дае магчымасць выкарыстоўваць у якасці асновы ўжо гатовыя абнаўленні ад Google, інтэгруючы ў іх спецыфічныя для пэўнай прылады кампаненты.


Крыніца: opennet.ru

Дадаць каментар