所有操作系统都有其理念。而且,操作系统的理念至关重要。Linux 的理念是什么?它如何影响社区?它如何改变了软件开发的时代?
无论我们是否意识到,我们大多数人都拥有某种人生哲学。它可能像“善待他人”一样简单,也可能是一种非常复杂的人生哲学。
许多公司也有某种理念。它们可能是不成文的,也可能是书面记录的。当我在 IBM 工作时(从 1974 年到 1995 年),IBM 的理念有完善的记录,并深深地扎根于企业文化中。IBM 的理念涵盖了其商业实践以及员工、客户和供应商应如何被对待。IBM 的首要指令,可以说是公平、尊重和尊严地对待每个人。
在我深入研究 Linux 之前,我从未意识到它还有一种理念。我的意思是,一种理念实际上能为操作系统做什么?经过一番研究,我发现所有操作系统都有理念。我还了解到,操作系统的理念至关重要。
例如,Windows 的理念与数字设备公司 (DEC) 的 VMS 操作系统的理念非常相似。它相当于“让用户远离任何可能让他们陷入麻烦的事情”。当然,这种相似性的原因是 Windows NT 的主要开发者也是 VMS 的开发者。这两种操作系统的理念都基于一个潜在的信念,即用户害怕计算机,需要被保护,免受其复杂性的影响。
MAC OS 并没有太大的不同,尽管图形用户界面 (GUI) 桌面采用了面向对象的方法,在许多人看来,这种方法提供了更一致、集成和更流畅的用户体验。MAC 和 Windows 都提供了命令行界面 (CLI),允许用户和操作系统之间进行底层交互。然而,Windows CLI 非常有限,命令很少,至少与 Linux 和 Unix 相比是这样。
MAC CLI 是一个 BASH shell,它提供了强大的功能,就像在 Linux 上一样。然而,它非常难以找到。shell 隐藏在大量的菜单选项中,只有当您知道它在那里并积极寻找它时才能找到。
激进的概念
当 Unix 在 1960 年代后期和 1970 年代初期被开发出来时,开发者们致力于构建一个与之前的操作系统截然不同的操作系统。Unix 的理念与其他操作系统的理念明显不同。而 Linux 的理念自然而然地直接来源于 Unix 理念。
我发现 Mike Gancarz 在《Linux 和 Unix 哲学》一书的 导言 部分的以下引言非常具有启发性。
一个操作系统,就其本质而言,体现了其创造者的哲学... Unix 操作系统的创造者从一个激进的概念开始:他们假设他们的操作系统的用户从一开始就具备计算机知识。整个 Unix 哲学都围绕着用户知道自己在做什么的想法。
哇!他们真的这么说了!这听起来很精英主义和排外。但,并非如此。事实上,恰恰相反。
我 最喜欢的关于 Unix 的引言之一 也适用于 Linux,通常归因于一个名叫 Doug Gwyn 的人,但无法可靠地获得关于他的信息。无论 Doug 是否存在,这仍然是一句伟大的引言
Unix 的设计目的不是阻止用户做蠢事,因为那样也会阻止他们做聪明事。
这就是关于 Linux 的真相。它从不假设用户是无能的。它总是假设您知道自己在做什么,并允许您执行您告诉它的任何操作。任何操作。无论它是否是无意中的坏事。这是一个用户手中巨大的权力。
Linux 平等地对待每个人,并允许每个人拥有最大的权力。这是平等的。其他操作系统是精英主义和排外的,因为它们将权力保留或隐藏在一个不灵活的图形用户界面后面,该界面只允许人们做开发者认为我们应该被允许做的事情。
启蒙
多年来,许多人试图启迪我们其他人,当他们编纂 Linux 哲学的各个方面时。
Mike Gancarz 首先撰写了 Unix 哲学,然后又撰写了《Linux 和 Unix 哲学》。这些书列出了 9 个主要原则和 10 个次要原则。
Eric Raymond 在他的著作《Unix 编程艺术》中提出了 17 条 Unix 规则。
俄勒冈州立大学也有其 自己的 Linux 哲学,我认为它很好地描绘了工程师对 Linux 的看法。
与其在这里列出所有这些原则和规则,以及它们的所有含义,不如我在本文的参考资料部分列出了链接或书籍,可以从中获得这些信息。我将其留给亲爱的读者您,去查找它们并了解它们的含义。相信我,这将是一次非常有启发性的练习。
终端案例
Linux 哲学最典型的体现是轻松打开终端模拟器以访问 CLI 及其随之而来的强大功能。首先,可以使用 Ctrl-Alt-F [1-7] 键访问多个虚拟终端。即使是 Linux GUI 桌面也对所有使用它们的人低语,“使用原力,卢克”。Linux 有几个优秀的 GUI 桌面环境可供选择,因此每个用户都可以选择自己最喜欢的环境。然而,CLI 的强大功能只需点击一下即可获得,终端模拟器和 shell 都有多种选择。
我最喜欢的 GUI 桌面终端模拟器是 Konsole。Konsole 允许在 GUI 窗口中使用选项卡在终端会话之间切换,从而实现多个终端会话。当然,您可以在所有会话中使用您最喜欢的 shell,也可以根据您的需要,在每个会话中使用不同的 shell。
为了获得更大的灵活性,还有 screen 程序,它在单个终端会话中提供多个 shell 会话。当远程登录时,这尤其有用,因为如果您的连接失败,screen 会话以及在 screen 会话中启动的各种 shell 中运行的所有程序都会继续运行。
Linux CLI 轻柔地诱惑;它以其强大的功能引人入胜。它的灵活性吸引了我。它改变了我——当然它改变了我使用计算机的方式。我仍然使用 GUI 桌面,但更多的是为了为我提供多个 Konsole 会话的灵活性,以及在其中运行 screen,而不是为了运行 LibreOffice、Firefox 和 Thunderbird 等程序。
完全控制
Linux 不会手把手地教您。它假设您在键入命令时知道自己在做什么,并且它会继续执行该命令,而不会询问您是否真的想要这样做。它赋予您完全的控制权。
想象一下,如果试图使用一个钉枪,它会询问您是否真的想射钉子,并且在您说出“是”字之前不允许您扣动扳机,这将导致多么混乱和沮丧。Linux 允许您随意使用钉枪。其他操作系统让您知道您可以使用钉子,但不会告诉您使用什么工具来插入钉子,更不用说允许您自己将手指放在扳机上。
是的,在强大的力量背后存在危险。明智地使用这种力量也可以用来完成许多伟大的事情。
Linux 的首要指令
我已经开始相信,Linux 哲学的总结非常简单。
尊重所有用户。
这相当于允许每个用户以他们自己的方式,使用各种强大的工具来做事。这意味着在设计和构建软件系统时,将灵活性、简洁性和自由度作为最重要的考虑因素。它促成了软件的创建,这种软件堪称艺术品,在 Unix 诞生近 45 年,Linux 诞生 20 多年后,仍然美丽而强大。
这一切如何转化为现实世界?在未来的文章中,我将告诉您更多我的观点,我将在其中讨论一些个别原则及其在日常系统管理任务和 Linux 生活的其他方面的应用。
参考资料
- Eric Raymond:《Unix 编程艺术》,http://www.catb.org/~esr/writings/taoup/html/index.html
- Mike Gancarz:《Linux 和 Unix 哲学》;Digital Press,2003 年,ISBN 1-55558-273-7
- 维基百科:http://en.wikipedia.org/wiki/Unix_philosophy
- 俄勒冈州立大学:http://web.engr.oregonstate.edu/~traylor/ece474/lecture_verilog/beamer/linux_philosophy.pdf
- 最佳 Unix 引言:http://www.linfo.org/q_unix.html
本文的法语翻译版本可在此处查看 here,由 Fabrice Dumont 提供。
21 条评论