【问题标题】:Why would one add a custom system call to Linux kernel?为什么要向 Linux 内核添加自定义系统调用?
【发布时间】:2020-01-17 13:04:48
【问题描述】:

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

【问题讨论】:

  • 操作系统不断发展,并提供更多功能。如果当前的系统调用集无法实现某些新功能,则会添加新的系统调用。

标签: linux-kernel operating-system system-calls


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-04-25
    • 2018-09-15
    • 2015-05-05
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 2013-11-21
    相关资源
    最近更新 更多