Unix,Linux,BSD和GNU有什么区别?[关闭]


27

Unix,Linux,BSD和GNU之间的根本区别是什么?Unix是最早的操作系统,因此术语“像Unix”是可以理解的,因为它们具有内核,文件系统结构,大多数命令,用户等与Unix相同。他们为什么还不同?是什么让他们与众不同?是内核吗?


2
是否可以在Linux上重写所有Unix命令的答案回答这个问题
CVn 2013年

Answers:


30

这是一个很难回答的问题。

第一个“ Unix Like”或“ * nix”通常表示POSIX。您列出的所有系统都是POSIX系统。POSIX是要实施的一组标准。

现在来回答更难的问题。

GNU并不是真正的操作系统。它更多是支配自由软件的一组规则或理念,同时在尝试创建OS时催生了许多工具。因此,GNU工具基本上是已经存在但已重做以符合开放软件原理的工具的开放版本。GNU / Linux是由那些工具和Linux内核组成的一个网格,以构成一个完整的OS,但是还有其他“ GNU”。例如,GNU / Hurd。

Unix和BSD是POSIX的“较旧”实现,属于各种级别的“封闭源”。Unix通常是完全封闭的源代码,但是Unix的版本与Linux一样多,甚至更多。有些人通常不认为BSD是“开放的”,但实际上,它比任何其他存在的东西都开放得多。它的许可还允许用于商业用途,其限制要少得多,因为允许使用更多的“开放”许可。

Linux是新来者。严格来说,它只是“一个内核”,但是,通常,与GNU工具和许多其他东西结合使用时,它被视为完整的操作系统。

主要的管理差异是理想。Unix,Linux和BSD具有不同的实现目标。它们都是POSIX,并且基本上都可以互换。他们确实以不同的方式解决了一些相同的问题。因此,除了理想及其选择实现POSIX标准的方式之外,没有什么区别。

有关更多信息,我建议您阅读有关创建GNU,OSS,Linux,BSD和UNIX的简短文章。他们会倾向于他们的个人想法,但是当您通读时,您会很好地了解它们之间的区别。

此Unix族谱图清楚地显示了Unix,BSD,GNU和Linux的历史(来自Wikimedia):

Unix族谱图


注意:并非所有内容都是POSIX。例如,请参阅GNU / Linux系统上的man unimplemented(IIRC,可能是man security)。
13年

奋斗是正确的。它们不是完全合规的,但是他们正在努力做到。虽然不确定如何将其转化为答案。Unix-Like在技术上也不同于POSIX,但总的来说,当人们说Unix-Like时,通常指POSIX。
coteyr

1
此问答中的一些补充信息。

不,Linux内核开发人员从未打算兼容POSIX。我忘记了我在哪里读到的(我看过联机帮助页,但找不到),但是出于安全考虑,某些系统调用永远不会实现。
奋斗

我相信GNU最初打算是一个OS。
Faheem Mitha 2013年

14

Linux不是操作系统,而是内核。Linux本身没有“用户区”环境(没有应用程序,命令,...等)。

如果要拥有完整的操作系统,则必须在内核中添加一个用户域。从历史上看,对于Linux,它是GNU。所有(?)Linux发行版都不是“真正的Linux”发行版。它们是GNU / Linux(GNU + Linux)发行版。

BSD是一个“类unix”的完整操作系统,它具有自己的内核和自己的用户区(没有linux内核也没有GNU)。

GNU / Linux和* BSD系列(FreeBSD,OpenBSD和NetBSD)是“类unix”操作系统,它们的行为类似于Unix。

这是(GNU)/ Linux和* BSD之间的比较:http : //www.freebsd.org/doc/en/articles/explaining-bsd/comparing-bsd-and-linux.html


您的链接不起作用
Anthon 2013年

@Anthon它正在工作
Prvt_Yadav '18
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.