首页 > 解决方案 > 为什么要向 Linux 内核添加自定义系统调用?

问题描述

因此,我遵循了一个关于在 Arch Linux 上实现自定义系统调用的在线教程,该教程只需要一个字符串并将其打印到内核日志中。在完成教程并测试了系统调用后,我想知道内核开发人员在什么情况下会说“哦,让我们改变这个系统调用的工作方式”或“我们需要添加另一个”。我熟悉用户空间内核空间的概念,以及为什么系统调用首先存在,但新系统调用的好处超出了我的范围。我将不胜感激对此事的任何见解,甚至是添加或修改某些现有系统调用的原因以及它如何影响内核的整体状态。

标签: linux-kerneloperating-systemsystem-calls

解决方案


你的直觉很好,培养他们。只有在极端压力下才能扩展内核接口。增加内核的表面会增加攻击的可能性,不必要地使已经很复杂的软件复杂化,并且很少会带来净收益。

微内核,甚至是小接口内核(如 plan9)已经降低了攻击面、可维护性和可靠性。最初的 UNIX 架构师写了一篇很棒的论文,解释了为什么内核必须是最小的。在最小特权领域讨论的所有内容都涉及到最小内核。


推荐阅读