KVMでDebian GNU/Hurdを動かす
よ〜んです。
前回の記事の続きです。
EC2が仮想化のネストに対応したので、UbuntuでKVMを動かす
今回は、KVM上でDebian GNU/Hurdを起動してみます。
GNU/Hurdとは
GNU/Hurdは、GNU/Mach上でHurdサーバ群が動いてOS機能を提供する構成です。Linuxのような単一カーネル構成とは設計思想が異なります。
ここでよく出てくる用語をざっくり整理しておきます。
- モノリシックカーネル
- Linuxのように、プロセス管理・メモリ管理・ファイルシステム・デバイスドライバなどを、基本的にカーネル空間で一体的に扱う方式
- マイクロカーネル
- カーネル本体は最小限(スケジューリングやIPCなど)に絞り、OS機能の多くをユーザー空間のサーバとして分離する方式
GNU/Hurdは後者寄りの思想で、GNU/Machの上にHurdサーバを載せる構造になっています。動作確認をしていると、Linuxを前提にしたときとは見え方が少し変わって面白いです。
2025年8月に Debian GNU/Hurd 2025 が公開され、amd64向けイメージが案内されていました。
手元にx86_64マシンがなくて触れなかったのですが、前回のEC2 + KVM環境ができたので試せました。
起動準備
Debian GNU/Hurd用イメージはこちらから取得できます。
wget https://cdimage.debian.org/cdimage/ports/13.0/hurd-amd64/debian-hurd-amd64.img
起動コマンドは以下です。
qemu-system-x86_64 \
-enable-kvm \
-cpu host,-svm \
-m 1G \
-drive file=debian-hurd-amd64.img,format=raw,cache=writeback \
-nic user,model=rtl8139 \
-vnc 127.0.0.1:1 \
-monitor stdio
EC2上で動かしているので、画面確認はSession Managerのポートフォワーディング経由でVNCを使いました。
aws ssm start-session \
--target ${INSTANCE_ID} \
--document-name AWS-StartPortForwardingSession \
--parameters '{"portNumber":["5901"],"localPortNumber":["5901"]}'
動作確認
まず uname -a を実行し、GNU/Machベースで起動していることを確認しました。

表示にLinuxが含まれておらず、GNU-Mach となっているので、Linuxカーネルではないことが分かります。
GNU Emacsも起動してみました。

まとめ
RMSが「自由なUnix互換OS」を目指して初めてきた、GNU/HurdがKVM上でトラブルなく動いたのをみて、ゴールがかなり近づいてきているのかなと思いました。
私はRMSのGNUプロジェクトを応援していますし、今後もできるだけ GNU/Linux と呼んでいきます。ではでは。