现代、低资源 Linux 发行版以及我们需要它的所有真正原因

作者:Marco Fioretti

GNU/Linux 发行版不断快速改进。每个版本都增加了对新硬件、新功能和安全改进的支持,包括服务器和桌面应用程序。

不幸的是,这场辉煌的进步有一个相当大的缺点。虽然可以免费获得优秀的软件,但硬件永远不可能免费。最新的、功能齐全的 Linux 应用程序,尤其是桌面应用程序,几乎需要与专有应用程序一样多的硬件资源。

当然,任何想要用超过两年的电脑开始进行严肃视频编辑的人都应该改变主意,无论他碰巧运行的是什么操作系统。问题是,即使是系统管理员和经验丰富的桌面用户也经常发现,他们昨天还在做的事情在升级后变得更慢了。如果您的 CPU 比十年前快 20 倍,为什么从开机到阅读电子邮件通常需要相同甚至更多的时间?甚至,那些只有过时电脑可用且编程知识有限的人几乎被禁止进入“自由”软件世界。

想知道为什么这是一个严重问题的真正原因吗?请继续阅读。

经济学

对于不必要地臃肿的程序的标准态度是“当今天的桌面硬件如此便宜时,我们为什么要关心?”。一个例子是这封策略信,其中除其他外,说道:“我不认为有人会否认,在今天性能过剩、价格低廉的计算机上,加载一个庞大的程序仍然比 5 年前加载一个小程序更快。那么问题是什么呢?”

问题是(即使这是真的)这是一种非常狭隘和自私的态度:今天的计算机“价格低廉”仅对世界人口的 20% 而言。其余的人仍然必须工作几个月或几年才能购买到使 KDE 或 GNOME 看起来很快的东西。

即使那些收入足够每两年扔掉一台完美好用的 PC 的人,如果他们的需求没有改变,也不应该被迫这样做。不幸的是,当提出这个问题时,听到的最常见的两个答案是

  • “成为一名程序员并从头开始重新编译/编写”:势利的回答,在大多数情况下是不可能的。

  • “使用旧发行版”:为什么?为什么任何人应该使用具有有限防火墙功能、用过时的库编译的内核?为什么任何人应该运行几年前 Sendmail 曾经是的敞开的大门?

学校、家庭、发展中国家、预算几乎为零的公共和私人办公室(现在很常见)必须节省所有成本,无论这些成本已经有多低。通常,他们唯一能负担得起的 PC 是捐赠的并且非常旧的,而自由软件不能抛弃他们。此外,家庭作业、文字处理和电子表格不需要多媒体功能。

自由软件的长期生存

从长远来看,控制所有桌面和无线桌面至关重要。无论质量如何,谁控制了大多数客户端和没有经验的用户,最终也会奴役所有服务器。

新技术(或者,再次强调,...的长期生存)

不要认为降低自由软件的硬件要求会限制它在一些(大型)过时硬件墓地中消亡。实际上,事实恰恰相反。

想想所有新的、低成本的互联网设备,它们之所以只能是设备,是因为能够运行当前的发行版会使其价格翻倍。更重要的是,想想移动计算。我们都应该“很快”用非常小的盒子无线冲浪、计算和生产:手表大小的 PDA、第三代手机等等。如果主流 Linux 快速清理其许多现有的桌面应用程序,它将在其他人说完“硬件改进很快,让我们等到他们将奔腾 IV 做得像 StrongArm 一样小”之前主导这个市场。

生态

计算机是有用的、很酷的,并且是最具污染性的家用垃圾之一。它们应该(单独)倾倒,只有当它们物理损坏时,而不是因为超级操作系统 2002 是免费的,但不会在低于 1 GHz 的速度下运行。

文化与自由

基本的桌面计算正在迅速将自己置于字母表旁边,成为充分表达自己和建设自己命运的必要工具列表之中。因此,它不仅必须免受专利和许可的限制,像言论自由一样自由,而且它还应该尽可能接近零成本(包括硬件)。

机会均等是自由软件的真正意义所在。每当我听到自由软件程序员仍然说,“只要我有源代码并且可以随心所欲地编程,自己学习编译,不要打扰我”——即使是对没有钱的小学生,我都会感到难过。

低资源发行版选项

当然,我不是要求任何人放弃他的多功能桌面。选择的自由一直是我们的优势。但是,我真的觉得我们有很多理由停下来片刻,看看最近开发的所有很酷的自由软件,并使其“自由,即使你不需要所有这些,或者即使你买不起一台非常快的机器”。

我甚至没有建议我们需要再启动一个 GNU/Linux 发行版。事实上,已经存在先进且非常有效的项目在做这件事,但它们实际上都仅限于那些具有大量能力和空闲时间来安装、维护或添加软件包的用户。

我们应该做的是使主流发行版的 базовые 安装更少资源密集型。这样,没有人会被迫更换发行版或购买更多 RAM,因为新版本是旧版本的两倍大。任何拥有旧机器的新手都可以开始使用,并找到大量现有的软件包和文档。

为了实现这一切,我认为所有相关方(用户、开发人员和发行版打包者)当前的态度都需要进行一些改变。

用户必须学会高效地使用计算机,并且(被帮助)开始区分真正的功能和花哨的功能。开发人员应该开始意识到他们正在做的事情的重要性,并使其更容易为低资源环境重新打包他们的程序。

最重要的是,需要打包者和安装程序维护者之间的一些重点转移。首先,安装过程应该尽可能轻量级。当我想到我可以构建自己的内核,它将在 8MB 的 RAM 中运行,但前提是我有 32MB 用于安装程序,该安装程序会将代码和编译器放入 PC 中时,我会感到抓狂。

第二个真正有帮助的事情是为所有最常用的应用程序提供两个打包版本:一个用于独立使用,另一个用于其原始桌面环境中。例如,一个用于 KDE 的标准 Konqueror 一个精简的、静态链接的版本,如果除了 QT 和 KDE 之外没有其他用途,则不带所有插件。

同样适用于图形配置工具。它们对新手非常有帮助,但其中许多工具至少需要 GTK、QT,并且通常需要一些其他的 GNOME/KDE 组件。原因是,如果没有这些工具包和库,构建此类工具将会困难得多。

我完全同意这种设置,但我忍不住注意到,当前的打包意味着为了重新配置您的防火墙,例如,您必须添加许多兆字节的东西,以避免大量的依赖关系失败消息。

将所有这些东西编译和打包成单体二进制文件,将为用户恢复旧硬盘容量的近 50%,而没有任何实际的性能损失(至少对于在低 RAM 计算机上偶尔使用而言)。请注意,这种空间节省对于在过时硬件上成功安装至关重要。

一旦满足这些先决条件,我们将拥有预定义的“基本桌面/服务器”安装选项的所有构建块,或者更确切地说,是三个子选项

  • 裸系统,其中裸意味着内核、包管理器和网络支持。它应该不超过一百兆字节,可能更少。

  • 纯文本桌面:裸系统加上 SMTP 服务器、GPG、ssh、电子邮件客户端、浏览器和文本编辑器。

  • 完整图形界面桌面:以上所有内容,再加上一两个用于桌面使用的图形应用程序,可能不依赖于 GNOME/KDE,或者至少如上所述打包。

选择第二个或第三个子选项应该在没有其他努力的情况下为您提供一两个用于每个正常桌面任务的工具。

本文接下来列出的应用程序列表不分先后顺序,部分基于我的个人经验,部分基于我在网上阅读的内容,这些应用程序应该包含在低资源发行版中。

请记住,我不是 C/C++ 程序员,所以首先查看定义为必要的功能,然后查看我建议的特定解决方案。其中一些解决方案完全有可能在实践中不可行或完全错误。如果出现这种情况,请告知我并提出替代方案。

以下所有内容背后的共同点是我的信念,即所有用户,包括新手,需要在过时的 PC 上运行 GNU/Linux 软件,都应该主要使用基于字符的应用程序,并且不要为此感到抱歉,只要他们仍然可以快速完成他们需要做的一切。完整的图形界面程序本身并没有什么不好,但至少在这种情况下,它们可能会使问题变得更糟。

系统

  • 内核,能够进行 iptables 过滤和日志记录,但不支持异构文件系统或所有可能的协议类型,交换空间使用和其他相关设置专门针对有限的 RAM 进行调整;

  • xinetd/iptables 设置为仅允许网页浏览(不提供服务)、ssh、电子邮件、FTP 和 Telnet。当然,FTP 和 Telnet 我们指的是客户端应用程序,电子邮件我们指的是简单地将传出消息发送到用户的 ISP 服务器并从那里检索消息。

    换句话说,应该提供为典型的 SOHO 用途编写的 iptables 防火墙脚本:ppp0 上的拨号,eth0 上的受信任接口,内部网络上的无限流量,ppp0 仅接受 PC 内部的 HTTP、FTP、电子邮件和少数其他客户端。

  • Xask 向 shell 脚本添加弹出菜单,以便与系统的完整图形界面交互不一定需要完整的桌面环境

  • CDBKup 用于备份 CD-ROM 上的整个目录

  • 无字体服务器

  • TinyX X 服务器代替 X11。在高分辨率下同时查看多个窗口的另一种方法;可以是帧缓冲或 SVGAText,并与字符窗口管理器 TWIN 耦合使用。

  • GPG(当然,至少用于数字签名)

  • AIDE(Tripwire 的 GPL 替代品)

窗口管理器: Blackbox 和 bbtools,所有预配置都可以在不使用鼠标的情况下完全使用。

互联网连接: 附加到根菜单的 shell 脚本,而不是图形或特定于发行版的工具。

电子邮件: Mutt,轻量级(基于文本,但电子邮件 就是 文本),并且比您永远需要的更强大;默认配置为数字签名。要检索电子邮件,使用 procmail 和 Tk-RED 配方生成器、fetchmail 以及可以从 Mutt 驱动的几个工具之一,以取消服务器上不需要的电子邮件,而不是下载它,popfilter、popsneaker 或 animail。要发送电子邮件,使用 ssmtp(或 postfix),在安装时配置为仅发送到您的 ISP 并回复 fetchmail。

浏览: wget、w3m 以及 Galeon、Skipstone 或 Konqueror 之间的选择,如上所述打包。实际上,将 Konqueror 的嵌入式版本移植回旧的 Intel 处理器并看看会发生什么会很有趣。Dillo 浏览器在这种情况下也听起来很有吸引力。

打印: pdq 代替 lpd;完整的 Postscript 支持,但不通过 Tex/Latex,并以一种不会强迫您在地球上安装每种可能的字体的方式打包。

传真: 基于 shell 脚本的传真/efax,带有封面支持,TCL/TK 前端用于输入文件位置(磁盘或扫描仪)和电话号码。

扫描: Sane,当然,当您只需要将某些东西转储到您的主目录时,以附加到根菜单的脚本打包,或者使用其 Xsane 图形界面。

文件管理器: midnight commander 和 ROX;是的,我知道虽然真正的男人只使用提示符和 find 命令来完成,但为了整理所有假期照片,您确实需要一个图形界面文件管理器。ROX 及其缩略图选项和所有其他真实功能都能很好地完成这项工作。

文本编辑: 基本 vi 用于系统管理,当其他一切都失败时,在 GNU EMACs(重新打包以占用更少的磁盘空间,并具有 Jari Aalto 的 tinytf 软件包提供的章节编号和 HTML 生成功能)和 vim 之间进行选择,以用于更复杂的使用。当然,即使在控制台模式下,EMACs 和 vim 都应该具有完整的彩色支持。

生产力: 对于正常需求,使用 AbiWord、SIAG 和 MagicPoint 进行简单的演示。如果需要打开 *那种文件*,则使用 OpenOffice——无论如何都不是轻量级的(至少目前还不是),但却是周围最好的解决方案;以 RPM 或 DEB 形式安装在符合 LSB 的系统目录中。

小型企业工具: 让我们也帮助小型企业主:会计、库存、医疗记录、披萨订购系统等软件包。当然,这些应该可用并列出供用户选择,而不是默认全部安装。

我们正在努力

在 Red Hat Enigma 邮件列表(以及其他几个邮件列表)上进行了多次讨论之后,我和其他人刚刚启动了 RULE 项目(Run Up2date Linux Everywhere),该项目旨在根据这些指南为标准 Red Hat Linux 添加一个安装选项。

RULE 主页(这是我写作时的 URL,但很快会更改)始终链接自 项目站点。FAQ 还解释了为什么该项目基于 Red Hat,以及为什么甚至其他发行版的用户也可以从 RULE 中受益(并帮助 RULE)。如果您有兴趣,请访问我们并订阅 RULE 邮件列表。

结论

使用 vi 进行高级的、基于文本的配置是一项用户空间任务,我认为每个人都应该(被帮助)学习它:从头开始编程是不同的。用户应该得到更多,而不是被迫在从一开始就成为程序员和花费不必要的钱来使用“自由”软件之间做出选择。我鼓励您尝试我提到的所有工具,如果您还不了解它们。下面列出了一些鲜为人知的工具的主页。运行它们一段时间,如果需要并且您知道如何操作,请将它们放入您的发行版打包格式中并使其可用。即使在更强大的机器上,用更少的资源做更多、更快的事情也可能非常有趣。

电子邮件: linuxdesk@inwind.it

加载 Disqus 评论