Linux 内核(所有 POSIX 操作系统?)似乎只包含 300 多个系统调用。这是否意味着任何实现这些 API(直接或通过转换表)的操作系统都可以运行为 Linux 编写的软件(例如 Firefox)?
如果不是 - 什么是除此之外还需要吗?
是的,这是一个非常基本的问题,关于我刚刚开始讨论的主题(操作系统设计)。显然是StackOverflow 不接受,而我被引导到这里。如果不是 - 请告诉我。 (如果是这样,如果你知道它在哪里做属于,我会很高兴听到。)
答案1
Linux 系统调用的最小实现并不意味着应用程序能够正确运行。 Linux 应用程序可能采用的调用语义有很多:
- Linux 特定
ioctl
和fcntl
值 - 、 等中的 Linux 特定虚拟文件
/sys
。/proc
/bin
在国内外存在标准程序- 正在运行的进程的语义,例如
init
进程和(在某些情况下)DBus 等。