2011-01-01から1年間の記事一覧

PE判定ツール

はじめに 先日のエントリでも書きましたがPE勉強会#2に参加してきました。「ただ学ぶだけでは勿体無い。得た知識を基に何か作らねば」と思い、こんなものを作ってみました。 PE判定ツール 「あるファイルがPEフォーマットか」を判定するツールをCで書いてみ…

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…

自炊したデータのバックアップにはSkyDriveがいいかもしれない

はじめに ScanSnap 1500を使用して書籍の電子化を進めています。いわゆる自炊というやつです。自炊には「データのバックアップ」が重要になってきます。色々検討した末、Micro SoftのSky Driveというサービスを使用することにしました。なかなか良さげなサー…

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などで調べてまとめてみました。ハードウェアレベルの割り込み…

UNIX 6th code reading - クロック割り込み

初めての方はこちらを参照 http://d.hatena.ne.jp/takahirox/20101024/1287923014 はじめに 今回は第11章です。クロック割り込みが起きたときの処理を見ていきます。 クロック割り込み時に行われる処理 ディスプレイレジスタの更新(PDP11/40ではno op) 時刻…

UNIX 6th code reading - 割り込み・トラップルーチンその2

初めての方はこちらを参照 http://d.hatena.ne.jp/takahirox/20101024/1287923014 はじめに 今回は10章に出てくるコードの詳細を追っていきます。 fuiword まずは通常動作を見ていきます。 通常動作 845 : この時点でスタックの先頭にはfuiwordを呼んだ命令(…

UNIX 6th code reading - 割り込み・トラップルーチン

初めての方はこちらを参照 http://d.hatena.ne.jp/takahirox/20101024/1287923014 はじめに 今回は10章です。トラップと割り込みルーチンを追っていきます。各トラップ・割り込みの個別処理は次章以降で扱われます。本章では個別処理に入る前・入った後の共…

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

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

UNIX 6th code reading - 割り込みとトラップの概要

初めての方はこちらを参照 http://d.hatena.ne.jp/takahirox/20101024/1287923014 はじめに 今回は9章です。割り込みとトラップについてです。9章では割り込み・トラップの概要のみを扱っており、コードはほとんど出てきません。 割り込みとトラップ 割り込…

UNIX 6th code reading - プロセス管理

初めての方はこちらを参照 http://d.hatena.ne.jp/takahirox/20101024/1287923014 はじめに 今回は8章です。 プロセスの切り替えについてです。 割り込みなどもプロセス切り替えの一種ですが、9章の内容なので今回は扱いません。また、今回の内容にはスワッ…

UNIX 6th code reading - プロセス

初めての方はこちらを参照 http://d.hatena.ne.jp/takahirox/20101024/1287923014 はじめに 今回は7章の内容を扱います。 プロセスとは 1つのプロセスが、シェルやエディタなどの1つのプログラムに対応しています。 プロセスを切り替えることで、実行するプ…