据我所知,Android 运行在用户空间(然后,由于 Linux 在用户空间的 GPL 上有例外,因此不必遵守 GPL)。
我想知道(没有特殊原因)GNU(Linux 发行版中使用的)是否实际上也只在用户空间中运行?
答案1
在 Linux 系统上,唯一运行的代码不是用户空间中是内核代码,或注入内核的代码(例如使用 BPF)。各种 GNU 程序在用户空间中运行。
(这里有一个微妙的区别,与问题没有直接关系,但无论如何值得指出 -流程在用户空间和内核空间中运行:代表用户空间程序处理的内核请求被视为在调用进程中运行;但它们运行时不涉及调用程序提供的代码,这就是 GPL 在内核边界停止的原因。)
答案2
Grub 是一个 GNU 项目,它不在用户空间中运行,所以如果你想在这个问题上赢得赌注,你可以使用这个技术。
答案3
为了完成@StephenKitt的回答并简化,Linux 是内核,而 GNU 是构成整个操作系统的程序。所以是的,GNU 软件在用户空间中运行。
确实有Linux,而且这些人正在使用它,但它只是他们使用的系统的一部分。 Linux 是内核:系统中将机器资源分配给运行的其他程序的程序。内核是操作系统的重要组成部分,但它本身并没有什么用处。它只能在完整的操作系统环境中运行。 Linux通常与GNU操作系统结合使用:整个系统基本上是GNU加上Linux,或者GNU/Linux。所有所谓的“Linux”发行版实际上都是 GNU/Linux 的发行版。