Francisco Franco fra Franco Kernel Interview Del 1

click fraud protection

Del 1 af et interview med Francisco Franco, udvikleren af ​​Franco Kernel og andre applikationer til mange forskellige enheder.

Jeg havde for nylig fornøjelsen af ​​at interviewe manden bag en af ​​de mest populære Android-kerner nogensinde, Franco-kernen. I øjeblikket er kernen tilgængelig på mange forskellige enheder, inklusive forskellige Nexus- og OnePlus-enheder og Google Pixel / Pixel XL.

I denne del taler vi om Francisco Francos rejse ind i kerneudvikling og hans mening om de ændringer, Android har gennemgået gennem årene.


Jeg er Adam Conway her på XDA for at interviewe Francisco Franco, udvikler af Franco Kernel! Vil du præsentere dig selv?

Ja, mit navn er Francisco, som du lige sagde, og jeg har vel allerede været på XDA i 1 million år! Har lavet alle mulige ting. Kerner, apps, og på det seneste har jeg slækket lidt mere på kerner, fordi det bliver trættende efter et stykke tid, men jeg har stadig fuld styrke på de fleste af mine enheder.

Okay, så jeg gætter på, at mange mennesker ville være bekendt med dit arbejde, men mange mennesker ville ikke være bekendt med den faktiske person bag arbejdet. Så jeg tror virkelig, at du har nogen form for tidligere erfaring før kerner? Ligesom enhver datamatikeruddannelse eller noget lignende på forhånd?

Jeg har altid været passioneret omkring computere, som ethvert barn under opvæksten tror jeg. Efter at jeg fyldte 18, besluttede jeg at tage på universitetet som alle andre, og jeg tror, ​​jeg tog datalogi eller noget, men efter et år eller deromkring tænkte jeg, at det ikke var det, jeg egentlig var passioneret om. Efter det år begyndte mine forventninger at falde, fordi det hele var snak og ingen handling, og det var jeg begynder at kede mig - ikke fordi jeg var bedre end nogen anden, jeg var bare gennemsnitlig - men de faktiske discipliner var ikke Nemlig hvad jeg ønskede. Så jeg snakkede med mine forældre, og de var klar over, at jeg ikke var særlig glad for det. I julen 2010 fik jeg min første Android-telefon. En LG P500, det er en budgettelefon, meget billig, men jeg vidste, at den kørte Linux, og min yndlingsdisciplin på universitetet var computerarkitektur eller noget, operativsystemer. Og vi lærte en lille smule skal og snakkede lidt om Linux-kernen, og hvad var en del af kernen og al forbindelsen i kernen, og det faktiske operativsystem, og det var spændende for mig. Og så begyndte jeg at genopbygge Linux-kernen til min gamle bærbare computer sammen med en ven. Vi styrtede vores bærbare computere ned 100 gange ved at gøre det, men vi lærte gennem processen. Og så begyndte jeg at lege med min LG, og jeg gætter på, at det første, jeg gjorde, var at prøve at skubbe en lille smule mere ydeevne, fordi den enhed faktisk var ret dårlig. Så det bedste, jeg kunne gøre, var bare at gennemgå standard Linux-kerneparametrene for den faktiske hukommelseshåndtering og sådan noget, og prøv bare at finde noget, der er lidt bedre end det, der allerede var der. Jeg hyggede mig lidt dengang.

Jeg tror, ​​jeg ikke har fortalt dette før i tidligere interviews, men dengang brugte den enhed et gammelt filsystem kaldet YAFFS - det betyder Yet Another Flash Filsystem, men det var ret langsomt, da vi prøvede at montere som en RAM-støttet swap-disk, så jeg kan ikke huske detaljerne, men vi gjorde alle mulige forskellige eksperimenter med det, og vi endte med at montere Dalvik oven på hukommelses-RAM'en, der skulle genopbygges hver genstart, fordi RAM som du ved forsvinder hver gang gang vi genstarter. Men det gjorde at åbne applikationer og køre benchmarks ret hurtigere, så vi var glade. Så efter det begyndte jeg at gå lidt dybere og prøve at kompilere LG's kernekilder til enheden, og jeg lavede alt muligt dårligt domme og alle mulige fejl - Wi-Fi-netværk, hvad som helst - alt, hvad du overhovedet kan forestille dig fra en person uden erfaring. Det var sjovt, jeg lærte meget. Jeg gætter på, at efter et år eller seks måneder var jeg en smule mere fokuseret, og jeg vidste lidt bedre, hvad jeg havde for at få downloads. Det er det, vi alle ønsker i sidste ende. Derefter lykkedes det mig at få nogle donationer og flytte op til andre enheder. Jeg gætter på Nexus S, derefter Galaxy Nexus og så efter den periode, lykkedes det mig at få min første app ud. Jeg tror, ​​jeg har været meget heldig, og jeg har været i stand til at finansiere mig selv ved at købe nye enheder, og det eksploderede derfra. Så jeg gætter på, at jeg i slutningen af ​​dagen skylder alt, vil jeg ikke sige XDA men platformen som XDA giver os.

Og fællesskabet bagved og alt det der.

Ja ja, jeg mener platformen, det er fællesskabet og de faktiske fora. For alle der lytter, dette er ikke en betalt sponsor eller noget, jeg bliver ikke betalt for at sige dette, det er bare sandt!

Der er ingen video, folk kan ikke se pistolen blive rettet mod dit hoved, det er i orden.

Hahaha, ja, men nogen vil sige, at jeg bliver betalt for at sige det her, så jeg siger det bare! Men ja, ja, det har været en fantastisk platform for mig at bygge seje ting, lære en masse, jeg har lært alt der ved for det meste at lave fejl, og i læringen gør jeg stadig min del af problemerne. Jeg ødelagde min Xiaomi Redmi Note 3, øh, bootloaderen er lige ødelagt. Så jeg er nødt til at forbinde den igen med min Windows-computer, der sidder bagved og skal genopfriske alt, og den har siddet her i tre måneder. Jeg får alle mulige former for had fra alle, at jeg ikke er opmærksom på den enhed, og så laver jeg stadig [fejl] tror jeg, så selv efter alle disse år er der stadig ting at lære, og jeg har været meget heldig at have været igennem denne rejse, og det har været fantastisk.

Nå, jeg gætter på, da du startede med... LG P500 var det?

Ja ja.

Hvor mange år siden var det? For det må have været omkring de originale versioner af Android ikke? Omkring Froyo eller noget?

Ja, det blev leveret med Froyo, og det blev opgraderet til Gingerbread et par måneder senere. Den enhed tror jeg var 2010, begyndelsen af ​​2011, sandsynligvis tidligere. Jeg ved, at min konto på XDA blev oprettet i december 2010, men jeg havde enheden på forhånd. Så jeg tror nok omkring det tidspunkt, ja.

Hvordan har Android udviklet sig ydelsesmæssigt siden da? Hvordan har det ændret sig for dig at skrive kerner dengang og skrive dem nu? Og jeg formoder, hvad dine meninger er om ændringerne.

Kernelmæssigt tror jeg, vi har udviklet os med den faktiske Linux-kerne og alle de ændringer, som Android-teamet faktisk ønskede at implementere til en bestemt Android-udgivelse, så de dikterer de fleste af hvilke specialfunktioner kernen vil have, baseret på hvad de ønsker at sende. Men jeg gætter på, at faktisk ydeevne, flere kerner faktisk hjælper meget, for dengang havde du ikke nogen rigtig måde at gøre det på flyt denne tråd (sic), eller forestil dig netværksanmodninger gennem en baggrundstråd, eller i det mindste faktisk realtid trådning. Jeg tror, ​​det var den største ændring gennem årene, at have flere måder at sprede dit arbejde på, og ikke at lade Android bare sætte farten ned, fordi alle forsøger at få fat i den lille smule CPU-andel. Mere end noget andet tror jeg multi-core og faktisk ægte multi-threading understøttet af Linux. Jeg troede, at det [var] den største ændring.

Ah okay, så hvad er din mening om HMP vs EAS? Fordi EAS åbenbart kun er nyt og kun bruges i nogle få enheder - ligesom du bruger en Google Pixel ikke?

Ja, i øjeblikket bruger jeg en Galaxy S8, men jeg har også en Pixel. Jeg kender ikke begge i så mange detaljer, de er bare forskellige implementeringer af, hvordan en multi-clustered enhed skal agere baseret på, hvad der sker på enheden på bestemte tidspunkter. At køre to forskellige klynger med to forskellige strømforbrug, det er ret svært. Du skal leve op til forventningerne om, at opgaver bevæger sig op og ned, og der er en latens involveret i det, og HMP var den første rigtige implementering af en ægte multi-clustered-arkitektur til ARM, for hvis jeg husker rigtigt, før HMP blev brugt i den virkelige verden, havde Samsung en initial implementering, hvor du enten brugte de første fire kerner, som laveffektkerner, eller fire højtydende kerner, men de kørte aldrig kl. den samme tid. Men så bagefter med HMP var kernerne klar til at blive brugt til enhver tid, og opgaverne flyttede bare fra en klynge til en anden og omvendt, og det fungerede ud, men du havde ikke så meget information fra planlæggeren til at vise dette til guvernøren for faktisk at beslutte, hvilken slags frekvens der ville blive brugt på det tidspunkt bestemt tid, så du skulle beskæftige dig med, f.eks. at prøve at forstå, hvad der sker på [ca.] 20 sekunder og derefter, baseret på det, der skete der, beslutter du, hvad du skal gør. EAS, det handler mere [om] at forstå, hvad der skal ske i fremtiden og beslutte i realtid baseret på effektudgangene for hver kerne, og så er det en masse beregninger og komplicerede ting i baggrund

Som energimodeller og så videre for at bakke det hele op.

Ja, jeg tror det, det er ret kompliceret, jeg kender ikke alle de detaljer, jeg har læst en masse dokumenter, men det er ret kompliceret, og det er ikke bare at tænde en kontakt og have den klar til brug. Jeg får det spørgsmål meget, kan du implementere EAS på XYZ-telefon. Mine svar er altid "Det er ikke at dreje på en knap, det er ikke sådan, det tog et helt team af Googlere og fyre fra Linaro at implementere det, og du skal flytte rundt på ting, lave ting, teste ting, og det er bare for meget arbejde og sådan noget. blind" og… ja. Det er svært.

Så du er nødt til at vide præcis, hvad du laver, det er ikke et enkeltmands-job?

Ja, du skal vide, hvad du laver, alle kan vælge patcherne og flette dem, men faktisk test og sørg for, at det fungerer korrekt, og du har brug for en ordentlig maskine for at registrere strømforbruget af hver komponent, og der er en masse tabeller på kernen, hvor du kan skrive styrken af ​​hver kerne, og baseret på det vil koden bestemme, hvad der skal gør. Det er ret kompliceret. Jeg tror ikke, det er en entydig løsning på alle problemerne, men det er helt klart det bedste, vi har lige nu.

Så du ser det som en forbedring?

Ja selvfølgelig, miles miles miles væk. Det er en klar forbedring fra HMP eller enhver anden arkitektur, for hvis du kan forstå, hvad der skal ske i fremtiden, kan du reagere meget hurtigere til enhver anmodning eller hvad der nu end sker på enheden, det er derfor, Google Pixel er så hurtig og så glat, fordi alt sker næsten i realtid. Det flytter frekvenserne op og ned, hvilket er den nemmeste måde at nå forventningerne til ydeevnen.

Jeg gætter på det så, hvis der er mere adoption i fremtiden af ​​EAS, hvordan ser du så det påvirke din egen udvikling med hensyn til kerner? Ville du stadig holde dig til HMP, eller ville du gå med allerede frigivne energimodeller? For eksempel på OnePlus 3 genbruger [ROM-udviklere] energimodellen fra Google Pixel til EAS. Kunne du se dig selv gøre sådan noget?

Jeg vil sandsynligvis ikke gøre det, hvis enheden ikke leveres med EAS til at begynde med, vil jeg sandsynligvis ikke implementere den på nogen måde eller form, fordi som sagt er det en ret lang proces, og ingen i XDA ved bedre end alle disse ingeniører, så vi prøver bare at spille Gud, tror jeg.

På den bemærkning, hvor vi taler om fremtiden med Android og kerner, hvad er din mening så om den seneste Android Oreo-udgivelse? Synes du, at ændringerne er gode? Har du set på nogle af de nye kerne-commits?

Der var ikke så mange ændringer på kernesiden på Nexus 6P og Nexus 5X, bare små rettelser her og der. På Google Pixel itererede de på EAS-implementeringen, og de brugte noget tid på at forbedre bindersektionen, for nu er binderen sammen med Project Diskant, det er som at opdele forskellige pakker, så de skal igennem 50 eller 100 forskellige patches for at forbedre bindemidlet og få det adskilt i forskellige processer. Bortset fra det var det bare normalt arbejde for en stor udgivelse. Når der er en ny platformsudgivelse, roder du normalt ikke så meget med kernen, fordi du roder med kerne har du faktisk brug for en masse QA, hvis du nogle gange ændrer en ting, hører du, at det påvirker noget i en anden delsystem. Det er det, de plejer at gøre, det er derfor, du ikke har en kerneversionsbump mellem platformopgraderinger. Det er bare meget arbejde. Normalt ikke det værd, men ja, det var for det meste bindemiddel, lidt af skemalæggeren og de sædvanlige sikkerhedsrettelser. Jeg gennemgik dem alle, men intet fangede mig. Min opmærksomhed blev kun bragt til ringbindet.

Ah okay, så bare standard ting egentlig.

Ja, de er ret komplicerede og spørg mig ikke om detaljer!

Dette er et helt andet emne, hvad er din mening om F2FS mod ext4? Fordi du ville se, at mange mennesker vil sige, at F2FS er ustabil og sådan og forårsager problemer,Jeg spekulerer bare lidt på, hvad du synes om det.

Jeg ved heller ikke [om] detaljer, fordi filsystemer er ret hårde, der er mange bevægelige dele her og der. Jeg vil lige citere en Google-ingeniør, som siger, at baseret på deres test, så præsterer F2FS ikke hurtigere end ext4, og oven i købet når de testede ting til Google Pixel, F2FS gav ikke support til... Jeg tror, ​​det var filblokkryptering, mens ext4 understøttede det. Så det alene betyder - bare skrotte det. Du skal tænke på to ting, der arbejdes på ext4 i 20 år med en masse smarte ingeniører fra forskellige virksomheder, og de ved, hvad de laver. F2FS blev, hvis jeg husker rigtigt, implementeret af Samsung. Det er et ganske nyt filsystem, så ting, der er så komplicerede som disse, tager tid at forbedre og gentage, som dig kan se fra Apple-filsystemet, der netop blev udgivet på iOS, og de kommer til at gøre det samme for Mac OS. Ting tager tid, du har brug for et stort team til at gøre disse ting korrekt. Jeg er stor tilhænger af "hvis det virker, så lad være med at røre det" og det, vi har lige nu -- det virker, og jeg tror ikke, det giver dig nogen præstationsproblemer, så jeg kan ikke se en grund til at rode med det.

Ah okay, det er fair nok! Hvad med SDCardFS bliver skiftet til fra FUSE? Hvad ville din mening være om det?

Det skete, fordi det ældre FUSE-filsystem var en af ​​de værste ting, der skete på Android. Ydeevnen var forfærdelig, der var mange systemkald mellem kernen og brugerrummet, og nu med SDCardFS er det gjort ordentligt. Det er et normalt filsystem at håndtere dette, igen, jeg kender ikke detaljerne, da det er en meget kompliceret ting, men hvad jeg har læst og set og hørt fra forskellige podcasts fra Android-teamet, er det dybest set løst alle problemerne med den gamle system. Det var ret forfærdeligt, præstationen var forfærdelig.


Se del 2 ved at klikke på denne knap!