2006-01-01から1年間の記事一覧

[Linux] bind mount

Linuxのmount(1)にはディレクトリのサブツリーをファイルシステムであるかのようにmountできるbind mountという機能がある.@ITの記事「リードオンリーでbind mount」によると,(元々のパーミッションとは関係なく)read onlyでbind mountするパッチが-mmツリ…

anonymous structure

例えば,abacoにはこんなコードが出てくる. r.min.y = c->tag.r.max.y+Border;何の変哲もないコードだけど,gccでコンパイルすると,tagにはrというメンバがないとエラーになる.tagの型はstruct Textなんだけど,最初のメンバは型名だけで変数名がない. s…

Plan9portのコンパイラ

Plan9portのコンパイラはkenccじゃなくて,gccなので(オプションは互換になるように,9cはラッパースクリプトになっている),Plan9のソースコードをそのままコンパイルできるわけじゃない.abacoをコンパイルしてみようと思ったけど,ちょっと面倒かもなぁ.…

Driving Plan 9

OSNews記事の反響の続報.記事を書いた本人が9fansに登場したけど,みんななかなか厳しいねぇ.また,/.にも関連した記事が投稿されている.

Xnest環境でrioを動かす

rioはX Window Systemのウィンドウマネージャとして実装されている.ということで,Xnest環境でrioを立ち上げてみよう.Xnestの使い方は,「Xのウィンドウで別のデスクトップを表示するには」が参考になるだろう.Xnestがインストールされていない場合は,xo…

Plan 9 from User Space

UNIXにPlan9のソフトウェアを移植したのが,Plan 9 from User Space (またの名をPlan9port)だ.これを使えば,Plan9のアプリケーションをUNIX上で動かすことができる.作者のRuss Cox氏はacmeを動かすことが目的だったそうだが,acmeはもちろんrioも(まった…

Investigating the Plan 9 Operating System

OSNewsのAlternative OS Contestに同名の記事が投稿されているが,ツッコミどころが満載だと9fansで話題になっている.

とりあえず

“はてなTシャツ欲しい!”と書いてみる.

コマンドラインヒストリ

rcを使っていて,戸惑うのがコマンドラインヒストリがないこと. 正確にはヒストリがないのではなく,シェルの機能ではなく,ウィンドウシステム(rio)の機能であるという点が,UNIXと違う.(カレント)ウィンドウに表示された内容は/dev/textに残っているから…

fossil/venti

ちょっと前に飲んでいて,ツリー型のファイルシステムは限界だとか,履歴管理ファイルシステムが欲しいという話題で盛り上がっていた.Plan9では,ずっとWORMベースのファイルサーバ(fs)と簡易ファイルサーバ(kfs)が使われてきたが,4th editionからfossil,…

The OSNews Alternative OS Contest

OS関連ニュース(特にマイナーOSプロジェクト)をウォッチするのに重宝するOSNewsがAlternative OS Contestってのをやっている.コンテストの内容はマイナーOSの紹介記事を書くというもの. Announcing The OSNews Alternative OS Contest 2006-06-22: 締切り…

Haskell OS

「ふつける」は4章が終わって,5章の遅延評価を読み始めたところ.昨日は,カーネルをどんな言語で書くかという話をちょっとしたけど,いまどきC言語を高級言語って呼んでも「はぁ?アセンブリに毛が生えたようなものでしょ」って受け取られてしまうんじゃな…

UnixLite

一般的に,カーネルはちょっとのアセンブリとC言語で書かれる.太古の昔はみなアセンブリで書かれていたが,Multicsでは高級言語(PL/I)でカーネルを書くというチャレンジを行った.後はよく知られているように,UNIXを実装するためにC言語が作られた(UNIXも…

runhugs

「ふつうのHaskellプログラミング」はUNIXコマンドのようなテキスト処理を中心的題材に扱っているので,対話型インタプリタだときつい.と思ったら,runhugsってのがあるようだ.例えば,p.29のcat.hsは, main = do cs <- getContents putStr cs次のように…

Plan9でHugs

hgetでダウンロードしてくる. cpu% hget http://pages.cpsc.ucalgary.ca/~mirtchov/p9/hugs/hugs-p9.tgz | gunzip | tar xvf cpu% cd hugs-p9/src cpu% ape/psh # make # make install # exitさて,インストールできたので,実行してみる.問題なさそうだ.…

APE (ANSI/POSIX Environment)

ということでお試し.Hugsをコンパイルするために,APE(ANSI/POSIX互換エミュレーション環境)を使う.APEはUNIXのアプリケーションを移植するために導入された.APE,つまり猿.UNIXなんかつかう奴は猿並みってことか.ape/pshを実行すればAPEに入ることがで…

Haskell for Plan9

世間ではHaskellが熱いそうな.Web 2.0でJavaScriptが復権したと思ったら,今度はHaskellかぁ(と言ってもHaskellはメジャーな言語じゃないし,過去に一世風靡したわけでもないけど).でも,乗り遅れまいと無理して,青木さんの「ふつうのHaskellプログラミン…

IWP9 2006

はじめてのInternational Workshop on Plan 9.9fansにCFPが投稿されたが,12/4〜5にスペインのマドリッドで開かれるようだ.どんな論文があつまるんだろう? IWP9 2006

Aquarela

Plan9のCIFS(Common Internet File System)サーバ.Sambaを参考にPlan9用に実装されたらしい.まともに使えるのであれば,Plan9でNASってのもありかなぁ. Aquarela Aquarela (Plan 9 CIFS サーバ)

Plan B

9fansにPlan B 4th editionのアナウンスが流れた.Plan BはPlan9をベースにした分散OSで,Rey Juan Carlos Universityによって開発されている.Plan Bの「B」はBoxの「B」らしく,ファイルの代わりにボックスによる抽象化を行っているらしい.「Plan A」(Pl…

9Pプロトコルの概要

9Pプロトコルは,通常,TCP/IPの上位層として実装されるが,信頼性と順序保証を持つトランスポートプロトコルであればよく,RUDPやPPP上に実装することも可能である.また,9P用に単純化したIL(Internet Link)プロトコルも存在する. 現在使われている9Pプロ…

9PとVFS

今日から9Pプロトコルについて調べていこうと思う.9Pは今までも何度か出てきたがPlan9の特徴的な機能のひとつである.9Pはネットワークファイルシステムを実現するという意味でNFSに近いが,本質的にはVFS(Virtual File System)レイヤに近いと言える.そし…

[Slashdot] Acme Stand Alone Complex

Slashdotに Acme for Windowsという記事が投稿されている.AcmeとはもちろんPlan9のテキストエディタのことである.AcmeをInfernoに移植したものがあったそうだが,Acme SACはAcme単体がWindowsで動作するそうな.全体的にそんなの意味があるの?という論調…

Plan9 on Xen

ちょっと前からXenに興味がある.そして,XenのゲストOSとしてPlan9が動く.試したことないけど,XenoppixというKnoppixベースのライブCDで試すこともできるようだ.ただ,Plan9が動くのはXen 2.xでXen 3.xには対応していないようだ(よく知らないけど). (更…

Plan9はマイクロカーネルか?

個人的にはマイクロカーネルとモノリシックカーネルの優劣を議論するのは正直どうでもいいのだが,昨年末,MINIX 3をリリースしたタネンバウム教授が,14年の歳月を経て,「Tanenbaum-Torvalds Debate: Part II」なんて文書を公開している.まだちゃんと読ん…

Bourne shell

雑談ついでに,もう一つ9fansネタを.なんだかbourne shellの昔話に花が咲いているんだけど,SEGVシグナルをトラップしたら,メモリを確保してやって復帰するってトリッキーなことをやっていたらしい.で,ソースを見てびっくり.PascalALGOL 68風というか,…

USB/IP

9fansで,NAISTで研究されているUSB/IPの話題がでていた.何でも作者はPlan9好きなんだとか. これはリモート計算機につながったUSBデバイスをネットワーク越しに共有するという研究である.実装は,クライアント側ではホストコントローラとして(EHCIなどの…

Text is the universal language

UNIXのコマンドはテキストを入力として,テキストを出力する.一つの単純なことを実現するコマンドをパイプでつなげて,より複雑な処理を行なう.Plan9はこの思想を引き継いでいる.以前見たように/dev/mouseをreadして得られるのもテキストだし,exitに相当…

pragmaの話

昨日はCコンパイラの話になったので,ついでに今日はpragmaの話を.pragmaはコンパイラの挙動を指示するためのディレクティブであり,実装依存の機能である. Plan9でHello, world!で,Plan9のコンパイル方法を書いたが,8lで,ロード(リンク)するライブラリ…

C言語の拡張

Linuxカーネルもgcc拡張を多用しているが,Ken Thompson氏が書いたPlan9コンパイラ(通称Ken C?)も,ANSI Cから拡張がなされている.それらは基本的にC99なんだけど,(C99前に実装されたってのもあるんだろうけど)微妙に文法が違っているので,注意が必要で…