現在のAndroidのエコシステムは、Androidの異なるバージョンの数百人で汚染されています,それぞれがLinuxカーネルの異なる変種を実行しています. 各バージョンは、異なる携帯電話用に設計されており、それは異なる構成です。 GoogleはandroidにメインラインのLinuxカーネルを追加することで、問題を解決するために取り組んできました。
Linuxカーネルが現在Androidでどのように処理されているか
それがあなたに到達する前に、あなたの携帯電話のLinuxカーネルは三つの主要な手順を経最初に、GoogleはLinuxカーネルのLTS(Long Term Support)バージョンを取得し、すべてのAndroid固有のコードを追加します。 これは”Android共通カーネル”になります。 その後、Googleはこのコードを携帯電話を実行するシステムオンチップ(SoC)を作成する会社に送信します。 これは通常Qualcommです。
SOCメーカーがCPUや他のチップをサポートするコードの追加を完了すると、カーネルはSamsungやMotorolaなどの実際のデバイスメーカーに渡されます。 次に、デバイスメーカーは、ディスプレイやカメラなど、電話機の残りの部分をサポートするコードを追加します。
これらの各手順は完了するまでに時間がかかり、他のデバイスでは動作しないカーネルになります。 また、カーネルが非常に古く、通常は約二歳であることを意味します。 たとえば、先月出荷されたGoogle Pixel4には、2017年11月のカーネルがあり、更新されることはありません。
Googleは古いデバイス用のセキュリティパッチを作成することを約束しました。P>
未来
昨年、Googleはこの混乱を修正する計画を発表しました。 今年、彼らは2019Linux Plumbers Conferenceでどのような進歩を遂げたかを明らかにしました。 P>
“Androidを実行するために必要なものはわかっていますが、必ずしも特定のハードウェアではありません。 だから私たちの目標は、基本的にそれをすべて見つけ出し、上流でそれを見つけて、できるだけメインラインに近いようにすることです。”
Sandeep Patil、Androidカーネルチームリード
彼らは適切なLinuxカーネルでAndroidを実行しているXiaomi Poco F1を披露しました。 しかし、それはいくつかのものは、そのような0%で立ち往生していたバッテリーの割合など、動作しているように見えませんでした。だから、Googleはどのようにこの仕事をする予定ですか? 彼らのプロジェクトの高音脚本からページを取ることによって。 Project Trebleの前は、デバイスとAndroid自体と相互作用する低レベルのコードは、コードの1つの大きな混乱でした。 Project Trebleは二つを分離し、Androidのアップデートをより速く出荷することができ、低レベルのコードがアップデートの間に変更されないように、それらをモジュー
Googleはカーネルに同じモジュール性をもたらしたいと考えています。 彼らの計画は、”Linuxのカーネル内ABIを安定させ、Linuxカーネルとハードウェアベンダーが書き込むための安定したインターフェイスを持つことを含む。 Googleは、Linuxカーネルをハードウェアサポートから切り離すことを望んでいます。”
これは、Googleがカーネルを出荷し、ハードウェアドライバがカーネルモジュールとしてロードされることを意味します。 現在、これは単なる提案です。 解決しなければならないかなりの数の技術的な問題がまだあります。 だから、これはすぐには起こりません。
オープンソースからの反対
オープンソースのコミュニティは、カーネルに独自のコードを置くという考えに満足していません。 Linuxカーネルのガイドラインでは、カーネルに含めるにはドライバがGPLライセンスを持っている必要があると述べています。 彼らはまた、ドライバの変更によってエラーが発生した場合、エラーを作成した人によって解決されることを指摘しています。 これは長い目で見れば装置メーカーのためのより少ない仕事を意味する。
メインラインカーネルをAndoridに含めることに関する最終的な考え
これまでのところ、これは単なる提案です。 Googleは、彼らがこれがかかりますどのくらいの作業を実現したら、それを放棄するためにのみ、プロジェクトに取り組んで開始されることを良いチャ ただ、Googleがすでに放棄したどのように多くのプロジェクトを見てみましょう。
Androidの警察は、Googleが一日のAndroidを交換するという目標を持っているようだそのフクシアオペレーティングシステムに取り組んでいることを述べたことによ
だから、問題は、GoogleがメインラインのLinuxカーネルでAndroidを実行するか、統一されたAndroidの交換に関する作業を完了しようとする記念碑的なタスクですか? 時間だけがそれに答えることができます。