假设我想创建一个在 WDC 65C02 CPU 上运行的 Linux 版本。Linux 是如何“定义”的?操作系统需要满足哪些标准才能被视为 Linux,而不仅仅是“其他自制操作系统”?我计划直接用汇编语言编写这个,因为我发现 cc65 生成的代码效率有些低下。
答案1
“Linux” 是某一特定产品(操作系统内核),而不是标准或规范。与“UNIX”不同,即使操作系统与 Linux 达到 100% 兼容性,也没有流程将其认证为“Linux”。
换句话说,一个从头开始编写的操作系统内核在定义上并不是 Linux(就像 ReactOS 不是 Windows,尽管它是一个与 Windows 兼容的操作系统),尽管一个操作系统内核与“主线“Linux 源代码在某种程度上可能仍被称为 Linux。8086 CPU 的 ELKS 内核最初是 Linux 的一个分支,但很快就分化到只称自己为“类 Linux”内核的程度。
如果操作系统使用 Linux 内核,则该操作系统将被视为“Linux 发行版”。Android 可以称为 Linux 发行版(尽管有点牵强),因为它仍然在 Linux 内核上运行,而 Debian/kFreeBSD 或 Debian GNU/Hurd 不是 Linux 发行版,因为它们不包含 Linux 内核(尽管它们包含 Debian Linux 拥有的所有其他功能)。