Skip to content

9. User Mode vs Kernel Mode

Aspect User Mode Kernel Mode
Mode bit10
Who runs hereYour programsOS, drivers
Hardware accessNoYes
Memory accessOwn space onlyAll memory
Can disable interruptsNoYes
Crash impactOnly that processEntire system

Ring levels (x86, 4 rings): Ring 0 = kernel (most privileged); Rings 1–2 = device drivers (rarely used); Ring 3 = user programs (least privileged).

Entering kernel mode happens via a system call (most common — read(), write(), fork(), exec(), socket()), an interrupt, or an exception.

Performance cost: every syscall costs two mode switches (user→kernel, kernel→user), roughly 100–1000ns (register save/restore, pipeline flush, security checks). This is why batching syscalls helps, mmap() beats repeated read() for large files, and databases favor direct I/O.