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を実行したりできます」と説明されています。ただし、これらのソリューションは非公式です。
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は、少なくともオプションとして、様々なユーザーにとって魅力的な機能であることは間違いありません。そのため、今後の進捗を興味深く見守っていきたいと思います。®