Logo ja.androidermagazine.com
Logo ja.androidermagazine.com

カーネルとは何ですか?

Anonim

カーネルとは何ですか? Androidフォーラム、ブログ、ハウツー投稿、またはオンラインディスカッションを読むことに時間を費やすと、すぐにカーネルについて話している人々の声が聞こえます。 カーネルはAndroidに固有のものではありません。iOSとMacOSには1つ、Windowsには1つ、BlackBerryのQNXには1つあります。実際、すべての高レベルオペレーティングシステムには1つがあります。 私たちが興味を持っているのはLinuxで、Androidが使用しているものです。 それが何であり、何をするのかを分析してみましょう。

AndroidデバイスはLinuxカーネルを使用しますが、すべての電話が独自のバージョンを使用していることは間違いありません。 Linuxカーネルメンテナーはすべてを整頓し、利用可能にし、貢献者(Googleなど)はニーズに合わせて物事を追加または変更します。また、ハードウェアを貢献させている人たちも、使用しているカーネルバージョン。 これが、独立したAndroid開発者やハッカーが新しいバージョンを古いデバイスに移植してすべてを機能させるのに時間がかかる理由です。 電話機のカーネルのあるバージョンで動作するように記述されたドライバは、同じ電話機の異なるバージョンのソフトウェアでは動作しない場合があります。 カーネルの主な機能の1つはハードウェアの制御であるため、これは重要です。 ソースコードは非常に多く、ビルド中に想像以上に多くのオプションがありますが、最終的にはハードウェアとソフトウェアの中間にすぎません。

ソフトウェアが何かを行うためにハードウェアを必要とする場合、カーネルにリクエストを送信します。 そして、私たちが 何か を言うとき、私たちは 何 を意味し ます 。 画面の明るさから音量レベル、ラジオを介した通話の開始まで、ディスプレイに描かれたものも最終的にはカーネルによって制御されます。 たとえば、携帯電話の検索ボタンをタップすると、ソフトウェアに検索アプリケーションを開くように指示します。 何が起こるかは、デジタイザー上の特定のポイントに触れたことです。これは、ソフトウェアにそれらの座標で画面に触れたことを伝えます。 ソフトウェアは、その特定のスポットがタッチされると、検索ダイアログが開くことになっていることを知っています。 カーネルは、デジタイザにタッチを探す(またはリッスンし、イベントを「リッスン」する)ように指示し、タッチした場所の把握に役立ち、タッチしたシステムに指示します。 次に、システムはカーネルから特定のポイントで(ドライバーを介して)タッチイベントを受信すると、画面に何を描画するかを認識します。 ハードウェアとソフトウェアの両方がカーネルと双方向に通信し、それがあなたの電話がいつ何かをするかを知る方法です。 Angry Birdsをプレイしている場合でも、車のBluetoothに接続している場合でも、一方からの入力は出力として他方に送信されます。

複雑に聞こえますが、そうです。 しかし、それはかなり標準的なコンピューターロジックでもあります。すべてのイベントに対して何らかの種類のアクションが生成され、そのアクションに応じて実行中のソフトウェアに影響が生じます。 カーネルが情報を受け入れて送信しないと、開発者はデバイス内のハードウェアのすべての個々のイベントごとにコードを記述する必要があります。 カーネルでは、AndroidシステムAPIを介してカーネルと通信するだけでよく、ハードウェア開発者はデバイスのハードウェアをカーネルと通信させるだけで済みます。 良いことは、カーネルがそれを行う方法や理由を正確に知る必要がないことです。ソフトウェアからハードウェアへの移行であることを理解するだけで、グラスの下で何が起こっているかをかなりよく把握できます。

並べ替えは、夜中起きて携帯電話のカーネルを操作する仲間にまったく新しい展望を与えますよね?