プログラミングとソフトウェア開発

UbuntuはRustを使用して中核システムツールをどのように再構築するのか

Canonicalは、Ubuntu 26.04 LTSからUbuntuの中核ツールにRustを導入する際、選択的なアプローチを採用し、メモリ安全性、信頼性、保守性を重視しています。この計画にはuutils coreutils、sudo-rs、ntpd-rs、UPKIプロジェクトが含まれ、移行期間中は従来のツールとロールバックの選択肢も引き続き利用可能です。

2026-08-26
1 分で読めます
322 閲覧数
certi.news Editorial Team
UbuntuはRustを使用して中核システムツールをどのように再構築するのか

CanonicalはUbuntu全体をRustで書き直しているわけではありません。しかし、メモリ安全性と保守性の向上が移行コストを正当化すると判断した箇所で、中核システムコンポーネントの置き換えを始めています。Canonicalのエンジニアリング担当バイスプレジデントであるJon Seager氏がJetBrains主催の配信で説明したところによると、この決定は、サーバー、デスクトップ、エッジデバイス、自動車内で約1,500万件のデプロイを稼働させるプラットフォームに関する長期的なビジョンの一部です。

この方針は、存在するすべてのツールを再実装するキャンペーンではなく、Ubuntuが今後20年間に何を必要とするかという問いから出発しています。Canonicalは、特にメモリエラーへの耐性と信頼性が、産業システム、自動車、または重要インフラ内で動作するソフトウェアに影響を及ぼす要素となる場合、Rustがシステム開発のための説得力あるツール群を提供すると考えています。

全面的な書き換えではなく選択的な置き換え

これらのコンポーネントの最初のものはUbuntu 26.04 LTSに導入されました。GNU coreutilsをRustで再実装したuutils coreutilsがデフォルトの選択肢となり、GNUツールの動作との完全な互換性を実現することが明示的な目標とされています。つまり、動作上の小さな違いは必ずしも改善とはみなされず、スクリプトや従来の動作に依存するツールを壊す場合には、バグとみなされる可能性があります。

一方、sudo-rsは異なる道を進んでいます。sudoとの完全な一致を目指すのではなく、数十年にわたるセキュリティ上の知見を踏まえ、今日設計するとしたら権限付与ツールはどのような形になるかを再考しています。強い反応を引き起こした変更の一つが、端末でパスワードを入力する際に、デフォルトでアスタリスクを表示することです。Canonicalは、短期的な摩擦を生じさせる場合でも、これらの意図的な変更を受け入れると述べています。これは単なる互換置換ではなく、新しい設計の一部だと考えているためです。

時間と証明書も変更の対象

次のプロジェクトはntpd-rsです。Canonicalは2026年6月、Trifecta Tech Foundationを通じて同プロジェクトに資金を提供し、Ubuntuのデフォルトの時刻同期ツールにすることを発表しました。計画では、Ubuntu 26.10でアーカイブ化し、その後Ubuntu 28.04で完全にデフォルトの選択肢へ移行します。NTP、NTS、PTPをサポートする単一のツールによって、chronyとlinuxptpを段階的に置き換える予定です。

この変更が重要なのは、正確な時刻同期がネットワークサーバーだけに関係するものではないからです。航空機、自動車、ロボット内のマイクロコントローラー、定期的に鍵をローテーションする暗号システム、さらに位置情報に依存するシステムにも影響します。記事では、chronyとlinuxptpを併用する場合、複数のツールと時刻ソースの設定が必要になる可能性がある一方、ntpd-rsはメモリ安全性を活用し、これらの機能を一つのツールと一つの設定ファイルに集約することを目指していると説明しています。

UPKIプロジェクトは、これらの置き換えとは異なり、Rustlsプロジェクトと共同でゼロから始める新しいプロジェクトです。Linuxのシステムツールに証明書失効検証を追加することを目指しており、CanonicalはUbuntu 26.10での初登場を目標としています。この構想はcurl、wget、OpenSSLなどのツールに関連しています。記事によれば、これらのツールでは、ブラウザーに存在するものと同じ方法による証明書失効への対応が組み込まれていません。

ユーザーにとって実際に何が変わるのか

Canonicalは、これらの変更を導入するタイミングとしてLTSリリースの境界を選びました。これは、組織が通常この時点でシステムを更新すること、そして低レベルツールを変更する際にはロールバックの経路が重要になるためです。記事によれば、以前のリリースには15年間のマネージドサポートが提供され、従来のツールはアーカイブに残されます。そのため、既存の本番システムに新しい動作を、復帰の選択肢なしに強制することはありません。

ただし、プロジェクト間で互換性が統一されているわけではありません。uutils coreutilsでは、空のファイルから指定したバイト数を読み取ろうとした際、headがエラーを返すという実例がありました。一方、GNU coreutilsは0を返していました。この違いによって、Obsidian snapパッケージ内に隠れていたスクリプトが壊れたため、GNUと一致するように動作が変更されました。この例は、メモリ安全性によって、30年にわたり古いツールの周囲に蓄積されてきた前提との互換性の重要性がなくなるわけではないことを示しています。

課題はコードを書き終えた時点では終わらない

Rustを大規模なディストリビューションに導入するには、依存関係、ビルド、配布の連鎖にも対処する必要があります。Canonicalは、各crateを個別のdebパッケージとしてパッケージ化するのではなく、各パッケージ固有のcrateを一つのアーカイブにまとめる方式を採用しています。記事によれば、これにより依存関係の範囲を管理しやすくし、ビルドを決定的に保つことができます。ただし、正式な意味で再現可能というわけではありません。

2026年初頭には、Ubuntuアーカイブ内のすべてのRustパッケージにcargo auditableが適用されました。各Rustバイナリには、ビルドに使用されたcrateの名前とバージョンを記録する組み込みSBOMが含まれており、パッケージを再ビルドすると自動的に更新されます。このデータが脆弱性を防ぐわけではありませんが、依存関係の一つで問題が発見された際に、影響を受けるバージョンを特定しやすくします。

certi.newsの見解:ここでの真の変化は、Cで書かれたツールをRustで書かれたツールに置き換えることだけではありません。普及後の変更が難しいコンポーネントに、安全性、保守性、依存関係の追跡を実現する層を導入することです。一方、互換性の事例やsudo-rsの動作は、移行によってユーザーが気付く設計上の判断が生じる可能性を示しています。その成功は、実装言語に依存するのと同じ程度に、こうした違いを管理できるかどうかにかかっています。ntpd-rsとUPKIについて発表された日程は今後の目標であり、情報源は、変更の範囲が選択的で、従来のツールとロールバックの選択肢が依然としてCanonicalの戦略の一部であることを示しています。

ニュースの出典
JetBrains Blog
原文を開く ↗
c
著者

certi.news Editorial Team

知っておくべきこと

Canonicalは、Ubuntu 26.04 LTSからUbuntuの中核ツールにRustを選択的に導入し、システム全体を書き直すことなく、メモリ安全性、信頼性、保守性の向上を目指しています。従来のツールとロールバックの選択肢は引き続き利用でき、ntpd-rsやUPKIなどのプロジェクトは将来のUbuntuリリースを対象としています。

  • Ubuntu 26.04 LTSでは、RustでGNU coreutilsを再実装したプロジェクトuutils coreutilsをデフォルトの選択肢とし、完全な動作互換性を目指します。
  • sudo-rsはsudoを完全に再現するのではなく、権限付与ツールを再設計します。たとえば、デフォルトでパスワード入力時にアスタリスクを表示します。
  • Canonicalは、Ubuntu 28.04でntpd-rsをデフォルトの時刻同期ツールにすることを目指しています。Ubuntu 26.10でアーカイブ化された後、NTP、NTS、PTPをサポートします。
  • Rustlsと共同開発するUPKIプロジェクトは、システムツールに証明書失効確認を追加することを目指しており、CanonicalはまずUbuntu 26.10への導入を目指しています。
  • 従来のツールはアーカイブ内で引き続き利用でき、ロールバックの経路も用意されます。また、記事によれば、過去のリリースには15年間のマネージドサポートが提供されます。
  • Canonicalはcargo auditableを使用してRustバイナリに組み込みSBOMを追加し、脆弱性が発見された際に影響を受けるcrateのバージョンを特定しやすくします。

よくある質問

CanonicalはUbuntu全体をRustで書き直すのですか?

いいえ。Canonicalは、メモリ安全性と保守性の向上が移行コストを正当化すると判断した場合に、特定のコンポーネントやツールを置き換える選択的なアプローチを取ります。

Rustへの移行で影響を受けるツールはどれですか?

計画にはuutils coreutils、sudo-rs、ntpd-rs、UPKIプロジェクトが含まれます。移行期間中も従来のツールとロールバックの選択肢は維持されます。

ntpd-rsはいつUbuntuのデフォルト選択肢になりますか?

計画では、Ubuntu 26.10でアーカイブ化した後、Ubuntu 28.04でデフォルトの選択肢に完全移行することを目指しています。

従来のツールとの互換性が重要なのはなぜですか?

従来のツールを前提としたスクリプトやツールは、動作の違いによって壊れる可能性があります。実際に、headの動作の違いにより、Obsidian snapパッケージ内のスクリプトが壊れました。

このストーリーを探る

関連トピックとエンティティ

同じカテゴリー

おすすめ記事

すべてのニュースを見る