一个新项目还是一个 GNU 项目?
每个人都知道 Linux 操作系统大约在四年前从头开始创建的,对吧? 实际上,虽然 Linux 项目本身只有四年历史,但重要的是要记住,您桌面上 Linux 系统的很大一部分要古老得多。
Linux 不是一个完整的操作系统,而是一个操作系统内核。 任何 Unix 或类 Unix 操作系统内核都需要大量的实用程序才能完成整个操作系统。 从历史上看,Unix 内核分发时带有许多文本处理工具、C 语言编译器、编程库以及所有(或几乎所有)实用程序和库的在线文档。 所有这些加在一起构成了操作系统。
在 Linux 启动之前的几年,程序员们对标准版本 Unix 实用程序中的错误和限制感到厌烦,开始编写自己的版本并将其贡献给自由软件基金会的“GNU”项目。 多年来,程序员们慢慢注意到几乎所有 Unix 实用程序中的错误和限制,并编写了它们的替代品,使用户不必依赖软件供应商来始终保持完美。
这些替代品被移植到大多数可用的“版本”的 Unix 中——但它们仍然需要商业内核,用户仍然依赖他们的 Unix 软件供应商来修复内核中的错误和消除限制。 自由软件基金会(称为 FSF)开始着手开发替代内核(现在称为“Hurd”),但工作进展缓慢,最初的努力遇到了法律挑战,尽管法律问题早已解决,但 Hurd 仍未公开发布。
1991 年春天,芬兰的大学生 Linus Torvalds 开始为他的 386 编写 32 位终端仿真器。 他使用汇编语言和 C 语言相结合的方式编写了它,为了更多地了解 386 芯片,他使仿真器完全独立于 DOS 或任何其他操作系统。 在接下来的几个月里,他学到了足够的知识,将他的终端仿真器变成了类 Unix 内核的雏形。
为了编译他的代码,Linus 使用了 FSF 的 gcc C 编译器和汇编器。 作为 shell,他使用了 FSF 的 bash(“bourne again shell”)。 对于 make 程序,他使用了 FSF 的 GNU make。 简而言之,他和迅速聚集在他周围的团队使用了几乎所有 FSF 的 GNU 程序来补充 Linux 内核并组装一个完整的操作系统。
这些经过预先测试和改进的实用程序在一夜之间将类 Unix 内核变成了类 Unix 操作系统。 许多不太熟悉自由软件基金会实用程序套件的用户都认为,整个 Linux 操作系统是在过去四年中完全从头开发的。 实际上,Linux 利用(用现在的流行语来说)了大量的经过测试的优质代码,几乎在一夜之间将内核变成了操作系统——GNU 项目使 Linux 操作系统得以风靡全球。 真正新的大部分是名称和内核——其余大部分是 GNU。
这 不是 在贬低内核。 它庞大而复杂,很少有人具备编写(尤其是维护)内核所需的素质组合。 这仅仅指出,Linux 实际上不是一个四岁的初学者,而是 Unix 用户一个值得尊敬的、成熟的选择。
FSF 的 GNU 实用程序和 Linux 内核这种新的强大组合反过来又提高了 GNU 实用程序的质量。 因为 Linux 用户完全依赖 GNU 实用程序,所以当他们在 GNU 实用程序中发现错误时,他们不能简单地退回到使用系统附带的实用程序版本。 这意味着更多的人正在努力修复 GNU 实用程序中仍然存在的那些错误,使它们比以前更加稳定。 这些错误修复(和增强功能)通常会按适当的方式回馈给 FSF。
Linux 使用的并非所有实用程序都来自 GNU 项目。 加州大学伯克利分校有一个长期运行的项目,该项目产生了 Unix 的伯克利软件发行版,简称为 BSD。 由于许多 Unix 网络软件是由 Bed 的 Unix 发行版开发和为其开发的,因此 BSD 网络实用程序仍然定义了标准,因此许多 Linux 网络实用程序都是经过时间考验的 BSD 实用程序。 另一个例子:由于 MIT 和 X 联盟的企业成员所做的工作,Linux 在项目启动后不到一年就拥有了经过充分测试、受人尊敬的 GUI。
Mark Bolzern 是 WorkGroup Solutions, Inc 的总裁,也是 Linux International 的董事会成员。