Linux 是 Unix 吗?

Sha*_*off 203 unix linux history

因此,有许多不同版本的 Unix:HP-UX、AIX、BSD 等。 Linux 被认为是 Unix 克隆,而不是 Unix 的实现。所有“真正的”Unices 都是原版的真正后代吗?如果不是,Linux 与 Unix 的区别是什么?

Gil*_*il' 236

这取决于您所说的“Unix”和“Linux”是什么意思。


  • 严格来说,Linux是一种操作系统内核,其设计类似于 Unix 的内核。

  • Linux最常用作使用 Linux 作为其内核的类 Unix 操作系统的名称。由于内核之外的许多工具都是GNU 项目的一部分,因此此类系统通常被称为GNU/Linux。所有主要的Linux 发行版都包含 GNU/Linux 和其他软件。

  • 有一些基于 Linux 的类 Unix 系统不使用许多 GNU 工具,尤其是在嵌入式世界中,但我认为它们中的任何一个都不会取消 GNU 开发工具,尤其是GCC

  • 有些操作系统将 Linux 作为其内核,但不是类 Unix。最著名的是Android,它没有类似 Unix 的用户体验(尽管您可以安装类似 Unix 的命令行)或管理员体验或(主要是)程序员体验(“原生”Android 程序使用 API与Unix完全不同)。

  • 让我们不要忘记 GNU 代表“GNU 不是 Unix”! (75认同)
  • “Gnu 不是 Unix”意味着 Gnu 不是基于 Unix 原始代码,并不是说 Gnu 不想实现 Unix 规范。引用 rms:“免费的 Unix!从这个感恩节开始,我将编写一个完整的 Unix 兼容软件系统,称为 GNU(Gnu's Not Unix),并将它免费 (1) 赠送给所有可以使用它的人。” (65认同)
  • 如果 Linux 发行版想要获得 UNIX 的认证,它就不必进行太多更改,而且可以如此。但我还没有听说过有人为了在这一点上价值这么低的东西而支付所有的钱。 (9认同)
  • @Kevin:[Caldera](http://en.wikipedia.org/wiki/Caldera_Systems)(现在以另一个名字臭名昭著)曾经致力于它,尽管他们并没有一路走下去(他们似乎已经放弃了想法并推动 [LSB](http://en.wikipedia.org/wiki/Linux_Standard_Base) 而不是在他们突然忘记他们曾经听说过 Linux 之前)。 (6认同)
  • @milkovsky 不。正如我在回答中所解释的,“Linux”这个词有两个含义。“Android 是基于 Linux 的”是真的,意思是 1(内核)。“Linux is Unix-like”是真的,意思是 2(操作系统)。 (5认同)
  • @Abdul Unix-or-not 不是非黑即白的区别,而是 Cygwin 和 Windows 10 上的 Linux 仿真层(称为“Windows 上的 bash”,但实际上它可以做的不仅仅是运行 bash)类Unix。 (2认同)
  • @abdul 这不是模拟。Gnu/Linux 是 Unix(不是 UNIX)的实现。除了认证之外,还遗漏了一些愚蠢的部分。它是Unix。它不是像 Cygwin 那样的仿真。没有间接性。 (2认同)

has*_*sen 64

出于所有意图和目的,典型的现代 Linux 发行版(Ubuntu、Debian、Red Hat、Fedora、Slackware 等)是 Unix,但严格来说,没有经过认证的系统不能声称是 Unix,所以人们说它们是类Unix。他们受到 Unix 的启发,并继承了它的文化。

这也适用于 BSD 系统。

Mac OS X 是经过认证的 Unix,所以它在名称上和实际上都是 Unix。(它实际上是基于 BSD 的)。

需要注意的是,由于Linux本身只是一个内核,因此可以用来构建非类Unix系统(如Android)。

  • 应该注意的是,FreeBSD 是 ATT Unix 的直接后代,曾经包含 ATT Unix 代码。它不仅仅是受到 Unix 的“启发”。 (3认同)
  • 今天的内核可能与 BSD 内核有很大不同,但我认为它最初(至少部分)是基于它的。 (2认同)
  • @0xC0000022L,我们现在更进一步“Mach 的早期版本具有单片内核,内核中有大部分 BSD 代码。Mach 3.0 是第一个微内核实现。” 对我来说,http://osxbook.com/book/bonus/ancient/whatismacosx/arch_xnu.html 是一个相当权威的来源。 (2认同)
  • 并得出结论:“BSD 负责的一些方面包括:进程模型用户 ID、权限、基本安全策略 POSIX API、BSD 风格的系统调用 TCP/IP 堆栈、BSD 套接字、防火墙 VFS 和文件系统(参见 Mac OS X 文件系统)详细信息)System V IPC 加密框架各种同步机制”。对我来说,这足以说明它是基于 BSD 的。面对现实。 (2认同)

N J*_*N J 23

Linux 更像 Unix,所以简单地说,您可以将其称为克隆,BSD 也是如此(尽管 BSD 可以被认为更接近 Unix 而不是 Linux)。

赋予 Linux 类 Unix 称号的主要因素是它几乎完全符合随着时间的推移建立起来的POSIX(便携式操作系统接口 [for Unix])标准。

另一个关键是代码继承等,如维基百科所示,Linux 实际上并非源自 Unix 源,而是几乎从头开始构建(然而这是有争议的)。

所以本质上,将 Unix 与 Linux 区分开来的主要因素是它的祖先和它所满足的标准。

  • 在整个 SCO 与 IBM 的混乱之后,很明显 Linux 内核根本不包含 _no_ Unix 代码。 (3认同)
  • 还有 [单一 Unix 规范](http://en.wikipedia.org/wiki/Single_UNIX_Specification) 需要考虑。 (2认同)

jok*_*oon 11

选择的答案非常详尽地解释了它,但是您必须观看一整部纪录片才能了解 UNIX 初始开发和 Linux 如何退出之间的所有细节。

首先你要考虑到 Linux 是内核,它是由 linus 和其他程序员制作的。他选择使用 GPL 发布它,当时 GPL 是由 FSF(RMS 和其他人)颁发的许可证,他们也在开发自己的内核和 GNU。

我们通常所说的 Linux 首先是内核,以及最初来自 GNU 项目的所有其他工具。这两个项目在历史上是不同的,因为当时 FSF 的人放弃了内核,转而支持更好的 Linux 内核。

我记得有一部纪录片,你真的应该看,我觉得它对你的编程文化很重要。

在考虑“*nix”时你必须考虑的另一件事,也是涉及 POSIX 和其他架构标准化的东西。它是操作系统设计/研究的主题,但它准确定义了所涉及的操作系统的工作方式,并且当您的内核与其工具配合良好时至关重要。

  • @STATUS POSIX 是 SUSv2 的基础。Austin Group 后来作为创建 POSIX 的 IEEE 和拥有 UNIX 商标和 UNIX 规范的 The Open Group 之间的联合工作组成立。他们发布了 POSIX:2001,也称为 SUSv3。据我所知,它们是一回事。POSIX 仍在与 POSIX:2004 和 POSIX:2008 一起开发,这是 SUSv4 的核心。我认为 POSIX 还没有死。http://en.wikipedia.org/wiki/Single_UNIX_Specification (2认同)

Ant*_*gan 6

已经有很多很好的答案,但我认为伟大的Dennis Ritchie(Unix 的共同创建者)的观点将是对其他更具技术性的答案的有趣补充。

Dennis Ritchie 似乎认为 Linux 是合法的 Unix 衍生产品。在1999 年 LinuxFocus.org 的一次采访中,他被问到,

您对 Linux 的所有势头以及许多公司开始为其开发软件的决定有何看法?

他对这个问题的回答是

我认为 Linux 现象非常令人愉快,因为它强烈地依赖于 Unix 提供的基础。Linux 似乎是最健康的直接 Unix 衍生产品之一,尽管也有各种 BSD 系统以及来自工作站和大型机制造商的更多官方产品。当然,我不禁观察到,“自由源代码”的 Unix 衍生世界似乎正遭受着与商业世界中发生并仍在发生的完全相同的分裂和冲突。


归档时间:

查看次数:

100381 次

最近记录:

4 年,2 月 前