Linux是Unix吗?


Answers:


224

这取决于您所说的“ Unix”和“ Linux”的含义。

  • UNIX是一个注册商标公开组。商标的历史悠久,目前尚不清楚,由于“ Unix”被广泛用于类似Unix的系统(参见下文),因此未对其进行通用化。当前,Open Group将商标的使用授予任何通过Single UNIX 认证的系统。另请参阅为什么在整个Internet上都提到Unix?

  • Unix是一个于1969年在贝尔实验室诞生的操作系统。各种公司出售并且仍然出售从该原始系统派生的代码,例如AIXHP-UXSolaris。另请参见Unix的操作系统演变

  • 有许多类Unix的系统,它们为程序员,用户和管理员提供类似的接口。最早的生产系统是Berkeley软件发行版,该发行版逐渐从基于Unix的系统(即包含从原始实现派生的代码)演变为类似Unix的系统(即具有相似的接口)。有许多基于BSD或BSD派生的操作系统:FreeBSDNetBSDOpenBSDMac OS X等。其他示例包括OSF / 1(现已停产,它是商业化的类似Unix的非基于Unix的系统),极小(最初是用作教学工具的类Unix玩具操作系统,现在是生产的类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完全不同)。


70
而且不要忘了GNU代表“ GNU不是Unix”!
Alex

57
“ Gnu不是Unix”表示Gnu不是基于Unix原始代码,不是Gnu不想实现Unix规范。引用rms:“免费Unix!从感恩节开始,我将编写一个完整的,与Unix兼容的软件系统,称为GNU(适用于Gnu的Not Unix),并将其免费(1)赠送给所有可以使用它的人。”
jlliagre

8
如果Linux发行版想要获得UNIX的认证,则不必做很大的改变,也可以这样。但是我还没有听说有人为此花那么多钱花那么少的钱。
凯文·坎图

6
@Kevin:破火山口(现在已经以另一个名字而闻名)曾经在此工作,尽管他们并没有一路走好(他们似乎已经放弃了这个想法,而是在他们突然忘记他们曾经听说过的很早之前就推动了LSB。 Linux)。
吉尔斯(Gilles)2010年

4
@milkovsky不。正如我在回答中解释的那样,“ Linux”一词有两个含义。“ Android基于Linux”是正确的,含义1(内核)。“ Linux类似于Unix”的含义为2(操作系统)。
吉尔斯2015年

58

出于所有目的和目的,典型的现代Linux发行版(Ubuntu,Debian,Red Hat,Fedora,Slackware等)是Unix,但严格来说,没有任何系统可以未经认证就声称是Unix,因此人们说它们是Unix。类似于Unix。他们受到Unix的启发,并继续其文化。

这也适用于BSD系统。

Mac OS X已通过Unix认证,因此无论从名称上还是实际上都是Unix。(它实际上是基于BSD的)。

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


1
注意:Mac OS X内核不基于任何BSD内核。据我所知,用户模式部分基于FreeBSD,部分基于NetBSD。
0xC0000022L

2
今天的内核可能与BSD内核大不相同,但我认为它最初(至少部分地)基于它。
哈森

3
应该注意的是,FreeBSD是ATT Unix的直接后代,曾经包含ATT Unix代码。它不仅受到Unix的“启发”。
罗布

2
@ 0xC0000022L,我们现在走得更远:“早期版本的Mach具有单片内核,内核中包含BSD的许多代码。Mach3.0是第一个微内核实现。” 对于我来说,osxbook.com/book/bonus/ancient/whatismacosx/arch_xnu.html是一个权威来源。
poige

2
并得出结论:“ BSD负责的某些方面包括:流程模型用户ID,权限,基本安全策略POSIX API,BSD样式系统调用TCP / IP堆栈,BSD套接字,防火墙VFS和文件系统(请参阅Mac OS X文件系统以获取有关详细信息)系统V IPC加密框架的各种同步机制”。对我而言,这足以说明它基于BSD。面对现实。
poige

23

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

赋予Linux类似Unix的名称的主要事实是,它与w / POSIX(适用于Unix的可移植操作系统接口)标准几乎完全兼容,并且已经建立了一段时间。

另一个关键点是代码继承等,如Wikipedia上所示,Linux实际上并不是源自Unix来源,而是从头开始构建的(然而,这是有争议的)。

因此,从本质上讲,将Unix与Linux分开的主要因素是它的祖先及其所遵循的标准。


1
还有要考虑的Single Unix规范
丹尼斯·威廉姆森

我肯定会说BSD比Linux更接近Unix。由于BSD的许可证更为宽松,并且与AT&T UNIX紧密合作,因此许多BSD源代码及其API已用于商业Unix。Solaris和其他一些商用UNIX中的UFS文件系统直接来自BSD。另外,包括Linux在内的所有组件都使用Berkely Sockets API(不一定是源代码)是在BSD上开发的。
penguin359 2011年

3
在SCO与IBM陷入一片混乱之后,很明显Linux内核根本不包含Unix代码。
vonbrand 2013年

11

选择的答案对它进行了详尽的解释,但是您必须观看完整的纪录片,才能了解UNIX初始开发与Linux发行之间的所有详细信息。

首先,您必须考虑Linux是由linus和其他程序员制作的内核。他选择与GPL一起发布它,当时GPL是FSF(RMS和其他人员)颁发的许可证,他们也正在开发自己的内核和GNU。

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

我记得有一部纪录片,您应该认真观看,我发现它对您的编程文化很重要。

考虑“ * nix”时,您还需要考虑的另一件事是,所有内容都涉及POSIX和其他体系结构标准化的内容。它是OS设计/研究的主题,但它精确地定义了所涉及OS的工作方式,并且在您的内核使用其工具正常工作时至关重要。


实际上,POSIX现在被称为SUS(单一Unix规范)。
0xC0000022L

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

我知道SUS是POSIX的一部分。
vonbrand 2013年

链接到那部纪录片?
爱德华·托瓦尔兹

爱德华·托弗尔德斯对不起,我记不起标题了。它的主要特点是RMS,看起来像旧文档。
2015年

6

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

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

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

他对这个问题的回答是

我认为Linux现象非常令人愉快,因为它在Unix提供的基础上吸引了很多人。Linux似乎是最直接的Unix衍生版本中最健康的版本,尽管也有各种BSD系统以及工作站和大型机制造商提供的更正式的产品。我忍不住要观察,当然,“自由” Unix派生的世界似乎正遭受着与商业世界中已经发生并仍在发生的完全相同的分裂和冲突。


1

从历史上看,Linus Torvalds创建了Minix OS的改进克隆。Linux的开发并不专注于特定的平台和客户群,Linux开发人员具有多种经验和观点。对于供应商来说,诸如HP-UX,AIX,Solaris之类的OS大多已得到改进。

在Linux社区中,没有严格的标准工具或环境集。缺乏标准化导致Linux内部出现严重的不一致。对于某些开发人员而言,具有使用其他操作系统的最佳成就的能力是一个加号,但是在Linux上复制UNIX元素并不总是很方便,例如,当Linux内的设备名称可以从AIX提取时,而用于使用文件系统的工作重点是HP-UX。在不同的Linux发行版之间也发现了这种不兼容性。


0

Unix,最初是UNICS(非复杂信息和计算服务)。

Unix(商标为UNIX)是源自原始AT&T Unix的多任务,多用户计算机操作系统家族。开发工作始于1969年,并于1973年10月在Bell Abs外面宣布。

来自加利福尼亚大学伯克利分校(BSD),微软(Xenix),IBM(AIX)和Sun Microsystems(Solaris)等供应商的Unix的学术和商业变体。

  • BSD erkeley 小号 oftware d istribution)时,释放为几个开源开发项目正在进行,例如,FreeBSD中,OpenBSD的,NetBSD的,达尔文,和TrueOS提供了一个基础。
  • Xenix是Microsoft许可的用于各种微型计算机平台的Unix操作系统的已停产版本。
  • AIX(一个先进适用的 nteractiveË X ecutive)开发,由IBM为它的许多计算机平台销售。

Linux是围绕Linux内核构建的一系列免费和开源软件操作系统.Linux的定义组件是Linux内核,这是Linus Torvalds于1991年9月17日首次发布的操作系统内核。

Linux以称为Linux发行版(或简称发行版)的形式打包,供台式机和服务器使用。一些最受欢迎和主流的Linux发行版包括Arch Linux,CentOS,Debian,Fedora,Gentoo Linux,Linux Mint,Mageia,openSUSE和Ubuntu,以及诸如Red Hat Enterprise Linux的商业发行版。

用户界面(也称为外壳程序)可以是命令行界面(CLI),图形用户界面(GUI),也可以是通过连接到关联硬件的控件进行的,这对于嵌入式系统来说是常见的。对于台式机系统,默认模式通常是图形用户界面,尽管通常可以通过终端仿真器窗口或在单独的虚拟控制台上使用CLI。

  • CLI Shell是基于文本的用户界面,它使用文本作为输入和输出。Linux中使用的主要shell是Bourne-Again Shell(bash),最初是为GNU项目开发的。
  • GUI外壳是K桌面环境(KDE),GNOME,MATE,Cinnamon,Unity,LXDE,Pantheon和Xfce,尽管存在许多其他用户界面。最流行的用户界面基于X窗口系统,通常简称为“ X”。

GNU是一个操作系统,并且是计算机软件的广泛集合。GNU完全由自由软件组成,其中大部分是根据GNU项目自己的GPL许可的。选择GNU是“ GNU不是Unix!”的递归首字母缩写,因为GNU的设计类似于Unix,但与Unix有所不同,因为它是自由软件并且不包含Unix代码。Richard Stallman于1983年在麻省理工学院(MIT)人工智能实验室工作时,便开始了GNU操作系统的开发。

基本组件包括GNU编译器集合(GCC),GNU C库(glibc)和GNU核心实用程序(coreutils),还包括GNU调试器(GDB),GNU二进制实用程序(binutils),GNU Bash shell和GNOME桌面环境。


-7

Linux是Linus Torvalds和其他数千人开发的类似Unix的操作系统。
BSD是UNIX操作系统,出于法律原因,必须将其称为Unix-Like。
OS X是Apple Inc.开发的图形UNIX操作系统。

Linux是“真实” Unix OS的最突出示例。它可以在任何设备上运行,并且比BSD或OS X支持更多的硬件。当我比较BSD和Linux时发现了一个有趣的报价:

当一群PC黑客坐下来尝试为PC编写Unix系统时,就会得到Linux。当一群UNIX黑客坐下来尝试将Unix系统移植到PC时,您将获得BSD。

BSD比Linux更像Unix OS。同样值得注意的是,Apple使用了BSD和Linux组件。Apple在iOS和OS X平台上使用Debian和Ubuntu的APT。它基于BSD。(尽管内核是Darwin,这是它自己的内核。鸭嘴兽Beastie是达尔文的吉祥物,因为他是BSD的Beastie和鸭嘴兽之间的混合体。)

如果要使用“真正的” Unix操作系统(可以在任何环境下运行并支持大量硬件的操作系统),请尝试使用Linux。
如果您需要低端硬件支持和麻烦(我知道我会讨厌很多,但我不在乎),请使用BSD。
如果您想花费$ 1000以上,请使用OS X和iOS。(再次,我可能会讨厌很多。)

我是Linux的长期用户,从90年代到2000年代不时地使用它,然后退出使用了一段时间,但在2012年中左右再次将其用作永久操作系统,因此我可以将其推荐给任何需要的人尝试除Windoze之外的其他方法。


4
随着Linux最近随着Wayland / systemd / etc的变化而变化,它正越来越多地从一个类似Unix的系统中消失,成为其自己的实体。它使自己与真正的Unix和类似Unix的系统不兼容,以至于这些实际系统对Linux表现出“不在乎”的态度。您的“建议”与您的建议相去甚远,让我同意您的看法,即您已经15年没有碰过这些东西了。
罗布

11
Linux不是操作系统,而是内核。
马丁·施罗德

3
苹果不使用Debian的APT。它确实包含一个完全不同的工具,称为APT(Java的注释处理工具)。越狱社区使用APT作为软件包管理器来违背Apple的意愿安装iOS软件。
2014年

4
实际上,这个答案中的几乎所有陈述都是错误的。“在很多系统上运行== Unix”是荒谬的。苹果从未发布过运行iOS的售价超过1000美元的系统。BSD是Unix和类Unix系统的家族,而不是单个OS。Linux是一种内核,可以与类似Unix的用户区(例如GNU),精简的Unix式用户区(例如eLinux或Android)或任何其他内容组合在一起。等等。
2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.