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

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:

主站蜘蛛池模板: 扶沟县| 岳阳市| 淳安县| 三穗县| 莒南县| 房产| 南丹县| 云浮市| 蕉岭县| 奉贤区| 精河县| 谢通门县| 安多县| 弋阳县| 涞源县| 渑池县| 萝北县| 陇西县| 新昌县| 高清| 沙坪坝区| 宝鸡市| 大宁县| 淮安市| 武汉市| 禄丰县| 含山县| 新乡市| 元江| 肃宁县| 建阳市| 陈巴尔虎旗| 绵竹市| 常宁市| 大丰市| 神木县| 仁怀市| 惠东县| 湖州市| 馆陶县| 客服|