現在のAndroidエコシステムは、数百もの異なるバージョンのAndroidで汚染されており、それぞれがLinuxカーネルの異なるバリアントを実行しています。 各バージョンは異なる電話用に設計されており、構成も異なります。 Googleは、メインラインのLinuxカーネルをAndroidに追加することで、この問題の修正に取り組んでいます。
Linuxカーネルが現在Androidでどのように処理されているか
それがあなたに届く前に、あなたの携帯電話のLinuxカーネルは通過します 3つの主要なステップ。
まず、GoogleはLinuxカーネルのLTS(Long Term Support)バージョンを取得し、Android固有のコードをすべて追加します。 これが「AndroidCommonカーネル」になります。
次に、Googleはこのコードを、電話を実行するシステムオンチップ(SoC)を作成する会社に送信します。 これは通常、Qualcommです。
SoCメーカーがCPUやその他のチップをサポートするコードの追加を完了すると、カーネルはSamsungやMotorolaなどの実際のデバイスメーカーに渡されます。 次に、デバイスメーカーは、ディスプレイやカメラなど、電話の残りの部分をサポートするコードを追加します。
これらの各手順は完了するまでに時間がかかり、カーネルが他のデバイスで動作しなくなります。 また、カーネルが非常に古く、通常は約2年前であることも意味します。 にとって example、 Google Pixel 先月出荷された4には、2017年11月からのカーネルがあり、更新されることはありません。
Googleは、古いデバイス用のセキュリティパッチを作成することを約束しました。これは、古いコードの巨大な寄せ集めに目を光らせていることを意味します。
未来
昨年、Googleは発表しました 予定 この混乱を修正します。 今年、彼らは2019 Linux PlumbersConferenceでどのような進歩を遂げたかを明らかにしました。
「Androidを実行するには何が必要かはわかっていますが、特定のハードウェアで実行する必要はありません。 したがって、私たちの目標は、基本的にすべてを見つけ出し、それを上流に置いて、次のようになることです。 close 可能な限りメインラインに。」
サンディープパティル、 Androidカーネルチームリーダー
彼らは、適切なLinuxカーネルでAndroidを実行しているXiaomi PocoF1を披露しました。 しかし、それはいくつかのことはしませんでした 動作しているように見える、0%でスタックしたバッテリーの割合など。
では、Googleはこれをどのように機能させる予定ですか? 彼らからページを取ることによって プロジェクトトレブル プレイブック。 Project Trebleの前は、デバイスとAndroid自体と相互作用する低レベルのコードは、コードの大きな混乱の1つでした。 Project Trebleは、この2つを分離してモジュール化したため、Androidの更新をより迅速に送信でき、更新間で低レベルのコードを変更できませんでした。
Googleは、カーネルに同じモジュール性をもたらしたいと考えています。 彼らの 予定 「Linuxのカーネル内ABIを安定させ、Linuxカーネルおよびハードウェアベンダーが書き込むための安定したインターフェイスを用意する必要があります。 Googleは、Linuxカーネルをハードウェアサポートから切り離したいと考えています。」
つまり、これはGoogleがカーネルを出荷し、ハードウェアドライバーがカーネルモジュールとしてロードされることを意味します。 現在、これは単なる提案です。 解決しなければならない技術的な問題はまだかなりあります。 したがって、これはすぐには起こりません。
オープンソースからの反対
オープンソースコミュニティは、カーネルにプロプライエタリコードを入れるというアイデアに満足しません。 ザ Linuxカーネルガイドライン ドライバーがカーネルに含まれるためにはGPLライセンスを持っている必要があると述べます。 また、ドライバーの変更によりエラーが発生した場合は、エラーの作成者が解決することも指摘されています。 これは、長期的にはデバイスメーカーの作業が少なくなることを意味します。
メインラインカーネルをAndoridに含めることに関する最終的な考え
これまでのところ、これは単なる提案です。 グーグルがプロジェクトに取り組み始めるのは、これにどれだけの作業が必要かを理解した後、プロジェクトを放棄する可能性が高いです。 Googleが持っているプロジェクトの数を見てください すでに放棄された。
Android警察 グーグルはそのフクシアオペレーティングシステムに取り組んでいると述べて良い点を述べました。それはいつかAndroidを置き換えることを目標としているようです。
それで、問題は、GoogleがメインラインのLinuxカーネルでAndroidを実行するために、またはそれらの統合されたAndroidの代替品の作業を完了するために、どの記念碑的なタスクを完了しようとするかということです。 時間だけがそれに答えることができます。
このトピックについてどう思いますか? 以下のコメントでお知らせください。
この記事がおもしろいと思ったら、ソーシャルメディア、Hacker News、または Reddit。