2006-08-01から1ヶ月間の記事一覧

Webからのソースコード閲覧

等価変換な日々でPlan9のソースコードをGLOBAL化したものが公開されている.ちなみに私はgonzuiを使ってます(gonzuiでPlan9のコードを読む).オフィシャルページで使われているプログラムは何だろう? Plan9 Release 4 のソースを HTML 化したもの browse the…

utraceとacid

今月のLinux Kernl Watchによると,RedHatのRoland McGrath氏がptraceの代替となるutraceというシステムコールを開発中とのこと.ptraceに関しては,アーキテクチャごとに実装具合が違っていたり,マルチスレッドとの整合性がいまいちだったり,不満を聞くこ…

sysctl

sysctlは4.4BSDで導入された,実行時にカーネルのパラメータを設定するためのインタフェースである.有り体に言えば,カーネルにおけるグローバル変数で,ちょっとしたパラメータチューニングは,カーネルを再コンパイルすることなく変更できるので,便利だ…

Plan9の誕生日は?

id:umedamochioさんが「Linus Is Happy」という記事を書かれている.参照されているRed Herringのインタビュー記事はこれ.1991年9月17日にLinux 0.01 (最初は Freax という名前だった)をアップロードしたので,もうすぐ15歳になるそうな. Plan9 1st editio…

Pegasus 2.2

有澤氏が開発しているWebサーバPegasusの新しいバージョンが公開された. Pegasus Pegasus 2.2

Plan9 on Xen 3.0.2

今週末はPlan9をXen上で動かそうと格闘していた.一応,ブートするところまでは確認できた.以下はそのメモ. 基本的に参考にしたのは,次のページ.UbuntuはFedoraCoreと多少,勝手が違うようなので,Howtoforgeの記事が参考になった.Xenが動いてしまえば…

dot file

UNIXでは,"."から始まるファイル名(通称dot file)を各アプリケーションの設定ファイルに使う慣習になっている.lsしてもdot fileが表示されないのは,lsがdot fileを無視するようにコーディングされているからだ("-a"オプションを付けると表示される). Pla…

drawterm

UNIXやWindowsからPlan9にアクセスするための,VNCやリモートデスクトップのようなターミナルソフト*1.作者のRuss Coxさんのページからダウンロードできる. $ tar zxvf drawterm.tgz $ make CONF=unix認証サーバとCPUサーバを指定して起動する. $ drawter…

[AMD64] seek(2)

しつこく,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氏の言…

106配列キーボード

デフォルトの状態では,キーボードの設定は101配列になっている.いわゆる日本語キーボードを使う場合は,kbmapで設定できる.kbmapを起動すると,対応する配列名が列挙されるので,jpをクリックし,"q"で終了する.

[Linux] llseek(2)

前回は,Plan9のシステムコールで引数や戻り値がレジスタサイズより大きい場合,どのように対処しているかについて書いた.そこで,Linux/x86ではどうやっているのかと疑問が湧いてくる.例えば,llseekは64bitのオフセットを扱う必要がある.答えは,manペ…

seek(2)のなぞ

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…

dup(2)

久々にカーネルのコードも覗いてみよう.Plan9のdup(2)はUNIXのdup2相当で,dup,dup2の区別はない.dupの挙動がわかっていれば,読むのは簡単だろう.ChanはUNIXのオープンファイル構造体だと思えばよく,f->fd[]はプロセスごとのファイル記述子表である. …

プログラミング言語 PLAN9

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 …

rcにはbreakがない

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 …

rcの参考文献

まずは,manや上に示した論文,次の文書から. rc - the Plan9 shell - rc - the Plan9 shell (2) - で,rcって何かの略なのかな?cはC言語のc?

今OSを自作する意味は?

ちょっと前に/.Jに「今OSを自作する意味は?」という記事が投稿されていた.研究OSの視点で考えると,自分のアイデアの有効性を示すためには動くシステムが必要だ(まぁ,論文を書くために必要なデータを取るぐらいは).だからOSを自作する(手もある)とい…