Francisco Franco Franco Kerneli intervjuust, 1. osa

1. osa intervjuust Francisco Francoga, kes on Franco Kerneli ja muude paljude erinevate seadmete rakenduste arendaja.

Mul oli hiljuti rõõm intervjueerida meest kõigi aegade ühe populaarseima Androidi tuuma, Franco Kerneli taga. Praegu on kernel saadaval paljudes erinevates seadmetes, sealhulgas erinevates Nexuse ja OnePlusi seadmetes ning Google Pixel / Pixel XL-is.

Selles osas räägime Francisco Franco teekonnast kerneli arendamisse ja tema arvamusest Androidi aastate jooksul toimunud muutuste kohta.


Mina olen Adam Conway siin XDA-s, et intervjueerida Francisco Francot, Franco tuuma arendajat! Kas soovite end tutvustada?

Muidugi, minu nimi on Francisco, nagu te just ütlesite, ja ma olen vist XDA-s olnud juba miljon aastat! Igasuguseid asju teinud. tuumad, rakendusi, ja viimasel ajal olen kernelitega veidi rohkem lõdvestunud, sest mõne aja pärast muutub see tüütuks, kuid olen siiski enamikus oma seadmetes täiel jõul.

Olgu, nii et ma arvan, et paljud inimesed tunnevad teie tööd, kuid paljud inimesed ei tunneks tegelikku töö taga olevat inimest. Nii et ma arvan, et teil on tõesti varasemaid kogemusi enne tuumasid? Nagu mõni arvutiteaduse kraad või midagi sellist eelnevalt?

Olen arvutite vastu alati kirglik olnud, nagu ma arvan, et iga laps kasvamise ajal. Pärast seda, kui sain 18-aastaseks ja otsustasin minna ülikooli nagu kõik teisedki, ja ma arvan, et võtsin selle vastu arvutiteadus või midagi muud, aga umbes aasta pärast arvasin, et see pole see, mis ma tegelikult kirglik olen umbes. Pärast seda aastat hakkasid mu ootused langema, sest see kõik oli jutt ja mitte midagi, ja ma olin seda teinud hakkas igav - mitte sellepärast, et ma oleksin kellestki teisest parem, olin lihtsalt keskmine -, vaid tegelikest distsipliinidest ei olnud täpselt mida ma tahtsin. Nii et ma rääkisin oma vanematega ja nad olid teadlikud, et ma ei olnud sellega väga rahul. 2010. aasta jõulude ajal sain oma esimese Android-telefoni. LG P500, see on soodne telefon, väga odav, kuid ma teadsin, et see töötab Linuxiga ja minu lemmikdistsipliin ülikoolis oli arvutiarhitektuur või midagi muud, operatsioonisüsteemid. Ja me õppisime natuke shelli ja rääkisime natuke Linuxi tuumast ja millest oli osa tuumast ja kogu kerneli ühenduvusest ja tegelikust operatsioonisüsteemist ja sellest oli huvitav minule. Ja siis hakkasin koos sõbraga oma vana sülearvuti jaoks Linuxi tuuma ümber ehitama. Me jooksime seda tehes oma sülearvutid kokku umbes 100 korda, kuid õppisime selle protsessi käigus. Ja siis hakkasin mängima oma LG-ga ja ma arvan, et esimene asi, mida ma tegin, proovisin jõudlust pisut suurendada, sest see seade oli tegelikult üsna nõme. Nii et parim, mida ma teha sain, oli lihtsalt läbida standardsed Linuxi tuumaparameetrid mäluhaldus ja muu ning proovige lihtsalt leida midagi natuke paremat kui see, mis juba oli seal. Mul oli siis natuke lõbus.

Ma arvan, et ma pole seda varasemates intervjuudes varem rääkinud, kuid toona kasutas see seade vana failisüsteemi nimega YAFFS – see tähendab Yet Another Flash Failisüsteem, kuid see oli üsna aeglane, kui proovisime monteerida nagu RAM-iga toetatud vahetusketast, nii et ma ei mäleta konkreetseid andmeid, kuid tegime igasuguseid erinevaid katsetasime sellega ja lõpuks paigaldasime Dalviki RAM-i peale, mida tuli igal taaskäivitamisel uuesti ehitada, sest nagu teate, kaob RAM iga kord. aeg, mil me taaskäivitame. Kuid see muutis rakenduste avamise ja võrdlusnäitajate käitamise üsna kiiremaks, nii et olime rahul. Nii et pärast seda hakkasin veidi süvenema ja proovisin kompileerida LG kerneli allikaid seadme jaoks ja tegin igasuguseid halbu kohtuotsused ja kõikvõimalikud vead - WiFi-võrk, mis iganes - kõik, mida võite ette kujutada kelleltki, kellel pole kogemusi. See oli lõbus, õppisin palju. Arvan, et pärast aasta või kuue kuu möödumist olin veidi rohkem keskendunud ja teadsin natuke paremini, mida allalaaditavate failide saamiseks pean. See on see, mida me kõik päeva lõpuks tahame. Pärast seda õnnestus mul koguda annetusi ja liikuda üle teiste seadmete juurde. Arvan, et Nexus S, siis Galaxy Nexus ja siis pärast seda perioodi õnnestus mul oma esimene rakendus välja saada. Mul on vist väga vedanud ja olen suutnud end rahastada uute seadmete ostmisega ning sealt see õhku paiskus. Nii et ma arvan, et päeva lõpuks võlgnen kõik, ma ei ütleks XDA-le, aga platvorm mida XDA meile pakub.

Ja kogukond selle taga ja kõik muu.

Jah jah, ma mõtlen platvormi, see on kogukond ja tegelikud foorumid. Kõigile, kes kuulavad, ei ole see tasuline sponsor ega midagi, mulle ei maksta selle ütlemise eest, see on lihtsalt tõsi!

Videot pole, inimesed ei näe, kuidas relv sulle pähe suunatakse, see on korras.

Hahaha, jah, aga keegi ütleb, et mulle makstakse selle ütlemise eest, nii et ma lihtsalt ütlen seda! Aga jah, jah, see on olnud minu jaoks suurepärane platvorm lahedate asjade loomiseks, palju õppimiseks, olen seal kõike õppinud, tehes enamasti vigu ja õppimises teen ikka omajagu probleeme. Ma hävitasin oma Xiaomi Redmi Note 3, alglaadur on lihtsalt hävitatud. Nii et ma pean selle uuesti ühendama oma Windowsi arvutiga, mis seal taga istub, ja pean kõik uuesti värskendama ning see on siin seisnud umbes kolm kuud. Ma saan kõigilt igasugust vihkamist, et ma sellele seadmele tähelepanu ei pööra, ja seetõttu teen ikka veel [vigu], nii et isegi pärast kõiki neid aastaid on veel asju, mida õppida ja mul on väga vedanud, et olen selle teekonna läbi teinud ja see on olnud vinge.

Noh, ma arvan, et kui sa alustasid... Kas see oli LG P500?

Ja ja.

Mitu aastat tagasi see oli? Sest see pidi olema Androidi algversioonide ümber, eks? Froyo ümber või midagi?

Jah, see tarniti koos Froyoga ja paar kuud hiljem viidi see üle piparkoogile. See seade oli minu meelest 2010, 2011. aasta algus, ilmselt varem. Ma tean, et mu konto XDA-s loodi 2010. aasta detsembris, kuid mul oli seade juba varem olemas. Nii et ma arvan, et umbes sel ajal, jah.

Kuidas on Android pärast seda jõudlust arenenud? Näiteks kuidas on muutunud see, et kirjutasite tuumad toona ja kirjutate neid praegu? Ja ma arvan, mis on teie arvamus muudatuste kohta.

Kerneli osas arvan, et oleme arenenud koos tegeliku Linuxi tuumaga ja kõigi muudatustega, mida Androidi meeskond tegelikult tahtis juurutada teatud Androidi versiooni jaoks, nii et nad dikteerivad enamiku kerneli erifunktsioonidest, lähtudes sellest, mida nad soovivad saatma. Kuid ma arvan, et tegelik jõudlus, rohkem südamikke aitab tegelikult palju, sest tol ajal polnud teil selleks tegelikku võimalust liigutage seda lõime (sic) või kujutage ette võrgupäringuid taustalõime kaudu või vähemalt tegelikus reaalajas keermestamine. Ma arvan, et see oli aastate jooksul suurim muutus, kuna teil oli rohkem võimalusi oma töö hajutamiseks ja Android ei hakanud lihtsalt aeglustuma, sest kõik püüavad seda natukene protsessoriosa enda kätte haarata. Rohkem kui midagi muud arvan ma mitmetuumalist ja tegelikku reaalset mitme keermega, mida toetab Linux. Ma arvasin, et see [oli] suurim muutus.

Ah okei, mis on teie arvamus HMP vs EAS kohta? Sest ilmselgelt on EAS ainult uus ja seda kasutatakse ainult mõnes seadmes – näiteks kasutate Google Pixelit, eks?

Jah, praegu kasutan Galaxy S8, kuid mul on ka Pixel. Ma ei tea mõlemat nii [palju] üksikasjalikult, need on lihtsalt erinevad teostused selle kohta, kuidas mitme klastriga seade peaks toimima selle põhjal, mis seadmes teatud aegadel toimub. Kahe erineva klastri käivitamine kahe erineva energiatarbimisega on üsna raske. Peate vastama üles-alla liikuvate ülesannete ootustele ning sellega kaasneb latentsusaeg ja HMP oli esimene tegelik rakendus tõeline mitme klastriga arhitektuur ARM-i jaoks, sest kui ma õigesti mäletan, oli Samsungil enne HMP-d reaalses kasutuses juurutus, kus kasutasite kas esimest nelja tuuma (nt väikese võimsusega südamikku) või nelja suure jõudlusega tuuma, kuid need ei töötanud kunagi samal ajal. Kuid hiljem olid HMP-ga tuumad igal ajal kasutamiseks valmis ja ülesanded liikusid lihtsalt ühest klastrist teise ja vastupidi ning see töötas välja, kuid teil ei olnud planeerijalt nii palju teavet, et seda kubernerile näidata, et otsustada, millist sagedust sellel ajal kasutatakse konkreetne aeg, nii et pidite näiteks püüdma mõista, mis [umbes] 20 sekundi jooksul juhtub, ja seejärel otsustate seal juhtunu põhjal, mida teha. teha. EAS, see on pigem mõistmine, mis tulevikus juhtub, ja reaalajas otsustamine iga tuuma väljundvõimsus ja siis on see hunnik arvutusi ja keerulisi asju taustal

Nagu energiamudelid ja nii edasi, et kõike seda toetada.

Jah, ma arvan, et see on üsna keeruline, ma ei tea kõiki üksikasju, olen hunnikut dokumenti lugenud, kuid see on üsna keeruline ja see ei tähenda ainult lüliti sisselülitamist ja selle kasutusvalmis saamist. Ma saan seda küsimust palju aru, kas saate EAS-i XYZ-telefonis rakendada. Minu vastused on alati "See ei ole nupu keeramine, see pole nii, selle rakendamiseks kulus terve meeskond Google'i töötajaid ja Linaro kutte see ja sa pead asju ümber tõstma, asju tegema, asju katsetama ja see on lihtsalt liiga palju tööd ja omamoodi käimist pime" ja… jah. See on raske.

Nii et peate täpselt teadma, mida teete, sest see pole ühe mehe töö?

Jah, sa pead teadma, mida teed, igaüks võib valida plaastrid ja need liita, kuid tegelik testimine ja veendumine, et see töötab õigesti ja vajate korralikku masinat iga komponendi energiatarbimise tuvastamiseks ja kernelis on hunnik tabeleid, kuhu saate kirjutada iga tuuma võimsuse ja selle põhjal otsustab kood, mida teha. See on üsna keeruline. Ma ei usu, et see on kõigi probleemide jaoks kindel lahendus, kuid see on kindlasti parim, mis meil praegu on.

Nii et näete seda paranemisena?

Jah, muidugi, miili miili kaugusel. See on kindel edasiminek võrreldes HMP või mis tahes muu arhitektuuriga, sest kui saate aru, mis tulevikus juhtub, saate palju kiiremini reageerida mis tahes päringule või mis iganes seadmes toimub, sellepärast on Google Pixel nii kiire ja nii sujuv, sest kõik toimub peaaegu reaalajas. See liigutab sagedusi üles ja alla, mis on lihtsaim viis jõudluse ootuste saavutamiseks.

Ma arvan, et kui EAS-i tulevikus võetakse kasutusele rohkem, siis kuidas see teie enda tuumade arengut mõjutab? Kas jääksite endiselt HMP juurde või läheksite juba välja antud energiamudelitega? Näiteks OnePlus 3 puhul kasutavad [ROM-i arendajad] energiamudelit Google Pixel for EAS jaoks. Kas sa näeksid end midagi sellist tegemas?

Tõenäoliselt ma seda ei tee, kui seadet ei tarnita alguses EAS-iga, siis tõenäoliselt ei rakenda ma seda mingil viisil ega kujul, sest Nagu ma ütlesin, on see üsna pikk protsess ja keegi XDA-st ei tea paremini kui kõik need insenerid, nii et me proovime lihtsalt jumalat mängida.

Androidi ja tuumade tulevikust rääkides, milline on teie arvamus hiljutise Android Oreo väljalase kohta? Kas teie arvates on muudatused head? Kas olete vaadanud mõnda uut kerneli muudatust?

Nexus 6P ja Nexus 5X kerneli poolel nii palju muudatusi ei tehtud, siin-seal tehti vaid väikseid parandusi. Google Pixelis kordasid nad EAS-i juurutamist ja kulutasid mõnda aega sideaine jaotise täiustamisele, sest nüüd on sideaine koos projektiga Treble, see on nagu erinevate pakendite poolitamine, nii et nad peavad sideaine parandamiseks ja erinevateks osadeks eraldamiseks läbima 50 või 100 erinevat plaastrit. protsessid. Peale selle oli see lihtsalt tavaline töö suure väljaande jaoks. Kui ilmub uus platvormi väljalase, siis tavaliselt ei sega te kerneliga nii palju, kuna kernel vajate tegelikult palju kvaliteedikontrolli, kui mõnikord muudate üht asja, siis kuulete, et see mõjutab midagi teises allsüsteem. Seda nad tavaliselt teevad, seepärast ei ole teil platvormi uuendamise vahel kerneli versiooni tõrkeid. See on lihtsalt palju tööd. Tavaliselt ei ole see seda väärt, kuid jah, see oli peamiselt sideaine, natuke ajakava ja tavalisi turvaparandusi. Käisin need kõik läbi, aga miski ei tulnud mulle eriti meelde. Minu tähelepanu juhiti ainult sideainele.

Ah okei, nii et lihtsalt standardvärk.

Jah, need on üsna keerulised ja ei küsi minult konkreetset!

See on täiesti erinev teema, milline on teie arvamus F2FS-i kohta ext4 vastu? Kuna näete, et paljud inimesed ütlevad, et F2FS on ebastabiilne ja põhjustab probleeme,Ma lihtsalt mõtlen, mida te sellest arvate.

Ma ei tea ka spetsiifikat, sest failisüsteemid on üsna rasked, siin-seal on palju liikuvaid osi. Tsiteerin lihtsalt Google'i inseneri, kes ütleb, et nende testi põhjal ei tööta F2FS kiiremini kui ext4 ja peale selle, kui nad testisid asju Google Pixeli jaoks, F2FS ei toetanud... Ma arvan, et see oli failiploki krüptimine, samas kui ext4 toetab seda. Ainuüksi see tähendab - lihtsalt praaki. Peate mõtlema kahele asjale: ext4 kallal töötatakse umbes 20 aastat koos paljude väga tarkade inseneridega erinevatest ettevõtetest ja nad teavad, mida nad teevad. F2FS-i rakendas, kui ma õigesti mäletan, Samsung. See on üsna uus failisüsteem, nii et nii keeruliste asjade parandamine ja kordamine võtab aega saab näha Apple'i failisüsteemist, mis just iOS-is välja anti, ja nad teevad sama ka Maci jaoks OS. Asjad võtavad aega, nende asjade korrektseks tegemiseks on vaja tohutut meeskonda. Ma toetan väga põhimõtet "kui see töötab, ärge puudutage seda" ja seda, mis meil praegu on – see töötab ja ma ei usu, et see tekitaks teile jõudlusprobleeme, nii et ma ei näe põhjust jama sellega.

Ah okei, see on piisavalt õiglane! Kuidas oleks SDCardFS lülitatakse FUSE-lt üle? Mis oleks teie arvamus selle kohta?

See juhtus seetõttu, et vanem FUSE-failisüsteem oli üks halvimaid asju, mis Androidis juhtus. Jõudlus oli kohutav, kerneli ja kasutajaruumi vahel oli palju süsteemikõnesid ja nüüd on SDCardFS-iga see korralikult tehtud. Sellega tegelemiseks on tavaline failisüsteem, jällegi ma ei tea üksikasju, kuna see on väga keeruline asi, aga mida ma olen Androidi meeskonna erinevatest taskuhäälingusaadetest lugenud, nähtud ja kuuldud, lahendas see põhimõtteliselt kõik vanaga seotud probleemid süsteem. See oli päris õudne, esitus oli jube.


Tutvu 2. osaga, klõpsates sellel nupul!