UbuntuデスクトップチームがWindows Subsystem for Linux上のsystemdの「概念実証」を予告

Table of Contents

UbuntuデスクトップチームがWindows Subsystem for Linux上のsystemdの「概念実証」を予告

Ubuntu デスクトップ チームのテクニカル リーダー Didier Roche 氏の投稿によると、Canonical は Windows Subsystem for Linux (WSL) 上の Ubuntu に systemd を導入する作業を進めている可能性があるとのことです。

Roche氏の発言は2日前にUbuntu Desktop Team Updatesに投稿されました。「インスタンス起動時にWSL上でsystemdのPoCを実行する」と述べており、このコンポーネントが将来のWSL 2アップデートで導入されるのではないかという期待(あるいは懸念)が高まっています。この発言はPhoronixによって最初に発見されました。

SystemdはLinux上のサービスやその他のシステムソフトウェアを管理し、Debian、Ubuntu、SUSE、Red Hatファミリーなど、最も人気のあるディストリビューションで広く使用されています。オリジナルのWSLは、独自のinitプロセスを持つという技術的な理由から、systemdをサポートしていませんでした。

WSL 2 が導入され、Windows 上で Linux を実行するための新しいコンテナー ベースのモデルが導入されたとき、systemd のサポートは実現可能であるように思われました (Microsoft の Hyper-V ハイパーバイザー上で実行される Linux ディストリビューションでは問題ありません)。しかし、Microsoft は、おそらく WSL と Windows の残りの部分との統合に関連する理由から、独自の init を使い続けました。

WSL 2ユーザーからはsystemdのサポートが頻繁に要望されています。理由は多岐にわたりますが、systemdがサポートされていないことは、systemdを含む他のディストリビューションに慣れているユーザーにとって確かに不便です。CanonicalのSnapパッケージングシステムはsystemdに依存しており、CanonicalはSnapをアプリケーションデプロイメントの未来と見なしているため、特にWindows 11でGUI Linuxアプリケーションがサポートされている今、同社がWSLでのSnapのサポートに熱心であるのは理解できます。

もう1つの問題は、サービス管理に使用する systemctl などのコマンドが実際には systemd の一部であることをユーザーが必ずしも認識していないことです。一部の人々にとってはこれは WSL 2 のバグであり、今回のケースでは、SSH デーモンを起動しようとした際に「システムは systemd を init システム (PID 1) として起動されていません。操作できません。バスへの接続に失敗しました: ホストがダウンしています。」というエラーが発生したためです。

WSL 2 で systemd を有効にするにはいくつかの回避策がありますが、公式のソリューションがあればなお歓迎されます。

  • Fedora 35がリリース:GNOME 41デスクトップ、洗練されたUI、インストールしやすいクローズドソースアプリ
  • Android 用 Windows サブシステム: ポイントは何ですか?
  • マイクロソフトがWindows Subsystem for LinuxをWindows用アプリに
  • Windows 11の詳細:煩雑なシステム要件とユーザビリティの失敗により、段階的なアップグレードが台無しに
  • ペンギンの乗っ取り:WindowsでGUI Linuxアプリを公式の方法で実行してみたが、何も爆発しなかった

systemd は単に実行されるだけでなく、オペレーティングシステムの最初のプロセスである PID 1 として実行されることが重要です。これを実現するために、開発者が genie というプロジェクトを立ち上げました。

そして、Distrodは「WSL2用のsystemdベースのメタディストリビューションで、Ubuntu、Arch Linux、Gentooなど、systemdを搭載した多くのディストリビューションを1分でインストールしたり、現在使用しているディストリビューションでsystemdを実行したりできます」と説明されています。ただし、これらのソリューションは非公式です。

Distrod は、Windows Subsystem for Linux 2 上の systemd の非公式ソリューションの 1 つです。

Windows Subsystem for Linux 2 上の systemd 用の非公式ソリューションの 1 つである Distrod を紹介します。

どちらのプロジェクトも、別のコンテナを導入することで動作します。例えばDistrodは、「systemdをinitプロセスとして実行するシンプルなコンテナを作成し、そのコンテナ内でWSLセッションを開始するバイナリです」。作者によると、GUIデスクトップアプリケーションサポートのWSLgもDistrodで動作します。systemdの「ボトル」を作成することからGenieと呼ばれるGenieもWSLgで動作しますが、ドキュメントには「WSLgによって作成されたWindowsのスタートメニュー項目から起動されたLinux GUIアプリは、ボトルの外で実行されます」と記載されています。

CanonicalはMicrosoftではありませんが、WSLチームと緊密に連携してきました。WSL 2のsystemdは、少なくともオプションとして、様々なユーザーにとって魅力的な機能であることは間違いありません。そのため、今後の進捗を興味深く見守っていきたいと思います。®

Discover More