Linux基础之内核态与用户态

来源:互联网 发布:javascript代码例子 编辑:程序博客网 时间:2024/05/16 20:28

Linux体系架构

Linux系统架构
内核作用:

  1. 向下控制硬件资源;
  2. 向内管理操作系统资源:包括进程的调度和管理、内存的管理、文件系统的管理、设备驱动程序的管理以及网络资源的管理;

内核态和用户态:
  由于计算机系统的各种硬件资源是有限的,为了保证每一个进程都能安全的执行,处理器设置了两种模式:“用户态”与“内核态”。应用程序默认运行在用户态下,当应用程序需要执行一些容易发生安全问题的操作时,需要转换为内核态执行,例如I/O操作,修改基址寄存器内容等。而连接用户模式和内核模式的接口称之为系统调用。
  
内核态和用户态的切换:
  应用程序代码运行在用户模式下,当应用程序需要实现内核模式下的指令时,需要从用户态切换到内核态:应用程序先向操作系统发送调用请求,操作系统收到请求后,执行系统调用接口,使处理器进入内核模式。当处理器处理完系统调用操作后,操作系统会让处理器返回用户模式,继续执行用户代码。如下图所示:
        上线文切换
        
内核空间和用户空间:
  进程的虚拟地址空间可分为两部分:内核空间和用户空间。进程的内核空间中存放的是内核代码和数据,而用户空间中存放的是用户程序的代码和数据。不管是内核空间还是用户空间,它们都处于虚拟空间中,都是对物理地址的映射。

原创粉丝点击