linux
一応 select(2) も読んであったので説明しとく。メインループは非常に短いので抜粋。ここにはビットマップの転送処理は含まれていないので注意。max_select_fd() の前後が rcu_read_lock() と rcu_read_unlock() で囲まれているのは、ドキュメント (Document…
よく C10K 問題とかいって epoll(7) の話が出てきて select(2) 遅いね poll(2) 遅いねってなるんだけど、正直なところ、これらのシステムコールを実際に使ってコードを書いてみたひとはどのくらいいるのだろう。ましてや eventpoll が何やってるか知っている…
追記: コードに深刻な勘違いがあったので修正。前回は、ひとまず次のような機能を実装したモジュールを書いた。 ディレクトリを開く ディレクトリのエントリの一覧を取得する ディレクトリのエントリの属性を取得する ファイルを開く ファイルの内容を読む …
Fuseとか使えばまああっさりな話なんだけど、実際どう動くのかを知りたかったので書いてみた。もちろんFuseのソースは参考にしていない。それにしても本当に資料がないんだよなあ。結局ソース読み込んだ。というわけであんまりお作法的なものはよく分からな…
今週二度も同じような状況に出くわしたので書いておこう。まずは、nVidia のプロプライエタリなドライバをビルドする際に題名にあるエラーに遭遇した。調べてみると、/boot/System.map から paravirt_ops のアドレスを調べ、--defsym オプションで強制的にシ…
いくつかの *nix では sendmsg() / recvmsg() システムコールで他プロセスに fd を送信できたりします。送信元のプロセスでファイルロックを行った場合、送信先で同じ fd にファイルロックを行うとブロックするのでしょうか。出勤途中に猛烈気になったので確…
追記 (2008/3/6): kernel-2.6.9-18.18.EL で修正されました。 Red Hat Enterprise Linux 4 (RHEL4) のカーネルヘッダは、2.6.9 にもかかわらず、2.6.16 から導入されたKernel Mutex: linux/mutex.hをセマフォでエミュレートする互換ヘッダパッチが当てられて…