Linux中为什么要分离用户空间和内核空间
我想了解是什么让Linux实现用户空间和内核空间的分离?
我有一些基本的了解,但我想了解更多细节。
- 如果用户允许访问硬件,则更容易出现
- 可移植性错误。
I am trying to understand what makes the linux to go for sepration of user space and kernel space ?
I have some below basic understanding but I want to know more details.
- If user allows the access to hardware it is more prone to errors
- portability reasons.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您忘记了最重要的原因之一:以便可以强制执行安全控制(例如,根访问与非根访问、文件权限、应用程序内存空间隔离等)。
如果用户代码与内核代码具有相同的访问权限,则用户代码可以绕过内核中所有与安全相关的簿记数据。例如,普通用户可以将当前的 uid 字段覆盖为 0,自动使他们成为 root。
You forgot one of the most important reasons: so that security controls (e.g., root vs non-root access, file permissions, application memory space isolation, etc.) can be enforced.
If user code had the same access as kernel code, user code could bypass all the security-related bookkeeping data in the kernel. e.g., a normal user could then overwrite the current uid field to 0, automatically making them root.