内核模块程序运行在内核空间,应用程序运行在用户空间。这个概念构成了操做系统理论的基础。异步
事实上,操做系统为程序提供了一个统一的硬件视图。另外,操做系统必须保证各个程序的操做的独 立性,还得保护各类资源不能非法访问。完成上面这些任务的前提是必须将系统软件和应用软件区分 卡来。函数
每个现代的处理器都能具备上述功能。其中的一个方法是CPU能够运行在不一样的级别上。不一样的级 别表明具备不一样的功能,有些操做在特权级低的时候是不容许的;程序仅仅能够经过一些调用门实现 特权级之间的转换。UNIX系统就利用了这种硬件特性,使用了其中的两个特权级。全部现代处理器 都至少有两个特权及,而另外的一些,例如X86,提供了四个特权级。当多余两个特权级时,UNIX 利用最高特权级和最低特权级。操作系统
咱们一般将运行的模式成为内核空间和用户空间。这两个术语不只体如今特权级上,还体如今不一样的 内存映射方式和地址空间。进程
Unix程序从用户空间转移到内核空间有两种方式,一种是系统调用,另一种是硬件中断。执行系统 调用时内核代码在当前进程的上下文中运行,它是为当前进程而服务的,因此它可以访问进程的地址 空间中的数据。可是硬件中断的代码和进程是异步的,而且和任何一个特定的进程无关。内存
内核模块的代码运行在内核空间,而且可以扩展内核的功能。大多数的驱动程序要执行执行上面说 两类任务:驱动程序中的一些函数用来完成系统调用,另一些用来处理硬件终端。资源