Ubuntu Weekly Topics

Ubuntu 24.10(oracular)開発 / 新しいカーネルリリースポリシー

oracular(Ubuntu 24.10)の開発 / 新しいカーネルリリースポリシー

oracularからは、Ubuntuの『リリース直後の』カーネルについて、これまでとは異なる扱いになりうることが決まりました。少しだけ複雑な(ただし、ユーザーとしてそこまで強く気にする必要のない)ポリシーです。順番に見ていきましょう。

今回の決定の背景としてはまず、⁠oracularはとてもタイミングが悪かった」ということがあります。oracularは今年の10月上旬にリリースされる予定ですが、現時点で利用できる最新のLinuxカーネルである6.11はちょうどその頃にリリースされる「見込み」です。

これを言い換えると、⁠一つ古い6.10を使うか、リリース間際(ヘタをすればリリースに間に合わない)6.11を待つ」という選択が発生している状態です。これはUbuntuのリリースポリシー上、⁠これまでは」避けられないジレンマです。

また、単に「ギリギリまで待つ」という選択をするには、いくつかの困難が伴います。なぜならLinuxカーネルのリリースタイミングは比較的容易に遅延することがあり、⁠待っていたらUbuntuのリリース日よりも後に、新しいLinuxカーネルがリリースされた」という悲しい光景が生まれるリスクがあるからです。さらにUbuntuで用いられるLinuxカーネルには、Canonicalによるさまざまなカスタマイズ(主には各種デバイスのサポートと、AppArmor関連の補助的な修正)が加えられています。

ディストリビューションとして考える場合、各種ユーザーランドの動作を含めた動作検証が行われた上でリリースされることはスキップ不能なプロセスであり、⁠新しいカーネルをギリギリまで待って採用する」ことにはかなりの困難と混乱が伴うことになります。

今回定義されたカーネルリリースについてのポリシーは、oracularに限らず、今後のリリースにおけるこうした問題を解決するためのものです。

新しいポリシーでは、まず、⁠Linuxカーネルのリリース時期はいつごろになりそうか』という予測が行われます。そしてLinuxカーネルがまだリリースされていない時期のUbuntuにおいて、Ubuntuのカーネルチームが「Linuxカーネルはまだ次期リリースの開発中だが、UbuntuのBeta Freezeよりも前にリリースされる」という一定の確信を持てる場合、⁠Tight Release」⁠タイトリリース[1]という用語で扱われます。これよりも早期の開発段階、つまりLinuxカーネルのマージウインドウが開いている、あるいはRelease Candidate(リリース候補版; RC)のリリースチェインの初期にある場合[2]⁠Unstable Release」⁠不安定リリース)という用語が利用されます。

これらが当てはまらない別のパターンとして「UbuntuのFeature Freezeよりも後にLinuxカーネルのマージウインドウが開かれた」という場合、その開発版カーネルの存在は無視され、⁠すでにリリース済みの最新のLinuxカーネル」が使われるという判断が行われます。

つまり、実質3種類の対応パターンが存在する形になります。リリース済みの最新のLinuxカーネルを用いるプランになる場合、特に何も考える必要はありません。

一方、Tight ReleaseやUnstable Releaseになる場合は、⁠リリース日を守る」というUbuntuの基本方針と、⁠カーネルは適切なマージとQAの上でリリースする」というカーネルチームの方針が衝突することになります。この問題を解決するために、今回定義されたポリシーが利用されます。

このシチュエーションに突入した場合、さらに非LTS(Interim Release)なのかLTSリリースなのかで、やや方針が異なります。基本的には「すでに検証等が完了しているカーネルを用いてリリースする」⁠=一つ前のUbuntuバージョンのカーネルを用いる)という選択が行われます。

まずTight Releaseの場合から見ていきましょう。こちらは「Ubuntuのリリース日前後にLinuxカーネルがリリースされそうだ」という場合のシナリオです。

  • 非LTSでかつ、一つ前のリリースがLTSバージョンだった場合は、⁠一つ前のリリースの出荷時のカーネル」が一時的に「ブリッジカーネル」として用いられることになります。ブリッジカーネルは本来のバージョンのカーネルの準備ができ次第アップデートされる形となります。今回のoracularの場合は24.04がLTSなので、このパターンに該当します。
  • 非LTSでその前のリリースも非LTSの場合も、⁠一つ前のリリースのカーネル」がブリッジカーネルとして用いられます。さらに、このブリッジカーネルとして選定されたバージョンのカーネルは、本来のバージョンのカーネルが準備できるまでサポートが継続されることになります。
  • LTSの場合は、ブリッジカーネルが用いられる代わりに、未リリースのLinuxカーネルを用いたバージョンで暫定的に(Ubuntuとして)リリースされることになります。Linuxカーネルがリリースされ、各種検証が終わってからLTSのポイントリリースが行われることになります。
  • いずれのリリースについても、各種カーネルフレーバー(-rtのようなリアルタイムカーネルや各種クラウド環境向けのバリエーション)は、正式版がリリースされてから提供されます。

つまり、oracular(24.10)は、おそらくリリース時点では24.04 LTSの6.8カーネルが流用され、6.11ベースのカーネルの準備ができたら置き換えられる形になることになりそうです。

Unstable Releaseの場合、Tight Releaseの方針に「LTSであってもLivePatchは提供されない」⁠例外的な状況を除いて、サポートリクエストは受け付けられない」などといった追加の対応パターンが加えられる形になります。

このポリシーを利用する最大のメリットは、⁠Ubuntuのリリースに間に合うようなぎりぎりに新しいLinuxカーネルがリリースされそうだ」という時にも、より新しいカーネルを採用するという決断ができるようになることです。また、リリースを前にした忙しい時期に「どう考えても間に合わないが代替策を考える必要がある」といった事案を防ぐ作用もありそうです。

全体的には「LTSの場合は未完成なカーネルで暫定的にリリースする」⁠非LTSは、一つ前のリリースのカーネルが一時的に用いられる」と認識しておけば良さそうです。リリース直後のUbuntuを使う場合にはいくつか知っておくべき(しかし、気にするほどでもない)ことが増えた、という程度の話だと思っておくと良いでしょう。

その他のニュース

  • Ubuntu 24.04.1 LTSのポイントリリースのタイミングが2週間延期され、8月29日になることになりました。この結果として22.04.5 LTSのリリース予定と同日になってしまいますが、22.04.5側のタイミングを調整することで解決が図られる可能性が高そうです。後者はまだ未確定で、今後の調整と発表待ちという形となっています。

今週のセキュリティアップデート

usn-6946-1:Djangoのセキュリティアップデート

  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2024-August/008527.html
  • Ubuntu 24.04 LTS・22.04 LTS・20.04 LTS・18.04 ESM用のアップデータがリリースされています。CVE-2024-41989, CVE-2024-41990, CVE-2024-41991, CVE-2024-42005を修正します。
  • 悪意ある入力を行うことで、DoS・SQLインジェクションが可能でした。
  • 対処方法:アップデータを適用の上、システムを再起動してください。

usn-6945-1:wpa_supplicant and hostapdのセキュリティアップデート

  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2024-August/008528.html
  • Ubuntu 24.04 LTS・22.04 LTS・20.04 LTS・18.04 ESM・16.04 ESM・14.04 ESM用のアップデータがリリースされています。CVE-2024-5290を修正します。
  • 悪意ある操作を行うことで、権限昇格が可能でした。
  • 対処方法:通常の場合、アップデータを適用することで問題を解決できます。

usn-6947-1:Kerberosのセキュリティアップデート

  • https://lists.ubuntu.com/archives/ubuntu-security-announce/2024-August/008529.html
  • Ubuntu 24.04 LTS・22.04 LTS・20.04 LTS・18.04 ESM・16.04 ESM・14.04 ESM用のアップデータがリリースされています。CVE-2024-37370, CVE-2024-37371を修正します。
  • 悪意ある入力を行うことで、DoSが可能でした。
  • 対処方法:通常の場合、アップデータを適用することで問題を解決できます。

usn-6948-1:Saltのセキュリティアップデート

usn-6950-1:Linux kernelのセキュリティアップデート

usn-6951-1:Linux kernelのセキュリティアップデート

usn-6952-1:Linux kernelのセキュリティアップデート

usn-6949-1:Linux kernelのセキュリティアップデート

usn-6953-1:Linux kernel (Oracle)のセキュリティアップデート

usn-6926-3:Linux kernel (Azure)のセキュリティアップデート

おすすめ記事

記事・ニュース一覧