官术网_书友最值得收藏!

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.

System calls are the kernel's interfaces to expose its services to application processes; they are also called kernel entry points. As system calls are implemented in kernel space, the respective handlers are provided through APIs in the user space. API abstraction also makes it easier and convenient to invoke related system calls.

The following figure depicts a virtualized memory view:

主站蜘蛛池模板: 宿松县| 婺源县| 海盐县| 资兴市| 中超| 安庆市| 东乌珠穆沁旗| 兴文县| 江西省| 理塘县| 周至县| 舟曲县| 施甸县| 阳新县| 大悟县| 高邑县| 遂昌县| 上杭县| 兰溪市| 博野县| 富裕县| 安图县| 嘉荫县| 阜城县| 宁夏| 万全县| 清原| 肃南| 赤壁市| 邮箱| 辽宁省| 湟中县| 建宁县| 班玛县| 海盐县| 遂溪县| 石柱| 利辛县| 铜川市| 安新县| 额济纳旗|