kernel
朝練メモ。土曜日にここも微妙だった start あたりを例の参考書籍と共に確認。
いやしかし昨日の勉強会ではずたぼろでした。読んではいますがそれが知識として脳に蓄積されない、というのは色々な意味で悲しい。とりあえずスタックフレームあたりの云々を再度確認しておく必要があるってことで csv 手続きとか cret 手続きのあたりを見て…
朝練エントリです。namei 手続き確認中。つうか、バッファ操作のあたりが完全に忘却の彼方というかあまりきちんと理解できてないのが敗因なカンジ。
今日も 30min で何ができるのか的ソレ。
writei 手続き確認着手。
今朝も残 30m ですが朝練。継続は writei 手続きの確認な模様。
30m しかないけど頑張ってみます。昨日の続き。 struct inode な i_flag 属性に IUPD なフラグが立ってた場合の挙動について確認続行。問題になっているのは creat 時、ディレクトリエントリに空きが無かった場合に 7609 dp->i_flag =| IUPD;している部分で…
なんとなく、ざっくりベースで何をしているか、な纏め (?) を書いてみる。 初期読み込み (7531-7540) cloop: (7542) 終了判定 (異常系および正常系) (7548-7551) エラーチェック (7559-7564) 処理対象となっているファイルがディレクトリで実行権限が付与さ…
昨日エントリ、TODO な印が付いた箇条書きがいくつかありますね。某所の記述も参考にしつつ確認してみます。つうか多分時間無いので 7607 のソレは別途で。 むむ namei ムズい。ざっくりなカンジで確認できてるのは 7570 から 7581 あたりで次に読み込まれる…
JAWS-UG 勉強会で営業 LT をさせて頂いたのですがそれをご覧になってた河野さんが以下な tweet 出力。 僕は Lion 本は勧めませんよ。intel64 のBSDなりLinuxなりを、VM上で gdb で trace する方がはるかに簡単でわかりやすい。 https://twitter.com/shinji_k…
UNIX 6th code reading - unix/namei.c を参考させて頂きつつ諸々確認を。
朝練エントリです。namei 手続きをもう少し。 7583 あたりから 7649 あたりまで、ディレクトリの探索をしてます。正確には 7592 の eloop なラベルから 7647 ということになるのかどうか。 で、このループ部分でいくつかよく分からない部分があるので控えを…
この週末に開催される JAWS-UG Okinawa の第三回勉強会に参加できることになったので参加登録をさせて頂いたのですが、ついでにってことで LT にも立候補させて頂き、喋っても良いですよ、ってことになってます。 ネタとしては来月開催予定な v6 UNIX 勉強会…
wdir 手続き関連、二日連続負けてます。とりあえず wdir (7477) というか namei (7518) が先、らしい。call graph 的に表現すると以下なのか。 まず open (5764) から。 +- open -+- namei | +- open1あるいは creat (5781) が以下。 +- creat -+- namei | +…
昨日の継続は wdir 手続きで writei (6276) した後に iput (7344) で inode の参照カウントを減らす根拠が分からない、でした。確か昨日は xref も順に確認したはずなんですがそのあたりも含め確認入れてみます。
気持ちを落ち着けて wdir を読む朝。
朝練エントリです。どうも maknode 手続きから呼び出される ialloc 手続きが忘れられない模様。というか色々と面白いです。
ある意味朝練。なんとなく 15 章から目を通すも、やっぱり RK ディスクドライバの章は微妙です。ちゃんと仕様書読んでないから、というのは承知してるのですがどうも微妙。 とは言え、色々確認している内にようやくなんとなく見えてきたのかどうか。 bread()…
ええと、何故に i-node を 100 個、というあたりが謎だったのですが、スーパーブロックに (creat 時に払いだす等の用途として) 100 個未満 (じゃないや、以下か) の予備 i-node のプールを持っているんですね。成程。
1100 から歯医者なので今 (0930) から 1h て若干中途半端。現時点の継続としては ialloc 手続きの二つめのブロックが何をしてるかワケワカ状態、というあたりか。 とりあえず手続き定義を睨んでみる事に (しかも薄目)。
昨日朝、スーパーブロックな構造体を確認してる最中でタイムアウトした模様。とりあえず maknode 手続き掘削中、というところまで把握。
V6 UNIX 沖縄セミナー第二弾も正式に開催決定ということで昨日の続きを。
ファイルのオープンに突入。いきなり存在していないファイルを open した場合の_生成_から、とのこと。
file という配列について。定義は unix/file.h Page 1 で以下。 5507 struct file 5508 { 5509 char f_flag; 5510 char f_count; 5511 int f_inode; 5512 char *f_offset[2]; 5513 } file[NFILE]; 5514 /* -------------------------- */
Section 4 突入。5507 にて定義されている file という配列はグローバルなファイル・ディスクリプタ (?) にあたるのかな。 open1 手続きから呼び出される falloc 手続きで 6854 for(fp = &file[0]; fp < &file[NFILE]; fp++) 6855 if (fp->f_count ==0) { 68…
ちょっとだけ昨日の続きを。_runrun を評価するのはここだけ_の_ここ_は 0771 の call 手続きです。とりあえず runrun を増分させてる手続きを確認してみます。それぞれを呼び出してるナニについては別途で。
朝練メモです。 6 章から再読してメモを云々、と書いてましたが別途な機会があれば、ということにします。とりあえず @mgwsuzuki さんに頂戴したプロセス切り換えなメモを確認しつつ最初のあたりをうろうろしてみることに。
先日の #geektable にちょろっとだけ顔を出させて頂いた折、@mgwsuzuki さんからプロセス切り換えに関するメモを頂戴したので検証がてらリハビリを。
@suprehoge さんの tweet からいくつか列挙。 例えば signal handler あたりのソレ。 Ah, I found it in signal(2) in UPM. Any other even label specifies an address in the process where an interrupt is simulated... https://twitter.com/superhoge/s…
まごろくさん達が云々している #v6_quiz なソレを見てて発見。確か @superhoge さんによればシグナルハンドラが rtt で戻る云々な記述もある模様 (未確認)。 マニュアル理解してからドライバ嫁てき tweet もあったりしてなかなかにアレ。 http://man.cat-v.o…