2006-08-01から1ヶ月間の記事一覧
等価変換な日々でPlan9のソースコードをGLOBAL化したものが公開されている.ちなみに私はgonzuiを使ってます(gonzuiでPlan9のコードを読む).オフィシャルページで使われているプログラムは何だろう? Plan9 Release 4 のソースを HTML 化したもの browse the…
今月のLinux Kernl Watchによると,RedHatのRoland McGrath氏がptraceの代替となるutraceというシステムコールを開発中とのこと.ptraceに関しては,アーキテクチャごとに実装具合が違っていたり,マルチスレッドとの整合性がいまいちだったり,不満を聞くこ…
sysctlは4.4BSDで導入された,実行時にカーネルのパラメータを設定するためのインタフェースである.有り体に言えば,カーネルにおけるグローバル変数で,ちょっとしたパラメータチューニングは,カーネルを再コンパイルすることなく変更できるので,便利だ…
id:umedamochioさんが「Linus Is Happy」という記事を書かれている.参照されているRed Herringのインタビュー記事はこれ.1991年9月17日にLinux 0.01 (最初は Freax という名前だった)をアップロードしたので,もうすぐ15歳になるそうな. Plan9 1st editio…
有澤氏が開発しているWebサーバPegasusの新しいバージョンが公開された. Pegasus Pegasus 2.2
今週末はPlan9をXen上で動かそうと格闘していた.一応,ブートするところまでは確認できた.以下はそのメモ. 基本的に参考にしたのは,次のページ.UbuntuはFedoraCoreと多少,勝手が違うようなので,Howtoforgeの記事が参考になった.Xenが動いてしまえば…
UNIXでは,"."から始まるファイル名(通称dot file)を各アプリケーションの設定ファイルに使う慣習になっている.lsしてもdot fileが表示されないのは,lsがdot fileを無視するようにコーディングされているからだ("-a"オプションを付けると表示される). Pla…
UNIXやWindowsからPlan9にアクセスするための,VNCやリモートデスクトップのようなターミナルソフト*1.作者のRuss Coxさんのページからダウンロードできる. $ tar zxvf drawterm.tgz $ make CONF=unix認証サーバとCPUサーバを指定して起動する. $ drawter…
しつこく,seekのネタ.mkfileのAMD64のエントリは次のようになっている.64ビットのmovはmovq命令だし,ソフトウェア割込みにはsyscall命令を使っている.汎用レジスタも増えたし,引数はレジスタ渡しを豪勢に使っているのかと思ったら,A Manual for the P…
最近,id:hira_sosukeさんや,id:hyoshiokさんが,ソースコードを読むことの重要性を書かれている(「21世紀のデザイン」).では,カーネルに興味を持つ人は何から読めばいいんだろう?id:hyoshiokさんが,「Lions' Commentary on UNIXを読む。」でLion氏の言…
デフォルトの状態では,キーボードの設定は101配列になっている.いわゆる日本語キーボードを使う場合は,kbmapで設定できる.kbmapを起動すると,対応する配列名が列挙されるので,jpをクリックし,"q"で終了する.
前回は,Plan9のシステムコールで引数や戻り値がレジスタサイズより大きい場合,どのように対処しているかについて書いた.そこで,Linux/x86ではどうやっているのかと疑問が湧いてくる.例えば,llseekは64bitのオフセットを扱う必要がある.答えは,manペ…
mkfileの説明で端折ったが,seek(2)のときに処理を場合わけしている.これは何をしているんだろうか?もう一度,該当部分を引用する.int命令の後なので,戻り値関係だと予想できる."4(PC)"は「PC + 4バイト」ではなく「PC + 4命令」の意味なので,AXが-1で…
今までopen(2)やdup(2)といったシステムコール関数を見てきたけど,それらのエントリに至る過程は無視してきたので,今日はその辺のコードを読んでみよう.Plan9のシステムコール数にも書いたけど,システムコール番号は,libc/9syscall/sys.hで定義されてい…
昨日に続いて,UNIXとの違いについて小ネタ.bashで,標準出力(stdout),標準エラー出力(stderr)を/dev/nullに出力したい場合や,makeでstdout,stderrの両方をログに残したい場合には次のように書く. bash% cmd > /dev/null 2>&1 bash% make 2>&1 | tee ma…
久々にカーネルのコードも覗いてみよう.Plan9のdup(2)はUNIXのdup2相当で,dup,dup2の区別はない.dupの挙動がわかっていれば,読むのは簡単だろう.ChanはUNIXのオープンファイル構造体だと思えばよく,f->fd[]はプロセスごとのファイル記述子表である. …
9fansで,Programming LANguage 9という教育用プログラミング言語が紹介されていた.LOGOのような言語で(亀じゃなくてUFOを動かすようだ),命令数が9つだからProgramming LANguage 9(PLAN9)だそうだ.
論より証拠.まずはLinuxでの結果から示そう.aというディレクトリの下にbというファイルを作る.ディレクトリのデフォルトパーミッションは755であり,実行許可を意味するxビットがすべて立っている. % mkdir a % touch a/b % ls -l drwxr-xr-x 2 oraccha …
cshやbashにあってrcにないものの一つにbreak構文がある.ってなことを書く予定.Rc ― The Plan 9 Shellには,次のように書かれている. I deleted the builtins export, readonly, break, continue, read, return, set, times and unset because they seem …
まずは,manや上に示した論文,次の文書から. rc - the Plan9 shell - rc - the Plan9 shell (2) - で,rcって何かの略なのかな?cはC言語のc?
ちょっと前に/.Jに「今OSを自作する意味は?」という記事が投稿されていた.研究OSの視点で考えると,自分のアイデアの有効性を示すためには動くシステムが必要だ(まぁ,論文を書くために必要なデータを取るぐらいは).だからOSを自作する(手もある)とい…