システムコール

Menu

Fedora 上で、kernel source を install する。

以下を参考にすると良いらしいです。

http://fedoraproject.org/wiki/Docs/CustomKernel

これで出来なかったら、

    wget http://download.fedora.redhat.com/pub/fedora/linux/releases/14/Fedora/source/SRPMS/kernel-2.6.35.6-45.fc14.src.rpm
    naha:/usr/src/linux-2.6.35/arch/x86

このソースを参照しながら、カーネルのシステムコールの詳細を調べる。

以下のことを調べよ。


ユーザレベル

Unix の system call read が、特権命令を呼び出す部分のアセンブラを gdb のdisassembler で調べよ。

   ia32 (naha/nirai/iMac)
   intel64 (Mac OS X)
   Fedora 13 (i32/intel64)

について、それぞれ調べる。


システムコールテーブル

arch x86_64 に関して以下のことを調べる

がカーネル内部でシステムコール番号から関数ポインタに変換するテーブル。

ioctl の番号はいくつか?

Fedora 14 について調べて下さい。


ファイルディスクリプタ

read が参照するファイルディスクリプタのカーネル内部での構造

   fs/read_write.c を読む 
	    SYSCALL_DEFINE3(read, unsigned int, fd, char __user *, buf, size_t, count)
   struct の名称とソースファイル名

を示せ。


ファイルディスクリプタの排他制御

ファイルディスクリプタ参照する際の排他制御はCレベルではどこでおこなわれているか。


Shinji KONO / Mon Nov 12 16:44:10 2012