A Brief Explanation of Kernel Space and User Space

Introduction

Within the Linux kernel, knowing how memory is separated is extremely important. As knowing what programs reside where, and the requirement on the system to move memory from one place to another, can provide a huge insight into the performance, or lack of, within a system. And when it comes to the world of networking (i.e NFV), where we need to move packets through a system, having this knowledge is even more important.

User/Kernel Space

Memory is divided into 2 areas, known as kernel space and user space (synonymous to the terms – kernel and user mode).

  • Kernel Space – Executing code has unrestricted access to any of the memory address space and to any underlying hardware. It is reserved for the highest of trusted functions within a system. Kernel mode is generally reserved for the lowest-level, most trusted functions of the operating system. Due to the amount of access the kernel had, any instability within the kernels executing code can result in complete system failure.
  • User Space – Executing code has limited access. API calls are used to the kernel to request memory and physical hardware access. Because of the restricted access, malfunctions within user mode are limited only to the system space they are operating within.
Rick Donato

Want to become a Linux expert?

Here is our hand-picked selection of the best courses you can find online:
Linux Mastery course
Linux Administration Bootcamp
and our recommended certification practice exams:
AlphaPrep Practice Tests - Free Trial