kernel
まごろくさんから 12 月で如何? との連絡が着信。 v6沖縄セミナ第二弾、ファイルシステム編、12月でどうでしょうか? http://twitter.com/magoroku15/status/252796784852746241 より引用 とり急ぎ専門学校 IT カレッジ沖縄さまに連絡を入れて開催可能な土曜…
例の小冊子の作者な @superhoge さんが以下な tweet をされている。 .textと.dataがそれぞれ1バイトの0410a.outファイルがあったとして、それをexecで実行したときにユーザAPRの値がどう設定されるか考えてみると楽しいかもよ>勉強中の方々 https://twitter…
朝練。朝練エントリばっかな気がしますがそこはスルーで。 signal ハンドラからの戻りが云々以来、当分読んでいないのだなということに気がついていたりしますがこちらもスルーで。 とりあえず buf な xref を追いかけてみようかな、と思ったのですが変数の…
ste_rmi4 というドライバに何故か一つだけ printk が残ってて、何でこんなことになってるのか、と言いつつパッチを作成したのですが、send-email なアドレスを調べようと TODO を見たら以下な記述が。 TODO ---- Wait for the official upstream synaptics r…
今日の昼、人がやたらに多い某スーパーのベンチにてアセンブラのトラップルーチンあたりを再確認。Lions' 本読み (93) なソレとカブりますが、もう少しきちんと纏めておきたいと思います。
昨日実施された #geektable にてユーザモードのスタックポインタはアセンブラの call1 手続きで更新されている、という解を @mgwsuzuki さんから伺うも今一つ納得できず。というか、このあたりの処理における具体的な副作用 (?) について完全に忘却の彼方だ…
#geektable にかいめ。今回は Google Hangout で東京からリモート参加な @libkinjo さんが接続なさるとのこと。 つうか 今回はヘコタれてた psig 手続きからユーザモードスタックを云々するあたりの謎を @mgwsuzuki さんが解決なさったらしく、そちら方面の…
9 月は今週末実施とのことで atnd が立てられております。 http://atnd.org/events/32216 今のところ、今回のお題は以下らしい。 Lions本をベースにv6 unix読み – スタックの妙技を読み解く 麦汁さん誕生祭 PICとRails – 台風そんのその後 ふふふ、WASABI PE…
朝練。バッファ操作の 17 章です。 基本的にここで言及されているバッファヘッダとバッファというものは 4535 および 4720 で静的にメモリ上に確保された領域になるはず。で、その領域がディスクキャッシュ (?) のようなものとして使われているみたい。
朝練メモ。昨晩の続きを。 なんとなく 15 章を眺めるに rkstrategy (5389) 手続きで入出力なリクエストを発行 rkintr (5451) 手続きは操作完了の割り込み で全部ヤッツケちゃってる風に見えます。こんなんでええのかなぁ。 とりあえず別途 pdp11 なマニュア…
ええと、swap 手続きで云々している bdevsw は strct bdevsw な配列になっており、その d_strategy という属性が手続きとして呼び出される形になってます。 5212 (*bdevsw[swapdev>>8].d_strategy)(&swbuf);それにしても定義のあたりがなかなかに微妙。以下…
朝練メモ。ついに 15 章に突入。 入出力完了待ち、なループがどうやって終わるか、に心を奪われています。 5214 while((*fp&B_DONE)==0) 5215 sleep(fp, PSWP);つうかまず sleep が何契機で wakeup されるか、てのもナニ。
昨晩 #台風そん でもごもごしてて expand で興味深い記述を見つけてますので、今日はそのあたりを掘削してみる方向にて。 手続き定義のコメントてきには以下になります。 2258 * コアがない場合、サイズの要求を調整したあと、 2259 * プロセスがスワップア…
#台風そん なエントリ日曜日版第二弾です。14 章の xalloc 手続きについて。 若干病み上がりで微妙なカンジなんですがそのままエントリ投入しちゃえ。
#台風そん なエントリ日曜日版です。なかなか体調が回復してないようで着手は夕方近くだったりしてます。明日は体調的に出社できるのかどうなのか。 それは良いとして今回は 14 章の xswap 云々の掘削を。 渡す引数は手続きのコメントに記述があるんですが引…
ええと #台風そん にのっかって 14 章再読に突入です。 とりあえず軽め設定ということで sched あたりを確認。Lions' 本によれば プロセス #0 が sched 手続きを実行 入出力操作待ち以外は runin ないし runout で sleep している とのこと。以前のエントリ…
Lions' 呑み会 (#geektable) にてプロファイリングが云々という話を耳にしたので諸々確認してみました。
シグナルハンドラから戻る時のユーザモードなスタックポインタ問題は suword にあるじゃないか、と言ってエントリまでできあがってたんですが、m[tf]pi 命令で push/pop するのはカレントスタックじゃねぇか、という事にエントリ投入直前で気づきました。 結…
こないだの #geektable でスタックポインタ二重化されてるとか Lions' 本に書いてないッスよね、とか言ってたら記述の存在を先ほど発見。260p です。 がしかし、シグナルハンドラから trap 乃至 clock 割り込みで割り込まれたユーザプロセスに RTT で戻るた…
rtt 命令で戻る、がビンゴらしい記述を発見。 From the fact that both PC and PSW are put on the user stack, and both need to be restored after signal handler is done, we can know that the signal handler returns with the rtt instruction instea…
以下なプログラムが simh の中でコンパイルできるのかどうか。 #include <signal.h> #include <unistd.h> static void sig_usr(int); int main(void) { if(signal(SIGUSR1, sig_usr) == SIG_ERR) printf("can't catch SIGUSR1\n"); if(signal(SIGUSR2, sig_usr) == SIG_ERR) prin</unistd.h></signal.h>…
現時点での結論。 4051 if((p=u.u_signal[n]) != 0) { 4052 u.u_error = 0; 4053 if(n != SIGINS && n != SIGTRC) 4054 u.u_signal[n] = 0; 4055 n = u.u_arg[R6] - 4; 4056 grow(n); 4057 suword(n+2, u.u_ar0[RPS]); 4058 suword(n, u.u_ar0[R7]); 4059 u.…
Lions' 本でハマッている割り込み、トラップからの復帰時のスタックの状態を確認すべく、simh のソースを読んでみることに。 とゆーのも昨晩の Lions' 呑み会またの名を geektable にて mgwave すずきさんから挙動が分からない時はシミュレータのソースを読…
psig の核心部分がイメージできてない。 なんとなく整理してみるに シグナルは発行されてすぐに割り込む訳ではなくて trap とか clock の処理の一部としてハンドラが起動される (正確には psig 手続きが呼び出される、かな) フレームポインタ (r5) は C の t…
psig の核心部分がイメージできてない、と言いつつスキ間時間で云々してる途中に以下なコンテンツにいきあたる。 In Unix, a process has two stacks, one active in kernel mode and one active in user mode. (snip The PDP 11 supports two stacks by sup…
なんとか gdb で云々できるようになったみたいですが諸々確認入れた方が良いらしい。 とりあえず $ make qemu-gdbで qemu を kick off して別端末で gdb で attach することはできてる模様。
気になったので sleep の呼び出し元を確認してみた。
朝練メモ。とりあえず unix/sys1.c の Page 3 あたりの_データセグメントを読み出す_部分の謎については調査保留ということで。
Lions' 本初心者な方々はたまに確認入れるのが吉。 http://www.slideshare.net/magoroku15/v6-unix-in-okinawa プロセス切り替えだとかユーザとカーネルのモード切り替えだとかなあたり、というか記憶容量限界気味なわし的に非常に有り難いです。
課題が以下らしい。 xalloc 確認 データセグメント読み出し部分の確認 つまりは estabur の確認だったりする件 xalloc した後にデータセグメント読み出しなナニの理解 列挙してあるナニにある通り、estabur 手続きの確認かな。