勉強

どんなときにpanicで落ちる?UNIX V6の話(Lions本合宿のLTネタ)

これが下記を基にしたプレゼン資料です。https://docs.google.com/present/edit?id=0AdSF0S1K6MqxZGNwNjVqOWZfMHM4cno4bWQz&hl=en_US 他の方々の資料はここで見られます。https://sites.google.com/site/lionscommentaryonunixreading/2011autumncanp/result…

Lions’ Commentary on UNIX 読書会メモ#11

はじめに Lions本読書会#11に参加してきました。メモを残しておきます。今回は17章を読みました。 togetter 関連ツイートをtogetterでまとめました。 http://togetter.com/li/190744 終わりに 次回のLions本読書会は11月27日(日)に開催される予定です。「OS…

Lions’ Commentary on UNIX 読書会メモ#10

はじめに Lions本読書会#10に参加してきました。メモを残しておきます。今回は16章と17章の最初のほうを読みました。 togetter 関連ツイートをtogetterでまとめました。 http://togetter.com/li/180482 終わりに 次回のLions本読書会は9月18日(日)に開催され…

UNIX 6th code reading - ファイルシステム概要その2

はじめに 前回のエントリの続きで、今回もUNIX v6のファイルシステムを見ていきます。前回はブロックデバイスを中心に見ていきました。今回はコアメモリを中心に見ていきます。 コアメモリ中のファイル関係のデータ構造 inode構造体 アクティブなファイルのi…

UNIX 6th code reading - ファイルシステム概要

はじめに 今回からUNIX v6のファイルシステムを見ていきます。いきなりLions本18章を読み解いていくのは難しいと感じたので、まずはファイルシステムの概要をまとめてみました。今回はブロックデバイス上での処理を中心にまとめていきます。次回はコアメモリ…

Lions’ Commentary on UNIX 読書会メモ#8 おさらい その2

はじめに Lions本読書会#8でプロセス切り替えについてもおさらいをした方がいいという話が出ました。そこで解説動画を作ってみましたので公開します。アドレス周りの解説動画もあわせてご覧いただけると理解がしやすいと思います。 http://d.hatena.ne.jp/ta…

UNIX 6th code reading - ディスクキャッシュの効率化

はじめに 前回のエントリでバッファの状態遷移図を描きました。それに関連して、ブロックバッファはディスクキャッシュとして効率化が図られているということをまとめます。 ディスクキャッシュの効率を高めるには B_DONEフラグが立っているとき、そのバッフ…

UNIX 6th code reading - バッファの状態遷移

はじめに 前回のエントリでバッファに関する説明を書きました。ソースを追っているだけではバッファの状態遷移の仕方がわかりづらかったので絵を描いてみました。 各フラグの説明 主要なものだけ簡単に。詳細はThe UNIX I/O Systemを読んでください。 B_READ…

Lions' Commentary on UNIX 読書会メモ#8 おさらい

はじめに Lions本読書会#8で詰まった箇所がありました。それを整理し、解説した動画を作ってみたので公開します。 説明動画 大きな流れ アドレス周りのおさらい estabur( ), sureg( )のおさらい xalloc( )のおさらい 訂正&補足 「メモリアドレスの話」の絵…

Lions’ Commentary on UNIX 読書会メモ#8

はじめに Lions本読書会#8に参加してきました。メモを残しておきます。今回は14章を読みました。 togetter 関連ツイートをtogetterでまとめました。 http://togetter.com/li/151577 今回詰まったポイント 今回一番ひっかかったポイントはxalloc( )の4457行目…

UNIX 6th code reading - バッファ

はじめに 今回は17章を読み解いていきます。17章はバッファ操作に関する内容が書かれています。15-17章はお互いに関連しているので繋がりを意識しながら読むと理解がしやすいと思います。 バッファの概要 バッファという機構を用いてブロックデバイスを操作…

UNIX 6th code reading - RKディスクドライバ

はじめに 今回は16章を見ていきます。PDP11で採用しているRKディスクのドライバを追います。なんとこのデバイスドライバは150行くらいで書かれています。 RKのレジスタ RKをコントロールするためのレジスタがあります。これらのレジスタに適切な値をセットす…

Lions’ Commentary on UNIX 読書会メモ#7

はじめに Lions本読書会#7に参加してきました。メモを残しておきます。今回は13章のトレースから14章のsched()までを読みました。 togetter 関連ツイートをtogetterでまとめました。 http://togetter.com/li/141363 トレースの流れについて トレースの流れが…

PE勉強会#3参加メモ その3

このエントリの和訳です。http://d.hatena.ne.jp/takahirox/20110522/1306052298 はじめに このエントリは前回からの続きです。 http://d.hatena.ne.jp/takahirox/20110503/1304412918参考リンク 主催者のブログ。配布資料やtogetterまとめなど http://d.hat…

UNIX 6th code reading - 基本入出力入門

はじめに 今回は15章を見ていきます。周辺デバイスとの入出力に関する章です。 参考資料 The Unix I/O System Lions本で参考文献として挙げられている論文 2238クラブに置いてありました。感謝 http://www.tom-yam.or.jp/2238/ref/index.html UNIXカーネルの…

PE勉強会#3参加メモ その2

このエントリの和訳です。http://d.hatena.ne.jp/takahirox/20110503/1304411632 はじめに このエントリは「PE勉強会#3参加メモ」の続きです。http://d.hatena.ne.jp/takahirox/20110420/1303307111参考リンク 主催者のblogです。配布資料やtogetterまとめな…

PE勉強会#3参加メモ

はじめに PE勉強会(3)に参加してきました。学んだことを基に、数回に分けて実験したりメモを残したりしていきます。参考リンク 主催者のblog. 当日使用した資料やtogetterまとめなど http://d.hatena.ne.jp/n7shi/20110416 ATND http://atnd.org/events/1335…

Lions’ Commentary on UNIX 読書会メモ#6

はじめに Lions本読書会#6に参加してきました。メモを残しておきます。当初は13, 14章を読む予定でしたが、議論が白熱して13章の前半(トレースの前)までで時間が来てしまいました。進度は遅かったですが、今までで一番盛り上がった会とも言えそうです。さら…

PE勉強会#2 参加メモ

はじめに 少し前になりますがPE勉強会#2に参加してきたので、メモを残しておきます。 参考 ATND http://atnd.org/events/12049 n7shiさんのblog(当日の資料、当日のツイートをまとめたtogetterなど) http://d.hatena.ne.jp/n7shi/20110226 メモ PEとは PEと…

UNIX 6th code reading - スワッピング

はじめに 今回は14章の「プログラムスワッピング」を読み解いてきます。 スワッピング処理とは 高速であるが、高価・小容量である物理メインメモリ(コアメモリ)を効率よく使用するためにプログラムスワッピングという機構があります。コアメモリが足りなくな…

Lions’ Commentary on UNIX 読書会メモ#5

はじめに Lions本読書会#5に参加してきました。そのときのメモを残しておきます。今回は12章「トラップとシステムコール」を読みました。当初は13章も読む予定だったのですが、12章があまりにボリュームがあったため12章だけを詳細に追うことになりました。…

UNIX 6th code reading - トレース

はじめに 今回はトレースを見ていきます。 トレースとは トレースとは子プロセスがソフトウェア割り込みを受け付けるたびに、親プロセスが介入する機会が与えられる機構のことです。ptraceというシステムコールを使って、別のプロセスのデータなどを操作でき…

UNIX 6th code reading - signalシステムコール続き

はじめに 今回は第13章の続きを見ていきます。 grow grow( )は引数で渡されたspを含むようにスタックを拡張します。既にスタックがspを含んでいたら拡張はしません。絵で描くとこんな感じです。 4141-4142 : 既にスタックが十分大きければreturn. 拡張しない…

UNIX 6th code reading - signalシステムコール

はじめに 今回は13章の続きを見ていきます。ソフトウェア割り込み周りのソースコードを追っていきます。今回は本当に単なるメモ状態です。 ssig ssigはsignalシステムコールを実現します。u.u_signal[n]に値を設定します(u.u_signal[arg1]=arg2)。 3618 : si…

UNIX 6th code reading - ソフトウェア割り込み(シグナル)

はじめに 今回から13章を見ていきます。量が多いので数回に分けてメモを書いていくつもりです。今回はソフトウェア割り込み(シグナル)の概要を確認します。 ソフトウェア割り込み(シグナル)とは シグナルとは以下のようなことを実現する機構です。 ユーザプ…

UNIX 6th code reading - fork, exec, breakシステムコール

はじめに 今回は12章の続きを追います。システムコールのfork, exec, breakを見ていきます。Lions本ではexec, fork, breakの順に扱っていますが、fork, exec, breakの順に見ていきます。こちらの方が理解しやすいと思います。 fork & exec system call fork…

UNIX 6th code reading - システムコール

初めての方はこちらを参照 http://d.hatena.ne.jp/takahirox/20101024/1287923014 はじめに 今回はunix v6のシステムコールについてまとめました。システムコールの詳細を知らずに12章の内容を追うのが大変だったため、まずはシステムコールについてまとめて…

Lions’ Commentary on UNIX 読書会メモ#4

はじめに Lions本読書会#4に参加してきました。そのときのメモを残しておきます。本に沿った内容は読書メモの方に反映していきます。このメモでは本の内容の範疇から越えた話題を中心記録しています。今回は10, 11章を読みました。 メモ @oracchaさんのツイ…

UNIX 6th code reading - trap.c

初めての方はこちらを参照 http://d.hatena.ne.jp/takahirox/20101024/1287923014 はじめに 12章です。12章は長いので2回に分けます。今回はCで書かれたtrap(2693)を見ていきます。以前のエントリで書いたように、このtrapには785 or 799から飛んできます。…

UNIX 6th code reading - PDP11割り込みに関するまとめ

初めての方はこちらを参照 http://d.hatena.ne.jp/takahirox/20101024/1287923014 はじめに Lions本読書会#4にてPDP11の割り込み機構が話題に上がりました。 そこで、PDP11 handbookやWikiPediaなどで調べてまとめてみました。ハードウェアレベルの割り込み…