**system call(syscall)**은 user-space 프로그램이 kernel에 서비스를 요청하는 데 쓰는 메커니즘이다 — 파일 열기, 네트워크 데이터 전송, 메모리 할당, 프로세스 생성. 이런 동작은 하드웨어를 건드리거나 다른 프로세스에 영향을 주기 때문에 오직 kernel만 수행할 수 있으며, 그래서 syscall은 의도적으로 보호 경계를 넘는다.
user mode vs kernel mode
CPU는 (최소한) 두 가지 특권 수준 중 하나로 실행된다:
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 코드를 실행한 뒤 복귀한다:
