Posted 2015-05-25 15:56:24 GMT

GNUプロジェクト純正のOSといえば、GNU/HURDですが、1996年に待望の0.0がリリースされてから早19年。

遅々として開発が進まないことで有名になってしまいましたが、そんなGNU/HURDの0.6が先日リリースされました。

GNU/HURDでは、CLISPが動くことを確認していましたが、今回新リリースということで手順を再確認してみたいと思います。

インストールイメージをダウンロード

GNU/HURDにもLinuxのようにディストロがあったりしますが、元祖という感じのDebian GNU/HURDで進めたいと思います。

ISOイメージは下記からダウンロード可能です。

最小構成の debian-hurd-2015-i386-NETINST-1.iso を利用することとします。

仮想マシンを用意

QEMU等だとディスクイメージを配布しているようですが、以前試した所では、どうもQEMU上のHURDは遅かったのでVirtualBoxで試してみることにしました。

仮想マシンを作成して、ISOイメージをセットし、Debianのインストールを進めていくのみです。

途中、aptのダウンロード元の設定でドイツがデフォルトになっていて進まなかったりするかもしれませんが、近所に設定しましょう。

サポートしているハードウェアが少ないHURDですが、VirtualBoxでは、特に何の問題なくインストールも完了しました。

CLISPをビルドする

Debianでは、clispはaptでインストール可能ですが、HURDではパッケージ登録されていない様子。

動かすには、自前でビルドする必要がありますが、依存のライブラリは、 build-dep でインストール可能なので楽です。

$ sudo apt-get build-dep clisp

を実行すれば一式揃います。

あとは、clispのソースを取得してビルドするのみです。

起動

Quicklispを導入した後は、こんな感じ

$ clisp i i i i i i i ooooo o ooooooo ooooo ooooo I I I I I I I 8 8 8 8 8 o 8 8 I \ `+' / I 8 8 8 8 8 8 \ `-+-' / 8 8 8 ooooo 8oooo `-__|__-' 8 8 8 8 8 | 8 o 8 8 o 8 8 ------+------ ooooo 8oooooo ooo8ooo ooooo 8 Welcome to GNU CLISP 2.49 (2010-07-07) <http://clisp.cons.org/> Copyright (c) Bruno Haible, Michael Stoll 1992, 1993 Copyright (c) Bruno Haible, Marcus Daniels 1994-1997 Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998 Copyright (c) Bruno Haible, Sam Steingold 1999-2000 Copyright (c) Sam Steingold, Bruno Haible 2001-2010 Type :h and hit Enter for context help. ;; Loading file /home/mc/.clisprc.lisp ... ;; Loading file /l/quicklisp/setup.lisp ... ;; Loaded file /l/quicklisp/setup.lisp ;; Loaded file /home/mc/.clisprc.lisp [1]>

*features* :BASE-CHAR=CHARACTER :UNIX)

(posix:uname) ;=> #<UNAME :SYSNAME "GNU" :NODENAME "progw" :RELEASE "0.6" :VERSION "GNU-Mach 1.4+git20150409-486/Hurd-0.6" :MACHINE "i686-AT386">

以前はFFIが関係するライブラリが上手く動かせなかったりしましたが、今回試した所上手く行きました。

以前は、HURD側のライブラリの設定に失敗していたのかもしれません。

何かHURDらしいことを試してみる

HURDには translator というファイルシステムに色々なものを接続する機能がありますが、この機能を利用した httpfs があるので、ウェブページをローカルファイルとしてマウントして読み出してみます。

何となく気分を出すために、 with-httpfs-translator というマクロを定義してみます。

という風にDRAKMAのようなhttpクライアントが無くても読み出せますが、別に使い勝手は良くありません。

まとめ

HURDでは現在、CLISPの他には、ANSI CLではないもののGCLが動きます。

謎の原因でOSごと落ちたりするので、まともな作業に使うのは難しい気はしますが、HURDでCommon Lispも乙なものです。

■

