Francisco Franco Franco Kernel -haastattelusta, osa 1

Osa 1 haastattelusta Francisco Francon kanssa, joka on Franco Kernelin ja muiden sovellusten kehittäjä monille eri laitteille.

Minulla oli äskettäin ilo haastatella miestä yhden kaikkien aikojen suosituimman Android-ytimen, Franco-ytimen, takana. Tällä hetkellä ydin on saatavilla monille eri laitteille, mukaan lukien useat Nexus- ja OnePlus-laitteet sekä Google Pixel / Pixel XL.

Tässä osassa puhumme Francisco Francon matkasta ytimen kehittämiseen ja hänen mielipiteestään Androidin vuosien aikana tapahtuneista muutoksista.


Olen Adam Conway täällä XDA: ssa haastatellakseni Francisco Francoa, Franco-ytimen kehittäjää! Haluatko esitellä itsesi?

Toki, nimeni on Francisco, kuten juuri sanoit, ja taidan olla käyttänyt XDA: ta jo miljoona vuotta! Teki kaikenlaista. ytimet, sovelluksia, ja viime aikoina olen laisahtanut hieman enemmän ytimistä, koska se väsyy jonkin ajan kuluttua, mutta olen silti täynnä voimia useimmilla laitteillani.

Okei, luulisin, että monet ihmiset tuntevat työsi, mutta monet eivät tuntisi työn takana olevaa henkilöä. Joten luulen, että sinulla todella on minkäänlaista kokemusta ennen ytimiä? Kuten minkä tahansa tietojenkäsittelytieteen tutkinnon tai vastaavan etukäteen?

Olen aina ollut intohimoinen tietokoneisiin, kuten kaikki lapset varttuessaan. Kun täytin 18 ja päätin mennä yliopistoon kuten kaikki muutkin, ja taidan mennä tietojenkäsittelytiede tai jotain, mutta noin vuoden kuluttua tajusin, että se ei ole se, mistä olin todella intohimoinen noin. Tuon vuoden jälkeen odotukseni alkoivat laskea alhaisiksi, koska kaikki oli puhetta eikä tekoja, ja minä olin alkaa tuntea tylsää - ei siksi, että olisin parempi kuin kukaan muu, olin vain keskiverto - vaan varsinaiset tieteenalat eivät olleet tarkalleen mitä halusin. Joten puhuin vanhempieni kanssa, ja he tiesivät, että en ollut kovin onnellinen siitä. Jouluna 2010 sain ensimmäisen Android-puhelimeni. LG P500, se on budjettipuhelin, erittäin halpa, mutta tiesin, että se käyttää Linuxia, ja suosikkitieteeni yliopistossa oli tietokonearkkitehtuuri tai jotain, käyttöjärjestelmät. Ja opimme vähän shelliä ja puhuimme vähän Linux-ytimestä ja mistä oli osa ydintä ja kaikkia ytimen yhteyksiä, ja varsinaista käyttöjärjestelmää ja sitä oli kiehtova minulle. Ja sitten aloin rakentaa uudelleen Linux-ytimen vanhalle kannettavalle tietokoneelleni yhdessä ystäväni kanssa. Me kaatuimme kannettavat tietokoneemme noin 100 kertaa tehdessämme niin, mutta opimme prosessin aikana. Ja sitten aloin leikkiä LG: lläni, ja mielestäni ensimmäinen asia, jonka tein, oli yrittää saada hieman enemmän suorituskykyä, koska se laite oli itse asiassa aika ruma. Joten paras asia, jonka voin tehdä, oli käydä läpi Linux-ytimen vakioparametrit muistinhallinta ja muuta, ja yritä vain löytää jotain hieman parempaa kuin mikä oli jo siellä. Minulla oli silloin vähän hauskaa.

Luulen, että en ole kertonut tätä aiemmin aiemmissa haastatteluissa, mutta tuolloin laite käytti vanhaa tiedostojärjestelmää nimeltä YAFFS - se tarkoittaa Yet Another Flash Tiedostojärjestelmä, mutta se oli melko hidasta, kun yritimme asentaa kuin RAM-tuettu sivutuslevy, joten en muista tarkempia tietoja, mutta teimme kaikenlaisia kokeili sitä ja päädyimme asentamaan Dalvikin RAM-muistin päälle, joka piti rakentaa uudelleen joka uudelleenkäynnistyksen jälkeen, koska kuten tiedät, RAM-muisti katoaa joka kun käynnistämme uudelleen. Mutta se nopeuttai sovellusten avaamista ja vertailuarvojen suorittamista, joten olimme tyytyväisiä. Joten sen jälkeen aloin mennä hieman syvemmälle ja yrittää kääntää LG: n ydinlähteitä laitteelle, ja tein kaikenlaista huonoa tuomiot ja kaikenlaiset virheet - Wi-Fi-verkko, mikä tahansa - kaikki mitä voit kuvitella joltakulta, jolla ei ole kokea. Tämä oli hauskaa, opin paljon. Luulen, että sen tekemisen jälkeen vuoden tai kuuden kuukauden kuluttua olin hieman keskittyneempi ja tiesin hieman paremmin, mitä minun piti saada lataukset. Sitä me kaikki haluamme päivän päätteeksi. Sen jälkeen onnistuin saamaan lahjoituksia ja siirtymään muihin laitteisiin. Luulen, että Nexus S, sitten Galaxy Nexus ja sitten tuon ajanjakson jälkeen onnistuin saamaan ensimmäisen sovellukseni ulos. Luulen, että minulla on ollut erittäin hyvä tuuri ja olen pystynyt rahoittamaan itseni uusien laitteiden ostamisen, ja se räjähti sieltä. Joten luulen, että olen loppujen lopuksi kaiken velkaa, en sanoisi XDA: lle, mutta alusta jonka XDA meille tarjoaa.

Ja sen takana oleva yhteisö ja kaikki se.

Kyllä kyllä, tarkoitan alustaa, se on yhteisö ja varsinaiset foorumit. Kaikille, jotka kuuntelevat, tämä ei ole maksettu sponsori tai mitään, minulle ei makseta tämän sanomisesta, se on vain totta!

Ei ole videota, ihmiset eivät näe aseen osoittavan päätäsi, se on ok.

Hahaha, joo, mutta joku sanoo, että minulle maksetaan tämän sanomisesta, joten sanon sen vain! Mutta joo, joo, se on ollut minulle loistava alusta rakentaa hienoja juttuja, oppia paljon, olen oppinut siellä kaiken tekemällä enimmäkseen virheitä ja oppiessani teen silti oman osuutensa ongelmista. Tuhoasin Xiaomi Redmi Note 3:n, käynnistyslatain on juuri tuhoutunut. Joten minun on yhdistettävä se uudelleen Windows-tietokoneeseeni, joka istuu siellä ja täytyy päivittää kaikki, ja se on istunut täällä noin kolme kuukautta. Saan kaikenlaista vihaa kaikilta, koska en kiinnitä huomiota tuohon laitteeseen, ja siksi teen edelleen [virheitä], joten jopa kaikkien näiden vuosien jälkeen on vielä opittavaa ja olen ollut erittäin onnekas, että olen käynyt läpi tämän matkan ja se on ollut mahtava.

No, luulisin kun aloitit... Oliko se LG P500?

Joo joo.

Kuinka monta vuotta sitten se oli? Koska sen on täytynyt olla Androidin alkuperäisten versioiden ympärillä, eikö niin? Froyon ympärillä tai jotain?

Joo, se toimitettiin Froyon mukana ja päivitettiin Gingerbreadiksi pari kuukautta myöhemmin. Tuo laite oli mielestäni 2010, vuoden 2011 alku, luultavasti aikaisemmin. Tiedän, että XDA-tilini luotiin joulukuussa 2010, mutta minulla oli laite etukäteen. Eli luultavasti tuohon aikaan, joo.

Miten Android on kehittänyt suorituskykyä sen jälkeen? Miten se on muuttunut, kun kirjoitit ytimiä silloin ja kirjoitat niitä nyt? Ja oletan, että mitä mieltä olet muutoksista.

Ytimen suhteen uskon, että olemme kehittyneet todellisen Linux-ytimen ja kaikkien Android-tiimien haluttujen muutosten kanssa. toteuttaa tietylle Android-julkaisulle, joten ne sanelevat suurimman osan siitä, mitä erityisominaisuuksia ytimellä on, sen perusteella, mitä he haluavat lähetettäväksi. Mutta luulen, että todellinen suorituskyky, enemmän ytimiä todella auttaa paljon, koska siihen aikaan sinulla ei ollut todellista tapaa siirrä tätä säiettä (sic) tai kuvittele verkkopyynnöt taustasäikeen kautta tai ainakin todellisessa reaaliajassa langoitus. Luulen, että se oli suurin muutos vuosien varrella, sillä meillä oli enemmän tapoja levittää työtäsi, eikä Android vain hidastuisi, koska kaikki yrittävät napata tuon pienen prosessorin osuuden. Enemmän kuin mitään ajattelen moniytimistä ja todellista todellista monisäikeisyyttä Linuxin tukemana. Luulin, että se [oli] suurin muutos.

Okei, mitä mieltä olet sitten HMP vs EAS? Koska ilmeisesti EAS on vain uusi ja sitä käytetään vain muutamissa laitteissa - kuten käytät Google Pixeliä, eikö niin?

Kyllä, tällä hetkellä käytän Galaxy S8:aa, mutta minulla on myös Pixel. En tunne kumpaakaan niin [paljon] yksityiskohtaisesti, ne ovat vain erilaisia ​​​​toteutuksia siitä, kuinka moniklusterin laitteen tulisi toimia sen perusteella, mitä laitteessa tapahtuu tiettyinä aikoina. Kahden eri klusterin käyttäminen kahdella eri virrankulutuksella on melko vaikeaa. Sinun on täytettävä odotukset tehtävien liikkumisesta ylös ja alas, ja siihen liittyy viive, ja HMP oli ensimmäinen todellinen toteutus todellinen moniklusteriarkkitehtuuri ARM: lle, koska jos muistan oikein, ennen kuin HMP oli todellisessa käytössä, Samsungilla oli alku toteutus, jossa käytit joko neljää ensimmäistä ydintä, kuten pienitehoisia ydintä, tai neljää korkean suorituskyvyn ydintä, mutta ne eivät koskaan toimineet samaan aikaan. Mutta sitten jälkeenpäin HMP: n avulla ytimet olivat valmiita käytettäväksi milloin tahansa ja tehtävät vain siirrettiin klusterista toiseen ja päinvastoin ja se toimi ulos, mutta sinulla ei ollut niin paljon tietoa ajastimesta näyttääksesi tämän kuvernöörille, jotta voisit itse päättää, millaista taajuutta sillä käytetään tietyn ajan, joten sinun piti esimerkiksi yrittää ymmärtää, mitä tapahtuu [noin] 20 sekunnissa, ja sitten päätät mitä siellä tapahtui. tehdä. EAS: n tarkoituksena on enemmän ymmärtää, mitä tulevaisuudessa tapahtuu, ja päättää reaaliajassa kunkin ytimen tehot, ja sitten on joukko laskelmia ja monimutkaisia ​​asioita tausta

Kuten energiamallit ja niin edelleen kaiken tukemiseksi.

Kyllä, luulisin niin, se on melko monimutkaista, en tiedä kaikkia yksityiskohtia, olen lukenut joukon asiakirjoja, mutta se on melko monimutkaista, eikä se ole vain kytkimen kytkeminen päälle ja käyttövalmis. Ymmärrän tämän kysymyksen paljon, voitko ottaa EAS: n käyttöön XYZ-puhelimessa. Vastaukseni ovat aina "Se ei ole nupin kääntämistä, se ei ole niin, sen toteuttamiseen tarvittiin koko tiimi Googlen työntekijöitä ja kavereita Linarosta se ja sinun täytyy siirtää tavaroita ympäriinsä, tehdä asioita, testata tavaroita ja se on vain liikaa työtä ja tavallaan menoa sokea" ja… joo. On vaikea.

Joten sinun on tiedettävä tarkalleen mitä teet, eikö se ole yhden miehen työtä?

Kyllä, sinun täytyy tietää mitä olet tekemässä, kuka tahansa voi valita paikat ja yhdistää ne, mutta varsinainen testaus ja varmistaa, että se toimii oikein ja tarvitset oikean koneen tunnistamaan kunkin komponentin virrankulutus ja ytimessä on joukko taulukoita, joihin voit kirjoittaa kunkin ytimen tehon, ja sen perusteella koodi päättää mitä tehdä. Se on melko monimutkaista. En usko, että se on varma ratkaisu kaikkiin ongelmiin, mutta se on ehdottomasti paras, mitä meillä on tällä hetkellä.

Näetkö sen siis parannuskeinona?

Kyllä, mailien mailien päässä. Se on selvä parannus HMP: stä tai mistä tahansa muusta arkkitehtuurista, koska jos ymmärrät mitä tulevaisuudessa tapahtuu, voit reagoida paljon nopeammin mihin tahansa pyyntöön tai mitä tahansa laitteessa tapahtuu, siksi Google Pixel on niin nopea ja sujuva, koska kaikki tapahtuu melkein reaaliaika. Se siirtää taajuuksia ylös ja alas, mikä on helpoin tapa saavuttaa suorituskykyodotukset.

Luulen, että jos EAS: a omaksutaan tulevaisuudessa enemmän, kuinka näet sen vaikuttavan omaan kehitykseesi ytimien suhteen? Pysyisitkö edelleen HMP: ssä vai kannattaisitko jo julkaistuja energiamalleja? Esimerkiksi OnePlus 3:ssa [ROM-kehittäjät] käyttävät uudelleen Google Pixel for EAS: n energiamallia. Näkisitkö itsesi tekemässä jotain tällaista?

En luultavasti tee sitä, jos laite ei toimiteta EAS: n kanssa aluksi, en todennäköisesti toteuta sitä millään tavalla tai muodossa, koska Kuten sanoin, se on melko pitkä prosessi, eikä kukaan XDA: ssa tiedä paremmin kuin kaikki nämä insinöörit, joten yritämme vain pelata Jumalaa.

Mitä mieltä olet äskettäisestä Android Oreo -julkaisusta, kun puhut tulevaisuudesta Androidin ja ytimien kanssa? Ovatko muutokset mielestäsi hyviä? Oletko katsonut uusia ytimen sitoumuksia?

Nexus 6P: n ja Nexus 5X: n ytimen puolella ei ollut niin paljon muutoksia, vain pieniä korjauksia siellä täällä. Google Pixelissä he toistivat EAS-toteutusta ja käyttivät jonkin aikaa sidososan parantamiseen, koska nyt sideaine yhdessä Projectin kanssa Diskantti, se on kuin eri pakettien jakamista, joten niiden täytyy käydä läpi 50 tai 100 erilaista korjaustiedostoa parantaakseen sideainetta ja erottaakseen sen eri prosessit. Muuten se oli vain normaalia työtä suurelle julkaisulle. Kun on uusi alustajulkaisu, et yleensä sekoita ytimen kanssa niin paljon, koska sekaisin ytimen tarvitset itse asiassa paljon laadunvarmistusta, jos joskus muutat yhtä asiaa, kuulet sen vaikuttavan johonkin toiseen alajärjestelmä. Näin he yleensä tekevät, siksi sinulla ei ole ytimen versiotörmäystä alustapäivitysten välillä. Se on vain paljon työtä. Yleensä ei ole sen arvoista, mutta joo, se oli enimmäkseen sidemateriaalia, vähän ajastinta ja tavanomaisia ​​tietoturvakorjauksia. Kävin ne kaikki läpi, mutta mikään ei tullut mieleeni. Huomioni kiinnitettiin vain sideaineeseen.

Ah okei, siis vain tavallista tavaraa.

Kyllä, ne ovat melko monimutkaisia, äläkä kysy minulta tarkempia tietoja!

Tämä on täysin eri aihe, mitä mieltä olet F2FS: stä ext4:ää vastaan? Koska monet ihmiset sanovat, että F2FS on epävakaa ja aiheuttaa ongelmia,Ihmettelen vain, mitä mieltä olet asiasta.

En tiedä myöskään [asioista] yksityiskohtia, koska tiedostojärjestelmät ovat melko kovia, liikkuvia osia on paljon siellä täällä. Lainaan vain Googlen insinööriä, joka sanoo, että heidän testinsä perusteella F2FS ei toimi yhtään nopeammin kuin ext4, ja lisäksi kun he testasivat tavaraa Google Pixelille, F2FS ei tarjonnut tukea… Luulen, että se oli tiedostolohkosalausta, kun taas ext4 tukee se. Joten se yksin tarkoittaa - hävitä se. Sinun on mietittävä kahta asiaa: ext4:ää on työstetty noin 20 vuotta useiden erittäin älykkäiden insinöörien kanssa eri yrityksistä ja he tietävät mitä tekevät. F2FS oli, jos muistan oikein, Samsungin toteuttama. Se on melko uusi tiedostojärjestelmä, joten niinkin monimutkaisten asioiden parantuminen ja toistaminen vie aikaa, kuten sinäkin voi nähdä Applen tiedostojärjestelmästä, joka julkaistiin juuri iOS: lle, ja he aikovat tehdä saman Macille OS. Asiat vievät aikaa, tarvitset valtavan tiimin tehdäksesi nämä asiat oikein. Olen suuri kannattaja "jos se toimii, älä koske siihen" ja mitä meillä on juuri nyt -- se toimii, enkä usko, että se aiheuttaa sinulle suorituskykyongelmia, joten en näe syytä sotkea sen kanssa.

Ah okei, se on reilua! Entä SDCardFS vaihdetaanko FUSE: sta? Mitä mieltä sinä olisit asiasta?

Se tapahtui, koska vanhempi FUSE-tiedostojärjestelmä oli yksi pahimmista asioista, joita Androidissa tapahtui. Suorituskyky oli kauhea, ytimen ja käyttäjätilan välillä oli paljon järjestelmäkutsuja ja nyt SDCardFS: llä se on tehty oikein. Se on normaali tiedostojärjestelmä käsitellä tätä, en taaskaan tiedä yksityiskohtia, koska se on hyvin monimutkainen asia, mutta mitä olen Android-tiimin erilaisista podcasteista luettua ja nähtyä ja kuultua, se korjasi periaatteessa kaikki vanhan ongelmat järjestelmä. Se oli aivan kauheaa, suorituskyky oli kauhea.


Katso osa 2 napsauttamalla tätä painiketta!