Francisco Franco z rozhovoru Franca Kernela, časť 1

Časť 1 rozhovoru s Franciscom Francom, vývojárom Franco Kernel a ďalších aplikácií pre mnoho rôznych zariadení.

Nedávno som mal to potešenie viesť rozhovor s mužom, ktorý stojí za jedným z najpopulárnejších jadier Androidu vôbec, s jadrom Franco. V súčasnosti je jadro k dispozícii na mnohých rôznych zariadeniach vrátane rôznych zariadení Nexus a OnePlus a Google Pixel / Pixel XL.

V tejto časti hovoríme o ceste Francisca Franca do vývoja jadra a jeho názore na zmeny, ktorými Android v priebehu rokov prešiel.


Som Adam Conway tu na XDA, aby som urobil rozhovor s Franciscom Francom, vývojárom Franco Kernel! Chcete sa predstaviť?

Iste, volám sa Francisco, ako ste práve povedali, a myslím, že som na XDA už 1 milión rokov! Robil som všelijaké veci. jadrá, aplikácie, a v poslednej dobe som trochu viac flákal jadrá, pretože to po chvíli unavuje, ale na väčšine svojich zariadení som stále v plnej sile.

Dobre, takže myslím, že veľa ľudí pozná vašu prácu, ale veľa ľudí nepozná skutočnú osobu, ktorá stojí za prácou. Takže myslím, že naozaj máte nejaké skúsenosti z minulosti pred jadrami? Ako nejaký titul z informatiky alebo niečo podobné predtým?

Vždy som bol nadšený pre počítače, ako každé dieťa, keď som vyrastal. Keď som dovŕšil 18 rokov a rozhodol som sa ísť na univerzitu ako všetci ostatní a myslím, že som bral počítačová veda alebo niečo také, ale po roku alebo tak som si uvedomil, že to nie je to, čo som skutočne vášnivý o. Po tom roku moje očakávania začali klesať, pretože to boli len reči a žiadna akcia, a ja som bol začínam sa nudiť – nie preto, že by som bol lepší ako ktokoľvek iný, bol som len priemerný – ale skutočné disciplíny neboli presne tak čo som chcel. Tak som sa porozprával s rodičmi a tí si boli vedomí, že z toho nie som veľmi šťastný. Počas Vianoc 2010 som dostal svoj prvý Android telefón. LG P500, to je lacný telefón, veľmi lacný, ale vedel som, že beží na Linuxe a moja obľúbená disciplína na univerzite bola počítačová architektúra alebo čo, operačné systémy. A učili sme sa trochu shellu a rozprávali sme sa trochu o jadre Linuxu a o čom bol súčasťou jadra a celej konektivity v jadre a skutočného operačného systému a tak ďalej bol fascinujúce pre mňa. A potom som začal spolu s kamarátom prestavovať linuxové jadro pre môj starý notebook. Naše notebooky sme pri tom zlyhali asi 100-krát, ale počas tohto procesu sme sa to naučili. A potom som sa začal hrať so svojím LG a myslím, že prvá vec, ktorú som urobil, bolo pokúsiť sa posunúť trochu viac výkonu, pretože to zariadenie bolo v skutočnosti dosť mizerné. Takže to najlepšie, čo som mohol urobiť, bolo prejsť štandardnými parametrami jadra Linuxu správu pamäte a podobne, a skúste nájsť niečo o trochu lepšie, ako to, čo už bolo tam. Vtedy som sa trochu zabavil.

Myslím, že som to predtým nepovedal v predchádzajúcich rozhovoroch, ale vtedy to zariadenie používalo starý súborový systém s názvom YAFFS - to znamená Yet Another Flash Súborový systém, ale bol dosť pomalý, keď sme sa pokúsili pripojiť ako výmenný disk so zálohou RAM, takže si nepamätám podrobnosti, ale robili sme rôzne experimentovali sme s tým a nakoniec sme namontovali Dalvik na pamäť RAM, ktorá sa musela prebudovať pri každom reštarte, pretože, ako viete, RAM mizne každý čas reštartu. Otváranie aplikácií a spúšťanie benchmarkov sa však značne zrýchlilo, takže sme boli spokojní. Potom som začal ísť trochu hlbšie a pokúsil som sa skompilovať zdrojové kódy jadra LG pre zariadenie a urobil som všelijaké zlé úsudky a všelijaké omyly - Wi-Fi sieť, čokoľvek - všetko, čo si len viete predstaviť od niekoho s č skúsenosti. Bola to zábava, veľa som sa naučil. Myslím, že po roku alebo šiestich mesiacoch [toho] robenia som sa trochu viac sústredil a trochu lepšie som vedel, čo musím na stiahnutie. To je to, čo na konci dňa všetci chceme. Potom sa mi podarilo získať nejaké dary a prejsť na iné zariadenia. Myslím, že Nexus S, potom Galaxy Nexus a potom po tomto období sa mi podarilo vydať svoju prvú aplikáciu. Myslím, že som mal veľké šťastie a dokázal som si financovať nákup nových zariadení a odtiaľ to vybuchlo. Takže myslím, že na konci dňa vďačím za všetko, nepovedal by som XDA, ale platforme ktoré nám poskytuje XDA.

A komunita tak trochu za tým a tak ďalej.

Áno áno, myslím platformu, to je komunita a skutočné fóra. Pre každého, kto počúva, toto nie je platený sponzor ani nič iné, nie som platený za to, aby som to povedal, je to jednoducho pravda!

Neexistuje žiadne video, ľudia nevidia, že vám mieria zbraňou na hlavu, je to v poriadku.

Hahaha, áno, ale niekto povie, že som platený za to, aby som to povedal, tak to jednoducho poviem! Ale áno, áno, bola to pre mňa úžasná platforma na vytváranie skvelých vecí, veľa sa učiť, všetko som sa tam naučil tak, že som väčšinou robil chyby a pri učení si stále robím slušnú časť problémov. Zničil som svoj Xiaomi Redmi Note 3, uh, bootloader je práve zničený. Takže ho musím znova pripojiť k počítaču so systémom Windows, ktorý tam sedí a musím všetko preflashovať a sedí tu už tri mesiace. Od každého sa mi dostáva všelijaká nenávisť, že tomu zariadeniu nevenujem pozornosť, a tak stále robím [chyby], myslím, takže aj po všetkých tých rokoch je stále čo sa učiť a ja som mal veľké šťastie, že som prešiel touto cestou a úžasné.

No, myslím, že keď si začal s... Bol to LG P500?

Hej hej.

Pred koľkými rokmi to bolo? Pretože to muselo byť okolo pôvodných verzií Androidu, však? Okolo Froya alebo čo?

Áno, bolo to dodané s Froyom a o pár mesiacov neskôr to bolo upgradované na Gingerbread. Myslím, že to zariadenie bolo v roku 2010, začiatkom roku 2011, pravdepodobne skôr. Viem, že môj účet na XDA bol vytvorený v decembri 2010, ale zariadenie som mal predtým. Takže myslím, že asi v tom čase, áno.

Ako sa odvtedy Android zmenil z hľadiska výkonu? Ako sa pre vás zmenilo písanie jadier vtedy a ich písanie teraz? A predpokladám, že aký je váš názor na zmeny.

Pokiaľ ide o jadro, myslím si, že sme sa vyvinuli so skutočným jadrom Linuxu a všetkými zmenami, ktoré tím Android skutočne chcel implementovať pre určité vydanie systému Android, takže diktujú väčšinu špeciálnych funkcií, ktoré jadro bude mať, na základe toho, čo chcú nalodiť, poslať loďou. Ale myslím, že skutočný výkon, viac jadier v skutočnosti veľmi pomáha, pretože vtedy ste nemali žiadny skutočný spôsob presuňte toto vlákno (sic), alebo si predstavte sieťové požiadavky cez vlákno na pozadí alebo aspoň v reálnom čase závitovanie. Myslím si, že to bola najväčšia zmena za tie roky, mať viac spôsobov, ako si rozložiť prácu, a nenechať Android len spomaliť, pretože každý sa snaží uchmatnúť si ten malý podiel CPU. Viac ako čokoľvek iné si myslím, že viacjadrové a skutočné viacvláknové podporované Linuxom. Myslel som, že to bola najväčšia zmena.

Aha, tak aký je váš názor na HMP vs EAS? Pretože je zrejmé, že EAS je len nový a používa sa iba v niekoľkých zariadeniach - ako napríklad používate Google Pixel, však?

Áno, momentálne používam Galaxy S8, ale mám aj Pixel. Nepoznám oboje do takých podrobností, sú to len rôzne implementácie toho, ako by malo multiklastrové zariadenie fungovať na základe toho, čo sa v určitých časoch deje na zariadení. Prevádzkovať dva rôzne klastre s dvoma rôznymi spotrebami energie je dosť ťažké. Musíte splniť očakávania úloh, ktoré sa pohybujú nahor a nadol, a je tam zahrnutá latencia a HMP bola prvá skutočná implementácia skutočná multiklastrová architektúra pre ARM, pretože ak si dobre pamätám, predtým, ako sa HMP začalo používať v reálnom svete, Samsung mal počiatočnú implementácia, pri ktorej ste buď používali prvé štyri jadrá, napríklad jadrá s nízkou spotrebou, alebo štyri vysokovýkonné jadrá, ktoré však nikdy nebežali rovnaký čas. Ale potom s HMP boli jadrá pripravené na použitie kedykoľvek a úlohy sa len presúvali z jedného klastra do druhého a naopak a fungovalo to von, ale nemali ste toľko informácií z plánovača, aby ste to ukázali guvernérovi, aby sa skutočne rozhodol, aký druh frekvencie sa pri tom použije v konkrétnom čase, takže ste sa museli vysporiadať s tým, že ste sa napríklad snažili pochopiť, čo sa stane za [asi] 20 sekúnd, a potom sa na základe toho, čo sa tam stalo, rozhodnete, čo robiť. EAS, ide skôr o pochopenie toho, čo sa stane v budúcnosti, a rozhodovanie v reálnom čase na základe výkonové výstupy každého jadra a potom je to kopa výpočtov a komplikovaných vecí v pozadie

Ako energetické modely a tak ďalej, aby sa to všetko podporilo.

Áno, myslím, že áno, je to dosť komplikované, nepoznám všetky podrobnosti, čítal som veľa dokumentov, ale je to dosť komplikované a nie je to len zapnutie vypínača a pripravené na použitie. Často dostávam túto otázku, môžete implementovať EAS na telefóne XYZ. Moje odpovede sú vždy „Nie je to tak, nie je to tak, implementácia si vyžadovala celý tím Googlerov a ľudí z Linara. to a musíte presúvať veci, robiť veci, testovať veci a to je jednoducho príliš veľa práce a práce slepý" a… áno. Je to ťažké.

Takže musíte presne vedieť, čo robíte, nie je to práca jedného muža?

Áno, musíte vedieť, čo robíte, každý si môže vybrať záplaty a zlúčiť ich, ale skutočné testovanie a uistenie sa, že to funguje správne, budete potrebovať správny stroj na zistenie spotreby energie každého komponentu a v jadre je veľa tabuliek, do ktorých môžete zapísať výkon každého jadra a na základe toho sa kód rozhodne, čo robiť. Je to dosť komplikované. Nemyslím si, že je to definitívne riešenie všetkých problémov, ale rozhodne je to to najlepšie, čo momentálne máme.

Vnímate to teda ako zlepšenie?

Jasné, míle míle ďaleko. Je to jednoznačné zlepšenie oproti HMP alebo akejkoľvek inej architektúre, pretože ak pochopíte, čo sa stane v budúcnosti, môžete reagovať oveľa rýchlejšie. na akúkoľvek požiadavku alebo čokoľvek, čo sa deje na zariadení, preto je Google Pixel taký rýchly a tak plynulý, pretože všetko sa deje takmer v reálny čas. Posúva frekvencie nahor a nadol, čo je najjednoduchší spôsob, ako splniť očakávania výkonu.

Myslím, že teda, ak v budúcnosti dôjde k väčšiemu prijatiu EAS, ako to podľa vás ovplyvní váš vlastný vývoj, pokiaľ ide o jadrá? Zostali by ste stále pri HMP alebo by ste išli s už vydanými energetickými modelmi? Napríklad na OnePlus 3 [vývojári ROM] opätovne používajú energetický model z Google Pixel pre EAS. Vedeli by ste sa vidieť robiť niečo také?

Pravdepodobne to neurobím, ak sa zariadenie na začiatku nedodáva s EAS, pravdepodobne ho nebudem implementovať žiadnym spôsobom alebo formou, pretože ako som povedal, je to dosť zdĺhavý proces a nikto v XDA to nevie lepšie ako všetci títo inžinieri, takže sa tuším len snažíme hrať na Boha.

Keď hovoríme o budúcnosti s Androidom a jadrami, aký je váš názor na nedávne vydanie Android Oreo? Myslíte si, že zmeny sú dobré? Pozreli ste sa na niektorý z nových potvrdení jadra?

V zariadeniach Nexus 6P a Nexus 5X nebolo toľko zmien na strane jadra, len tu a tam boli drobné opravy. Na Google Pixel iterovali implementáciu EAS a strávili nejaký čas vylepšením sekcie viazača, pretože teraz viazač spolu s Projectom Treble, je to ako rozdelenie rôznych balíčkov, takže musia prejsť 50 alebo 100 rôznymi záplatami, aby zlepšili spojivo a rozdelili ho do rôznych procesy. Okrem toho to bola len normálna práca pre veľké vydanie. Keď je k dispozícii nové vydanie platformy, zvyčajne sa s jadrom až tak nehrabete, pretože kernel, skutočne potrebujete veľa QA, ak niekedy zmeníte jednu vec, počujete, že to ovplyvňuje niečo v druhej subsystému. To je to, čo zvyčajne robia, to je dôvod, prečo medzi aktualizáciami platforiem nedochádza k výpadkom verzie jadra. Je to len veľa práce. Zvyčajne to nestojí za to, ale áno, boli to väčšinou veci na viazanie, trochu plánovača a obvyklé bezpečnostné opravy. Prešiel som si ich všetky, ale nič ma nenapadlo. Moju pozornosť upriamili len na zakladač.

Ach dobre, takže naozaj len štandardné veci.

Áno, sú dosť komplikované a nepýtajte sa ma na podrobnosti!

Toto je úplne iná téma, aký je váš názor na F2FS proti ext4? Pretože by ste videli, že veľa ľudí povie, že F2FS je nestabilný a podobne a spôsobuje problémy,Len by ma zaujímalo, aký máš na to názor.

Neviem ani [o] špecifikách, pretože súborové systémy sú dosť ťažké, sem-tam je veľa pohyblivých častí. Budem len citovať inžiniera Google, ktorý hovorí, že na základe ich testu F2FS nefunguje rýchlejšie ako ext4 a navyše, keď testovali veci pre Google Pixel, F2FS neposkytoval podporu pre... Myslím, že to bolo šifrovanie blokov súborov, zatiaľ čo ext4 podporuje to. Takže to samo o sebe znamená -- jednoducho to zošrotujte. Musíte myslieť na dve veci, na ext4 sa pracuje už 20 rokov s množstvom veľmi šikovných inžinierov z rôznych spoločností a vedia, čo robia. F2FS bol, ak si dobre pamätám, implementovaný Samsungom. Je to celkom nový súborový systém, takže veci také komplikované ako tieto si vyžadujú čas na zlepšenie a opakovanie, rovnako ako vy môžete vidieť zo súborového systému Apple, ktorý bol práve vydaný pre iOS, a urobia to isté pre Mac OS. Veci si vyžadujú čas, na správne vykonávanie týchto vecí potrebujete obrovský tím. Som veľkým zástancom „ak to funguje, nedotýkajte sa toho“ a toho, čo práve teraz máme – funguje to a nemyslím si, že by vám to spôsobovalo problémy s výkonom, takže nevidím dôvod pomotať sa s tým.

Aha, to je fér! Čo takto SDCardFS prechádzate z FUSE? Aký by bol váš názor na to?

Stalo sa to preto, že starší súborový systém FUSE bol jednou z najhorších vecí, ktoré sa v systéme Android stali. Výkon bol hrozný, medzi jadrom a užívateľským priestorom bolo veľa systémových volaní a teraz s SDCardFS sa to robí správne. Je to normálny súborový systém, ktorý sa s tým vysporiada, opäť nepoznám podrobnosti, pretože je to veľmi komplikovaná vec, ale čítať a vidieť a počuť z rôznych podcastov od tímu Android, v podstate vyriešil všetky problémy so starými systému. Bolo to hrozné, výkon bol hrozný.


Pozrite si časť 2 kliknutím na toto tlačidlo!