我辅修计算机科学,自从我开始钻研计算机科学以来,我确实更加欣赏*nix。我曾经是一个 Windows 迷,现在我拥有两台 Mac(以及我的 PC,上面有 Windows 和 ubuntu)。
我想更多地了解linux是如何开发的。我知道 linux 只是内核,而 GNU 实际上是我所接触的大部分内容。那么,当我在使用 unix 的 mac 上打字时,与在 PC 上的 Ubuntu 启动上ls -al
打字时有何不同?ls -al
区别实际上在于linux和unix之间的区别吗?或者 unix 是否使用非 GNU 库来实现ls
和之类的东西cd
?
那么linux和unix到底有什么区别呢? Unix 是否使用 GNU 库来执行 ls、cd 和所有这些常见的终端操作?
答案1
UNIX 是一个古老的操作系统系列。它的演变有许多不同的分支。看一眼http://www.levenez.com/unix/例如。
Linux 是现在非常常见的 Unix 风格。它在 90 年代从头开始重写,然后传播到世界各地。主要是因为它是一种免费软件。
过去,Unix 风格有两个主要分支:ATT/SYS V 和 BSD。 ATT 是伯克利大学的专有软件,BSD 是一种免费软件。
对于用户来说,构成 Unix 系统的是一组命令。ls
或ps
就是这些命令。您可以编写自己的版本,但也可以使用 GNU 版本。GNU 是一个为每个人提供免费软件工具的古老项目。
一般来说,在专有 Unix 上,工具是专有的,在 BSD 下,您将拥有 BSD 风格,而在 Linux 系列中,您将拥有 GNU。这就是为什么后者有时被称为 GNU/Linux。
所有这些 Unix 的主要区别在于特定/技术方面:支持线程的方式、特定文件系统或此类事物。所有这些 Unix 的共同部分称为 POSIX,这是一个标准化系统核心的古老尝试。
答案2
那么“Linux”主要是内核,您可以在以下位置下载http://kernel.org,它通常与所有 GNU 实用程序捆绑在一起。像Ubuntu这样的各种发行版都添加了各种软件和一些打包工具。 - 结果也经常被错误地称为“Linux”。
Unix另一方面指的是一大堆不同的系统:
其中一些是商业的,另一些是免费的。它们中的大多数都有一个包含所有标准工具的整体核心,但这些工具ls
通常不是 GNU 并且在用法上略有不同。然而,他们通常遵循相同的标准,例如POSIX。