Linux kernelのリリース方針の変更
「Ubuntu」向けに提供されている「Linux kernel」のリリース方針が見直され、リリース方針が変更されました。Ubuntu kernel
「Ubuntu」ではアップストリームがリリースした「Linux kernel」をそのまま「Ubuntu」ユーザーに提供するのではなく、それぞれの分野に応じた修正を行い「Ubuntu」ユーザーに提供しています。
そのため「Ubuntu」向けにリリースしている「Linux kernel」を指して「Ubuntu kernel」と表現することもあります。
また「Ubuntu」向けに提供されている「Linux kernel」は、「Ubuntu(Canonical)」の「Ubuntu/Canonical Kernel Team」がメンテナンスしています。
この方針は合理的だったのですが、今までの取り組みの中でテストやリリースの段階で作業の中断ややり直しが発生していました。
例えば作業中に「Linux kernel」に致命的なCVEが見つかりその対応に追われたり、顧客からの強い要望で追加作業が発生したり、あるいはリグレッション(不具合)が見つかり再作業が必要になるなど、作業を中断せざるを得ない状況がありました。
これらの作業の割り込みにより、リリースサイクルを延ばさざるを得ない状況がよく発生していました。
これらの出来事は極ありふれた出来事なのですが、これによりCVEによっては適宜対応することが難しくなっていました。
これらを踏まえ状況の改善が検討されました。
ちなみに「SRU(Stable Release Updates)」とは、「Linux kernel」に限らず「Ubuntu」にアップデートされたソフトウェアをリリースする行為、もしくはそのための手続きのことを指しています。
「SRU」の詳細は以下を参照してください。
さてこの新しいリリースサイクルでは、目的に応じて2種類のサイクルが定義されました。
このサイクルは4週間ごとの開発サイクルであり、以下のように広範な作業が対象になります。
4週間ごとのサイクルなのでこのサイクルでは、毎月「Linux kernel」がリリースされることになります。
またユーザーから見ると「4-week Stable Updates Cycle」でリリースされる「Linux kernel」は、カーネルチームが「Ubuntu」向け「Linux kernel」で対象にしているすべての修正が含まれる「Linux kernel」になります。
このサイクルは「Stable Updates Cycle」で「Linux kernel」をリリースした後に、2週間の開発期間が確保される開発サイクルであり、以下の作業のみが対象になります。
このサイクルは「1.」と異なり、2週間ごとのサイクルではないため留意してください。
あくまで「Stable Updates Cycle」で「Linux kernel」をリリースした後に、2週間の開発期間が確保される開発サイクルです。
つまりこちらも毎月1度「Linux kernel」のアップデートがリリースされます。
また本サイクルにおける作業は、「Stable Updates Cycle」でリリースした最新の「Linux kernel」が対象になります。
このサイクルを設けることで、先ほど懸念に挙げられていたCVEに適宜対応しやすくなりました。
また並行して「Stable Updates Cycle」で作業している次の「Linux kernel」のリリースまで待てない重大な修正を滞りなく提供できるようになりました。
実際に「Ubuntu 23.04」における「4/2 Kernel SRU Cycle」のリリーススケジュールをユーザー視点で見てみましょう。
毎月2回、2週に一度のリリーススケジュールになっていますね。
そのため「Ubuntu」向けにリリースしている「Linux kernel」を指して「Ubuntu kernel」と表現することもあります。
また「Ubuntu」向けに提供されている「Linux kernel」は、「Ubuntu(Canonical)」の「Ubuntu/Canonical Kernel Team」がメンテナンスしています。
3週間のリリースサイクルだった
今までカーネルチームは「Linux kernel」を3週間のリリースサイクルで「Ubuntu」にリリースしていました。この方針は合理的だったのですが、今までの取り組みの中でテストやリリースの段階で作業の中断ややり直しが発生していました。
例えば作業中に「Linux kernel」に致命的なCVEが見つかりその対応に追われたり、顧客からの強い要望で追加作業が発生したり、あるいはリグレッション(不具合)が見つかり再作業が必要になるなど、作業を中断せざるを得ない状況がありました。
これらの作業の割り込みにより、リリースサイクルを延ばさざるを得ない状況がよく発生していました。
これらの出来事は極ありふれた出来事なのですが、これによりCVEによっては適宜対応することが難しくなっていました。
これらを踏まえ状況の改善が検討されました。
4/2 Kernel SRU Cycle
そこでカーネルチームは3週間のリリースサイクルを見直し、新たに「4/2 Kernel SRU Cycle」へと移行することになりました。ちなみに「SRU(Stable Release Updates)」とは、「Linux kernel」に限らず「Ubuntu」にアップデートされたソフトウェアをリリースする行為、もしくはそのための手続きのことを指しています。
「SRU」の詳細は以下を参照してください。
さてこの新しいリリースサイクルでは、目的に応じて2種類のサイクルが定義されました。
1. 4-week Stable Updates Cycle
「4/2 Kernel SRU Cycle」の「4」に相当するサイクルです。このサイクルは4週間ごとの開発サイクルであり、以下のように広範な作業が対象になります。
- アップストリームのアップデートの取り込み
- 脆弱性の対応
- 不具合の修正
- 機能要求の対応
4週間ごとのサイクルなのでこのサイクルでは、毎月「Linux kernel」がリリースされることになります。
またユーザーから見ると「4-week Stable Updates Cycle」でリリースされる「Linux kernel」は、カーネルチームが「Ubuntu」向け「Linux kernel」で対象にしているすべての修正が含まれる「Linux kernel」になります。
2. 2-week Security Updates Cycle
「4/2 Kernel SRU Cycle」の「2」に相当するサイクルです。このサイクルは「Stable Updates Cycle」で「Linux kernel」をリリースした後に、2週間の開発期間が確保される開発サイクルであり、以下の作業のみが対象になります。
- 重大な脆弱性の対応
- リグレッションの可能性が小さく、顧客からの要求された重要な修正作業
このサイクルは「1.」と異なり、2週間ごとのサイクルではないため留意してください。
あくまで「Stable Updates Cycle」で「Linux kernel」をリリースした後に、2週間の開発期間が確保される開発サイクルです。
つまりこちらも毎月1度「Linux kernel」のアップデートがリリースされます。
また本サイクルにおける作業は、「Stable Updates Cycle」でリリースした最新の「Linux kernel」が対象になります。
このサイクルを設けることで、先ほど懸念に挙げられていたCVEに適宜対応しやすくなりました。
また並行して「Stable Updates Cycle」で作業している次の「Linux kernel」のリリースまで待てない重大な修正を滞りなく提供できるようになりました。
つまりどうなるの?
ユーザーから見ると毎月2回、2週に一度、「Linux kernel」がリリースされることになります。実際に「Ubuntu 23.04」における「4/2 Kernel SRU Cycle」のリリーススケジュールをユーザー視点で見てみましょう。
No. | Stable Updates Cycle | Security Updates Cycle |
---|---|---|
1. | ― | 2023年6月26日の週 |
2. | 2023年7月10日の週 | ― |
3. | ― | 2023年7月24日の週 |
4. | 2023年8月7日の週 | ― |
5. | ― | 2023年8月21日の週 |
6. | 2023年9月4日の週 | ― |
毎月2回、2週に一度のリリーススケジュールになっていますね。