- Mastering Linux Kernel Development
- Raghu Bharadwaj
- 255字
- 2021-07-08 09:47:12
Kernel and user space
Modern operating systems not only prevent one process from accessing another but also prevent processes from accidentally accessing or manipulating kernel data and services (as the kernel is shared by all the processes).
Operating systems achieve this protection by segmenting the whole memory into two logical halves, the user and kernel space. This bifurcation ensures that all processes that are assigned address spaces are mapped to the user space section of memory and kernel data and services run in kernel space. The kernel achieves this protection in coordination with the hardware. While an application process is executing instructions from its code segment, the CPU is operating in user mode. When a process intends to invoke a kernel service, it needs to switch the CPU into privileged mode (kernel mode), which is achieved through special functions called APIs (application programming interfaces). These APIs enable user processes to switch into the kernel space using special CPU instructions and then execute the required services through system calls. On completion of the requested service, the kernel executes another mode switch, this time back from kernel mode to user mode, using another set of CPU instructions.
The following figure depicts a virtualized memory view:

- Cocos2d Cross-Platform Game Development Cookbook(Second Edition)
- JavaScript:Functional Programming for JavaScript Developers
- Python GUI Programming Cookbook
- Unity Shader入門精要
- Getting Started with SQL Server 2012 Cube Development
- SQL Server 2016數據庫應用與開發
- Flutter跨平臺開發入門與實戰
- 程序設計基礎教程:C語言
- 軟件測試實用教程
- C語言開發基礎教程(Dev-C++)(第2版)
- C++ System Programming Cookbook
- Android Sensor Programming By Example
- R的極客理想:量化投資篇
- Python GUI Programming Cookbook(Second Edition)
- JSP應用與開發技術(第3版)