我知道内核模式具有特权,因此在内核模式下,所有硬件功能和指令集中的所有指令均可用。我还知道,当我们进行过程调用(例如read())时,它又进行了系统调用。但是在此之前,它会陷入内核模式。我想知道如果每个用户程序都可以在内核模式下运行,那么内核模式将有什么用处,因为所有过程调用和系统调用均可用于用户程序。
有关操作系统的硬件,文件和其他安全关键部分的问题是,只能以正确的方式操作它们,否则会损坏操作系统(或发生其他不良情况)。
没有内核与用户的分离,应用程序本身就提供了与操作系统关键的部分一起工作的代码。此代码可以是任何代码。因此,格式错误的应用程序可能会损坏操作系统。
在内核与用户分离的情况下,应用程序接触硬件的唯一方法是系统调用。这仅允许运行与OS的安全性至关重要的部分一起使用的有限代码。应用程序无法修改该代码。
因此,正确编写了处理系统调用的代码后,操作系统可以保护其关键部分免受格式错误的应用程序的侵害。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句