Интервју са Девелопер енг.стк Део 1: Порекло и развој кернела

Недавно смо интервјуисали енг.стк, програмера блу_спарк кернела. У овом делу питамо га о његовом пореклу и развојном раду.

Недавно сам добио прилику да интервјуишем старијег члана КСДА енг.стк, програмер блу_спарк кернела. Доступан је на многим уређајима на нашим форумима, укључујући Некус 5, ОнеПлус 3/Т и ОнеПлус 5Т. У овом делу питамо енг.стк о његовом пореклу у развоју и како развија блу_спарк кернел.


Дакле, прво, представите себе и своје језгро. По чему се ваше језгро разликује од конкуренције? Која је ваша филозофија дизајна за промене кернела и како их спроводите?

Ја сам енг.стк и на КСДА сам од 2010. Већина вас ме познаје из мојих пројеката цоде_блуе и блу_спарк :)

Почео сам са КСДА писањем неких скрипти и разних алата, хакова за оквире. Такође сам радио много тема... Током свог боравка овде, такође сам директно сарађивао на неким пројектима као што су Пурити РОМ, Универсал Кернел Манагер, Кернел Адиутор и недавно Магиск и ВиреГуард само да поменемо само неке. Такође сам радио неке ТВРП послове у последње време (посебно на ОнеПлус уређајима), Магиск модулима и другим алатима/хаковима [који су] корисни током животног циклуса мојих кернел пројеката (неке ствари су отишле на КСДА портал ако се сећам исправно). блу_спарк кернел је почео да постаје не само кернел, већ и свеобухватно искуство између кернела, ланца алата, опоравка, тема, алата, скрипти итд. Али рад на кернелу је оно у чему највише уживам и оно што ме покреће.

Увек сам уживао у хакирању и прављењу неких кодова/скриптова када сам имао прилику (растављање електронских играчака и основно кодирање на Цоммодоре 64 мог рођака било је забавно). За мене кодирање није средство за постизање циља, већ само алат као неки други за постизање дефинисане сврхе. Већина мојих озбиљнијих ствари и основа мог рада је завршена када сам открио Линук током моје адолесценције/раних двадесетих. Касније, негде у време универзитета, Андроид је био логичан следећи корак за мене: заиста сан мајстора, где се хардвером или софтвером може много играти.

Најбоље речи за описивање блу_спарка су оптимизација и стабилност. Људи који га користе знају да се на њега могу ослонити. Моје верзије кернела су донекле „залихе“ на начин да не уклањам неке доступне ствари из кутије, држећи све опционим тако да људи могу да бирају. Не волим да додајем превише ствари, само мењам или додајем оно што сматрам најбољим за свако поље. ЦПУ фреквентни драјвер, ИО планер, мрежни протоколи, систем датотека итд. или подесите неке поставке за неке дате параметре или упстреам неке драјвере за најбољи могући исход. Такође правим прилагођене ланце алата (од Линаро-а, сјајан приступ ГЦЦ-у), углавном да бих извукао најбоље из архитектуре.

У крајњој линији, већина људи зна да су на блу_спарку од тренутка када флешују кернел на уређају. Увек тражим нове ствари и начине да пружим најбољи могући кориснички доживљај. Безбедно.

Реците нам нешто о свом блу_ацтиве гувернеру! Шта је то, шта ради и зашто је посебно?

Знам да људи понекад бркају блу_ацтиве са блу_спарк. блу_ацтиве је само мали део у поређењу са свим остатком [посла] који радим.

Гувернер ЦПУ-а у основи доноси одлуке да повећа или смањи фреквенције процесора, у складу са потребама система. Гувернер је од почетка имао неколико промена и мутација. Као и све друго што радим, требало ми је нешто што испуњава моје потребе. Заснован је на мом омиљеном гувернеру, интерактивном гувернеру. На почетку сам само ставио неке узводне ствари на то, али онда сам почео да додајем неке друге ствари, попут ажурирања ЦАФ-а или логике коју сам видео код других гувернера и које сматрам корисним. Такође сам додао ХМП компатибилност и неке друге доброте.

Најновија итерација је заснована на Гоогле-овој Линук 4.4 Андроид грани, са неким упстреам и ЦАФ исправкама такође, али много мање него раније. Једноставно искористите оно што имате у потпуности, уклоните оно што немате. Увек покушавам да добијем бољу батерију него са стандардним подешавањима, смањујући потрошњу, док покушавам да побољшам перформанс (изведба из стварног живота, она коју осећате очима и прстима, а не синтетичким алата).

У једном тренутку сам желео једноставну подесиву опцију како би људи могли да се играју са перформансама на једноставан начин. Овако је рођен Фастлане :). Логика је донекле слична начину на који Хонда ВТЕЦ ради: игра се са тајмингима од датог прага. Дакле, са једноставним прекидачем и променљивом вредношћу прага, људи би могли да имају директније и агресивније скалирање фреквенције процесора. Омогућавање да уђе пре или касније у зависности од оптерећења система, заобилазећи циљна оптерећења. Потпуно је компатибилан са ХМП-ом и може се подесити по кластеру према потребама људи, фино подешен за сваки уређај на којем ради.

Које уграђене механизме или подешавања волите/не волите које ОЕМ произвођачи пружају? тј. Куалцомм-ово појачање улаза.

Нека побољшања корисничког простора и друга подешавања која су постављена у ХАЛ-овима (Слојеви хардверске апстракције), тврдо кодирани оквир итд., понекад могу бити досадни. Наравно, познато је да програмери кернела заобилазе неке од њих. На Некус-у 5, на пример, већина нас се решила мпдецисион и добила прилагођени хотплуг – у то време смо имали блу_плуг. Неки други уређаји су имали лоше управљање топлотом и прилагођену термичку контролу са сисфс за нивое температуре, фреквенцију ублажавања итд. Неки новији уређаји имају неке чврсте политике о батерији, искључивању језгара и другим стварима на „ниским нивоима“ које нису оствариле прави добитак у коришћењу уређаја. У ствари, понекад је чак и упропастио корисничко искуство, па је било неопходно укротити ЦТЛ и БЦЛ технологије.

Такође се сећам уклањања шифровања на уређајима када је то била ствар, све промене СЕЛинук итерације су увеле промене због којих су претходни хакови радили на другачији начин... неке недавне Андроид безбедносне промене су стални изазов. Ово укључује АВБ (неки делови углавном познати као дм-верити). Неке друге промене су увеле ограничења за подешавања и сисфс места која су морала да се преместе јер немамо приступ истим местима која смо имали раније. Већина ових ограничења је релевантнија за стандардне РОМ-ове (у којима ја обављам већину свог посла), обично то утире пут и олакшава када су у питању прилагођени РОМ-ови (где су ограничења нижа).

У недавним СоЦ-овима као што су Куалцомм Снапдрагон 820 и 835, неки ОЕМ-ови су додали нека побољшања из корисничког простора која су добродошла и решавају слепе тачке у систему, нису све ОЕМ ствари лоше. Када је у питању извор кернела, што је извор чишћи и документованији, то боље.

Које друге функције желите да укључите? Као што је напредна контрола боја и тако даље.

Обично не укључујем ствари које лично не користим или које не сматрам корисним. Ствари које волим да радим, поред блу_ацтиве, укључују оптимизације и поправке архитектуре, ажурирања крипто ствари, ИО заказивање и друго Додаци за складиштење/датотечни систем, КЦАЛ, УСБ брзо пуњење, јачина вибрације, ЛЕД контрола батерије/обавештења, Вакелоцк блокатори, ВиреГуард, итд. Увек градим са прилагођеним ланцем алата за прављење као што сам раније рекао.

Коју методологију тестирања користите за своје језгро? Да ли користите корисничке извештаје, референтне вредности или било које друге прилагођене рутине?

Поседујем сваки телефон за који развијам, тако да су све промене увек тестиране на мени. Пошто свакодневно возим сваки уређај током дужег временског периода, све што сматрам да мени не одговара, не би требало да одговара никоме другом. Када јавно објавим верзију, већ је имала много тестирања од мене и неких других људи за које верујем да ће пружити корисне повратне информације. Знам да се неким корисницима понекад досади јер све ствари раде како треба, али ја ценим стабилност изнад свега: увек се стављам на место корисника.

Усмеравам ствари ка стварном животу, а не синтетичким тестовима. Ова врста софтвера је направљена за људе, а не за машине у помоћној канцеларији. Почетна тачка је увек боља од искуства на залихама, на свим фронтовима, али не ценим толико најновији Антуту резултат. Моји кернели могу да се подесе на ову врсту мерила, али то није мој крајњи циљ. Ценим неке референтне вредности које су директније, као што је тестирање ИО меморије, на пример. Они могу дати брз начин за потврђивање неких недавно направљених промена, на пример.

Своје тестирање радим са стандардним РОМ-овима тако да могу имати стабилну основу за ствари. Радим прилагођене буилд-ове за прилагођене РОМ-ове, али због нестабилне природе прилагођених РОМ-ова са додатним додацима, ноћним садржајима и чак разлика у имплементацији неких карактеристика, немогуће их је све покрити и пружити одговарајућу подршку свима, нажалост.

Такође понекад правим бета верзије да бих тестирао нешто специфично или када покрећем бета РОМ-ове или прегледе за програмере. Урадио сам то на Некус и ОнеПлус уређајима, људи понекад воле да тестирају ствари :)


Погледајте део 2: Ф2ФС, ЕАС и савети за амбициозне програмере кернела