一、什么是内核?
内核是操作系统中应用连接硬件设备的桥梁
二、内核有什么作用?
对于一个现代的操作系统来说,它的内核至少应该提供以下 4 种基本能力:
- 管理进程、线程(决定哪个进程、线程使用 CPU);
- 管理内存(决定内存用来做什么);
- 连接硬件设备(为进程、和设备间提供通信能力);
- 提供系统调用(接收进程发送来的系统调用)。
三、内核是怎么工作的?
内核具有很高的权限,可以控制 cpu、内存、硬盘等硬件,而应用程序具有的权限很小,因此大多数操作系统,把内存分成了两个区域:
- 内核空间,这个内存空间只有内核程序可以访问;
- 用户空间,这个内存空间专门给应用程序使用;
用户空间的代码只能访问一个局部的内存空间,而内核空间的代码可以访问所有内存空间。因此,当程序使用用户空间时,我们常说该程序在用户态执行,而当程序使内核空间时,程序则在内核态执行。
应用程序如果需要进入内核空间,就需要通过系统调用,下面来看看系统调用的过程:
内核程序执行在内核态,用户程序执行在用户态。当应用程序使用系统调用时,会产生一个中断。发生中断后, CPU 会中断当前在执行的用户程序,转而跳转到中断处理程序,也就是开始执行内核程序。内核处理完后,主动触发中断,把 CPU 执行权限交回给用户程序,回到用户态继续工作。
标签:调用,用户,应用程序,内存空间,内存,内核 From: https://blog.51cto.com/u_10630401/5795132