Ang Google ay magpapatuloy upang bumuo ng mga inobasyon para sa Android sa pangunahing Linux kernel

Sa kumperensya ng Linux Plumbers 2021, pinag-usapan ng Google ang tagumpay ng inisyatiba nito na ilipat ang Android platform upang gumamit ng regular na Linux kernel sa halip na gamitin ang sarili nitong bersyon ng kernel, na kinabibilangan ng mga pagbabagong partikular sa Android platform.

Ang pinakamahalagang pagbabago sa pag-unlad ay ang desisyon na lumipat pagkatapos ng 2023 sa modelong "Upstream First", na nagpapahiwatig ng pagbuo ng lahat ng mga bagong tampok ng kernel na kailangan sa Android platform nang direkta sa pangunahing Linux kernel, at hindi sa kanilang sariling mga hiwalay na sangay ( ipo-promote muna ang functionality sa pangunahing). kernel, at pagkatapos ay gagamitin sa Android, at hindi vice versa). Ang paglipat ng lahat ng karagdagang patches na natitira sa Android Common Kernel branch sa pangunahing kernel ay pinlano din para sa 2023 at 2024.

Para sa malapit na hinaharap, para sa Android 12 platform na inaasahan sa unang bahagi ng Oktubre, ang "Generic Kernel Image" (GKI) kernel assemblies ay iaalok, na mas malapit hangga't maaari sa regular na 5.10 kernel. Para sa mga build na ito, ibibigay ang mga regular na release ng mga update, na ipo-post sa ci.android.com repository. Sa kernel ng GKI, ang mga karagdagan na partikular sa platform ng Android, gayundin ang mga humahawak na nauugnay sa suporta sa hardware mula sa mga OEM, ay inilalagay sa magkahiwalay na mga module ng kernel. Ang mga module na ito ay hindi nakatali sa bersyon ng pangunahing kernel at maaaring binuo nang hiwalay, na lubos na nagpapadali sa pagpapanatili at paglipat ng mga aparato sa mga bagong sanga ng kernel.

Ang Google ay magpapatuloy upang bumuo ng mga inobasyon para sa Android sa pangunahing Linux kernel

Ang mga interface na kinakailangan ng mga tagagawa ng aparato ay ipinatupad sa anyo ng mga kawit, na nagpapahintulot sa iyo na baguhin ang pag-uugali ng kernel nang hindi gumagawa ng mga pagbabago sa code. Sa kabuuan, nag-aalok ang android12-5.10 kernel ng 194 na regular na hook, katulad ng mga tracepoint, at 107 espesyal na hook na nagbibigay-daan sa iyong magpatakbo ng mga handler sa isang hindi atomic na konteksto. Sa kernel ng GKI, ang mga tagagawa ng hardware ay ipinagbabawal na maglapat ng mga partikular na patch sa pangunahing kernel, at ang mga bahagi ng suporta sa hardware ay dapat na ibigay ng mga vendor sa anyo lamang ng mga karagdagang kernel module, na dapat tiyakin ang pagiging tugma sa pangunahing kernel.

Alalahanin natin na ang Android platform ay gumagawa ng sarili nitong kernel branch - ang Android Common Kernel, batay sa kung saan ang mga hiwalay na partikular na assemblies ay nabuo para sa bawat device. Ang bawat sangay ng Android ay nagbibigay sa mga tagagawa ng ilang mga opsyon para sa layout ng kernel para sa kanilang mga device. Halimbawa, nag-aalok ang Android 11 ng pagpipilian ng tatlong pangunahing kernel - 4.14, 4.19 at 5.4, at ang Android 12 ay mag-aalok ng mga pangunahing kernel 4.19, 5.4 at 5.10. Ang Opsyon 5.10 ay idinisenyo bilang isang Generic na Kernel Image, kung saan ang mga kakayahan na kinakailangan para sa mga OEM ay inililipat sa upstream, inilagay sa mga module o inilipat sa Android Common Kernel.

Bago ang pagdating ng GKI, ang Android kernel ay dumaan sa ilang yugto ng paghahanda:

  • Batay sa mga pangunahing LTS kernels (3.18, 4.4, 4.9, 4.14, 4.19, 5.4), nilikha ang isang sangay ng "Android Common Kernel", kung saan inilipat ang mga patch na partikular sa Android (dati ang laki ng mga pagbabago ay umabot sa ilang milyong linya ).
  • Batay sa "Android Common Kernel", ang mga gumagawa ng chip gaya ng Qualcomm, Samsung at MediaTek ay bumuo ng "SoC Kernel" na may kasamang mga add-on upang suportahan ang hardware.
  • Batay sa SoC Kernel, ginawa ng mga manufacturer ng device ang Device Kernel, na kinabibilangan ng mga pagbabagong nauugnay sa suporta para sa karagdagang kagamitan, screen, camera, sound system, atbp.

Ang pamamaraang ito ay lubos na nagpakumplikado sa pagpapatupad ng mga update upang maalis ang mga kahinaan at ang paglipat sa mga bagong sanga ng kernel. Bagama't regular na naglalabas ang Google ng mga update sa mga Android kernel nito (Android Common Kernel), kadalasang mabagal ang mga vendor sa paghahatid ng mga update na ito o karaniwang ginagamit ang parehong kernel sa buong lifecycle ng isang device.



Pinagmulan: opennet.ru

Magdagdag ng komento