システムコール
MenuFedora 上で、kernel source を install する。
以下を参考にすると良いらしいです。
http://fedoraproject.org/wiki/Docs/CustomKernel
3.6.6 を使うこと。kernel.org から、取ってきても良い。
運が良ければ、先輩たちが既に用意してくれているはず。
kernel を compile する
kernel を gdb 用に作成する
sudo yum install ncurses-devel make menuconfig make >& ers & disown %m exit
VirtualBox や VMWare Fusion を使って、Linux kernel を gdb に接続する
VM を定義している xml を debug 用に調整する
elf を知っている gdb を VM に接続する
ユーザレベル
Unix の system call read が、特権命令を呼び出す部分のアセンブラを gdb のdisassembler で調べよ。
ia32 (naha/nirai/iMac) intel64 (Mac OS X) Fedora 13 (i32/intel64)について、それぞれ調べる。
Option: glibc のどこで、それは定義されているかを調べる。
システムコールテーブル
arch x86_64 に関して以下のことを調べるがカーネル内部でシステムコール番号から関数ポインタに変換するテーブル。
select の番号はいくつか?
Fedora 17 について調べて下さい。
ファイルディスクリプタ
read が参照するファイルディスクリプタのカーネル内部での構造
fs/read_write.c を読む SYSCALL_DEFINE3(read, unsigned int, fd, char __user *, buf, size_t, count) struct の名称とソースファイル名を示せ。
ファイルディスクリプタの排他制御
ファイルディスクリプタ参照する際の排他制御はCレベルではどこでおこなわれているか。