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''なんて、テキストエディタと女…

玄柴(SheevaPlug)購入

3月ごろにSheevaPlug/Plan 9ハッカソンがあるという噂があり、どうやって入手しようかなと思っていた矢先に、@naobsdさんから秋葉の店頭に玄柴が出ているという情報が!気がつくと机の上には黒いプラグが置いてありましたとさ。16800円なり。玄柴はオリジナ…

timeline: Twitter reader

ターミナルで動くTwitterクライアントというかリーダーを書いてみた。データの取得形式はJSONになっているので、Plan9portのsmugfsで使われているJSONパーザを使わせてもらった。クライアントで表示される部分はわずかだけど、結構なデータ量がやりとりされ…

abaco: Webブラウザ

「Plan 9にはWebブラウザがないうんぬん」というつぶやきを見て思い出したが(そういえば前のTIP9UGで言ってたな)、標準ディストリビューションにabacoが入っている。acmeライクなインタフェースを持つブラウザである。最近のWebブラウザはタブベースだけど…

NetBSD@LinkStationでPlan9portを動かす(その3)

X周りも動くか見てみたいので、LOCAL.configを削除して再ビルド。 準備 とその前に今度はMercurialを使うことにする。普通にpkg_add mercurialをしたらdependencyでインストールされるpython25のところでコケてしまったので、こんな感じにしてみた(きっとも…

ARMクロスコンパイル環境

いつか使う日のためにメモしておく。まずARMマシン用のクロスコンパイラを生成する。386用のコマンド名は8?だったけど、ARM用は5?になる。 % cd /sys/src/cmd % for(i in 5?) @{ cd $i; mk clean; objtype=$cputype mk install; mk clean } % lc /bin/5? 5a …

LS-HGLのネットワーク性能

LS-HGLがどのくらいのネットワーク性能が出るものか、Plan9port上でベンチマークを作って試してみた。コードはgithubに置いたdialperfってやつ。ネイティブのPlan 9と違って、dialの第3、4引数をnull以外に設定するとエラーになる。結果は次の通り(単位はMB…

NetBSD@LinkStationでPlan9portを動かす(その2)

NetBSD/evbarmでのPlan9portの動作実績はないようで、動かすには多少の修正が必要だった。パッチをまとめてRussさんに送ろうと思うが*1、とりあえず現状をメモっておく。 前準備 環境変数PKG_PATHを設定して、pkg_addを使えるようにする。gccはもちろんドキ…

NetBSD@LinkStationでPlan9portを動かす(その1)

今年の冬休みにやっていたのが、BuffaloのNAS LinkStation(LS-H1.0TGL)にNetBSDを載せて、Plan9portを動かそうというプロジェクト。完全な手順ではないが、(Plan9portに興味がなくても、NetBSDインストールメモとして有用かもしれないので)メモを残して…

TOPS-20で太古のEmacsに出会う

Panda TOPS-20 distribution 最近、Panda TOPS-20 distributionというものを発見してしまったので、しばらく遊んでみようと思う。Linuxであればバイナリが同梱されているので、READMEにそって操作すればすぐ使うことができる。私はUbuntu 9.10上で実行してい…

Glenda is watching you!

Plan 9関連のtweetを集めるために簡単なbotを書いた。使ったAPIはSearchとReweetで、"plan9"で検索して、ちょっと(@plan9さんというPlan 9には関係ないユーザがいたりするので)NGユーザやNGワードを含むtweetをフィルタリングして、retweetするだけ。アカ…

Plan 9からMac OS Xのファイルファイルシステムにアクセスする方法

普段はVMWare Fusion上でPlan 9を動かしているのだけど、Plan 9側からMac OS X側のファイルシステムにアクセスしたいことがままある。VMWareの共有フォルダ機能がPlan 9に対応しているわけもないので、u9fsをMac OS X上で動かしてみよう。 なお、Plan 9とMac…

replica/pull時のソフトオーバフロー

「replica/pull: システムの更新」に書いたように、Plan 9にはコマンド一発でソースコードも含めてシステムの状態を最新に保つ仕掛けがある。pull実行中にカーネルが「soverflow for fx->in」と大量のメッセージを出力することがあった*1。これはイーサネッ…

パケットキャプチャの実装方法

ネットワークアプリケーションの解析やデバッグなどにパケットキャプチャ(もしくはスニファ)は必須の機能で、UNIXであればtcpdump、snoop、wireshark*1、Plan 9であればsnoopyなどが存在する。パケットを横から盗み見するために、OSごとにいろんなアプロー…

ふりかえり

ここらへんで昨年一年間のPlan 9日記とPlan 9界隈の話題と振り返っておきたい。昨年書いたエントリ数は72件で、被ブックマーク数が多かったのは、「クラウドOS」の18、「プログラミング言語Go」の16、「Xの起源に分散OS」の12、「APIの設計について」、「Pla…

ニュージャージスタイルとMITスタイル

昨年末、TwitterでPlan 9はニュージャージスタイルかMITスタイルかという話が出た。まぁ、レッテルを貼ることに意味はないし、結論もないのだが、この辺の話題をまとめておきたい。初期UNIXやCの開発哲学・ソフトウェア開発アプローチはニュージャージスタイ…

Goを使ってPlan 9とお話

9PプロトコルでPlan 9とMacOS Xとおしゃべりするのに、Goの9pパッケージ(go9p)を使ってみようという話。go9pは標準パッケージには含まれていないが、有志によって開発が進められている。copyというbuiltinを使っているので、新しいリリースを使う必要があ…