Logo androidermagazine.com
Logo androidermagazine.com

Was ist ein Kernel?

Anonim

Was ist ein Kernel? Wenn Sie Zeit damit verbringen, Android-Foren, Blogs, Anleitungen oder Online-Diskussionen zu lesen, werden Sie bald Leute über den Kernel sprechen hören. Ein Kernel ist nichts Einzigartiges für Android - iOS und MacOS haben einen, Windows hat einen, Blackberry QNX hat einen, in der Tat haben alle High-Level-Betriebssysteme einen. Wir interessieren uns für Linux, da es von Android verwendet wird. Versuchen wir aufzuschlüsseln, was es ist und was es tut.

Android-Geräte verwenden den Linux-Kernel. Wetten, dass jedes Telefon eine eigene Version davon verwendet? Linux-Kernel-Betreuer halten alles aufgeräumt und verfügbar, Mitwirkende (wie Google) fügen Dinge hinzu oder ändern sie, um ihren Bedürfnissen besser zu entsprechen, und die Leute, die die Hardware beitragen, auch, weil sie Hardwaretreiber für die Teile entwickeln müssen, die sie für die verwenden Kernel-Version, die sie verwenden. Aus diesem Grund dauert es eine Weile, bis unabhängige Android-Entwickler und Hacker neue Versionen auf ältere Geräte portieren und alles zum Laufen bringen. Treiber, die für die Verwendung mit einer Kernelversion für ein Telefon geschrieben wurden, funktionieren möglicherweise nicht mit einer anderen Softwareversion auf demselben Telefon. Und das ist wichtig, denn eine der Hauptfunktionen des Kernels ist die Steuerung der Hardware. Es ist eine Menge Quellcode, mit mehr Optionen, als Sie sich vorstellen können, aber letztendlich ist es nur die Vermittlung zwischen der Hardware und der Software.

Wenn die Software die Hardware benötigt, um etwas zu tun, sendet sie eine Anfrage an den Kernel. Und wenn wir etwas sagen, meinen wir etwas. Von der Helligkeit des Bildschirms über die Lautstärke bis hin zum Einleiten eines Anrufs über das Radio wird selbst das, was auf dem Display angezeigt wird, letztendlich vom Kernel gesteuert. Wenn Sie beispielsweise auf die Suchschaltfläche Ihres Telefons tippen, weisen Sie die Software an, die Suchanwendung zu öffnen. Was passiert ist, dass Sie einen bestimmten Punkt auf dem Digitalisierer berührt haben, der der Software mitteilt, dass Sie den Bildschirm an diesen Koordinaten berührt haben. Die Software weiß, dass der Suchdialog geöffnet werden soll, wenn diese bestimmte Stelle berührt wird. Der Kernel teilt dem Digitalisierer mit, nach Berührungen zu suchen (oder zu hören, Ereignisse werden "abgehört"), wo Sie sie berührt haben, und teilt dem System mit, dass Sie sie berührt haben. Wenn das System ein Berührungsereignis an einem bestimmten Punkt vom Kernel empfängt (über den Treiber), weiß es wiederum, was auf Ihrem Bildschirm zu zeichnen ist. Sowohl die Hardware als auch die Software kommunizieren auf beide Arten mit dem Kernel. Auf diese Weise weiß Ihr Telefon, wann etwas zu tun ist. Eingaben von einer Seite werden als Ausgabe an die andere gesendet, unabhängig davon, ob Sie Angry Birds spielen oder eine Verbindung zum Bluetooth Ihres Autos herstellen.

Es klingt kompliziert und ist es auch. Aber es ist auch eine ziemlich normale Computerlogik - für jedes Ereignis wird eine Aktion generiert, und abhängig von dieser Aktion passiert etwas mit der ausgeführten Software. Ohne das Akzeptieren und Senden von Informationen durch den Kernel müssten Entwickler Code für jedes einzelne Ereignis für jede einzelne Hardwarekomponente in Ihrem Gerät schreiben. Mit dem Kernel müssen sie lediglich über die Android-System-APIs mit ihm kommunizieren, und Hardwareentwickler müssen nur die Gerätehardware mit dem Kernel kommunizieren lassen. Das Gute ist, dass Sie nicht genau wissen müssen, wie oder warum der Kernel das tut, was er tut. Wenn Sie lediglich verstehen, dass es sich um den Übergang von Software zu Hardware handelt, haben Sie einen ziemlich guten Überblick darüber, was unter der Oberfläche passiert.

Sozusagen gibt es eine ganz neue Perspektive für die Leute, die die ganze Nacht aufbleiben, um an Kernels für Ihr Telefon zu arbeiten, nicht wahr?