まごろく先生ありがとうございました。
まずはぼやっと理解するだけでも良いということので、ぼやっと理解したことを書きたいと思います。
と思ったのだけれど
勉強会から時間がたってしまい、ぼやっとがもやっとになってしまったorz
勉強会後に行われた薄い本を肴にした飲み会などの感想もまじえて書きたいと思います。
もやっと理解したことをまとめると
- 上と下のレイヤーの両方を理解しているプログラマは少ない。
- 両方理解しているというのは強み
- 基本的な構造は変わっていないので、古いけれどunix v6を読んだ方が理解が早いかもね
- 構造化プログラミング
- 必ず呼ばれた所に戻る。callされたところにreturn
- OSがブートしてinitプロセスが生まれる所瞬間を見た。
- boot loaderが少しずつプログラムを読んでいき最終的にinitプロセスにfork(?)する
- procとuser構造体がある
- procの配列をforで回してシーケンシャルにアクセスしてるけど、プロセスの数が少なかった当時はこれが最速だったのかも
- 今はもうこんな作り方していないはず。
- だからソースを全部理解しようとしない、薄目で見る。
- procの配列をforで回してシーケンシャルにアクセスしてるけど、プロセスの数が少なかった当時はこれが最速だったのかも
- 割り込みがあると、どこぞに定義された値と比較して、そこにかかれた処理を行う。
- みんなが大好きなSIGSEGVとかのシステムコールを、トラップで待ち受ける。
- 電源の周期を使ってスケジュール管理している??
- 電源の60Hz -> 1秒間に60回クロックアップ
うーん、半分以上忘れたか理解できてない感・・・
突発に行われた薄い本読み会
復習も兼ねて、v6の薄い本をお酒の肴にしてあーだこーだ言い合う会が行われました。
会場はCafe Bar La mia
超楽しかった。
@mgwsuzukiさんが書いてくれた実メモリを仮想メモリにマッピングする超簡単図
下位bit(0-12)は実メモリにそのまま突っ込む。
残りの3bitで8つあるレジスタ(?)を指定して、5bitを特定する。
この方法だと、メモリサイズによって用意しなければいけないレジスタ(?)の数が増えてしまうので
薄い本のように計算など工夫してメモリマッピングしている。
- szukiさん曰くOSの実装を理解するにはエミュレータを書くのが早いよとのことw
- 6なエミュレータのxv6なるものがあるということ。
- a.outを実行するとloaderがぼっち空間を作成してmainを呼び出す
- RGBの517
もうたのしくてお酒がすすむことすすむことw
またやりたいです!
ギー沖Lions本よみよみ会
開催されてることを知らずに遅れて途中から参加
輪講形式にすることにほぼ決まりかけていたのですが
Lions本を輪講で講師するのは、ちょっとぼくにはレベル高すぎて無理!とわがまま言って
まずは薄い本とまごろく先生のプレゼン資料を理解するところを目指すことになりました。
後からきてごちゃごちゃ言ってごめんなさい;;
次回は4/22にギー沖で読み会が行われるそうです!
Lions本よみよみ会懇親会
@balbakoさんとまたまたv6の薄い本を肴に一杯
深い話を聞けて良かったし、やっぱり楽しかった。
今から最低辺を勉強するならハードウェアをから始めるのが良いとのこと