The software layer between hardware and applications. Manages CPU scheduling, memory, I/O, files, and security; provides processes/threads, an address-space abstraction, and system calls.