システムコール

Menu

Fedora 上で、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レベルではどこでおこなわれているか。


Shinji KONO / Tue Nov 20 16:13:03 2012