Андроид прелази на модел „прво узводно“ за нове карактеристике Линук кернела

click fraud protection

Гоогле планира да пређе на развојни модел „прво узводно“ за функције Линук кернела у Андроиду почевши од 2023. Читајте даље да бисте сазнали више.

Када видите речи „Андроид“ и „фрагментација“ у истој реченици, ваш ум вероватно одмах скочи на Табела дистрибуције Андроид верзије. Постоји неколико ентитета на које већина људи упире прстом када се жале да се ажурирања Андроид ОС-а споро објављују широм света, али постоји само толико тога што Гоогле може да уради да сила ОЕМ произвођачи да брже развијају и уводе ажурирања. Оно што Гоогле може да уради, међутим, јесте да смањи време развоја, а тиме и трошкове увођења ажурирања.

Прва велика иницијатива у Гооглеовом дугорочном пројекту за смањење развојних оптерећења је Пројецт Требле. Најављен уз Андроид 8.0 Орео 2017. године, Пројецт Требле је модуларизирао Андроид тако што је одвојио оквир ОС од имплементације добављача (ХАЛ-ови и виљушка за Линук кернел специфична за уређај). Ово је олакшало Андроид ОЕМ произвођачима да поново базирају своје оперативне системе на најновијим АОСП оквирима јер су могли да покрену најновију верзију без потребе за ажурираним кодом произвођача. Као резултат тога, произвођачи оригиналне опреме могли би да припреме своје прилагођене Андроид виљушке брже него раније и да брже уведу главна ажурирања ОС-а.

Следећи корак у Гоогле-овим плановима био је да поједностави испоруку ажурирања кључних Андроид компоненти. Гугл је позвао ову иницијативу Пројецт Маинлине када га је представио уз Андроид 10 2019. Гоогле је у суштини преузео контролу над кључним компонентама ОС-а и забранио ОЕМ-има да их модификују. Затим су поставили механизам испоруке преко Гоогле Плаи-а како би могли даљински да уведу ажурирања за ове кључне компоненте без потребе да чекају да ОЕМ-ови сами примене закрпе. Маинлине је увелико побољшао брзину којом уређаји добијају ажуриране верзије важних компоненти ОС-а, што је заузврат побољшало безбедност Андроид екосистема у целини.

Али оно што следи је још важније и вероватно је најважнији део Гоогле-ове дугорочне стратегије. Када смо раније истакли како је Требле модуларизовао Андроид тако што је одвојио ОС оквир од имплементацију добављача, укључили смо "виљушку Линук кернела специфичну за уређај" као део тог добављача код. Свако ко је упознат са Линук-ом на десктопу препознаће проблем: зашто је уклопљен у код добављача затвореног кода? Проблем је у томе што док се Андроид уређаји испоручују са Линук кернелом, то језгро има а лот кода ван стабла.

Како смо стигли тамо? Проблем, како је навео Гоогле софтверски инжењер Тодд Кјос на овогодишња конференција Линук водоинсталатера (преко АрсТецхница), је зато што се главно језгро Линука рачва неколико пута пре него што се испоручи на Андроид уређају. Гоогле раздваја свако главно језгро Линука у "Андроид заједничко језгро" грана, која помно прати главно издање, али додаје неколико закрпа специфичних за Андроид. Продавци СоЦ-а као што су Куалцомм, МедиаТек и Самсунг се затим рачвају то кернел за сваки СоЦ који направе. ОЕМ-ови затим узимају то језгро специфично за СоЦ и додају додатне закрпе за имплементацију подршке за одређени хардвер који желе да испоруче.

Због ових промена, "чак 50% кода који се покреће на уређају је код ван стабла (не из узводних Линук или АОСП уобичајених језгара)“, према Гуглу. Велика количина кода ван стабла на овим уређајима чини спајање узводних промена дугим и изазовним процесом. Ово је штетно по безбедност уређаја, јер произвођачи оригиналне опреме морају више да раде на имплементацији закрпа за рањивости које су откривене у језгру Линука. Штавише, ово оставља већину Андроид уређаја на годинама старим издањима кернела, што значи да пропуштају нове функције Линук кернела.

У настојању да реши овај проблем, Гоогле ради на Андроид Генериц Кернел Имаге-у (ГКИ), који је у суштини кернел компајлиран директно из АЦК гране. ГКИ изолује прилагођавања произвођача СоЦ-а и ОЕМ-а за модуле додатака, елиминишући код изван стабла и омогућавајући Гоогле-у да прослеђује ажурирања кернела директно крајњем кориснику. Више од годину дана, Гоогле је радио на начину да испоручи ГКИ ажурирања преко Плаи продавнице, коришћењем главног модула.

Према нашим изворима, уређаји који се покрећу са Андроид 12 и испоручују се са језгром Линука 5.10 морају применити слику за покретање коју је потписао Гоогле. Гоогле је веома сопствени Пикел 6 серија ће бити лансирана са Андроидом 12 из кутије и испоручена са Линук кернелом 5.10, тако да ће ова два телефона можда бити први уређаји за масовно тржиште који ће се испоручити са ГКИ.

Поред тога, Тодд Кјос из Гоогле-а открио је да компанија планира да пређе на развојни модел „прво узводно“ за нове карактеристике Линук кернела. Ово ће помоћи Гуглу да осигура да нови код прво стигне у главно језгро Линука, што ће смањити будући технички дуг настао услед више кодова који се не разликују од дрвета на Андроид уређајима.

На конференцији Линук водоинсталатера ове недеље, Кјос је рекао, „Пошто су модули ван стабла заиста важни за наш случај употребе, очекујемо да ћемо увек имати скуп извоза и неке ствари које су различите или поред онога што је узводно, али цео овај пројекат је вишегодишњи пројекат који ради на томе да се решимо што је могуће више закрпа ван дрвета и ускладимо што је више могуће са узводно“. Гоогле има за циљ да заврши свој рад на унапређењу постојећих функција и изоловању промена добављача до краја 2022. и, почевши од 2023. године, компанија планира да усвоји овај развојни модел „прво узводно“ како би избегла такве проблеме у будућност.