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

评论

相关:为什么GNU / Linux SUS v3 +不兼容?

#1 楼

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


UNIX是The Open Group的注册商标。商标的历史悠久,目前尚不清楚,由于“ Unix”的广泛使用指的是类似Unix的系统,因此未对其进行通用化(请参见下文)。当前,Open Group将商标的使用权授予任何通过Single UNIX认证的系统。另请参见为什么在Internet上提到Unix时出现*。各种公司出售并且仍在出售从该原始系统派生的代码,例如AIX,HP-UX,Solaris。另请参见Unix的操作系统演变。
有许多类Unix的系统,它们为程序员,用户和管理员提供了类似的接口。最古老的生产系统是Berkeley软件发行版,它逐渐从基于Unix(即包含从原始实现派生的代码)演变为类似Unix(即具有类似接口)。有许多基于BSD或BSD的操作系统:FreeBSD,NetBSD,OpenBSD,Mac OS X等。其他示例包括OSF / 1(现已停产,它是一个商业的,类似Unix的非基于Unix的系统), Minix(最初是一种类似于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完全不同。)


评论


并且不要忘了GNU代表“ GNU不是Unix”!

– alex
10 Nov 16'7:05

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

– jlliagre
10 Nov 16'8:08



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

–凯文·坎图(Kevin Cantu)
10 Nov 17 '21:32



@Kevin:破火山口(现在以另一个名字而闻名)曾经在此工作,尽管他们并没有一路走好(他们似乎已经放弃了这个主意,而是争取LSB,直到他们突然忘记了他们从未听说过) Linux)。

–吉尔斯'所以-不再是邪恶的'
10 Nov 17 '22:57

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

–吉尔斯'所以-不再是邪恶的'
15年3月20日在16:27

#2 楼

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

这也适用于BSD系统。 。 (它实际上是基于BSD的。)应该注意的是,由于Linux本身只是一个内核,因此可以用来构建非类Unix系统(例如Android)。 />

评论


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

– 0xC0000022L
2011-3-11在19:38

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

–hasen
2011年3月13日在11:20



应当指出,FreeBSD是ATT Unix的直接后代,曾经包含ATT Unix代码。它不仅受到Unix的“启发”。

–抢夺
13年8月15日在11:55

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

– poige
13年10月28日在9:12

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

– poige
13-10-28在9:15

#3 楼

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

赋予Linux类似Unix的名称的事实是,它几乎完全符合w /随时间推移而建立的POSIX(便携式操作系统接口[用于Unix])标准。正如Wikipedia上所展示的那样,它是代码等的继承,Linux实际上并不是起源于Unix来源,而是从头开始构建的(然而,这是有争议的)。将Unix与Linux分开的是它的血统及其所符合的标准。

评论


还有要考虑的Unix单一规范。

–丹尼斯·威廉姆森
2010-11-15 23:37

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

–penguin359
2011年4月26日下午4:16

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

– vonbrand
13年1月23日在14:55

#4 楼

选择的答案对它进行了详尽的解释,但是您必须观看一整个纪录片,以了解UNIX最初的发展以及Linux的发展如何之间的所有细节。

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

我们通常所说的首先,Linux是内核,以及最初来自GNU项目的所有其他工具。这两个项目在历史上是不同的,因为当时,来自FSF人士的内核被抛弃,转而使用Linux内核,这要好得多。它对您的编程文化很重要。

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

评论


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

– 0xC0000022L
2011年3月11日19:39

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

–penguin359
2011年4月26日下午4:20

我知道SUS是POSIX的一部分。

– vonbrand
2013年1月23日14:57

链接到那部纪录片?

–爱德华·托瓦尔兹
2015年10月21日在18:41

爱德华·托弗尔德斯对不起,我记不起标题了。它主要以RMS为特色,并且看起来像旧文档。

– jokoon
2015年10月22日15:18

#5 楼

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

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


,您对Linux的所有发展趋势有何看法,以及许多
公司决定开始为Linux进行软件开发。


他对这个问题的回答是在Unix提供的基础上。 Linux似乎是最直接的Unix衍生版本中最健康的版本,尽管也有各种
BSD系统以及工作站和大型机制造商提供的更正式的产品。我忍不住要观察,当然,“免费来源” Unix派生的世界似乎正遭受着完全相同的碎片化和冲突之争,而这种冲突和冲突仍在
中发生。 />商业世界。


#6 楼

从历史上看,Linus Torvalds创造了Minix OS的改进版本。 -UX,AIX,Solaris和其他工具主要是针对供应商使用的。

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

#7 楼

Unix,最初是UNICS(统一信息和计算服务)。

Unix(商标为UNIX)是从原始AT&T Unix派生的多任务,多用户计算机操作系统家族。开发工作始于1969年,并于1973年10月在Bell Abs外部宣布。 (AIX)和Sun Microsystems(Solaris)。



BSD(伯克利软件发行版)发行版为正在进行的多个开源开发项目提供了基础,例如FreeBSD,OpenBSD,NetBSD,Darwin和TrueOS。
Xenix是Microsoft许可的用于各种微计算机平台的Unix操作系统的已停产版本。 br />
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是最初为GNU项目开发的Bourne-Again Shell(bash)。GUIshell是K桌面环境(KDE),GNOME,MATE,Cinnamon,Unity,LXDE。 ,Pantheon和Xfce,尽管存在许多其他用户界面。大多数流行的用户界面都基于X窗口系统,通常简称为“ X”。 GNU完全由自由软件组成,其中大部分是根据GNU项目自己的GPL许可的。选择GNU是“ GNU的不是Unix!”的递归首字母缩写,因为GNU的设计类似于Unix,但与Unix有所不同,因为它是自由软件并且不包含Unix代码。理查德·斯托曼(Richard Stallman)于1983年在麻省理工学院(MIT)人工智能实验室工作时便开始了GNU操作系统的开发。

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

评论


某些精度:今天,某些发行版(很多?)更喜欢Wayland而不是X作为GUI的图形机制。同样,“ GNU项目”中的许多软件部分只是由他人编写的软件,但在与GPL兼容的许可下分发。最好的例子是TeX,但也可以使用flex之类的工具。

– vonbrand
20-09-08在12:32

#8 楼

Linux是由Linus Torvalds和其他数千人开发的类似于Unix的操作系统。
BSD是出于法律原因必须称为Unix-Like的UNIX操作系统。
OS X是图形化的UNIX操作系统。苹果公司(Apple Inc.)开发的Linux是“真正的” Unix OS的最突出示例。它可以在任何设备上运行,并且比BSD或OS X支持更多的硬件。当我比较BSD和Linux时发现了一个有趣的报价:


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


BSD更像是Unix操作系统,而不是Linux。同样值得注意的是,苹果公司使用了BSD和Linux组件。 Apple在iOS和OS X平台上使用Debian和Ubuntu的APT。它基于BSD。 (尽管内核是Darwin,它是它自己的内核。platypus的Beastie是Darwin吉祥物,因为他是BSD的Beastie和Platypus的混合体。)操作系统(可以在任何设备上运行并支持大量硬件的操作系统),请尝试使用Linux。
如果您需要低端硬件支持和头痛(我知道我会讨厌很多,但我不在乎) ,请使用BSD。
如果您要花费$ 1000以上,请使用OS X和iOS。 (再次,我可能会引起很多仇恨。)

我是Linux的长期用户,从90年代到2000年代初期反复使用它,然后暂时停止使用它。但是在2012年中左右再次开始使用它作为我的永久操作系统,因此我可以将它推荐给任何想要尝试使用Windoze以外的东西的人。

评论


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

–抢夺
13年2月15日在12:58

Linux不是操作系统,而是内核。

–马丁·施罗德(MartinSchröder)
13年5月1日在13:29

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

–abarnert
2014年11月11日,凌晨1:20

实际上,这个答案中的几乎所有陈述都是错误的。 “在很多系统上运行== Unix”是荒谬的。苹果公司从未发布过运行iOS的价格超过1000美元的系统。 BSD是Unix和类Unix系统的家族,而不是单个OS。 Linux是一种内核,可以与类似Unix的用户区(例如GNU),精简的Unix式用户区(例如eLinux或Android)或任何其他您想要的组合。等等。

–abarnert
2014年11月11日,下午1:23