SystemSoftware2010_02メモ
SystemSoftware2010_02のメモ
前回同様に2回目もメモ。
研究者にとって重要なのは、アイデアじゃなくて、最初は問題定義。これは、ビジネスの世界でも一緒だね。Seedsベースの一発勝負は、失敗することも多い。
What is system calls?
System call is the interface between user side and kernel side. System calls are divided into :
- process management
- file management and I/O
- file system management
- network
授業で例になってたのは、open()、read()、write(); そりゃそうか。
The number of system calls of Linux 2.6.19 is about 320.
How system calls are executed?
- user process: prepare argument such as filename.
- user process: execute trap or interruption. これで、割り込み発生して、カーネル側にうつる
- kernel: determine which system call is beign requested.
- kernel: verify permission. これ、セキュリティ・ホールになりがち。
- kernel: Do system calls here! 待たなくちゃいけないときは、ここでsleep。
- kernel: 構造体とかをスッキリしてreturn.
- user process: おかえりなさい。
ちなみに、setuidより
int $0x80
が、割り込みアセンブラ。interruptのこと。
How big?
around 5.6 + 1.3 M lines. 1/3 codes are about driver which is the biggest part of kernel codes. Second one is arch, such as CPU code.