内核模式(kernel mode)
内核模式一种受信任的高特权模式,其程序代码能无限制地访问所有处理器指令集以及全部内存、硬件和 I/O 空间。内核模式执行内核代码。
用户模式(user mode)
用户空间保存的是应用程序的代码和数据,是程序私有的,其他程序一般无法访问,当执行应用程序自己的代码时,称为用户模式。
如果用户模式的进程想要访问硬件、IO空间,它必须通过系统调用向设备驱动程序或其他内核模式的代码发出请求。
用户模式模式的代码允许发生缺页,而内核模式的代码则不允许。
内核模式与用户模式之间切换?
当用户模式应用程序需要IO输入输出操作的时候,它就调用操作系统提供的API,进入内核模式。那么操作完成之后要继续执行应用代码,这个时候又回到了用户模式。
总结:用户模式就是执行应用程度代码,访问用户空间;内核模式就是执行内核代码,访问内核空间(当然也有权限访问用户空间)。