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

Plan 9 on VirtualBox 4.0

12/22、VirtualBox 4.0がリリースされた。機能拡張の他、商用版がなくなってOSS版にパッケージが統一されたりしたそうな。詳しいことはいろんなソースをあたってほしい。これまで、VirtualBoxでPlan 9が動かないのかという質問に対して「No」と答えてきたけ…

PDP-11のブートストラップ

年の瀬も押し迫った頃、なぜかPDP-11のブートストラップが気になってしまったので、simhとPDP-11のプロセッサハンドブックを見ながら、調べてみた。今回は実機のイメージがあった方が理解しやすいと思い、Wikipediaから写真引用。これは2基のDECtapユニット…

pre K&R Cコンパイラ

UNIX V6のソースコードを読むときにネックになるものの一つがK&R以前のC言語の仕様である。これをpre K&Rと呼ぶ。マニュアル(「C Reference Manual」)も存在するので、興味のある人はどうぞ。ちなみにUNIX V7では、後にも触れるポータブルCコンパイラを使…

UNIX v6 on simh

Lions' Commentary on UNIX読書会に参加した。いまだにLions本が大学の教科書として現役だという事実に驚いたが、読書会に集まる我々も五十歩百歩か。何はともあれ、一緒に読んだり教えたりしてくれるメンタがいれば、現代でも楽しめる一冊であることは確か…

さくらVPSでPlan 9〜ネットワーク編〜

昨日はNICの認識に失敗するところまでしかできなかったが、@naobsdさんのおかげもあり、ネットワークが使えるようになった。これで本契約決定だなw e1000ドライバには二つの問題があって、一つはcache line sizeが0と返ってくる点、もう一つはEEPROMのread…

さくらVPSでPlan 9

いろいろ動かないなぁと探っていたんだけど、何のことはないパーティションIDをMINIXからPlan 9に変えるのを忘れていて、9loadがパーティションを見つけられなかったというオチで、結局MINIX3と同じアプローチでPlan 9をさくらVPSで動かすことができた。Grub…

ls(1)の実装からみるUNIXとPlan 9の思想の違い

lsはもっとも使用頻度の高いUNIXのコマンドだろう。あたりまえに使っているlsだが、よく考えると不思議な挙動がある。具体例を示すと、lsとls | catの出力が異なるのはなぜだろうか? lsの出力はターミナルの幅に合わせて多段に表示されるが、パイプを介す、…

さくらVPSでMINIX3

KVMベースのさくらVPSがあちこちで話題になっている。月額980円という値段やブラウザから利用できるコントロールパネルの出来具合もさることながら、KVMベースなので自分好みのOSをインストールできるところがマニア受けもしているようだ。社長自らがブログ…

Plan 9でVM床抜き

KVM環境を再整備したので、@go_vmさんのVM床抜きを試してみた。伝説のコミケ本「軽快なPlan 9」のあれである。ハイパーコールや/dev/kvmへのioctlを追加する方法の勉強にもなるので、Plan 9に興味なくても一読をお勧めする。基本的に問題なく動いたのだけど…

Debian/testing(squeeze)上でのKVM環境の構築

PCのOSをubuntu 9.10からDebian/testing(squeeze)に変えた。ついでにソースからKVM環境を作ってみたのでメモを残しておく。コンパイルに必要となるパッケージの記述は省略した。必要に応じてapt-get installすること。 カーネルパッケージ作成 普通にmake in…

Kerberos

直接Plan 9に関係する話題じゃないけど、Plan 9の認証でも基盤になる技術なのでKerberosについて少し調べてみた。KerberosはMITで開発された認証方式で、WindowsやMac OS Xなどでも使われている。Kerberosという用語はプロトコルだけでなくサービスやソフト…

クラウドOSについてもう一度考えてみる

SACSIS2010でNakajimaさんの講演を聞いたり、twitterでPlan 9カーネルをモジュール化できないかというつぶやきが流れていたりしたので、勢いで書いてみた。 マイクロカーネルの定義 以降、マイクロカーネルの話が出てくるので少し前置きを。マイクロカーネル…

Plan 9/9grid勉強会

3月のPlan 9勉強会に引き続き、@80nashiさんを講師に呼んで勉強会を開催した。当日の資料などは例によって探検隊のページに置かせてもらっている。今回のテーマは9gridとそのベースとなる認証、特にマルチドメイン認証の仕組みだった。この辺は興味はあって…

第4回カーネル/VM探検隊

5/8にIIJで開催された第4回カーネル/VM探検隊に参加、LTしてきた。80〜90名ぐらいの参加者があったとのことで、懇親会もお店貸し切りだったし、大きなイベントになってきたなと感慨ひとしおだった。みんなあちこちでPlan 9に言及してくれたし、変態御用達OS…

contribアカウント

少し前にベル研のサイトのcontribアカウントをもらったので、それにまつわる話を書いておく。contribアカウントをもらうと、9fs sourcesで/n/sources/contrib以下にマウントされる自分の領域に書き込み権限が得られる。contribの内容は毎日アーカイブされ、h…

Mac OS XでPlan 9テイストを堪能

Plan 9のコマンドをUNIXに移植したPlan9portの存在については何度も書いているが、もっと日常生活にも使って行こうという話。9termとacmeを使えば、かなりPlan 9テイストが満喫できる。以前も書いたがRuss CoxはMac OS X上で9termとacmeを常用しているようだ…

Plan 9/Sheevaplugはっかそん

残念ながら参加できなかったけど、3/20〜22にかけてPlan9/Sheevaplugはっかそんが開催された。(きっと個々の成果は公開されるのだと思うが)SheevaplugのSDIO、SATAドライバ周りや、YUREXドライバの移植、rioのカーソルハッキングなどが行われたようだ。直…

Plan 9勉強会

3/9にTIP9UGの@80nashiさんにマルチサーバ構成のインストールデモ、認証とセキュリティ周りの話をしてもらった。2時間ではちょっと足りなくて、後半の話はかなり駆け足にならざるを得なかったので、また今度じっくり話を聞く機会を作ろうと思う。私もどうに…

ディスクフル!

pullするとなにやら「/bin/fossile: cacheAllocBlock: xxx1 disk is full」というエラーが大量に。。。fossileのコンソールにアクセスして「100% used」になっているのを確認。けちって仮想ディスクに1GBしか割り当ててなかったからディスク領域を使い果たし…

gnotの由来

gnotはPlan 9端末のデフォルトホスト名であり、この名前は何に由来しているかと疑問に思っていたのだが、意外なところからわかった。事の発端は、@__ciruzzo__さんからAT&Tのターミナル630を使ったことがあると聞いたことだ。630というのはRob Pikeがベル研…

GoogleのエンジニアはPlan 9を使っているのか?

一般的にはLinuxを使っているいる人が多いのだろうが、9fansでRuss、Rob、Ken、Daveといった面々が今もPlan 9を使っているのかという話題が出た。答えはNo、彼らはデスクトップ環境としてMac OSを使っているようだ。例えば、Russは2台のディスプレイを用意し…

USBディスクを使う

SheevaPlugのUSB対応が気になる昨今なので、Plan 9でUSBディスクを使う方法など書いてみる。Plan 9はちゃんとUSB 2.0のEHCI (Enhanced Host Controller Interface)に対応している。デバイスドライバの名前は#uで/devにbindされる。ホストコントローラが認識…

ファイルロック

UNIXでは複数のプロセスが同時にファイルにアクセスできるが、自動的にはロックされないので、おそらく最後のプロセスが書き込んだ結果が結果的に残こることになる。これでは都合が悪いので(特に分散ファイルシステムや分散OSでは)、ファイルロックという…

CASとかVentiとか

SSDで遊んだりとストレージ周りの技術にいまさら注目し始めているところだが、この分野で最近ホットな話題というとdeduplication(重複排除)、thin provisioning、SSDの導入といったあたりなんだろうか。この辺りは@w_katsuraさんの「次世代ストレージシス…

玄柴(SheevaPlug)でPlan 9

玄柴を買ったはいいけど、放置状態だったので、ちょっと時間を作ってPlan 9が動くところまで確認した。ここに動かし方をまとめておく。戦略としてはカーネルをtftpによってロードし、リモート(VMWare Fusion上)のPlan 9をファイルサーバ(+ tftpd)として…

スタンドアローン環境をCPU/ファイルサーバにする方法

今のところSheevaPlug上のPlan 9はローカルストレージにアクセスできないので、外部のファイルサーバを利用する必要がある。そこでスタンドアローン環境を取りあえず手っ取り早くCPU/ファイルサーバに仕立てる方法について書いておく。まじめなやり方はPlan …

print関数のフラグを追加する方法

print(f)関数を使っていてフラグ(%につづく文字列)を自由に定義できたらと思ったことはないだろうか?例えば、URLエンコーディングが必要なときに、 encoded = smprint("%s", urlencode(s));じゃなくて、 encoded = smprint("%R", s);みたいな感じに書くと…

ネットワーク設定

ネットワークの設定方法がわからないという@go_vmさんの話にマジレスすると、DHCPならオプションなしで % ip/ipconfig でOK。固定IPだったら、 % ip/ipconfig -g your-gateway ether /net/ether0 your-ip-address your-subnet-mask ifconfigじゃなくて、ipco…

第20回グリーオープンソーステクノロジ勉強会

2/10にグリー勉強会でカーネル/VM探検隊で話したもの+αという感じで1時間ちょっと話ししてきた。資料はこちらにアップロードした。今までのグリー勉強会のお題と比較すると、なんとも異色な感じがして、よく人が集まったな(実際反応はやや鈍かったようで…

TECOエディタ

前にTOPS-20に関係してTECO(Text Editor and Corrector)について触れた*1。@iratqqさんのつぶやきで知ったのだが、「本物のプログラマ」にはこんなことが書かれている。 本物のプログラマは``what you see is what you get''なんて、テキストエディタと女…