2008-11-01から1ヶ月間の記事一覧

システムコールの実装

ローダはとりあえずこの間簡易的に実装したものを使うことにして、とっととシステムコールを実装してみた。システムコールのテーブルは、こんな感じに void *syscall_functions[SYSCALL_MAX] = { (void *)putchar, (void *)getchar, (void *)getattr, (void …

PC/ATの割り込みコントローラ

http://hira.main.jp/wiki/pukiwiki.php?init_8259A()/linux2.6 Linux のスリープ処理、タイマ処理の詳細を見る - naoyaのはてなダイアリー 割り込み OS-OMicron.org PC/ATの割り込みコントローラについて少々調べてみた。x86 CPUには外部割込みの入力ピンが…

新宿御苑 呉さんの厨房

胃がやられてしまって調子が悪くて気分も乗らない日に、試してみたお店。 台湾料理って言ってるからよーするに中華だよなぁ、重そうだなぁ・・・ と思って入ってみたら、お粥はあるし、卵と青梗菜の炒め物はやわらかくて薄めの味付けで、胃に良く味も優しい…

新宿御苑 カレー麺 実之和

安く飯を食おうと思って御苑をウロウロしてるうちにふらっと入ってみた。カレー麺ってなんだそれ?とか思いながら頼んで食べてみた。・・・マズイ。 麺は普通だ。しょうゆラーメンにすれば美味しく食えるだろう。 ルーも普通だ。カレー南蛮にすれば美味しく…

新宿御苑 タートヴァン

ビーフシチューを食べた時のメモ 会社の同僚の方が日記に書いていたのをみて良さそうだったので行ってみた。もう少しフレンチっぽいのかなー、とか思っていたが、割と洋食っぽいというのか何と言うのか、お箸とお味噌汁とか出てきてあれっ?と思った。 メニ…

ローダのテスト

ローダっぽいものを作ってみた。 きちんと関数定義するでもなく、ユーザランドへのメモリ割り当てはユーザランドプログラムとカーネルの双方で予め当たらないように定義(ユーザランドはコンパイル時にロード先アドレスをリンカスクリプトで設定)、カーネル…

ELFパーサ

とりあえずELFパーサの前段階としてFreeBSD上でELFヘッダをダンプするプログラムを書いている。このあたりが参考になる: ELF Format http://www.linux.or.jp/JM/html/LDP_man-pages/man5/elf.5.htmlヘッダ構造は複雑ではないからパーサはすぐ作れそうだが(…

ディスクドライバ・ファイルシステム

http://pub.ne.jp/wakapon/?cat_id=49945 d1153r17.pdf http://community.osdev.info/index.php?ATA この辺を参考に、i386版のディスクドライバを簡易実装してみた。 MIPS版はgxemulのtestmachine向けのものが既にあるのでこれを流用。 昔書いたFAT32実装と…

Ubuntuをアップグレードしたら・・・

自宅のデスクトップPCのUbuntuをアップグレードしたら、Xがあがらなくなった。 Bug #292214 “Xinerama broken since intrepid on MGA” : Bugs : xserver-xorg-video-mga package : Ubuntu どうやら、これが原因らしい。。 とりあえずXのパッケージを古いのに…

陳水扁逮捕

http://sankei.jp.msn.com/world/china/081112/chn0811122121009-n1.htm わざわざカメラマンの前で手錠をかける警察(=国民党)も、わざわざそれを大げさにこちらに見せるパフォーマンスをしたり殴られたとか言ってみたりする陳水扁側(=民進党)も、どち…

shiitakeでのユーザランド・システムコール実装

shiitakeでMIPSのシステムコールを受ける実装を試してみた。 でも、まだカーネル内関数をユーザモードでちょっと動かしてみただけ、というレベル。 やっぱりディスクとファイルシステムを実装してELFローダをつけるのが筋かなぁ。 しかし、仮想メモリを実装…

NetBSD-current /sbin/initが起動されるまで(5)

forkされたプロセスがどう動くのか見てみる。コンテキストスイッチが起きると、mi_switch()が呼ばれる。 /* Pick new LWP to run. */ if (newl == NULL) { newl = nextlwp(ci, spc); } nextlwp()によってforkされたプロセスが次のプロセス(newl)に選ばれる…

小岩 はるかぜ

寒いからラーメンだー、っつってまた食いに行った。この間普通の塩ラーメンをいただいたので、今回は「情熱の赤い塩ラーメン」とかいう変わったのを頼んでみた。 ・・・味も変わっていた。うーん。普通の塩の方がおいしかったなぁ。 別にこれが美味しくない…

田母神論文問題

http://fukushimak.iza.ne.jp/blog/entry/784577/ 産経新聞の福島香織さんが田母神さんの処分について良い所を突いている。現行憲法に反する発言、政府見解に反する発言を公にすれば、不必要な対外摩擦を引き起こし、国民の憲法および政府に対する不信感をさ…

若き”紛争屋”

http://sankei.jp.msn.com/life/trend/081108/trd0811080327004-n1.htm http://sankei.jp.msn.com/life/trend/081109/trd0811090406000-n1.htm伊勢崎 賢治氏の武装解除は以前読んでいて、こういう仕事をやってる日本人も居るのだなと大変興味深く思ったのだ…

MIPSでのシステムコール実装

MIPSにはsyscallというopcodeがあって、呼び出すとSyscallExceptionを起こす。 これを使ってシステムコールを実装出来る。NetBSDでは、v0にシステムコール番号を積み、通常の関数呼び出しと同じくa0-a3へ引数を積んで渡している模様。

マダン

今日はマダンで日替わりランチの豆腐チョリムというのに挑戦。(食べたことなかった) おいしいんだが、、、甘い。 ソースがトッポギのソースそのものなのである。 これはちょっと△。豚焼肉ランチもちょっとだけ横から貰ったけど、こっちは中々美味。

NetBSD-current /sbin/initが起動されるまで(4)

ちょっとシステムコールへの理解が弱くてそもそもの動きをきちんと把握し切れてなかった(反省)。ここらへんでDebianな人が似たような所を解説していたりするが、LinuxでもBSDでも基本的に考え方は同じはずで、 forkして新しいプロセスを作る fork先プロセ…

Ethernet device pollingのドキュメント類

Device Polling support for FreeBSD jpman search error

ひるがお 新宿御苑前店

火曜日に行ったラーメン屋の話。食べログで御苑のラーメン屋を見てたら、評判の良さそうなのが有ったので行ってみた。 レビューにつけ麺が美味いって書いてあったので、塩つけめんを頼んだ。スープはしっかりとした味だが、しょっぱ過ぎずダシが効いていて美…

「MSから買収提案あれば喜んで売却する」ヤフーCEO

Web

http://www.asahi.com/digital/internet/TKY200811060145.html?ref=rss ついにそこまで追い詰められましたか、、、って、結局売るって言うなら最初から売れよ。今度買ってもらえるとしても条件下がるぜ?

NetBSDとFreeBSDのmutex実装の違い(2)

初期化以外はあまり違いが無いっぽい。FreeBSDでのmutexの開放: void mtx_destroy(struct mtx *mutex); NetBSDでのmutexの開放: void mutex_destroy(kmutex_t *mtx); FreeBSDでのmutexロック・アンロック: void mtx_lock(struct mtx *mutex); void mtx_un…

NetBSDとFreeBSDのmutex実装の違い(1)

FreeBSDでのmutexの初期化: jpman search errorを参照。 void mtx_init(struct mtx *mutex, const char *name, const char *type, int opts); mutexはmutex変数、nameは名前、typeは「ロックの順序をチェックするとき、ミューテックスを区別するために、証…

Ethernet device polling(6)

SYSINIT()について見ていく。 init_device_poll()を登録している所を読んでみる: SYSINIT(device_poll, SI_SUB_CLOCKS, SI_ORDER_MIDDLE, init_device_poll, NULL); 5.3. Using SYSINITによると、引数はidentify the particular function dispatch data, th…

オバマが

かった!ヽ(´ー`)ノ

Ethernet device polling(5)

ハンドラへの引数として渡されるint countについて見ていく。 これは1回のpollingで最大何パケット受信するのかを決める変数で、netisr_pollmore/netisr_pollではこれを動的にスケジュールする事でパフォーマンスを最適化するように意図されている模様。さて…

Ethernet device polling(4)

ether_pollでは、netisrを使った定期的pollingの他にもCPUのidle時に実行されるidle pollが実装されているようだ。 以下、その実装を見ていく。SYSINITにより、poll_idle()を実行するプロセスidlepollが作成・実行される。 static struct proc *idlepoll; st…

Ethernet device polling(3)

i386/conf/NOTESより:##################################################################### # NETWORKING OPTIONS# # DEVICE_POLLING adds support for mixed interrupt-polling handling # of network device drivers, which has significant benefits…

Ethernet device polling(2)

内容が難しいのでコメントをでたらめに翻訳する事くらいしか出来なかった。 要するに、プロセススケジューリング全体にも、通信パフォーマンス的にも最適な間隔・長さでpollingを行う為に必要な計算を行っているらしい。前回も書いたが、netisr_poll()は単に…

浅草観光・東京時代祭り

浅草で「東京時代祭り」とかいうのがやっているらしいので、散歩がてら見に行ってみた。 ずいぶん長い間座って待ってたんだが、仮装した人達がちんたら歩いてるのがたまーに通りかかる感じで、とてつもなく退屈だった。仕方が無いので天丼を食べ、浅草を普通…