Francisco Franco a Franco Kernel interjúból, 1. rész

Francisco Franco-val, a Franco Kernel és más alkalmazások számos különféle eszközhöz való fejlesztőjével készített interjú 1. része.

Nemrég volt szerencsém interjút készíteni a valaha volt egyik legnépszerűbb Android kernel, a Franco Kernel mögött álló emberrel. Jelenleg a kernel számos különböző eszközön elérhető, beleértve a különféle Nexus és OnePlus eszközöket, valamint a Google Pixel / Pixel XL-t.

Ebben a részben Francisco Franco kernelfejlesztési útjáról és az Androidon az évek során bekövetkezett változásokról alkotott véleményéről beszélünk.


Adam Conway vagyok itt az XDA-n, hogy interjút készítsek Francisco Francóval, a Franco Kernel fejlesztőjével! Szeretnél bemutatkozni?

Persze, a nevem Francisco, ahogy az imént mondta, és azt hiszem, már 1 millió éve használom az XDA-t! Mindenféle dolgot csinált. Kernelek, alkalmazásokat, és mostanában egy kicsit többet lazítok a kerneleken, mert egy idő után fárasztó lesz, de a legtöbb eszközömön még mindig teljes erőbedobással dolgozom.

Oké, úgy gondolom, hogy sokan ismernék a munkádat, de sokan nem ismernék a munka mögött álló tényleges személyt. Szóval azt hiszem, tényleg van valamiféle korábbi tapasztalatod a kernelek előtt? Mint bármilyen számítástechnikai diploma vagy bármi hasonló előtte?

Mindig is szenvedélyes voltam a számítógépek iránt, ahogy azt hiszem, minden gyerek felnőtt korában. Miután betöltöttem a 18. életévemet, úgy döntöttem, hogy egyetemre megyek, mint mindenki más, és azt hiszem, felvettem számítástechnika vagy valami ilyesmi, de egy év múlva rájöttem, hogy valójában nem ez a szenvedélyem ról ről. Ez után az év után az elvárásaim kezdtek csökkenni, mert az egész csak beszéd volt, nem tett, és én az voltam kezdtem unatkozni - nem azért, mert jobb voltam bárki másnál, csak átlagos voltam - hanem a tényleges tudományágak nem voltak pontosan amit akartam. Szóval beszéltem a szüleimmel, és ők tisztában voltak vele, hogy ennek nem vagyok túl boldog. 2010 karácsonyán kaptam meg első Android-telefonomat. Egy LG P500, ez egy olcsó telefon, nagyon olcsó, de tudtam, hogy Linuxot futtat, és az egyetemen a számítógép-architektúra vagy ilyesmi, az operációs rendszerek a kedvenc tudományom. És tanultunk egy kicsit a shell-ről, és beszélgettünk egy kicsit a Linux kernelről, és miről része volt a kernelnek és a kernelben lévő összes kapcsolatnak, és a tényleges operációs rendszernek, és ez volt elbűvölő nekem. Aztán egy barátommal együtt elkezdtem újraépíteni a Linux kernelt a régi laptopomhoz. 100-szor összeomlott a laptopunk ezzel, de megtanultuk a folyamat során. Aztán elkezdtem játszani az LG-vel, és azt hiszem, az első dolgom az volt, hogy megpróbáltam egy kicsit nagyobb teljesítményt elérni, mert az a készülék valójában elég gagyi volt. Tehát a legjobb, amit tehettem, az volt, hogy a standard Linux kernel paraméterein végigmentem a ténylegesen memóriakezelés és egyebek, és próbálj meg valamivel jobbat találni, mint ami eddig volt ott. Akkor jól szórakoztam egy kicsit.

Azt hiszem, ezt korábban nem mondtam el az előző interjúkban, de akkoriban az eszköz egy régi YAFFS fájlrendszert használt - ez azt jelenti, hogy még egy Flash Fájlrendszer, de elég lassú volt, amikor megpróbáltuk úgy felcsatolni, mint egy RAM-os swap lemezt, így nem emlékszem konkrétumokra, de mindenféleképpen csináltunk kísérleteztünk ezzel, és végül a Dalvikot a memória RAM tetejére szereltük, amelyet minden újraindításnál újra kellett építeni, mert mint tudod, a RAM minden alkalommal eltűnik. amikor újraindítjuk. Ezzel azonban sokkal gyorsabbá vált az alkalmazások megnyitása és a benchmarkok futtatása, így elégedettek voltunk. Szóval ezek után elkezdtem egy kicsit mélyebbre menni, és megpróbáltam lefordítani az LG kernelforrásait az eszközhöz, és mindenféle rosszat csináltam ítéletek és mindenféle hiba - Wi-Fi hálózat, bármi - minden, amit el tud képzelni valakitől, akinek nincs tapasztalat. Ez szórakoztató volt, sokat tanultam. Azt hiszem, egy év vagy hat hónap után egy kicsit jobban koncentráltam, és egy kicsit jobban tudtam, mit kell letöltenem. A nap végén mindannyian erre vágyunk. Ezt követően sikerült szereznem néhány adományt, és áttértem más eszközökre. Azt hiszem, a Nexus S, majd a Galaxy Nexus, majd ez után az időszak után sikerült kihoznom az első alkalmazásomat. Azt hiszem, nagyon szerencsés voltam, és sikerült finanszíroznom magamnak új készülékek vásárlását, és onnantól robbant fel. Szóval azt hiszem, a nap végén mindent köszönhetek, nem mondanám, hogy XDA, hanem a felhsználói felület amit az XDA biztosít számunkra.

És a közösség, ami mögötte áll, meg minden.

Igen igen, a platformra gondolok, ez a közösség és a tényleges fórumok. Aki hallgatja, ez nem fizetett szponzor vagy ilyesmi, nem azért fizetnek, hogy ezt mondjam, ez egyszerűen igaz!

Nincs videó, az emberek nem látják, hogy a fegyvert a fejedre szegezik, ez rendben van.

Hahaha, igen, de valaki azt fogja mondani, hogy azért fizetnek, hogy ezt mondjam, szóval csak elmondom! De igen, igen, ez egy csodálatos platform számomra, hogy klassz dolgokat építsek, sokat tanuljak, mindent úgy tanultam, hogy többnyire hibákat követtem el, és a tanulásban továbbra is kiveszem a részem a problémákból. Megsemmisítettem a Xiaomi Redmi Note 3-at, a bootloader éppen megsemmisült. Tehát újra össze kell kapcsolnom a Windows-os számítógépemmel, ami ott van, és újra kell frissítenem mindent, és már vagy három hónapja itt van. Mindenkitől mindenféle gyűlöletet kapok amiatt, hogy nem figyelek arra az eszközre, és így még mindig követek el [hibákat], úgyhogy még ennyi év után is van mit tanulnom, és nagyon szerencsés voltam, hogy végigcsinálhattam ezt az utat, és fantasztikus.

Nos, azt hiszem, látva, ahogy elkezdted a... LG P500 volt az?

Igen igen.

Hány éve volt ez? Mert ez az Android eredeti verziói körül lehetett, igaz? Froyo környékén vagy ilyesmi?

Igen, a Froyóval együtt szállították, és néhány hónappal később frissítették Gingerbreadre. Azt hiszem, ez a készülék 2010-ben volt, 2011 elején, valószínűleg korábban. Tudom, hogy az XDA-fiókomat 2010 decemberében hozták létre, de előtte megvolt az eszköz. Szóval valószínűleg akkoriban, igen.

Hogyan fejlődött az Android teljesítménye azóta? Például, hogyan változott az, hogy akkor és most írtál kerneleket? És gondolom, mi a véleményetek a változásokról.

A kernel szempontjából úgy gondolom, hogy a tényleges Linux kernellel és minden olyan változtatással együtt fejlődtünk, amelyeket az Android csapata valójában akart. egy bizonyos Android-kiadáshoz valósítsák meg, így a legtöbb speciális funkciót ők határozzák meg a kernel igényei alapján szállítani. De azt hiszem, a tényleges teljesítmény, a több mag valójában sokat segít, mert akkoriban nem volt igazi módja mozgassa ezt a szálat (sic), vagy képzelje el a hálózati kéréseket egy háttérszálon keresztül, vagy legalábbis valós időben befűzés. Azt hiszem, ez volt a legnagyobb változás az évek során, hogy több módja volt a munka szétosztására, és nem az Android lelassul, mert mindenki megpróbálja megragadni azt a kis CPU-megosztást. Mindennél jobban gondolom, hogy a többmagos és tényleges valódi többszálú, Linux által támogatott. Azt hittem, ez volt a legnagyobb változás.

Oké, akkor mi a véleményed a HMP vs EAS-ról? Mert nyilvánvalóan az EAS csak új, és csak néhány eszközön használják – például Ön Google Pixelt használ, igaz?

Igen, jelenleg Galaxy S8-at használok, de van Pixel is. Mindkettőt nem ismerem ennyire [nagyon] részletesen, csak különböző megvalósításai annak, hogyan kell egy több fürtös eszköznek működnie, attól függően, hogy bizonyos időpontokban mi történik az eszközön. Két különböző klasztert futtatni két különböző energiafogyasztással elég nehéz. Meg kell felelnie a felfelé és lefelé mozgó feladatok elvárásainak, és ebben van egy késleltetés, és a HMP volt az első valódi megvalósítása egy valódi többfürtös architektúra az ARM-hez, mert ha jól emlékszem, mielőtt a HMP valós használatban volt, a Samsungnak volt egy kezdeti megvalósítás, ahol vagy az első négy magot használta, például alacsony fogyasztású magokat, vagy négy nagy teljesítményű magot, de azok soha nem futottak ugyanakkor. De aztán később a HMP-vel a magok bármikor használatra készek voltak, és a feladatok egyszerűen átkerültek egyik klaszterből a másikba és fordítva, és ez működött. ki, de nem kapott annyi információt az ütemezőtől, hogy ezt megmutassa a kormányzónak, hogy eldönthesse, milyen frekvenciát használjon az adott meghatározott időpontban, így meg kellett küzdenie, például megpróbálnia megérteni, mi történik [kb.] 20 másodpercen belül, majd az ott történtek alapján eldönti, mit tegyen. csináld. Az EAS sokkal inkább arról szól, hogy megértsük, mi fog történni a jövőben, és valós időben döntsünk az egyes magok kimenő teljesítményét, majd egy csomó számítás és bonyolult dolog a háttér

Mint az energiamodellek és így tovább, hogy mindezt alátámassza.

Igen, azt hiszem, ez elég bonyolult, nem ismerem az összes részletet, rengeteg dokumentumot olvastam, de ez elég bonyolult, és nem csak egy kapcsoló bekapcsolása, és készen áll a használatra. Sokszor kapom ezt a kérdést, hogy megvalósíthatja-e az EAS-t XYZ telefonon. A válaszaim mindig „Ez nem egy gomb elforgatása, nem olyan, hanem egy egész csapat Google-munkás és Linaro srácok kellettek a megvalósításhoz és mozgatnod kell a dolgokat, dolgokat kell csinálnod, tesztelned kell, és ez túl sok munka és túl sok vak" és… igen. Nehéz.

Tehát pontosan tudnod kell, mit csinálsz, ez nem egyszemélyes munka?

Igen, tudnod kell, mit csinálsz, bárki kiválaszthatja a javításokat és egyesítheti őket, de a tényleges tesztelés és annak ellenőrzése, hogy megfelelően működik-e, és szüksége van egy megfelelő gépre az egyes komponensek energiafelhasználásának észlelésére, és van egy csomó tábla a kernelen, ahol felírhatod az egyes magok teljesítményét, és ez alapján a kód eldönti, hogy mit csináld. Elég bonyolult. Nem hiszem, hogy ez egy határozott megoldás minden problémára, de határozottan ez a legjobb megoldás jelenleg.

Szóval javulásnak látod?

Igen, persze, mérföld mérföld mérföldre. Ez határozott előrelépés a HMP-hez vagy bármely más architektúrához képest, mert ha megérti, mi fog történni a jövőben, sokkal gyorsabban reagálhat. bármilyen kérésre vagy bármi történik az eszközön, ezért a Google Pixel olyan gyors és olyan sima, mert minden szinte valós idő. Ez a frekvenciák fel-le mozgatása a legegyszerűbb módja annak, hogy elérjük a teljesítményre vonatkozó elvárásokat.

Gondolom ezzel, ha az EAS jövőbeni alkalmazása nagyobb lesz, hogyan látja, hogy ez befolyásolja a saját fejlődését a kernelek tekintetében? Továbbra is ragaszkodna a HMP-hez, vagy a már kiadott energiamodelleket választaná? Például a OnePlus 3-on a [ROM-fejlesztők] újra felhasználják a Google Pixel for EAS energiamodelljét. Látnád magad, hogy ilyesmit csinálsz?

Valószínűleg nem fogom ezt megtenni, ha az eszközt először nem szállítják EAS-szal, akkor valószínűleg nem fogom megvalósítani semmilyen módon vagy formában, mert Ahogy mondtam, ez egy meglehetősen hosszadalmas folyamat, és senki sem tud az XDA-ban jobban ezeknél a mérnököknél, szóval csak Istent próbáljuk játszani, azt hiszem.

Ha az Android és a kernelek jövőjéről beszélünk, mi a véleménye a legutóbbi Android Oreo kiadásról? Szerinted jók a változások? Megnézted az új kernel commitokat?

A Nexus 6P-n és a Nexus 5X-en nem történt annyi változás a kernel oldalán, csak apró javítások történtek itt-ott. A Google Pixelben az EAS implementáción iteráltak, és töltöttek egy kis időt a binder szakasz fejlesztésével, mert most a binder a Projecttel együtt Treble, ez olyan, mint a különböző csomagok felosztása, tehát 50 vagy 100 különböző javításon kell keresztülmenniük, hogy javítsák a kötőanyagot, és szétválasztsák különböző csomagokra. folyamatokat. Ezt leszámítva ez csak normális munka volt egy nagy kiadásnál. Amikor új platform kiadás van, általában nem vacakolsz annyira a kernellel, mert A kernelnek valójában sok minőségbiztosításra van szüksége, ha néha megváltoztat egy dolgot, hallja, hogy az hatással van valamire a másikban alrendszer. Általában ezt csinálják, ezért nincs kernelverziós bump a platformfrissítések között. Csak nagyon sok munka. Általában nem éri meg, de igen, ez többnyire iratgyűjtő cucc volt, egy kicsit az ütemező, és a szokásos biztonsági javítások. Végignéztem mindegyiket, de semmi sem jutott eszembe. A figyelmemet csak a kötőanyag hívta fel.

Ah oké, szóval csak a szokásos dolgok.

Igen, elég bonyolultak, és ne kérdezz konkrétumokat!

Ez egy teljesen más téma, mi a véleményed az F2FS-ről az ext4 ellen? Mert látni fogod, hogy sokan azt mondják majd, hogy az F2FS instabil, és ilyesmi, és problémákat okoz,Csak kíváncsi vagyok, mi a véleményed róla.

Konkrétumokat sem tudok, mert a fájlrendszerek elég kemények, sok mozgó alkatrész van itt-ott. Csak idézek egy Google mérnököt, aki azt mondja, hogy a tesztjük alapján az F2FS nem teljesít gyorsabban, mint az ext4, és ráadásul amikor a Google Pixelhez teszteltek cuccokat, az F2FS nem nyújtott támogatást... azt hiszem fájlblokk-titkosítás volt, míg az ext4 a támogatásokhoz azt. Tehát ez önmagában azt jelenti, hogy csak dobd ki. Két dologra kell gondolni: az ext4-en vagy 20 éve dolgoznak sok nagyon okos mérnökkel különböző cégektől, és ők tudják, mit csinálnak. Az F2FS-t, ha jól emlékszem, a Samsung implementálta. Ez egy egészen új fájlrendszer, így az ilyen bonyolult dolgoknak időbe telik a javítása és az iteráció, mint Ön láthatja az Apple fájlrendszerét, amely most jelent meg iOS-en, és ugyanezt fogják tenni Mac-en is OS. A dolgokhoz idő kell, hatalmas csapatra van szükséged ahhoz, hogy ezeket a dolgokat helyesen végezd. Nagy támogatója vagyok a „ha működik, ne nyúljon hozzá” és ami jelenleg van – működik, és nem hiszem, hogy ez bármilyen teljesítményproblémát okozna, így nem látom okát, hogy vacakolj vele.

Ó, ez így jogos! Mit szólsz SDCardFS FUSE-ról váltanak át? Mi lenne erről a véleményed?

Ez azért történt, mert a régebbi FUSE fájlrendszer volt az egyik legrosszabb dolog, ami az Androidon történt. A teljesítmény borzalmas volt, sok rendszerhívás volt a kernel és a felhasználói terület között, és most az SDCardFS-sel ez rendesen megtörtént. Ez egy normál fájlrendszer kezeli ezt, megint nem ismerem a részleteket, mivel ez egy nagyon bonyolult dolog, de amit én Az Android csapat különböző podcastjaiból olvasott, látott és hallott, alapvetően megoldotta az összes problémát a régivel rendszer. Ez elég borzalmas volt, a teljesítmény borzalmas volt.


Tekintse meg a 2. részt erre a gombra kattintva!