system call (syscall) は、user-space のプログラムが kernel にサービスを要求するために使う仕組みです — ファイルを開く、ネットワークデータを送る、メモリを確保する、プロセスを作る。これらの操作はハードウェアに触れたり他のプロセスに影響したりするため、kernel だけが実行でき、syscall は意図的に保護境界を越えます。
user mode と kernel mode
CPU は (少なくとも) 2 つの特権レベルのいずれかで動作します:
user mode → restricted: no direct hardware access, no privileged instructions
kernel mode → full access: hardware, all memory, privileged CPU instructions
通常の関数呼び出しは user mode のままです。syscall は制御された で kernel mode に入り、信頼された kernel コードを実行し、そして戻ります:
