linux-kernel - 为什么要向 Linux 内核添加自定义系统调用?
问题描述
因此,我遵循了一个关于在 Arch Linux 上实现自定义系统调用的在线教程,该教程只需要一个字符串并将其打印到内核日志中。在完成教程并测试了系统调用后,我想知道内核开发人员在什么情况下会说“哦,让我们改变这个系统调用的工作方式”或“我们需要添加另一个”。我熟悉用户空间和内核空间的概念,以及为什么系统调用首先存在,但新系统调用的好处超出了我的范围。我将不胜感激对此事的任何见解,甚至是添加或修改某些现有系统调用的原因以及它如何影响内核的整体状态。
解决方案
你的直觉很好,培养他们。只有在极端压力下才能扩展内核接口。增加内核的表面会增加攻击的可能性,不必要地使已经很复杂的软件复杂化,并且很少会带来净收益。
微内核,甚至是小接口内核(如 plan9)已经降低了攻击面、可维护性和可靠性。最初的 UNIX 架构师写了一篇很棒的论文,解释了为什么内核必须是最小的。在最小特权领域讨论的所有内容都涉及到最小内核。
推荐阅读
- python - 在python中将列转换为dts列表
- python - 谁能启发我如何从鼠标处理程序显示具有给定 hsv 边界的跟踪矩形?
- python - Python selenium 如何处理不可交互的字段
- selenium - 如何使用 selenium 和 Python 在弹出窗口中单击“接受 cookie”按钮,当弹出窗口没有 x 时如何继续
- jwt - 从 JWT 迁移到 Identity Server 4,部署后无需重新登录网站用户
- ios - 带有 UIView 的 UIScrollView 无法选择任何子视图项
- firebase - Firestore 循环的数据插入问题
- javascript - 后退按钮不适用于简单的 SPA 设置
- python - 为什么生成器列表只返回最后一个生成器的元素?
- javascript - 将 javascript 对象输出为 html 表