Шта је кернел? Ако проводите било које време читајући Андроид форуме, блогове, постове са упутама или интернетску дискусију, ускоро ћете чути људе који причају о кернелу. Кернел није нешто јединствено за Андроид - иОС и МацОС га имају, Виндовс има један, БлацкБерријев КНКС има један, у ствари сви оперативни системи високог нивоа га имају. Оно што нас занима је Линук, јер је он Андроид који користи. Покушајмо да разбијемо шта је и шта ради.
Андроид уређаји користе Линук кернел, кладите се да сваки телефон користи своју верзију. Линук одржавачи кернела држе све уредно и доступно, сарадници (попут Гоогле-а) додају или мењају ствари како би што боље удовољили њиховим потребама, а људи који дају хардвер такође доприносе јер требају да развију управљачке програме за хардвер за делове које користе за верзију кернела коју користе. Због тога је потребно неко време да независни Андроид програмери и хакери преносе нове верзије на старије уређаје и све омогуће да раде. Возачи написани да раде са једном верзијом кернела за телефон можда неће радити са другом верзијом софтвера на истом телефону. И то је важно, јер је једна од главних функција кернела контрола хардвера. То је пуно изворног кода, с више опција при градњи него што можете замислити, али на крају је то само посредник између хардвера и софтвера.
Кад софтверу треба хардвер да уради било шта, он шаље захтев кернелу. А кад кажемо било шта, мислимо било шта. Од осветљености екрана, до нивоа јачине звука, до упућивања позива путем радија, чак и оно што се нацрта на екрану у коначници контролише кернел. На пример - када додирнете дугме за претрагу на свом телефону, софтверу кажете да отвори апликацију за претрагу. Оно што се догађа је да сте додирнули одређену тачку на дигитализатору, која софтверу каже да сте додирнули екран на тим координатама. Софтвер зна да када се додирне то одређено место, дијалог за претрагу требало би да се отвори. Кернел је оно што налаже дигитализатору да тражи (или слуша, догађаји се "слушају") за додире, помаже да схвати где сте га додирнули и каже систему да сте га додирнули. Заузврат, када систем прими додирни догађај у одређеној тачки од кернела (преко управљачког програма), он зна шта треба цртати на вашем екрану. И хардвер и софтвер комуницирају на оба начина са кернелом и тако ваш телефон зна када нешто учинити. Улаз са једне стране шаље се као излаз на другу, било да играте Ангри Бирдс или повезујете се путем Блуетоотх-а вашег аутомобила.
Звучи компликовано, и јесте. Али такође је прилично стандардна компјутерска логика - постоји акција која се генерише за сваки догађај, а зависно од те радње ствари се дешавају са покренутим софтвером. Без кернела да прихвати и пошаље информације, програмери би морали написати код за сваки догађај за сваки појединачни хардвер у вашем уређају. Уз кернел, све што треба да ураде је да комуницирају с њим путем АПИ-ја Андроид система, а хардверски програмери морају само да хардвер уређаја комуницира са кернелом. Добра ствар је што не требате тачно да знате како и зашто кернел ради оно што ради, само разумевање да је то прелазак између софтвера и хардвера вам даје прилично добар разумевање онога што се догађа испод чаше.
Некако пружа потпуно нови поглед према оним људима који остају будни цијелу ноћ да би радили на кернелима за ваш телефон, зар не?