1.系统调用:
操作系统服务之所以通过系统调用的方式供用户使用,其根本原因是对系统进行“保护”。程序的运行空间分为内核空间和用户空间,其程序各自按不同的特权运行,在逻辑上相互隔离。应用程序不能直接访问内核数据,也无法直接调用内核函数,他们只能在用户空间操纵用户数据,调用用户空间函数。但在很多情况下,应用程序需要获得系统服务,这时就必须利用系统提供给用户的特殊接口--系统调用。
系统调用是应用程序获得操作系统服务的唯一途径。
系统调用与库函数的区别:库函数可以隐藏访管指令的细节,使得系统调用更像函数调用,对用户隐藏系统调用,这样在改动内核时不会影响应用程序的正确性。但是库函数属于应用程序,在用户态运行,系统调用属于系统程序,在核心态运行。
2.内核:是一组程序模块,作为可信软件来提供支持进程并发执行的基本功能和基本操作,常驻留在内核空间,运行于核心态,具有访问硬件设备和所有主存空间权限,是仅有的能执行特权指令的程序。
内核的一些属性:
(1)内核是由中断驱动的
(2)内核是不可抢占的
(3)内核部分程序在屏蔽中断状态下执行
(4)内核可使用特权指令