Logo hu.androidermagazine.com
Logo hu.androidermagazine.com

Mi a kernel?

Anonim

Mi a kernel? Ha időt tölt az Android fórumok, blogok, útmutatók vagy online beszélgetések olvasásával, akkor hamarosan meghallja az emberek beszélgetését a kernelről. A kernel nem valami egyedi az Android számára - az iOS-nek és a MacOS-nak van egy, a Windowsnak egy, a BlackBerry QNX-nek egy, valójában az összes magas szintű operációs rendszernek egy. Az érdekli a Linux, mivel az az, amelyet az Android használ. Próbáljuk megbontani, mi ez és mit csinál.

Az Android készülékek a Linux kernelét használják, és minden telefon saját verzióját használja. A Linux kernel karbantartói mindent takarítanak és rendelkezésre állnak, a közreműködők (mint például a Google) az igényeik jobb kielégítése érdekében hozzáadnak vagy módosítanak dolgokat, és a hardvert készítő emberek szintén hozzájárulnak, mert hardver-illesztőprogramokat kell fejleszteniük a használt alkatrészekhez. kernel verzió, amelyet használnak. Ezért vesz igénybe egy ideig, amíg a független Android fejlesztők és a hackerek új verziókat portálnak a régebbi eszközökre, és mindent működnek. Lehetséges, hogy az illesztőprogramok, amelyek a telefon kernelének egy verziójával dolgoznak, nem működnek ugyanazon a telefonon a szoftver másik verziójával. És ez fontos, mert a kernel egyik fő funkciója a hardver vezérlése. Ez egy nagyon sok forráskód, több lehetőséggel építve, mint gondolnád, de végül ez csak a közvetítő a hardver és a szoftver között.

Amikor a szoftvernek szüksége van a hardverre, hogy bármit megtehessen, kérést küld a kernelnek. És amikor bármit is mondunk, akkor bármit is értünk. A képernyő fényerejétől a hangerőig, a hívás kezdeményezéséig a rádión keresztül, még akkor is, ha a képernyőn rajzolódik, azt a kernel ellenőrzi. Például - amikor megérinti a kereső gombot a telefonján, megmondja a szoftvernek, hogy nyissa meg a keresési alkalmazást. Ami történik, hogy megérintett egy bizonyos pontot a digitalizálón, amely azt mondja a szoftvernek, hogy megérintette a képernyőt azokon a koordinátákon. A szoftver tudja, hogy ha megérinti az adott helyet, akkor a keresési párbeszédpanelnek nyitva kell állnia. A kernel az, ami arra készteti a digitalizálót, hogy érintse meg (vagy hallgassa meg, az eseményeket „meghallgassák”) az érintésekhez, segít kitalálni, hol érinti, és megmondja a rendszernek, hogy megérintette. Amikor a rendszer érintési eseményt kap egy kernel egy pontján (az illesztőprogramon keresztül), akkor tudja, mit kell felhívni a képernyőre. A hardver és a szoftver egyaránt kommunikál a kerneltel, és így tudja a telefon, mikor kell csinálni valamit. Az egyik oldalról történő bemenetet kimenetként továbbítják a másikra, függetlenül attól, hogy Angry Birds játékot játszik, vagy csatlakoztatja-e autójának Bluetooth-ját.

Bonyolultnak hangzik, és így van. De ez szintén nagyon szokásos számítógépes logika - minden eseményhez valamilyen művelet generálódik, és attól függően, hogy mi történik a futó szoftverrel. Anélkül, hogy a kernel elfogadná és elküldené az információkat, a fejlesztőknek minden egyes eseményre kódot kell írniuk az eszköz minden egyes hardverrészére. A rendszermaggal csak annyit kell tennie, hogy az Android rendszer API-on keresztül kommunikál vele, és a hardverfejlesztőknek csak az eszköz hardverét kell kommunikálniuk a rendszermaggal. A jó dolog az, hogy nem kell pontosan tudnia, hogy a kernel hogyan és miért csinálja, amit csinál, csak annak megértése, hogy ez a szoftver és a hardver közötti átmenet, nagyon jó megértést biztosít az üveg alatt zajló eseményekről.

A fajta teljesen új kilátást nyújt azon társaikkal szemben, akik egész éjjel maradnak, hogy a telefon kernelén dolgozzanak, nem?