要速度还是要扭矩?Linux桌面版本对阵服务器发行版

桌面Linux应该效果美观、运行迅速,而服务器Linux则不妨体积庞大而注重实效。目前的混合型解决方案尚未能将二者区分并加以协调——我们期待着这一问题能尽快得到纠正。

要速度还是要扭矩?Linux桌面版本对阵服务器发行版

我之前曾经在一篇文章中提到过将Linux发行版加以拆分的观点,认为服务器与桌面系统应该彼此拥有独立的产品线。读者朋友们给出的反馈颇为有趣,各类评论——包括公开的直接留言与私信沟通——也层出不穷。

根据一部分读者的观点,我之前“明显”没有过使用Linux的经验,而且对于Linux“明显”一无所知。他们强调称,很多Linux发行版都分为“桌面”与“服务器”两类,所以通篇文章完全就是屁话——甚至将二者拆分堪称史上最蠢的点子。另一些读者则似乎认为,我主张将Apache安装在Linux设备上并将其作为桌面设备加以运行的思路存在问题。但让人欣慰的是,还是有不少朋友理解了我真正想表达的含义。

因此请让我在这里再次澄清一下:我相信现在已经是时候推出一款主流、专用且只针对服务器设备的Linux发行版了,开发商有能力也有必要这么做。这款发行版应该彻底抛弃任何桌面软件包或者运行依赖性——换言之,这与目前那些仅仅在默认软件包方面存在区别的桌面与服务器用例完全不是一回事。

更准确地讲,我不打算考虑桌面使用情况可能给自己服务器设备带来的影响。从历史角度看,Linux发行版基本上都是以服务器为主要运行环境,只在必要时临时充当桌面操作系统。不过最近这种情况发生了改变,大多数Linux发行版开始以台式机作为施展舞台,而由此带来的相关要求则成了多数Linux发行版的首要考量因素。这种状况给服务器至上的早期思路造成了重大冲击,但很多人似乎并没有清醒地认识到这一点。

其中最突出的例子就是Gnome 3.8开始将logind作为前提性要求。几乎是在一夜之间,所有构建在“服务器”发行版基础之上的服务器设备开始向要求使用systemd以及lgind(或者shim)的Gnome版本讲拜拜,这是因为它们都出自同一体系、拥有同样的运行要求。没错,这就是桌面Linux系统给服务器造成影响的真实案例。

由Linux桌面应用程序及框架开发商这类小团体作出的决策不应该直接甚至是从根本上影响到Linux服务器架构,但目前这正是令人遗憾但却无可奈何的现实。如果能存在一套将所有桌面支持元素全部摒弃的Linux发行版,即使仍然不够彻底解决问题、也至少能为我们带来新的可行性方案。

我们不妨在脑海中这样勾勒这款纯粹服务器发行版的身姿:它拥有与CentOS相当的稳定性与普遍性,但却完全不涉及任何桌面系统软件包。这套发行版允许用户轻松选择自己是否要使用systemd或者任何其它基础性要素,因为其中没有任何长期困扰着桌面版本的运行依赖性需要考虑。更进一步,它应该在默认情况下适用于服务器工作负载,并能够通过特殊调整充当虚拟机系统——例如在默认情况下设置更小的交换空间,直接清除掉一切不必要的额外主机硬件支持能力、或者其它能够被合并在以服务器为核心的虚拟机运作机制中的要素。我相信,这样一套发行版绝对拥有强大的市场吸引力。至少我个人一定会为其点个大大的赞。

这些与systemd并没有直接关联——换言之,systemd只是目前最适合拿来作例子的对象。很明显,Linux能够在各类设备平台上顺畅运行:嵌入式设备、小型服务器、大型服务器、台式机甚至是手机等等。然而针对这些用例作出的具体调整则可谓千差万别,即使系统内核保持不变、最终解决方案的样貌也早已面目全非。

以Ubuntu、Debian、CentOS等为代表的通用型Linux发行版在设计思路上专门迎合桌面与服务器使用需求;而从目前来看,满足这些需求需要开发者投入大量时间与精力、甚至有可能令项目开发方向出现偏差。在某些情况下,同时支持这两类使用场景会给使用效率带来严重的负面影响,并令桌面与服务器两种用例处于两面不讨好的尴尬境地。

桌面系统应该像一辆法拉利,而服务器系统则更该以十吨载重卡车的面貌出现。我们是时候以这种思路对二者加以调整了,特别是考虑到其中一者的某些强制性要求将给另外一方带来巨大影响。当然,大家也可以任意选择一款Linux发行版并按照自己的思路加以运用,但这也不妨碍另一群开发者在自己的方案中专门针对某些特定需求进行设计。这类处理方式相信足以构成一个完整的项目,并得到其他志同道合的系统管理员们的认可。不同重复同样的问题解决流程实在是种资源浪费。

换句话说,我认为目前单用户与多用户Linux环境已经存在不可忽视的显著差异,根据这种差异作为对应调整极具现实意义。诚然,我们应该有能力在自己的台式机上安装Apache以及MySQL以进行开发或者测试工作,但必须在redis服务器上安装pidgin并具备相关支持能力的可能性实在是微乎其微。

Gnome强制要求使用logind的作法只是第一步,相信未来还将有更多由依赖性引发的冲突出现在我们面前。将systemd彻底赶出我们的视野,并将其作为备选方案支持某些新型图形或者声音处理技术,这才是处理问题的正确方式——如果固执地将其保留在服务器或者相关领域当中作为组成部分,除了给系统造成消极影响外、我看不到任何正面因素。

相关推荐