Jedro Linuxa, na katerem temeljijo vse naprave Android, prejema večjo posodobitev na različico 5.0. Pregledamo spremembe, ki so pomembne za mobilne naprave.
Čeprav običajno ne pokrivamo dogajanja v glavnem področju jedra Linuxa, je za nas pomembno, da spremljamo, kaj se dogaja z vsako novo izdajo jedra, saj Google zahteva najmanjša različica jedra Linuxa zahteva z vsako novo izdajo Androida. Nedavna odločitev za podaljšanje izdaj LTS z 2 na 6 let bo imel pomembno vlogo pri zmanjševanju razdrobljenosti varnostnih popravkov, saj bodo morali izdelovalci naprav opraviti manj dela pri prenosu varnostnih popravkov v ozadje. Poleg tega glavno jedro pogosto vključuje nove funkcije, ki so pomembne za mobilne naprave.
Na primer, prvi Graditev kandidata za izdajo za naslednjo različico jedra LTS je bila nedavno izdana – jedro Linuxa 5.0 RC1. Do stabilne izdaje je še mesec ali dva, a že lahko pokukamo, kaj nas čaka v prihajajoči izdaji. Izpostavil bom nekaj posodobitev, ki so pomembne za mobilne naprave, vendar priporočam, da si ogledate celoten dnevnik sprememb, če vas sploh zanima odprtokodni razvoj in jedro Linuxa.
ARM velik. Podpora LITTLE EAS
Energijsko ozaveščeno načrtovanje je stvar v napravah Android vse od izdaje izvirnega Pixela. EAS je eden od razlogov, zakaj so naprave Google Pixel na splošno hitrejše od svojih konkurentov. Podpora je bila že omogočena pri Qualcommovi izdaji jedra Snapdragon 845, tako da bo vsaka naprava s tem SoC (ali novejšim) podpirala EAS. Čeprav Linux do zdaj ni imel podpore za Energy Aware Scheduling. Podpora navzgor naj bi proizvajalcem silicija in naprav teoretično olajšala implementacijo tehnologije v svoje naprave. Končnim uporabnikom pa podpora navzgor ne pomeni veliko.
Adiantum podpora
Speck je šifrirni algoritem, ki ga je razvila NSA (Uprava za nacionalno varnost), ki dobro deluje na strojni opremi nižjega cenovnega razreda. Google namenjeno za dodajanje podpore za speck, saj ponuja podporo za šifriranje podatkov za nizkocenovne naprave s sistemi na čipu brez razširitev šifriranja s strojno pospeševanjem. Sprejetje Specka je bilo močno kritizirano zaradi njegovih povezav z NSA. Podpora za speck je bila odstranjena v jedru Linuxa 4.20 in njegova zamenjava, Adiantum, deluje enako dobro, če ne bolje, na strojni opremi nižjega cenovnega razreda z datotečnimi sistemi EXT4/F2FS.
Popravki F2FS in EXT4
Flash-u prijazen datotečni sistem ali F2FS je za široko uporabo v napravah Android. Google Pixel 3 in Pixel 3 XL uradno podpira F2FS, na primer. Očitno je Jaegeuk Kim, prvotni razvijalec F2FS, poslal zahtevo za združitev za veliko popravkov za datotečni sistem v repozitorij Linux. Te spremembe poskrbijo za težave s šifriranjem in upravljanjem časa nedejavnosti, skupaj s popravki zbiranja smeti. Vse podrobnosti si lahko ogledate v ta vlečna zahteva. Na splošno popravljanje F2FS izboljša stabilnost in zanesljivost pametnih telefonov Android, ki to podpirajo ali jo bodo podpirali.
Podobno je priljubljeni datotečni sistem EXT4 prejel nekaj več kot ducat popravkov. EXT4 se uporablja v številnih napravah Android, kot so najnovejše naprave OnePlus (vključno z OnePlus 5T, OnePlus 6 in OnePlus 6T).
Nova podpora za strojno opremo ARM
Distribucije GNU/Linux so nedvomno najboljši operacijski sistemi za delovanje na strojni opremi, ki temelji na ARM. Ponujajo zanesljivo večopravilnost, ki temelji na odprtokodnem modelu. Procesorji ARM so posebej zasnovani za opravljanje več nalog hkrati. Zato je pomembno, da operacijski sistem sledi strojni opremi. Kot nekateri veste, večina pametnih telefonov in tabličnih računalnikov Android uporablja nabore čipov z arhitekturo ARM. Čipi, ki temeljijo na RISC, so kot nalašč za izvajanje vsakodnevnih opravil (ki jih opravljate na pametnem telefonu. Jedro Linuxa 5.0 dodaja podporo za veliko nove strojne opreme ARM. Tukaj je nekaj izmed njih:
- Tegra X2
- Tegra Xavier
- Allwinner F1C100
- Qualcomm QCS404
- Allwinner T3
- NXP Layerscape LX2160
Poleg podpore univerzalne združljivosti za specifično strojno opremo ARM ima jedro Linuxa 5.0 tudi izboljšano upravljanje porabe energije.
Podpora za BinderFS
Android uporablja Binder za izmenjavo argumentov med različnimi procesi v sistemu. Aplikacije, dejavnosti in procesi uporabljajo Binder za zagon in upravljanje procesov. Varnost v sistemu Android močno temelji na dovoljenjih UID. Binder preveri UID-je, ki jih zagotovijo aplikacije, z uporabo dvosmernih klicev IPC, da potrdi, da ima dostop do funkcije, ki jo želi uporabiti. BinderFS je posodobljena različica Binderja, vendar je bolj specializirana in združljiva s sistemom. Podpora za BinderFS se za končnega uporabnika ne bo veliko spremenila, bo pa dolgoročno rešila nekatere težave pri implementaciji za razvijalce. Tukaj je ustrezna zaveza.
Okvir upravljanja z energetskim modelom
Še en dodatek je podpora za Energy Model Management Framework. Ta sprememba je namenjena predvsem razvijalcem ARM in jedra. Ponuja novo plast standardiziranih informacij o porabi energije iz različnih virov, kot je drevo naprav ali gonilniki. Strojna in programska oprema različno obravnavata porabo energije in poročanje. Energy Model Management Framework bo zagotovil standardni API, ki ga lahko uporabi drug gonilnik v jedru za dostop do informacij o porabi energije. To bo teoretično olajšalo programskim inženirjem in razvijalcem pridobivanje ustreznih informacij iz strojne opreme. Več o tem okviru lahko preberete v tej obvezi.
Podpora za preverjanje pristnosti kazalca ARM64
Vsaka ustrezna strojna in programska rešitev, zlasti na mobilnih napravah, potrebuje močne varnostne protokole. To je tisto, kar ponuja jedro Linuxa 5.0 s podporo za avtentikacijo kazalca ARM64. Ker ima večina pametnih telefonov nabore čipov, ki temeljijo na ARM64, je ključnega pomena, da napadalci ne morejo izkoriščati kazalcev, ki se v jedru Linuxa uporabljajo za dostop do pomnilniških naslovov. Novi avtentikacijski protokol primerja kazalce s skrivnimi ključi. Preverjanje pristnosti kazalca se bo poskušalo izogniti povratno usmerjenemu programiranju (ROP) in drugim vrstam napadov.
Obstaja veliko več posodobitev jedra Linux 5.0, ki jih nismo obravnavali. Večina jih v resnici ne pomeni veliko za naprave Android, zato smo morali izbrati dnevnik sprememb. Če želite videti celoten 'dnevnik sprememb', preverite Phoronixov pokritost.
Zahvaljujoč priznanemu razvijalcu XDA flar2 za pomoč pri tem članku.