受保护的系统控制层

应用需要使用处理器、地址空间和输入输出服务,同时系统必须限制它们任意修改其他程序或受保护状态。内核提供受控入口,并借助硬件执行模式与访问检查维持这种边界。

权限较高只说明可以执行某些受保护操作,不代表输入天然可信。内核仍须检查请求编号、参数与可访问地址,再按接口规则完成工作;错误检查会使保护边界失效。

参考:[1] [2]

请求与事件怎样进入内核

系统调用由应用主动请求服务;定时器或设备相关中断则让系统处理运行中的事件。入口代码需要保存必要状态,建立正确的处理环境,然后才执行相应服务或事件处理程序。

Linux文档还规定入口和退出阶段的状态更新顺序,涉及跟踪、中断记账及其他内核机制。系统调用与不同中断来源并非完全相同的路径,不能把所有入口简化成任意函数跳转。

参考:[3] [1]

内核运行不等于另一个进程

应用进入内核处理请求后,系统可以返回原任务,也可以在需要时调度其他任务。因此执行模式转换与任务上下文切换应分别解释,内核并不需要在每次调用时都把工作交给一个新的普通进程。

完整操作系统还包含库、工具和其他服务。RISC-V规范进一步说明,内核所面对的特权接口可以由更底层环境或虚拟机监控器提供;某个内核运行的模式也须结合具体部署理解。

参考:[1] [2]