Linux Journal 的复活教我了解 FOSS 社区
“马利死了,这是开篇第一句。”——查尔斯·狄更斯,《圣诞颂歌》。
正如你现在肯定知道的那样,《Linux Journal》创刊于 1994 年,这意味着它已经存在于 Linux 故事的大部分时间里。从那时起,很多事情都发生了变化,Linux 和自由及开源软件 (FOSS) 社区与《Linux Journal》创刊 25 年前的样子大相径庭,这并不令人惊讶。这段时间内社区内部的变化对《Linux Journal》产生了直接影响,并导致了它的消亡,使得《Linux Journal》的故事成为审视 FOSS 社区整体故事的一个很好的视角。虽然我不是从一开始就加入《Linux Journal》的,但我确实经历了它的鼎盛时期、中风、衰落、死亡和复活。本文讲述的就是这个故事,以及它说明了 FOSS 社区是如何变化的。
这也是一个相当私人的故事。
关于我的一些事虽然我确实有时会在文章中写到个人项目,并且可能会不时透露一些个人细节,但我通常尽量不谈论太多我的个人生活,但因为它对于构建这个故事很有用,所以我们开始吧。我成长于个人电脑非常昂贵的时代(即使考虑到通货膨胀,现在也是如此),在家里拥有一台电脑并不常见。
高中时,我上了我的第一堂计算机课,学习 BASIC 编程。这门课从根本上改变了我。在课程的早期,我就知道我想改变过去的所有职业规划,转而从事与计算机相关的工作。我的家人注意到了这种变化,我的祖父母和母亲凑钱给我买了我的第一台电脑:Tandy 1000 RLX。虽然肯定有更炫或更流行的电脑,但它确实配备了硬盘驱动器(40MB!),这在当时仍然很新奇。每次我在学校学到一个新的 BASIC 命令,我都会在接下来的晚上在家里想方设法地将这些新知识运用到我自己的软件中。
我在高中期间从未接触过互联网(我妈妈看了电影《战争游戏》,担心如果我能上网,我可能会不小心引发联邦调查局的上门拜访)。这使得当我上大学时,不仅拥有了现代化的电脑,而且还能使用高速校园网时,一切都变得更加令人兴奋!像大多数人一样,我渴望在大学里进行实验。就我而言,1998 年,我宿舍的一位邻居带来了一系列 Red Hat 5.1 软盘(最初的 5.1,而不是 RHEL),并在我的电脑上设置了双启动环境。第一次安装是免费的。
20 世纪 90 年代后期的桌面 Linux如果你没有经历过 20 世纪 90 年代后期,你可能不会意识到当时的 Linux 有多么不同,但希望我的桌面截图能帮助说明这一点(图 1)。

图 1. 我 1999 年的超级精英桌面
我想指出这张图片中的几件事。首先,看看那个精英绿底黑字主题!其次,注意左上角的 GNOME 脚印。这是早期的 GNOME 1,当时它使用 Enlightenment 作为窗口管理器。接下来,注意顶部打开 Slashdot 的 Netscape Navigator 窗口。如果你是 FOSS 社区的新手,Slashdot 就是当时的 Hacker News(或者 Reddit,或者 Digg,或者 Fark——取决于你何时开始在互联网上争论技术新闻)。看看横幅广告中出售的服务器的规格:266MHz 处理器,32MB 内存,2GB 存储空间和 2GB 带宽。
顶部 Netscape 窗口下方的窗口是另一个 Netscape 窗口,其中包含一个完全用 Java 在浏览器内部实现的聊天应用程序。我知道你在想什么:广告中的服务器只有 32MB 内存,你需要两到三 GB 的内存才能在浏览器内部运行 JavaScript 聊天应用程序,但我向你保证,用 Java 是可以实现的。
在 20 世纪 90 年代,你需要从三到四张软盘(除非你使用 SUSE,这需要大约十几张)安装 Linux。安装的用户界面是一个 curses 终端控制台,你可以用键盘导航。此安装假设你非常熟悉磁盘分区、操作系统内部结构、网络和 Linux 整体。完成安装后,你通常会重启进入控制台。如果你想要获得 GUI,那么你需要手动配置晦涩难懂的 X11 配置文件——前提是你的图形硬件在 Linux 下可以工作。
由于当时安装和使用 Linux 需要大量的深入 Linux 知识,因此全国各地涌现出许多 Linux 用户组 (LUG)。这些小组会聚在一起分享关于 Linux 的技巧和总体知识,他们发起了一种新的现象:安装节。在安装节期间,新的 Linux 用户会将他们的电脑带到 LUG,专家们会尝试在其上安装并运行 Linux。通常,经验丰富的用户也会带着自己的电脑来寻求帮助,解决他们无法让其工作的那一块顽固的硬件。
20 世纪 90 年代后期的服务器 Linux我于 1999 年开始专业地使用 Linux。虽然 20 世纪 90 年代后期的办公室网络中可以找到 Linux 服务器,但它们并不太常见,而且通常是秘密使用。Linux 在大多数 IT 部门眼中被认为是业余爱好者的玩具,设置 Linux 服务器可能会给你带来很多麻烦。问题在于 Windows 文件服务器以不可靠而闻名,因此系统管理员会秘密地在网络上安装 Samba 服务器。如果有人注意到差异,也只是评论文件服务器有多稳定。
最初,选择 Linux 服务器是为了改进 Windows 服务器较低的稳定性或商业 UNIX 服务器的高成本。互联网泡沫导致对网站和 Web 服务器的需求巨大。Apache Web 服务器软件及其使用其新的“虚拟主机”功能在一台硬件上托管多个网站的能力,使得 Linux 在数据中心迅速普及。
很快,动态和交互式网站变得重要起来,系统管理员发现,Linux 操作系统与 Apache Web 服务器、MySQL 数据库和用于动态内容的 Perl 脚本(后来的 PHP)的组合是一个免费、简单且稳定的动态网站平台。这个 LAMP 堆栈越来越受欢迎,并继续将 Linux 的普及范围从 Web 服务器扩展到应用和数据库层。
在 20 世纪 90 年代后期运行 Linux 服务器需要深入了解 Linux、网络和编程。虽然一些公司(如 Red Hat)开始提供付费支持,但在大多数情况下,支持是你自己的故障排除和研究,以及联系 LUG、朋友、IRC 和论坛的组合。
20 世纪 90 年代后期的 FOSS 社区20 世纪 90 年代后期的 FOSS 社区植根于 FOSS 的理想。几乎每个人都可以给你简要介绍自由软件运动的历史,知道 GNU 项目是什么,知道 GPL 是什么,并且对“自由软件”和“开源软件”之间的区别有强烈的看法。社区中的大多数人也对应该称其为 Linux 还是 GNU/Linux 有强烈的看法。对于许多人来说,加入社区并使用 Linux 和自由软件是为了推进这些运动,对抗专有软件的威胁。
当你考虑到当时安装和使用 Linux 需要多少技术知识时,社区成员反映操作系统的状态也就不足为奇了——业余爱好者极客、工程师、科学家和计算机科学专业的学生。简而言之,我们是书呆子。但由于互联网泡沫,这个社区开始扩张,因为人们开始想要专业地使用 Linux。所有这些专业的 新来者对 Linux 支持产生了强烈的需求,许多 FOSS 公司在那段时间应运而生,以满足这种需求。
如果你在 20 世纪 90 年代后期没有碰巧在这个社区中,请观看 2001 年的纪录片《 Revolution OS 》。它很好地捕捉了当时社区的特殊风貌,采访了当时的知名人士,并描述了自由软件运动的开端,从 Richard Stallman 的最初工作到 Linux 的创建,一直到互联网泡沫期间 Red Hat 的首次公开募股。
我在《Linux Journal》的开始故事的下一部分始于近十年后的 2007 年 8 月,在旧金山举行的 Linux World Expo 会议期间。《Linux Journal》宣布在会议期间举办作家“欢乐时光”活动。这个想法是邀请潜在的作家来与编辑会面并提出文章想法。
我了解到了这个活动,并对为《Linux Journal》写作的前景感到非常兴奋。那时我已经出版了几本关于 Linux 的书,里面充满了各种 Linux 技巧和窍门,我的脑海中充满了我可以融入文章的想法。我对这个前景非常兴奋——并且非常担心其他人会先到那里,并在我有机会之前提出所有好的想法——所以我提前到达活动现场,并在活动开始前来回踱步。
我提出了太多的想法。在我提出了六到十几个不同的文章想法,并且它们似乎都受到了好评之后,我获得了一点自信,这让我敢于提出更进一步的想法:一个每月专栏。在那次会议结束时,所有这些文章想法都变成了一个我于 2008 年 1 月开始的专栏:Hack and /。
2007 年的 FOSS 社区在许多方面,这个时代是 Linux 和 FOSS 的黄金时代。为了设置一些历史占位符,在 2007 年,Debian 发布了 4.0 版 (Etch),Red Hat 发布了带有 2.6.18-8 内核的 Red Hat Enterprise Linux (RHEL) 5.0。所有安装都受到 Corel Linux 安装程序中一些易用性突破的影响,安装过程简单,并具有漂亮的图形界面,引导用户完成一些基本问题。安装完成后,图形硬件和系统上的大部分其余硬件都运行良好,除非你使用的是最前沿的硬件。Linux 安装过程比从头开始安装 Windows 简单得多(也更快)。
Linux 现在在企业 IT 中已成为主流,当你想要设置 Linux 服务器时,遇到阻力的情况要少得多,除非你的公司是 100% Windows 商店。某些组织的主要要求是付费支持,而此时,付费支持也已经成熟,并且类似于专有供应商提供的支持。这些 FOSS 公司赚了很多钱,开发人员也获得了报酬,可以全职从事 Linux 和 FOSS 的工作。
虽然 FOSS 社区仍然有最初的书呆子成员,并且新的书呆子成员不断加入,但社区的大部分增长来自专业人士。存在许多不同的专业 Linux 和 FOSS 会议,这些会议的定价旨在吸引那些能够让公司为他们付费的人。这些新的社区成员更关注 Linux 和 FOSS 的实际好处(低成本、兼容性以及为公司使用而修改 FOSS 项目代码的能力)。与最初的社区不同,这些成员较少关注 FOSS 的理想。
中风在 21 世纪初和十年代早期,整个印刷出版业经历了许多变化。在此期间,书店行业进行了大规模整合,像 Barnes and Noble 和 Borders 这样的公司挤压了独立书店。在此期间的后期,更多人开始习惯于在线使用信用卡的想法,来自亚马逊的竞争开始威胁到即使是大型书店。最终,这导致 Borders 关闭了所有门店,进而导致报摊杂志的销量大幅下降。
除了这些困难之外,整体出版和发行成本也上升了。最终,报摊销量下降和成本上升的这种组合赶上了《Linux Journal》,它不得不面临一个艰难的决定:要么取消印刷杂志,转而采用纯数字模式,要么完全关闭杂志。2011 年 8 月 19 日,《Linux Journal》宣布将取消印刷杂志,并改为纯数字版。
毋庸置疑,对这一声明的反应普遍是负面的。没有人(尤其是《Linux Journal》)想取消印刷杂志,但至少一些读者似乎不明白,替代方案是完全关闭,一些订阅者以相当多的愤怒回应。回应分为两大类。要么印刷要么死的读者取消了订阅,伴随着不同程度的痛苦。等待观望的订阅者决定尝试在线或在电子阅读器上阅读杂志。
衰落一段时间以来,事情继续运转。现在《Linux Journal》摆脱了出版印刷杂志的高成本,开支得以缩减,随着时间的推移,财务状况开始稳定下来。虽然有些人取消了订阅,但留下的那些人是忠实的读者。我们经常会听到这些核心读者的说法,比如“我拥有每一期印刷版”,以及“我经常回去查看我的杂志存档作为参考”。这种支持鼓励团队专注于我们内容中的核心受众。
缺少报摊意味着我们失去了一个吸引新读者阅读杂志的主要途径。更重要的是,我们对核心受众的关注没有考虑到 Linux 社区自 1994 年以来已经发生了变化。不仅仅是我们没有吸引社区中的新成员,许多社区的老成员多年来也发生了变化,他们以更加务实的态度看待 Linux 和 FOSS,理想主义色彩有所减少。这意味着我们不仅未能增加新读者,而且还开始失去一些现有读者和作者。
死亡最终,我们无法维持运营。《Linux Journal》宣布将于 2017 年 12 月 1 日关闭。我随后发表了一篇充满情感的告别文章。如果你读过那篇告别文章,你会发现它在中间的某个地方从回忆录变成了宣言。我对看到我工作了十年的东西消失的悲伤被 Linux 社区似乎迷失方向的愤怒所取代。我迷失了我的方向。我将 Linux 和 FOSS 视为理所当然。我比以往任何时候都更清楚地认识到,虽然 Linux 和 FOSS 在十年前赢得了与科技巨头的战斗,但新的巨头在此期间已经取代了他们的位置,而我们正在让他们获胜。尽管我已经撰写和谈论 Linux 和 FOSS 多年,并在个人和专业上使用它,但我感觉我没有为我如此关心的东西做足够的贡献。《Linux Journal》的死亡是我决定言行一致、辞去工作并加入 Purism 的主要因素,这样我就可以全职工作,帮助推进这项事业。
所以是的,我很难接受这个消息。我们所有人都很难接受这个消息,但当我只是失去了一份自由撰稿人的工作时,所有《Linux Journal》的核心团队成员都刚刚失去了他们的全职工作。那是一段艰难的时期,但我们也收到了来自你们,我们的读者的大量支持。有些人联系我们只是为了告诉我们他们有多喜欢这本杂志,以及他们对看到它消失感到有多抱歉。其他人提出愿意为他们的订阅支付更多费用,看看这是否会有所帮助。还有一些人联系我们,看看他们是否可以制定一项筹款计划来维持杂志的生命。我无法强调这种令人难以置信的鼎力支持在那段艰难时期对我们所有人的帮助有多大。谢谢你们。
复活!我们真的以为我们死了。事实证明我们并没有完全死透。在我们发布公开声明后不久,London Trust Media——Private Internet Access (PIA) 背后的团队,一家专注于安全的 VPN 提供商——联系了我们。在很短的时间内,他们制定了一个计划,不仅要拯救《Linux Journal》,还要使其走上未来成功和发展的良好道路。
当这一切发生时,我们着手进行事后剖析。我们不想死而复生只是为了重蹈覆辙,所以我们着手找出是什么杀死了我们,以及我们如何才能防止它再次发生。从这次灵魂拷问中不断出现的一个主要主题是认识到 FOSS 社区已经发生了变化。虽然原来的核心群体还在那里,但他们只占整个社区的一部分。今天的 FOSS 社区是不同的,也更加多样化。我们需要为我们最初的忠实读者撰写文章,同时也涵盖对社区其他成员重要的事情,从而为整个社区服务。但是,要了解今天的社区是什么样的,你必须看看 Linux 和整个科技行业的现状。
2019 年的 Linux今天,Linux 拥有广泛的硬件支持,许多供应商提供预装并支持 Linux 的硬件。互联网本身充满了 FOSS 项目,人们在即将开始一个软件项目时,首先要做的事情之一就是查看 GitHub,看看是否已经存在任何满足他们需求的东西。Linux 在云端绝对占据主导地位,无论是在运行它的虚拟机数量方面,还是在许多云基础设施也运行 FOSS 服务方面。Linux 也存在于许多人的口袋和家用电器中。Linux 和 FOSS 比以往任何时候都更加普及。
Linux 和 FOSS 也比以往任何时候都更加隐蔽。GitHub 上的许多 FOSS 项目最终都被用作专有软件的构建块。许多似乎通过帮助他们所依赖的上游项目来拥护 FOSS 的公司,也选择将他们自己编写的项目保持专有。虽然 Linux 在云端占据主导地位,但越来越多使用云的开发人员和系统管理员通过专有 API 和专有服务来使用云。如果新开发人员和系统管理员按照提供商的意图使用云,他们接触 Linux 服务器和 FOSS 服务的机会就会减少。而且,虽然 Linux 在你的口袋和家中运行,但它隐藏在巨大的专有应用程序层之下。
在很大程度上,早期定义 Linux 的 FOSS 理念也被隐藏起来了。社区中的许多人仅仅根据查看代码的能力或作为避免自己编写代码的方式来吹捧 FOSS。人们越来越少地吹捧 FOSS 带来的自由的重要性,以及专有软件带来的问题。事实上,如今云端的大多数 Linux 应用程序开发都是在 Mac 或 Windows 机器上完成的——这在 Linux 的早期是不可想象的。
2019 年的科技行业自 1994 年以来发生变化的不仅仅是 Linux,科技行业也发生了变化。技术无处不在。每个人每天都以某种形式与计算机互动,能够使用计算机本身不再被认为是一项特殊的技能。尽管如此,各个领域的技术技能都需求旺盛,科技从业人员的薪酬普遍很高。编程已成为新的职业技能课程,旨在为高中毕业生提供一套技能,希望能帮助他们找到高薪工作。
技术工具也变得更加易于访问,不再那么晦涩难懂。你不再需要把自己隔离在地下室里,对着电脑工作多年,才能获得找到一份好的技术工作所需的技能。整个行业开始变得更加多元化,我指的不仅仅是种族、性别和民族意义上的多元化。科技行业在文化上也变得更加多元化。
过去,技术在很大程度上是书呆子的领域。现在,你很可能会看到受欢迎的孩子、运动员和 MBA 使用技术和编写软件。甚至有一个“brogrammer”的称谓,用来形容那些文化上更接近兄弟会成员的软件开发人员。许多传统上会鼓励孩子去常春藤盟校攻读医学或法律的家长,现在却鼓励他们攻读 MBA,辅修软件开发,并创建自己的软件初创公司。
文化多样性的这种变化造成了一种文化冲突,我不确定双方的人是否真正理解。从书呆子的角度来看,就好像他们举办了一个派对,邀请他们的朋友过来玩《龙与地下城》,突然一群受欢迎的孩子听说他们家有一个很棒的派对,闯了进来,说“这个派对太烂了”,然后把它变成了酒桶派对。他们发现来自受欢迎的孩子的所有新的社会压力都难以应对。另一方面,受欢迎的孩子发现群体中的书呆子非常令人沮丧,因为他们似乎没有领会到社交暗示,并且很难适应在他们看来是第二天性的规范。
2019 年的 FOSS 社区今天的 FOSS 社区反映了 Linux 和整个科技行业的这些变化。最初的 FOSS 社区仍然存在,但围绕它的专业社区已经发生了很大的变化。社区中的许多人仅仅在专业场合使用 Linux,并且在下班后不会从事 FOSS 项目或使用 Linux。许多 FOSS 倡导者在许多情况下自己不使用 Linux,他们经常在运行 Windows 或 macOS 的专有笔记本电脑上就 FOSS 的好处进行演示。许多(如果不是大多数)Web 应用程序开发人员从 Windows 或 macOS 环境编写他们打算用于 Linux 的 Web 应用程序,如果他们使用 Linux,那也是在虚拟机中。
重要的是要强调,所有这些人都是 FOSS 社区的贡献者和成员!如果因为社区成员的行为不像最初的核心成员,或者没有将他们的全部生活奉献给 FOSS 而将他们排除在外,那就错了。事实是,随着时间的推移,随着社区的壮大,它增加了一些根本没有经历过 Linux 和 FOSS 对抗专有软件的最初战斗的人。他们加入社区时,世界已经是一个 Linux 和 FOSS 无处不在的世界。在这样的世界里,很容易将 FOSS 背后的最初原则视为理所当然,因为你没有体验过来自替代方案的危害。在其他情况下,长期以来一直是社区成员的人已经放松了他们多年的原则,变得更加务实。他们更关注“适合工作的工具”,并且在许多情况下,他们认为 FOSS 是某些工作的合适工具,但专有软件是其他工作的合适工具。
这一切意味着什么?今天的 FOSS 社区的所有成员都有经验教训和工作要做。如果你是最初社区的一员,请意识到我们有机会和义务传递我们已经从与最初的科技巨头的斗争中学到的经验教训。并非我们社区中的每个人都知道这些经验教训,如果他们知道,他们可能会重新思考他们做出的一些你不同意的选择。只有当你欢迎来自各行各业的新人时,这才会奏效——而不仅仅是像你一样的书呆子。如果你在他们犯早期错误时疏远他们,他们学习更多知识的动力就会降低。这意味着没有计算机知识的石蕊测试来查看某人是否了解足够的技术奥秘,是否有资格加入社区。
这也意味着继续努力培养同理心和社交技能。虽然这可能是一个挑战,但我们有能力完成这项任务。我不相信一个可以背诵 TCP 握手协议、参与正确邮件列表礼仪的口水战,并且可以引用整个克林贡成年礼(用克林贡语!)的人会发现人类的社交协议是不可知的。
如果你是社区的新成员,请对你的书呆子同伴抱有同理心!你以你的同理心和社交意识为荣,所以将它们应用于手头的任务,并尝试了解你的同事来自哪里。他们来自与你不同的文化,有着不同的社会规范。当他们学习当前的社会规范时,请对他们表现出耐心。如果你在他们犯早期错误时疏远他们,他们学习更多知识的动力就会降低。
我也鼓励你向你的书呆子兄弟姐妹学习过去与旧巨头的战斗。当前的科技巨头在很大程度上都在使用相同的策略,了解当科技巨头实现完全供应商锁定后会发生什么,是非常有价值的。此外,我鼓励你了解 FOSS 背后的所有社会原则。FOSS 运动不仅仅是你有能力查看源代码,甚至是在你自己的项目中使用它。了解构成自由软件许可基础的“四项自由”。
最后,我鼓励来自社区各个角落的每个人都不要将 FOSS 和 Linux 视为理所当然。你今天享受的唾手可得的代码和大部分开放协议的世界并非理所当然。如果目前的趋势继续下去,我们可能会回到一个像 1994 年之前那样的专有软件、供应商锁定和封闭协议的世界。
我们发现自己身处的新战役更加阴险。专有软件和协议的传播方式,尤其是在移动设备上,使得 FOSS 与过去相比,赢得这场战斗变得更加具有挑战性。如果我们想赢得这场战斗,我们需要整个社区共同努力,朝着共同的目标前进。
资源