Interviu su kūrėju eng.stk 1 dalis: kilmė ir branduolio kūrimas

Neseniai pakalbinome blu_spark branduolio kūrėją eng.stk. Šioje dalyje jo klausiame apie jo kilmę ir tobulinimo darbus.

Neseniai turėjau galimybę pakalbėti su XDA vyresniuoju nariu eng.stk, blu_spark branduolio kūrėjas. Jį galima rasti daugelyje mūsų forumų įrenginių, įskaitant „Nexus 5“, „OnePlus 3/T“ ir „OnePlus 5T“. Šioje dalyje mes klausiame eng.stk apie jo kūrimo ištakas ir kaip jis kuria blu_spark branduolį.


Taigi pirmiausia pristatykite save ir savo branduolį. Kuo jūsų branduolys skiriasi nuo konkurentų? Kokia yra jūsų branduolio pakeitimų projektavimo filosofija ir kaip tai darote?

Aš esu eng.stk ir XDA dirbu nuo 2010 m. Daugelis iš jūsų mane pažįsta iš mano code_blue ir blu_spark projektų :)

XDA pradėjau rašydamas kai kuriuos scenarijus ir įvairius įrankius, sistemos įsilaužimus. Aš taip pat padariau daug tematikos... Per savo laiką čia taip pat tiesiogiai bendradarbiavau su kai kuriais projektais, tokiais kaip Purity ROM, Universal Kernel Manager, Kernel Adiutor ir neseniai Magisk ir
WireGuard kad būtų tik keletas. Pastaruoju metu taip pat atlieku kai kuriuos TWRP darbus (ypač OnePlus įrenginiuose), Magisk modulius ir kitus įrankius / įsilaužimus [kurie] naudingi per mano branduolio projektų gyvavimo ciklą (kai kurie dalykai pateko į XDA portalą, jei prisimenu teisingai). blu_spark branduolys pradėjo tapti ne tik branduoliu, bet ir visapusiška patirtimi tarp branduolio, įrankių grandinių, atkūrimo, temų, įrankių, scenarijų ir kt. Tačiau branduolio darbas yra tai, kas man patinka labiausiai ir mane skatina.

Man visada patiko įsilaužti ir, kai turėjau galimybę, kurti tam tikrą kodą / scenarijus (išardyti elektroninius žaislus ir pagrindinį kodavimą mano pusbrolio Commodore 64 buvo smagu). Man kodavimas nėra priemonė tikslui pasiekti, o tik įrankis, kaip ir kai kurie kiti, siekiant apibrėžto tikslo. Dauguma mano rimtesnių dalykų ir mano darbo pagrindų buvo padaryti, kai paauglystėje / dvidešimties metų pradžioje atradau Linux. Vėliau, kažkur Universiteto laikais, Android man buvo logiškas tolesnis žingsnis: iš tikrųjų yra meistro svajonė, kur būtų galima daug žaisti su aparatine ar programine įranga.

Geriausi žodžiai apibūdinti blu_spark yra optimizavimas ir stabilumas. Žmonės, kurie jį naudoja, žino, kad gali juo pasikliauti. Mano branduolio versijos yra šiek tiek „sudėtingos“, todėl aš linkęs nepašalinti kai kurių turimų dalykų iš dėžutės, o viskas yra neprivaloma, kad žmonės galėtų pasirinkti. Nemėgstu pridėti per daug dalykų, tiesiog keičiu arba pridedu tai, kas, mano nuomone, geriausia kiekvienoje konkrečioje srityje. CPU dažnio tvarkyklė, IO planuoklis, tinklo protokolai, failų sistemos ir t. t. arba pakoreguokite kai kuriuos tam tikrus parametrus suderinamus parametrus arba kai kurias tvarkykles, kad gautumėte geriausius įmanomus rezultatus. Taip pat kuriu pagal užsakymą pagamintas įrankių grandines (iš Linaro, nuostabios GCC), daugiausia siekdamas išnaudoti visas architektūros galimybes.

Apibendrinant galima pasakyti, kad dauguma žmonių žino, kad naudojasi blu_spark nuo tada, kai įrenginyje paleidžia branduolį. Visada ieškau naujų dalykų ir būdų, kaip suteikti geriausią įmanomą UX. Saugiai.

Papasakokite apie savo blu_active gubernatorių! Kas tai yra, kuo ji veikia ir kuo ji ypatinga?

Žinau, kad žmonės kartais painioja blu_active su blu_spark. blu_active yra tik maža dalis, palyginti su visu likusiu [darbu], kurį darau.

CPU valdiklis iš esmės priima sprendimus, kad procesoriaus dažniai padidėtų arba mažėtų, atsižvelgiant į sistemos poreikius. Nuo pat pradžių gubernatorius turėjo keletą pakeitimų ir mutacijų. Kaip ir viskam, ką darau, man reikėjo kažko, kas atitiktų mano poreikius. Jis sukurtas pagal mano mėgstamą gubernatorių, interaktyvųjį gubernatorių. Iš pradžių aš tiesiog įdėjau į jį kai kuriuos ankstesnius dalykus, bet tada pradėjau pridėti kai kurių kitų dalykų, pvz., CAF atnaujinimų ar logikos, kurias mačiau kituose valdytojuose, kurie man atrodo naudingi. Taip pat pridėjau HMP suderinamumą ir keletą kitų gėrybių.

Naujausia iteracija yra pagrįsta „Google“ „Linux 4.4 Android“ filialu, taip pat su kai kuriais ankstesnių ir CAF pataisymų, bet daug švelnesnė nei anksčiau. Tiesiog iki galo išnaudokite tai, ką turite, pašalinkite tai, ko neturite. Visada stengiuosi gauti geresnę bateriją nei su atsargų nustatymais, mažindama eikvojimą ir stengiuosi tobulėti spektaklis (realaus gyvenimo spektaklis, tas, kurį jaučiate akimis ir pirštais, o ne su sintetika įrankiai).

Vienu metu norėjau paprasto derinimo, kad žmonės galėtų paprastai žaisti su našumu. Taip gimė Fastlane :). Logika šiek tiek panaši į „Honda VTEC“ veikimo būdą: žaiskite su laiku nuo nurodytos slenksčio. Taigi, naudojant paprastą jungiklį ir kintamą slenkstinę vertę, žmonės gali turėti tiesioginį ir agresyvesnį procesoriaus dažnio mastelį. Priversti jį anksčiau ar vėliau patekti pagal sistemos apkrovą, apeinant tikslines apkrovas. Jis visiškai suderinamas su HMP ir gali būti koreguojamas kiekvienoje grupėje pagal žmonių poreikius, tiksliai sureguliuotas kiekvienam įrenginiui, kuriame jis veikia.

Kokie integruoti mechanizmai ar patobulinimai jums patinka / nepatinka, kuriuos teikia originalios įrangos gamintojai? ty Qualcomm įvesties padidinimas.

Kai kurie vartotojo erdvės patobulinimai ir kiti derinamieji parametrai, nustatyti HAL (aparatinės įrangos abstrakcijos sluoksniuose), užkoduotos sistemos medžiagos ir kt., kartais gali erzinti. Žinoma, branduolio kūrėjai aplenkia kai kuriuos iš „Nexus 5“, pavyzdžiui, dauguma iš mūsų atsikratė mpdecision ir gavo pasirinktinį „hotplug“ – tuo metu turėjome blu_plug. Kai kurie kiti įrenginiai turėjo blogą šilumos valdymą ir pritaikytą šilumos kontrolę su sistemos temperatūros lygiais, švelninimo dažniu ir kt. Kai kuriuose naujesniuose įrenginiuose taikomos griežtos baterijos, branduolių atjungimo ir kitų dalykų „žemo lygio“ taisyklės, dėl kurių įrenginio naudojimas nebuvo realus. Tiesą sakant, kartais tai netgi sugadino vartotojo patirtį, todėl reikėjo sutramdyti CTL ir BCL technologijas.

Taip pat prisimenu, kad pašalinau šifravimą įrenginiuose, kai tai buvo dalykas, visi SELinux iteracijos pakeitimai padarė pakeitimus, dėl kurių ankstesni įsilaužimai veikė kitaip... kai kurie naujausi „Android“ saugos pakeitimai yra nuolatinis iššūkis. Tai apima AVB (kai kurios dalys dažniausiai žinomos kaip dm-verity). Kai kurie kiti pakeitimai apribojo derinimo ir sysf vietas, kurias reikėjo perkelti, nes neturime prieigos prie tų pačių vietų, kurias turėjome anksčiau. Dauguma šių apribojimų yra labiau susiję su atsarginiais ROM (kuriuose aš atlieku didžiąją dalį savo darbo), paprastai jie nutiesia kelią ir palengvina pritaikytus ROM (kur apribojimai yra mažesni).

Naujausiuose SoC, pvz., „Qualcomm Snapdragon 820“ ir „835“, kai kurie originalios įrangos gamintojai pridėjo tam tikrų naudotojų erdvės patobulinimų, kurie yra sveikintini ir sprendžia sistemos akląsias vietas, o ne visi OĮG dalykai yra blogi. Kalbant apie branduolio šaltinį, kuo švaresnis ir labiau dokumentuotas šaltinis, tuo geriau.

Kokias kitas funkcijas norėtumėte įtraukti? Pavyzdžiui, išplėstinis spalvų valdymas ir pan.

Paprastai neįtraukiu dalykų, kurių asmeniškai nenaudoju arba kurie man atrodo nenaudingi. Dalykai, kuriuos mėgstu daryti, be blu_active, apima architektūros optimizavimą ir pataisymus, kriptovaliutų atnaujinimus, IO planavimą ir kt. saugyklos / failų sistemos gėrybės, KCAL, USB greitas įkrovimas, vibracijos stiprumas, akumuliatoriaus / pranešimų LED valdymas, „Wakelock“ blokatoriai, „WireGuard“, ir tt Visada kuriu naudodamas individualizuotą kūrimo įrankių grandinę, kaip sakiau anksčiau.

Kokią testavimo metodiką naudojate savo branduoliui? Ar naudojate naudotojų ataskaitas, etalonus ar kitas tinkintas procedūras?

Man priklauso kiekvienas telefonas, kuriam kuriu, todėl bet kokie pakeitimai visada tikrinami man. Kadangi kasdien vairuoju kiekvieną įrenginį ilgą laiką, viskas, kas man netinka, neturėtų tikti niekam kitam. Kai viešai išleidžiu kūrinį, aš ir kai kurie kiti žmonės, kuriais pasitikiu, jau išbandžiau jį daugybe naudingų atsiliepimų. Žinau, kad kartais kai kuriems naudotojams nuobodu, kai viskas nuolat veikia taip, kaip turėtų, bet aš visų pirma vertinu stabilumą: pirmiausia visada atsiduriu vartotojo vietoje.

Aš remdamasis realaus naudojimo atvejais, o ne sintetiniais testais. Tokia programinė įranga skirta žmonėms, o ne mašinoms, esančioms biure. Pradinis taškas visada yra geresnis nei akcijų patirtis visais frontais, bet aš nelabai vertinu naujausią „Anttu“ rekordą. Mano branduolius galima suderinti pagal tokį etaloną, bet tai nėra mano galutinis tikslas. Vertinu kai kuriuos tiesioginius etalonus, pvz., IO saugyklos testavimą. Pavyzdžiui, jie gali padėti greitai patvirtinti kai kuriuos neseniai atliktus pakeitimus.

Atlieku savo bandymus su atsarginiais ROM, kad galėčiau turėti stabilų pradinį lygį. Kuriu pasirinktinius ROM, bet dėl ​​nepastovių pasirinktinių ROM su papildomais priedais, naktinių ir net kai kurių funkcijų įgyvendinimo skirtumai, neįmanoma jų visų aprėpti ir visiems tinkamai palaikyti, Deja.

Taip pat kartais kuriu beta versijas, kad išbandyčiau ką nors konkretaus arba kai paleidžiu beta versijos ROM arba kūrėjo peržiūras. Aš tai padariau „Nexus“ ir „OnePlus“ įrenginiuose, žmonės kartais mėgsta išbandyti dalykus :)


Peržiūrėkite 2 dalį: F2FS, EAS ir patarimai norintiems branduolio kūrėjams