すべての Android デバイスのベースとなる Linux カーネルは、バージョン 5.0 へのメジャー アップデートを受け取ります。 モバイルに関連する変更について説明します。
通常、メインラインの Linux カーネル領域で何が起こっているかを取り上げることはありませんが、Google は、新しいカーネルのリリースごとに何が起こっているかを追跡することが重要です。 Linux カーネルの最小バージョン Android の新しいリリースごとに要件が適用されます。 最近の決断は、 LTS リリースを 2 年から 6 年に延長 デバイス メーカーがセキュリティ パッチをバックポートする際に必要な作業が少なくなるため、セキュリティ パッチの断片化を減らす上で重要な役割を果たします。 さらに、メインライン カーネルには、モバイル デバイスに関連する新機能が統合されることがよくあります。
たとえば、最初の リリース候補ビルド カーネルの次の LTS バージョンである Linux カーネル 5.0 RC1 が最近リリースされました。 安定版リリースまでにはまだ 1 ~ 2 か月ありますが、次のリリースに何が含まれるかをすでに垣間見ることができます。 モバイル デバイスに関連するいくつかの更新を取り上げますが、オープン ソース開発と Linux カーネルに少しでも興味がある場合は、変更ログ全体に目を通すことをお勧めします。
アーム大きい。 LITTLE EAS サポート
エネルギーを意識したスケジューリング は、初代 Pixel のリリース以来、Android デバイスで使用されてきました。 EAS は、Google Pixel デバイスが競合他社よりも一般的に動作が速い理由の 1 つです。 サポートはクアルコムの Snapdragon 845 カーネルのリリースですでに有効になっているため、この SoC (またはそれ以降) を搭載したデバイスはすべて EAS をサポートします。 ただし、Linux はこれまで、Energy Aware Scheduling のアップストリーム サポートを提供していませんでした。 上流のサポートにより、理論的には、シリコンおよびデバイスのメーカーが自社のデバイスにテクノロジーを実装することが容易になるはずです。 ただし、エンド ユーザーにとって、アップストリーム サポートはあまり意味がありません。
アジアンタムのサポート
Speck は NSA (国家安全保障局) が開発した暗号化アルゴリズムで、ローエンドのハードウェアでうまく動作します。 グーグル 意図されました ハードウェア アクセラレーションによる暗号化拡張機能が備わっていない SoC を搭載した低価格デバイス向けにデータ暗号化サポートを提供するため、speck のサポートを追加します。 スペックの採用はNSAとの関係から広く批判された。 Linux カーネル 4.20 では speck のサポートが削除されましたが、その代替となる Adiantum は、EXT4/F2FS ファイル システムを備えたローエンド ハードウェア上で、それより優れているとは言わないまでも、同等のパフォーマンスを発揮します。
F2FS および EXT4 の修正
フラッシュ フレンドリー ファイル システム (F2FS) は、 広く使われています Android デバイスで。 Google Pixel 3 と Pixel 3 XL が正式に発表 F2FSをサポート、 例えば。 どうやら、F2FS の元の開発者、Jaegeuk Kim が、ファイル システムの多くの修正を求めるマージ リクエストを Linux リポジトリに送信したようです。 これらの変更により、ガベージ コレクションの修正とともに、暗号化の問題とアイドル時間の管理が行われます。 詳細はすべて次のとおりです。 このプルリクエスト. 全体として、F2FS を修正すると、F2FS をサポートしている、またはサポートする予定の Android スマートフォンの安定性と信頼性が向上します。
同様に、人気のある EXT4 ファイル システムには、十数件のパッチが適用されています。 EXT4 は、最新の OnePlus デバイス ( ワンプラス 5T、OnePlus 6、OnePlus 6T)。
新しい ARM ハードウェアのサポート
GNU/Linux ディストリビューションは、おそらく ARM ベースのハードウェアで実行するのに最適なオペレーティング システムです。 オープンソース モデルに基づいた信頼性の高いマルチタスクを提供します。 ARM プロセッサは、一度に多くのタスクを実行できるように特別に設計されています。 そのため、OS がハードウェアと歩調を合わせることが重要です。 ご存知の方もいると思いますが、Android スマートフォンやタブレットの大部分は ARM アーキテクチャのチップセットを使用しています。 RISC ベースのチップは、日常的なタスク (スマートフォンで行うタスク) を実行するのに最適です。 Linux カーネル 5.0 では、多くの新しい ARM ハードウェアのサポートが追加されています。 その一部を次に示します。
- テグラX2
- テグラ・ザビエル
- 全勝者 F1C100
- クアルコム QCS404
- 全勝者 T3
- NXP レイヤースケープ LX2160
特定の ARM ハードウェアに対するユニバーサル互換性サポートとは別に、Linux カーネル 5.0 では電源管理も改善されています。
BinderFS のサポート
Android は Binder を使用して、システム内の異なるプロセス間で引数を交換します。 アプリケーション、アクティビティ、およびプロセスは、プロセスの起動と管理に Binder を使用します。 Android のセキュリティは、UID 権限に大きく基づいています。 Binder は、双方向 IPC 呼び出しを使用してアプリケーションから提供された UID をチェックし、使用したい機能にアクセスできることを確認します。 BinderFS は Binder の更新バージョンですが、より特化されており、システムと互換性があります。 BinderFS のサポートはエンドユーザーにとってはあまり変わりませんが、長期的には開発者にとって実装上の問題のいくつかが解決されます。 ここにあります 関連するコミット.
エネルギーモデル管理フレームワーク
さらにもう 1 つの追加機能は、エネルギー モデル管理フレームワークのサポートです。 この変更は主に ARM およびカーネル開発者向けです。 デバイス ツリーやドライバーなど、さまざまなソースからの標準化されたエネルギー使用情報の新しいレイヤーを提供します。 エネルギー消費とレポートは、ハードウェアとソフトウェアによって同様に異なる方法で処理されます。 エネルギー モデル管理フレームワークは、カーネル内の別のドライバーがエネルギー消費に関する情報にアクセスするために使用できる標準 API を提供します。 これにより、理論的には、ソフトウェア エンジニアや開発者がハードウェアから関連情報を取得することが容易になります。 このフレームワークについて詳しく読むことができます このコミットでは.
ARM64 ポインタ認証のサポート
関連するすべてのハードウェアおよびソフトウェア ソリューション、特にモバイルでは、強力なセキュリティ プロトコルが必要です。 これは、Linux カーネル 5.0 が ARM64 ポインター認証のサポートによって提供しているものです。 ほとんどのスマートフォンには ARM64 ベースのチップセットが搭載されているため、Linux カーネルでメモリ アドレスにアクセスするために使用されるポインターを攻撃者が悪用できないことが重要です。 新しい認証プロトコルは、ポインタと秘密鍵を比較します。 ポインタ認証は、リターン指向プログラミング (ROP) およびその他の種類の攻撃を回避しようとします。
Linux 5.0 カーネルには、ここで取り上げなかったアップデートが他にもたくさんあります。 それらのほとんどは Android デバイスにとってあまり意味がないため、変更ログを厳選する必要がありました。 「変更ログ」全体を確認したい場合は、チェックしてください。 フォロニクスの カバレッジ.
XDA 認定開発者のおかげで フレア2 この記事を手伝ってくれて。