Aus*_*arn 41
采用更直接的方法,以下是 GNU 实用程序之外的主要选项:
\nMar*_*ler 29
\n\n我认为 GNU 是(唯一)其开源代码为 Linux 发行版提供支持的基本工具的供应商。
\n
一点都不。Stallman 和他的同事确实喜欢将这种情况描绘成“GNU/Linux 加上一些非 GNU 可选软件”,但事实并非如此。
\n\n\n这一定意味着 ls 的某些版本不是由 GNU 提供的,对吗?
\n
嗯,从严格意义上来说,数学含义并不存在,但是是的,你是对的。
\n首先:所有非 Linux 系统也有可移植用户区,对吧?FreeBSD、OpenBSD、DragonflyBSD、Minix、MacOS\xe2\x80\xa6 它们都不提供 GNU 工具。因此,必须存在另一个工具王朝,至少是一个。
\n所以,是的,有 BSD 工具(当然有各种分支)。有些比 GNU 同类产品更酷,有些更差,有些只是不同。我不知道有哪个 Linux 发行版完全依赖 libbsd/BSD 工具,而其他发行版却有 gnulib/GNU coreutils,但至少我更喜欢 bsdtar,更喜欢与 GNU Bash\xe2\x80\xa6 不同的 shell,你明白了。
\n那么,到目前为止,运行Linux 的最实际的物理设备将不会有 GNU 用户区:
\ntoybox(0-BSD 许可)作为标准工具的集合,以及修改后的 Korn shell。sh附带的。与我猜测的大约 60 亿台带有非 GNU 基础工具集的 Linux 设备相比,我认为这几百万台台式机/笔记本电脑 Linux 并没有那么普遍。
\n但到目前为止,运行的大多数 Linux 内核实例可能都在 Hyperscaler 云提供商(Amazon、Alibaba、Microsoft、Oracle\xe2\x80\xa6)的数据中心中运行。很难给出具体数字,但将达到数十亿。\xe2\x80\x93 这些正在运行什么很难猜测。但特别是对于云计算来说,像 Alpine Linux 这样的发行版很受欢迎,而且它不是随 GNU Coreutils 一起提供的,而是随 Busybox 一起提供的。但这里我们计算的是虚拟机,而不是物理机。正如我所说,在 Google 数据中心中,“设备”是服务器机架,而不是单个主板,因此物理设备的数量相对较多。。
\n(个人对此的看法:强 Copyleft 用户空间的比例越来越少,这并不是一件好事,特别是因为供应商确实没有停止侵犯内核的强 Copyleft 要求,并且没有 FSF 管理的代码对于发现这一点。然而,FSF 的 GPL 执行并没有像我希望的那样发挥作用、有针对性并取得成果。)
\njes*_*e_b 16
一般来说,GNU Coreutils并不是大多数这些工具的原始版本。通常它们由操作系统提供,并且由于大多数 Linux 版本都是 GNU/Linux,因此您最熟悉的是 GNU Coreutils。然而,在 Linux 出现之前,就已经存在 BSD 工具和各种风格的 UNIX 工具,这些工具今天仍然存在于仍在使用的各种风格的 UNIX 上。另外,某些版本的 Linux 不是 GNU,可能使用Busybox之类的东西(例如 Alpine Linux)。
无论是谁制造它们,重要的是它们遵循POSIX 标准,但情况并非总是如此,尤其是对于 GNU 实用程序而言。
您可以找到几乎任何命令的 OpenBSD、FreeBSD、UNIX、GNU、Busybox 等版本。
许多正在使用的 UNICES 至少在某种程度上起源于 UNIX 版本 6,因此它们可能共享一些相同的实用程序,或者它们可能在此过程中对这些实用程序进行了独特的修改。
这一定意味着 ls 的某些版本不是由 GNU 提供的,对吗?这些版本是什么,谁制作的以及在哪里可以找到它们?
是的。最初的实现是ls在旧的 AT&T Unix 许可证下进行的。
至于 的现代实现ls,所有由各种 BSD 分发的实现(与 Linux 不同,它实际上源自原始的 AT&T Unix)。
您可能认为 BSD 是一个非常少数的操作系统,用户很少,但它们确实存在。还有一个拥有大量用户的 BSD 发行版:Apple 的 Mac OS。
值得记住的是 GNU 项目是什么。GNU 是 GNU 而非 Unix。这是一个制作 Unix 工具(例如ls)的干净副本的项目,但绝对不是 Unix。因此,您可以将 GNU 视为lsUnix 原始ls. 事实上,GNU 工具的功能已经激励其他开发人员使用 GNU 功能更新他们的工具。多年来,GNU 和 Unix 世界的其他部分之间进行了大量的异花授粉。