Linux カーネルは、ほぼすべての Android デバイスに搭載されているソフトウェアの中で、非常に重要な部分です。 このセクションでは、Linux カーネルの開発とリリース モデル (下記)、安定したカーネルと長期サポート (LTS) カーネル (すべての Android デバイスがパッチを選ぶ代わりに安定リリースを使用すべき理由を含む)、カーネルの構成と硬化、インターフェイスおよびモジュラー カーネル (Android O で導入) に対する要件、カーネル デバッグとネットワーク テスト、および SquashFS について説明します。 2016 年には、450 社以上から 4,000 人以上の開発者がプロジェクトに貢献し、6 つのリリースがあり、それぞれが 12,000 ~ 16,000 の異なる変更を含んでいました。 2016年末のLinuxカーネルのサイズは5万6000ファイル強で、2200万行のコード、ビルドスクリプト、およびドキュメントで構成されています(カーネルリリース4.9)。 (Linux 開発の全統計については、https://kernelnewbies.org/DevelopmentStatistics を参照してください。)
Linux カーネルには、サポートするすべての異なるチップ アーキテクチャおよびハードウェア ドライバーのコードが含まれていますが、個々のシステムはコードベースのほんの一部しか実行していません。
Linux カーネルのリリース
Linux カーネルは、標準的な AOSP リリースとは大幅に異なるリリース モデルを使用しています。 2003 年 12 月の 2.6 カーネルのリリースで、カーネル開発者コミュニティは、開発と安定版カーネル ブランチを別々に持つ以前のモデルから、安定版のみのブランチ モデルに移行しました。 このモデルでは、2〜3ヶ月ごとに新しいリリースが行われ、そのリリースが安定版としてすべてのユーザーに実行を推奨されることになります。
カーネル リリースのナンバリングは 2.6.x で始まり、x はリリースごとに変わる増分番号でした (番号の値は、前のカーネル リリースより新しいということ以外に意味を持ちません)。 これらのバージョン番号は、より高いマイナーリリース番号によって引き起こされるユーザーの混乱を避けるために、メンテナによってのみ選択されます
。