Intervija ar izstrādātāju eng.stk 1. daļa: Izcelsme un kodola izstrāde

Mēs nesen intervējām eng.stk, blu_spark kodola izstrādātāju. Šajā daļā mēs viņam jautājam par viņa izcelsmi un attīstības darbu.

Man nesen bija iespēja intervēt XDA vecāko locekli eng.stk, blu_spark kodola izstrādātājs. Mūsu forumos tas ir pieejams daudzās ierīcēs, tostarp Nexus 5, OnePlus 3/T un OnePlus 5T. Šajā daļā mēs vaicājam eng.stk par viņa izcelsmi attīstībā un to, kā viņš izstrādā blu_spark kodolu.


Tāpēc vispirms iepazīstiniet ar sevi un savu kodolu. Kā jūsu kodols atšķiras no konkurentiem? Kāda ir jūsu kodola izmaiņu projektēšanas filozofija, un kā jūs tās veicat?

Es esmu eng.stk un XDA izmantoju kopš 2010. gada. Lielākā daļa no jums mani pazīst no maniem code_blue un blu_spark projektiem :)

Es sāku lietot XDA, rakstot dažus skriptus un dažādus rīkus, ietvaru uzlaušanu. Esmu arī daudz ko veidojis... Šeit pavadītā laika laikā esmu arī tieši sadarbojies tādos projektos kā Purity ROM, Universal Kernel Manager, Kernel Adiutor un pēdējā laikā Magisk un WireGuard lai nosauktu tikai dažus. Pēdējā laikā esmu veicis arī dažus TWRP darbus (īpaši OnePlus ierīcēs), Magisk moduļus un citus rīkus/uzlauzumus [kas ir] noderīgi manu kodola projektu dzīves cikla laikā (ja atceros, dažas lietas tika ievietotas XDA portālā pareizi). blu_spark kodols sāka kļūt ne tikai par kodolu, bet arī par visaptverošu pieredzi starp kodolu, rīku ķēdēm, atkopšanu, motīviem, rīkiem, skriptiem utt. Bet kodola darbs ir tas, kas man patīk visvairāk un kas mani virza.

Man vienmēr patika uzlauzt un veidot dažus kodus/skriptus, kad man bija iespēja (elektronisko rotaļlietu izjaukšana un pamata kodēšana mana brālēna Commodore 64 bija jautri). Man kodēšana nav līdzeklis mērķa sasniegšanai, bet tikai instruments, tāpat kā daži citi, lai sasniegtu noteiktu mērķi. Lielākā daļa no manām nopietnākajām lietām un mana darba pamati tika paveikti, kad pusaudža gados / divdesmito gadu sākumā atklāju Linux. Vēlāk, kaut kur universitātes laikos, Android man bija loģisks nākamais solis: īsts gudrotāja sapnis, kur ar aparatūru vai programmatūru varētu daudz spēlēt.

Labākie vārdi, lai aprakstītu blu_spark, ir optimizācija un stabilitāte. Cilvēki, kas to izmanto, zina, ka var uz to paļauties. Manas kodola versijas ir zināmā mērā "noturīgas" tādā veidā, ka es mēdzu neizņemt dažus pieejamos materiālus no kastes, saglabājot visu pēc izvēles, lai cilvēki varētu izvēlēties. Man nepatīk pievienot pārāk daudz lietu, es vienkārši mainu vai pievienoju to, ko uzskatu par labāko katrā konkrētajā jomā. Centrālā procesora frekvences draiveris, IO plānotājs, tīkla protokoli, failu sistēmas utt. vai pielāgojiet dažus noregulējumus dažiem noteiktiem parametriem vai dažus draiverus, lai iegūtu vislabāko iespējamo rezultātu. Es arī veidoju pēc pasūtījuma izgatavotas rīku ķēdes (no Linaro, lieliska GCC versija), galvenokārt, lai iegūtu vislabāko no arhitektūras.

Būtībā lielākā daļa cilvēku zina, ka viņi izmanto blu_spark no brīža, kad ierīcē mirgo kodols. Es vienmēr meklēju jaunas lietas un veidus, kā nodrošināt vislabāko iespējamo lietotāja pieredzi. Droši.

Pastāstiet mums par savu blu_active gubernatoru! Kas tas ir, ko tas dara un kāpēc tas ir īpašs?

Es zinu, ka cilvēki dažreiz sajauc blu_active ar blu_spark. blu_active ir tikai neliela daļa salīdzinājumā ar visu pārējo [darbu], ko es daru.

CPU gubernators pamatā pieņem lēmumus, lai palielinātu vai samazinātu CPU frekvences atbilstoši sistēmas vajadzībām. Kopš tā sākuma gubernatoram ir notikušas vairākas izmaiņas un mutācijas. Tāpat kā viss pārējais, ko daru, man vajadzēja kaut ko, kas apmierina manas vajadzības. Tā pamatā ir mans iecienītākais gubernators, interaktīvais gubernators. Sākumā es vienkārši ievietoju tajā dažus augšupvērsto materiālus, bet pēc tam sāku pievienot citus elementus, piemēram, CAF atjauninājumus vai loģiku, ko biju redzējis citos pārvaldniekos, kas man šķiet noderīgi. Es arī pievienoju HMP saderību un dažus citus labumus.

Jaunākā iterācija ir balstīta uz Google operētājsistēmas Linux 4.4 Android filiāli, ar dažiem augšupējiem un CAF labojumiem, taču tas ir daudz vienkāršāks nekā iepriekš. Vienkārši pilnībā izmantojiet to, kas jums ir, un noņemiet to, kas jums nav. Es vienmēr cenšos iegūt labāku akumulatoru nekā ar krājumu iestatījumiem, samazinot enerģijas patēriņu, vienlaikus mēģinot uzlabot sniegums (īsts sniegums, tas, ko jūtat ar acīm un pirkstiem, nevis ar sintētiku instrumenti).

Vienā brīdī es gribēju vienkāršu regulējamu ierīci, lai cilvēki varētu vienkāršā veidā spēlēties ar veiktspēju. Tā dzima Fastlane :). Loģika ir nedaudz līdzīga tam, kā Honda VTEC darbojas: spēlējiet ar laiku no noteiktā sliekšņa. Tātad, izmantojot vienkāršu slēdzi un mainīgu sliekšņa vērtību, cilvēki varētu iegūt tiešāku un agresīvāku CPU frekvences mērogošanu. Agrāk vai vēlāk liekot tai ienākt atbilstoši sistēmas slodzei, apejot mērķa slodzes. Tas ir pilnībā saderīgs ar HMP un var tikt pielāgots katram klasterim atbilstoši cilvēku vajadzībām, precīzi noregulējot katrai ierīcei, kurā tas darbojas.

Kādi iebūvētie mehānismi vai uzlabojumi jums patīk/nepatīk, ko piedāvā OEM? ti, Qualcomm ievades palielinājums.

Daži lietotāja telpas pastiprinājumi un citi regulējamie iestatījumi, kas ir iestatīti HAL (aparatūras abstrakcijas slāņos), cietā kodēta ietvara saturs utt., dažkārt var būt kaitinoši. Protams, ir zināms, ka kodola izstrādātāji cenšas apiet dažus no tiem, piemēram, Nexus 5 ierīcē lielākā daļa no mums atbrīvojās no mpdecision un ieguva pielāgotu hotplug — mums tajā laikā bija blu_plug. Dažām citām ierīcēm bija slikta siltuma vadība un pielāgota siltuma kontrole ar sysf temperatūras līmeņiem, mazināšanas biežumam utt. Dažām jaunākām ierīcēm ir noteiktas stingras politikas attiecībā uz akumulatoru, kodolu atvienošanu un citām lietām “zemā līmenī”, kas nedeva reālus ieguvumus ierīces lietošanā. Patiesībā tas dažreiz pat sabojāja lietotāja pieredzi, tāpēc bija nepieciešams pieradināt CTL un BCL tehnoloģijas.

Es arī atceros, ka ierīcēs tika noņemta šifrēšana, kad tas bija lieta, visas izmaiņas SELinux iterācijās ieviesa izmaiņas, kas lika iepriekšējiem uzlaupījumiem darboties savādāk... dažas nesenās Android drošības izmaiņas ir pastāvīgs izaicinājums. Tajos ietilpst AVB (dažas daļas lielākoties zināmas kā dm-verity). Dažas citas izmaiņas ir noteikušas ierobežojumus noskaņojamajām un sysf vietām, kuras bija jāpārvieto, jo mums nav piekļuves tām pašām vietām, kuras bijām iepriekš. Lielākā daļa no šiem ierobežojumiem vairāk attiecas uz krājuma ROM (kuros es veicu lielāko daļu sava darba), parasti tas bruģē ceļu un atvieglo pielāgotus ROM (kur ierobežojumi ir zemāki).

Nesenajos SoC, piemēram, Qualcomm Snapdragon 820 un 835, daži oriģinālo iekārtu ražotāji ir pievienojuši dažus uzlabojumus no lietotāja telpas, kas ir apsveicami un novērš sistēmas aklos punktus, taču ne visas OEM lietas ir sliktas. Runājot par kodola avotu, jo tīrāks un dokumentētāks ir avots, jo labāk.

Kādas citas funkcijas vēlaties iekļaut? Piemēram, uzlabota krāsu kontrole un tā tālāk.

Es parasti neiekļauju lietas, kuras personīgi neizmantoju vai kuras man nešķiet noderīgas. Darbs, ko man patīk darīt, papildus blu_active ietver arhitektūras optimizāciju un labojumus, kriptovalūtu atjauninājumus, IO plānošanu un citus. krātuves/failu sistēmas labumi, KCAL, USB ātra uzlāde, vibrācijas stiprums, akumulatora/paziņojumu LED vadība, Wakelock bloķētāji, WireGuard, utt. Es vienmēr veidoju, izmantojot pielāgotu veidošanas rīku ķēdi, kā jau teicu iepriekš.

Kādu testēšanas metodiku jūs izmantojat savam kodolam? Vai izmantojat lietotāju pārskatus, etalonus vai citas pielāgotas darbības?

Man pieder katrs tālrunis, kuram es izstrādāju, tāpēc visas izmaiņas vienmēr tiek pārbaudītas. Tā kā es ikdienā braucu ar katru ierīci ilgu laiku, viss, kas man šķiet nederīgs man, nedrīkst būt piemērots nevienam citam. Kad es publiski izlaižu būvējumu, es un daži citi cilvēki, kuriem uzticos sniegt noderīgas atsauksmes, to jau ir daudz pārbaudījuši. Es zinu, ka dažkārt dažiem lietotājiem kļūst garlaicīgi, ka visas lietas pastāvīgi darbojas tā, kā vajadzētu, taču es par visu augstāk vērtēju stabilitāti: es vienmēr esmu lietotāja vietā.

Es virzu lietas uz reālu lietošanas gadījumu, nevis sintētiskos testus. Šāda veida programmatūra ir paredzēta cilvēkiem, nevis iekārtām birojā. Sākumpunkts vienmēr ir labāks par akciju pieredzi visās frontēs, taču es īsti nevērtēju tik augstu pēdējo Antutu rekordu. Manus kodolus var noregulēt uz šāda veida etalonu, taču tas nav mans galamērķis. Es novērtēju dažus tiešākus etalonus, piemēram, IO krātuves testēšanu. Piemēram, tie var sniegt ātru veidu, kā apstiprināt dažas nesen veiktās izmaiņas.

Es veicu testēšanu ar krājuma ROM, lai man būtu stabils bāzes līmenis. Es veidoju pielāgotus ROM pielāgotus ROM, taču pielāgoto ROM nepastāvības dēļ ar pievienotām ekstrām, naktsgrāmatām un pat dažu funkciju ieviešanas atšķirības, nav iespējams tās visas aptvert un sniegt pienācīgu atbalstu visiem, diemžēl.

Es arī dažreiz veidoju beta versijas, lai pārbaudītu kaut ko konkrētu vai kad palaižu Beta ROM versijas vai izstrādātāju priekšskatījumus. Es to darīju Nexus un OnePlus ierīcēs, cilvēkiem patīk dažreiz pārbaudīt lietas :)


Apskatiet 2. daļu: F2FS, EAS un padomi topošajiem kodola izstrādātājiem