Франциско Франко от интервю на Franco Kernel, част 1

Част 1 от интервю с Франсиско Франко, разработчикът на Franco Kernel и други приложения за много различни устройства.

Наскоро имах удоволствието да интервюирам човека зад едно от най-популярните ядра на Android, ядрото на Franco. В момента ядрото е налично на много различни устройства, включително различни устройства Nexus и OnePlus и Google Pixel / Pixel XL.

В тази част говорим за пътуването на Франциско Франко в разработката на ядрото и неговото мнение за промените, през които Android е претърпял през годините.


Аз съм Адам Конуей тук в XDA, за да интервюирам Франсиско Франко, разработчик на ядрото на Franco! Искаш ли да се представиш?

Разбира се, казвам се Франциско, както току-що казахте, и предполагам, че съм в XDA вече от 1 милион години! Правеше всякакви неща. ядки, приложения, а напоследък се отпуснах малко повече върху ядрата, защото след известно време става уморително, но все още съм с пълна сила на повечето си устройства.

Добре, така че предполагам, че много хора биха били запознати с вашата работа, но много хора няма да са запознати с действителния човек зад работата. Така че предполагам, че наистина имате някакъв минал опит преди ядрата? Като всяка степен по компютърни науки или нещо подобно предварително?

Винаги съм бил запален по компютрите, както всяко дете, докато растях, предполагам. След като навърших 18 години, реших да отида в университет като всички останали и мисля, че го взех компютърни науки или нещо подобно, но след около година реших, че всъщност не съм страстен относно. След тази година очакванията ми започнаха да падат, защото всичко беше приказки и никакви действия, а аз бях започнах да се чувствам отегчен - не защото бях по-добър от всеки друг, бях просто среден - но действителните дисциплини не бяха точно каквото исках. Така че говорих с родителите си и те знаеха, че не съм много щастлив от това. По Коледа на 2010 г. получих първия си телефон с Android. LG P500, това е бюджетен телефон, много евтин, но знаех, че работи с Linux, а любимата ми дисциплина в университета беше компютърна архитектура или нещо подобно, операционни системи. И ние учехме малко за shell и говорихме малко за ядрото на Linux и какво беше част от ядрото и цялата свързаност в ядрото, и действителната операционна система, и това беше завладяващо за мен. И тогава започнах да възстановявам Linux ядрото за моя стар лаптоп заедно с приятел. Сринахме лаптопите си 100 пъти, правейки това, но се научихме чрез процеса. И тогава започнах да си играя с моя LG и предполагам, че първото нещо, което направих, беше да се опитам да увелича малко повече производителност, защото това устройство всъщност беше доста скапано. Така че най-доброто нещо, което можех да направя, беше просто да премина през стандартните параметри на ядрото на Linux за действителното управление на паметта и други неща, и просто се опитайте да намерите нещо малко по-добро от това, което вече беше там. Тогава се забавлявах малко.

Мисля, че не съм казвал това преди в предишни интервюта, но тогава това устройство използваше стара файлова система, наречена YAFFS - това означава още един флаш Файлова система, но беше доста бавна, когато се опитахме да монтираме като суап диск, поддържан от RAM, така че не помня подробности, но направихме всякакви различни експериментирахме с това и в крайна сметка монтирахме Dalvik върху RAM паметта, която трябваше да се възстановява при всяко рестартиране, защото, както знаете, RAM изчезва всеки време да рестартираме. Но направи отварянето на приложения и стартирането на бенчмаркове доста по-бързи, така че бяхме доволни. Така че след това започнах да навляза малко по-дълбоко и да се опитам да компилирам изходните кодове на ядрото на LG за устройството и направих всякакви лоши преценки и всякакви грешки - Wi-Fi мрежа, каквото и да е - всичко, което можете да си представите от някой без опит. Това беше забавно, научих много. Предполагам, че след година или шест месеца [на] правене на това бях малко по-концентриран и знаех малко по-добре какво трябва да получа за изтегляне. Това е, което всички искаме в края на деня. След това успях да получа някои дарения и да премина към други устройства. Предполагам, че Nexus S, след това Galaxy Nexus и след този период успях да пусна първото си приложение. Предполагам, че имах голям късмет и успях да се финансирам с купуването на нови устройства и оттам всичко се взриви. Така че предполагам, че в края на деня дължа всичко на, не бих казал XDA, но платформата които XDA ни предоставя.

И общността зад него и всичко това.

Да, да, имам предвид платформата, това е общността и действителните форуми. За всеки, който слуша, това не е платен спонсор или нещо подобно, не ми плащат да го кажа, просто е вярно!

Няма видео, хората не виждат пистолета да е насочен към главата ви, всичко е наред.

Хахаха, да, но някой ще каже, че ми плащат, за да кажа това, така че просто ще го кажа! Но да, да, това беше прекрасна платформа за мен да създам готини неща, да науча много, научих всичко там, като най-вече правех грешки и в ученето все още се справям с моя дял от проблемите. Унищожих моя Xiaomi Redmi Note 3, ъ-ъ, буутлоудърът е просто унищожен. Така че трябва да го свържа отново с моя компютър с Windows, който стои там отзад, и трябва да презаредя всичко, а той стои тук около три месеца. Получавам всякакви видове омраза от всички, че не обръщам внимание на това устройство и така че все още правя [грешки] предполагам, така че дори след всички тези години все още има какво да науча и имах голям късмет да премина през това пътуване и то беше страхотно.

Е, предполагам, че като започнахте с... LG P500 беше ли?

Да, да.

Преди колко години беше това? Защото това трябва да е било около оригиналните версии на Android, нали? Около Froyo или нещо подобно?

Да, това беше доставено с Froyo и беше надстроено до Gingerbread няколко месеца по-късно. Това устройство мисля, че беше 2010 г., началото на 2011 г., вероятно по-рано. Знам, че акаунтът ми в XDA е създаден през декември 2010 г., но имах устройството преди това. Предполагам, че вероятно по това време, да.

Как Android еволюира по отношение на производителността оттогава? Например как се промени за вас да пишете ядра тогава и да ги пишете сега? И предполагам какво е мнението ви за промените.

Що се отнася до ядрото, мисля, че се развихме с действителното ядро ​​на Linux и всички промени, които екипът на Android всъщност искаше прилагат за определена версия на Android, така че те диктуват повечето от специалните функции, които ще има ядрото, въз основа на това, което искат да превозва. Но предполагам, че действителната производителност, повече ядра всъщност помагат много, защото тогава не сте имали реален начин за това преместете тази нишка (sic), или си представете мрежови заявки през фонова нишка, или поне действително в реално време резба. Мисля, че това беше най-голямата промяна през годините, да имате повече начини да разпределите работата си, а не Android просто да се забави, защото всеки се опитва да грабне този малък дял от процесора. Повече от всичко мисля, че многоядрени и действително реални многонишкови, подкрепени от Linux. Мислех, че това е най-голямата промяна.

А, добре, тогава какво е вашето мнение за HMP срещу EAS? Тъй като очевидно EAS е само нов и се използва само в няколко устройства - като използвате Google Pixel, нали?

Да, в момента използвам Galaxy S8, но имам и Pixel. Не знам и двете в толкова [много] подробности, те са просто различни реализации на това как трябва да действа мултиклъстерно устройство въз основа на това, което се случва на устройството в определени моменти. Изпълнението на два различни клъстера с две различни консумация на енергия е доста трудно. Трябва да отговаряте на очакванията за задачи, които се движат нагоре и надолу, и там има закъснение и HMP беше първото истинско внедряване на истинска многоклъстерна архитектура за ARM, защото, ако си спомням правилно, преди HMP да се използва в реалния свят, Samsung имаше първоначален изпълнение, при което или сте използвали първите четири ядра, като ядра с ниска мощност, или четири ядра с висока производителност, но те никога не са работили на по същото време. Но след това с HMP ядрата бяха готови за използване по всяко време и задачите просто се преместваха от един клъстер в друг и обратно и това работеше излязох, но не разполагахте с толкова много информация от планировчика, за да покажете това на управителя, за да реши всъщност какъв вид честота ще се използва при това определено време, така че трябваше да се справите, например, опитвайки се да разберете какво се случва за [около] 20 секунди и след това въз основа на случилото се там, вие решавате какво да направи. EAS, това е повече [за] разбиране какво ще се случи в бъдеще и вземане на решения в реално време въз основа на изходната мощност на всяко ядро, а след това има куп изчисления и сложни неща в заден план

Като енергийни модели и така нататък, за да подкрепите всичко.

Да, предполагам, че е така, доста е сложно, не знам всички подробности, прочетох куп документи, но е доста сложно и не е просто да включите превключвателя и да го подготвите за използване. Получавам този въпрос много, можете ли да внедрите EAS на телефон XYZ. Моите отговори са винаги „Това не е въртене на копче, не е така, отне цял екип от служители на Google и момчета от Linaro, за да внедрят това и вие трябва да местите неща наоколо, да правите неща, да тествате неща и това е просто твърде много работа и някак сляп" и… да. Това е трудно.

Така че трябва да знаете точно какво правите, това не е работа за един човек?

Да, трябва да знаете какво правите, всеки може да избере кръпките и да ги обедини, но действителното тестване и проверката, че работи правилно, ще ви трябва подходяща машина за откриване на потреблението на енергия от всеки компонент и има куп таблици в ядрото, където можете да напишете мощността на всяко ядро ​​и въз основа на това кодът ще реши какво да направи. Доста е сложно. Не мисля, че това е определено решение за всички проблеми, но определено е най-доброто, което имаме в момента.

Значи го виждате като подобрение?

Да, разбира се, мили мили мили разстояние. Това е определено подобрение от HMP или друга архитектура, защото ако можете да разберете какво ще се случи в бъдеще, можете да реагирате много по-бързо на всяка заявка или каквото и да се случва на устройството, ето защо Google Pixel е толкова бърз и толкова плавен, защото всичко се случва почти в реално време. Това е преместване на честотите нагоре и надолу, което е най-лесният начин да постигнете очакванията за производителност.

Предполагам, че след това, ако има повече приемане в бъдеще на EAS, как виждате това да се отрази на собственото ви развитие по отношение на ядрата? Бихте ли продължили да се придържате към HMP или бихте използвали вече пуснати енергийни модели? Например на OnePlus 3 [разработчиците на ROM] повторно използват енергийния модел от Google Pixel за EAS. Можеш ли да се видиш да правиш нещо подобно?

Вероятно няма да направя това, ако устройството не се доставя с EAS като начало, вероятно няма да го внедря по никакъв начин или форма, защото както казах, това е доста дълъг процес и никой в ​​XDA не знае по-добре от всички тези инженери, така че ние просто се опитваме да си играем на Бог, предполагам.

В тази връзка, като говорим за бъдещето с Android и ядрата, какво е мнението ви за скорошното издание на Android Oreo? Мислите ли, че промените са добри? Разгледахте ли някой от новите ангажименти на ядрото?

Нямаше толкова много промени от страна на ядрото на Nexus 6P и Nexus 5X, само малки корекции тук и там. В Google Pixel те повтаряха внедряването на EAS и прекараха известно време в подобряване на секцията за свързване, защото сега свързващото устройство заедно с Project Treble, това е като разделяне на различни пакети, така че те трябва да преминат през 50 или 100 различни корекции, за да подобрят свързващото вещество и да го разделят на различни процеси. Освен това, това беше нормална работа за голямо издание. Когато има нова версия на платформата, обикновено не се забърквате толкова много с ядрото, защото забъркването с ядрото всъщност имате нужда от много QA, ако понякога промените едно нещо, което чувате, че засяга нещо в друго подсистема. Това е, което обикновено правят, затова нямате промяна на версията на ядрото между надстройките на платформата. Това е просто много работа. Обикновено не си струва, но да, това бяха предимно свързващи неща, малко от планировчика и обичайните поправки за сигурност. Преминах през всичките, но нищо не ми грабна ума. Вниманието ми беше насочено само към класьора.

А, добре, така че наистина само стандартните неща.

Да, доста са сложни и не ме питайте за подробности!

Това е съвсем различна тема, какво е мнението ви за F2FS спрямо ext4? Тъй като ще видите, че много хора ще кажат, че F2FS е нестабилна и прочие и причинява проблеми,Просто се чудя какво е мнението ти за това.

И аз не знам [за] специфики, защото файловите системи са доста твърди, има много движещи се части тук и там. Просто ще цитирам инженер на Google, който казва, че въз основа на техния тест F2FS не работи по-бързо от ext4 и на всичкото отгоре, когато те тестваха неща за Google Pixel, F2FS не предостави поддръжка за... Мисля, че беше криптиране на файлови блокове, докато ext4 за поддръжка то. Така че само това означава - просто го бракувайте. Трябва да помислите за две неща, върху ext4 се работи от около 20 години с много много умни инженери от различни компании и те знаят какво правят. F2FS беше, ако си спомням правилно, внедрен от Samsung. Това е доста нова файлова система, така че толкова сложни неща като тези отнемат време за подобряване и итерация, като вас могат да видят от файловата система на Apple, която току-що беше пусната на iOS, и те ще направят същото за Mac ОПЕРАЦИОННА СИСТЕМА. Нещата отнемат време, имате нужда от огромен екип, за да направите тези неща правилно. Аз съм голям привърженик на „ако работи, не го пипайте“ и това, което имаме в момента -- работи и не мисля, че ви създава проблеми с производителността, така че не виждам причина да бъркай с него.

А, добре, това е достатъчно честно! Какво относно SDCardFS се превключва от FUSE? Какво ще бъде вашето мнение по въпроса?

Това се случи, защото по-старата файлова система FUSE беше едно от най-лошите неща, които се случиха на Android. Изпълнението беше ужасно, имаше много системни извиквания между ядрото и потребителското пространство и сега с SDCardFS всичко се прави правилно. Това е нормална файлова система, за да се справи с това, отново не знам спецификата, тъй като е много сложно нещо, но това, което имам прочетено, видяно и чуто от различни подкасти от екипа на Android е, че основно поправи всички проблеми със стария система. Това беше доста ужасно, представянето беше ужасно.


Вижте част 2, като щракнете върху този бутон!