2006-09-01から1ヶ月間の記事一覧
ようやくTCPっぽい処理に入り始めた.UNIXでは,ネットワークIO用のバッファ管理では,プロトコルスタックのレイヤごとにヘッダを抜き差しするのに便利なように,mbufやskbuffというデータ構造が使われている.Linuxのskbuffは性能を優先したためか,TCP/IP…
The OSNews Alternative OS Contestの結果が公開されている.9fansでも話題になったPlan9のレビュー記事が特別賞を受賞したようだ.まずはめでたい. エントリをよく見ると,「Introduction to MINIX 3」ってMINIX 3の紹介記事をTanenbaum教授御大が書いてい…
カーネルのように大きなプログラムになるほど,使われているデータ構造を理解することが重要になる.データ構造がわかるとコードを追うのが楽になるので,Cのコードを読むときは,まずヘッダファイルを眺めて感じを掴むことが多い.また,ひらさんの講演資料…
g:plan9reading:keyword:tcpinit()から読みはじめるってのは間違ったかな.ちょっと目を通せばわかるけど,TCPっぽい処理ってのは全然ない.で,次はg:plan9reading:keyword:tcpconnect()から.ACK処理用のカーネルスレッドを作るので,スケジューラ関係がい…
ロック関係がまだ続いていて,g:plan9reading:keyword:iprint()のようなコンソール出力系や,g:plan9reading:keyword:microdelay()のような時間管理系の関数が出てきた.
今週はid:kosakiさんのmalloc話があるらしい.時間が微妙だけど参加できるかな. それまでにPlan9のmalloc(2)をひらメソッドしておくのもいいかも,なんてね.おそらく極めてオーソドックスな実装になっていると思うけど.カーネルもlibcもmalloc()はPoolと…
ボトムアップにやろうとすると,この辺の同期排他プリミティブに行き着いちゃうのかな. g:plan9reading:keyword:inccnt(),g:plan9reading:keyword:deccnt(),g:plan9reading:keyword:tas()あたりを読む.まだ,ネットワークっぽいところにはほど遠い.しか…
以前,あろはさんに「ひらメソッドどうよ」とコメントを受けたが,昨日,ひらさんにお会いして,ちょっとやってみようかなという気になる.ただ,サーバ立てるのはおっくうだな.はてなダイアリー使って,うまく回せないものか? Wikiじゃなくて,blogを使う…
前回,9PとNFSでは,ステートフルかステートレスかという違いがあると書いたけど,NFS version 4は,ステートフルになったんだった.昔,そんな記事を読んだ記憶があったけど,すっかり忘れていたな.ステートレスでうれしいのは,サーバが状態を持たないの…
昨日はファイルサーバの雛形について書いたが,9Pプロトコルをハンドリングするライブラリlib9pを使ったので,実際にどんなメッセージがやり取りされているかわからなかった.そこで,今日はメッセージのやり取りについて具体的に見ていこうと思う. lib9pは…
続いて,read/writeの中身を埋めていこう.コードを解説する前に,一つおさらい.「プロセスグループ」にも書いたように,各ファイルにはQidというファイルサーバローカルで,ユニークな識別子が付けられている.以下のコードでは,このQidを利用して,ctlフ…
何度も書いているが,Plan9ではすべての資源,サービスはファイルに抽象化される*1.そして,資源をファイルに抽象化する実体がファイルサーバである.UNIXとは異なり,ファイルサーバはカーネル内で動作するのではなく,ユーザアプリケーションである.今日…
Francisco J Ballesteros氏によるテキストのドラフトが公開された. Introduction to Operating Systems Abstractions Using Plan 9 from Bell Labs まだ,ぱらぱらとしか目を通していないが,400ページ近くの労作だ.目次はこんな感じで,一通りの内容は網…