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.