Debian GNU/Hurd

(2015.5)

GNU Hurdカーネルを使った、Debianによるディストリビューション。

GNU Hurd

GNU Hurdは、Machマイクロカーネル + ユーザランドサーバによって, UNIXを実装しようとするプロジェクト.

Mach マイクロカーネルは往年の NeXTSTEPでも使われていた。MkLinux というのもある。

The Microkernel Mach Under NeXTSTEP from Gregor Schmidt

GNU Hurd プロジェクトが始まったのは 1991年、最初のリリース version 0.2 が出たのが 1997年、か? いずれにしても、非常に昔から, 続いているのか続いていないのかよく分からない。

Debian GNU/Hurd

[2023.8] Debian GNU/Hurd 2023 が 2023年6月にリリースされている。Debian 12 "Bookworm" ベース。

[2020.10] Debian GNU/Hurd 2019 が 2019年7月にリリースされている。

This is a snapshot of Debian "sid" at the time of the stable Debian "buster" release (July 2019), so it is mostly based on the same sources. It is not an official Debian release, but it is an official Debian GNU/Hurd port release. Debian GNU/Hurd is currently available for the i386 architecture with about 80% of the Debian archive, and more to come!
  • An ACPI translator is available, it is currently only used to shut down the system.
  • The LwIP TCP/IP stack is now available as an option.
  • A PCI arbiter has been introduced, and will be useful to properly manage PCI access, as well as provide fine-grain hardware access.
  • Support for LLVM was introduced.
  • New optimisations include protected payloads, better paging management and message dispatch, and gsync synchronization.

Debian GNU/Hurd 2015 が 2015年4月29日にリリースされている。

  • http://thread.gmane.org/gmane.os.hurd.bugs/27177 リンク切れ
Since the last snapshot release coinciding with "wheezy", the init system has been switched to sysvinit for a more Debian-like experience. Further changes since the last snapshot include:
  • The core GNU Hurd and GNU Mach packages were updated to versions 0.6 and 1.5, respectively. Besides numerous other improvements, they bring vastly improved stability under load and prolonged uptime.
  • The networking drivers were migrated to user-space drivers using the NetDDE framework and a Linux-2.6.32 codebase.

Notable new or upgraded packages which required considerable porting effort and/or are known to work well on Debian GNU/Hurd include Iceweasel 31 ESR, XFCE4 4.10, X.org 7.7 and Emacs 24.4.

インストール

CDで9枚組、DVDで3枚組と、ずいぶん大きい。

次のところから debian-hurd-2015-i386-NETINST-1.iso を取ってくる。NETINST は使えない。DVD版の1枚目を使う。iso-dvd/ にあるもの。

そのディスクからブートする。

Language は日本語を選ぼう。最初、English を選んだら、タイムゾーンが米国しか選択できず、困った。

あと、パッケージを選ぶところで、GNOME やCinnamon が選べるが、いずれもインストールに失敗する。最初はデスクトップ環境は入れないのがよさそう。

インストールが終わったら、再起動で、ログイン画面が立ち上がる。

いろいろ設定

初期設定方法は, 公式のこちらが詳しい; Debian GNU/Hurd Configuration

/etc/network/interfaces ファイルで固定IPアドレスを設定。以降は SSH で入れる。

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto /dev/eth0
iface /dev/eth0 inet static
    address 192.168.0.24
    netmask 255.255.255.0
    gateway 192.168.0.1
    dns-nameservers 192.168.0.9    # この行不要?

/etc/hosts の修正も忘れずに。

/etc/resolv.conf ファイルを消すと ping などで名前解決に失敗するので, /etc/resolv.conf も必要。上記の dns-nameservers は不要かも。

システム情報は次になる。

$ uname -a
GNU debianhurd 0.6 GNU-Mach 1.4+git20150409-486/Hurd-0.6 i686-AT386 GNU

Debian GNU/Hurd 2023 では次になる。plum はホスト名

GNU plum 0.9 GNU-Mach 1.8+git20230526-486/Hurd-0.9 i686-AT386 GNU

コンソールで JPキーボードの[¥] [\]キーを認識しない。これは困った. (未解決)

ファイルシステムは ext2. さすがに見劣りする。インストール直後の状態。

root@plum:~# df
ファイルシス   1K-ブロック    使用  使用可 使用% マウント位置
/dev/hd0s1         2007040 1189136  717552   63% /
/dev/hd0s5          993280  197008  746608   21% /var
/dev/hd0s8         4130816   40812 3883464    2% /home
/dev/hd0s7          251904    8056  231256    4% /tmp
none                205788      52  205736    1% /run
none                  5120       4    5116    1% /run/lock
root@plum:~# mount
typed:part:1:device:hd0 on / type ext2fs (rw,relatime,no-inherit-dir-group)
/dev/hd0s8 on /home type ext2 (rw,relatime,no-inherit-dir-group)
/dev/hd0s7 on /tmp type ext2 (rw,relatime,no-inherit-dir-group)
/dev/hd0s5 on /var type ext2 (rw,relatime,no-inherit-dir-group)

/hurd 以下に実行ファイルがいろいろ. これがサーバ群か?

acpi exec firmlink init mtab pci-arbiter remap storeio acpi.static exec.static ftpfs iso9660fs netdde pci-arbiter.static rumpdisk streamio auth ext2fs fwd iso9660fs.static netdde.static pfinet rumpdisk.static symlink console ext2fs.static hello lwip new-fifo pflocal run tarfs crash fakeroot hello-mt mach-defpager nfs proc shutdown term cvsfs fatfs hostmux magic nsmux procfs smbfs tmpfs devnode fifo httpfs mboxfs null proxy-defpager socketio usermux eth-multiplexer filter ifsock memfs password random startup xmlfs