很多人装好Linux后,首先要做的就是“更换源”——这个看似陌生的术语其实是指“软件仓库”,简而言之,就是操作系统在下载软件时所访问的库。更换源的目的是选择一个离自己更近的仓库,这样下载速度会更快。一个软件仓库内包含了各式各样的包,数以万计的软件以及一整套系统,都存放在这里。

通常情况下,软件仓库位于国外,官方服务器分布在地球的另一侧,跨越太平洋下载软件速度较慢,且容易出现连接中断。为了改善这种情况,国内一些机构将这些软件的副本保留在本地,以此提升下载速度。这种做法在技术术语上称为“镜像”。接下来的问题是,为什么会有人愿意提供这样的服务?毕竟,全球用户的下载需求量巨大,谁会自己花钱购买硬盘和带宽来供全国人民使用呢?大家熟知的一些提供镜像服务的单位包括清华大学、中科大、南京大学等高校,以及阿里云、华为云等云服务商。

首先谈论高校。这些高校最初提供这个服务的原因主要是出于经济考虑。过去,校园网络连接国外是按流量计费的,费用不菲。例如,一间实验室里有几十台机器,如果每次都从国外下载操作系统和科学计算的库,账单将会相当可观。因此,学校决定在校园内设置一份软件仓库,以供内部使用。这样一来,既节约了开支,又提升了下载速度。此外,这也有助于学校的教学和科研,计算机、人工智能、生物信息和物理等专业通常都在使用Linux,这些领域的机器每天都需要从软件源中获取更新。

有趣的是,许多这样的镜像站点还是由学生自行管理的。比如,清华大学的镜像站就是一个学生社团所维护,学校的信息化部门提供支持;而中科大的镜像站则是由Linux用户组维护。学生们通过编写程序自动同步镜像和监视服务器,获得了宝贵的实践经验。此外,国内几所高校之间亦会相互支持,教育网络内部有联合镜像,未收录的资产可以直接向邻近高校查询。如果国外的服务器突然出现故障,国内至少还有一份可用的镜像,这实际上也充当了备份。

about image

接下来谈谈云服务商。它们的动机相对更为直接。首先,它们想节省自己的带宽费用。云服务商通常运营着成千上万的服务器,这些机器在安装软件或开启新实例时,如果都得从国外的软件源获取数据,所消耗的出口流量将是一笔不小的开支。因此,它们将镜像保存在自己的内网中,这样内部服务器就能从内网下载软件,极大地节约了成本。换句话说,从内网获取软件就像是在自家院子里搬运,而从国外下载则类似于跨洋运输。阿里云就明确区分了两个入口:一个供公网使用,另一个则是供云服务器内部使用,对外的入口只是附带品。

其次,品牌效应也是云厂商考虑的因素之一。当开发者首次接触一台新机器时,第一件事往往就是更换软件源,谁的源更好用,谁的名字就会频繁出现在开发者的视野中。此外,华为的openEuler和阿里的龙蜥都是云厂商自行推广的Linux发行版,而软件源则是其系统的基础设施之一。如果不提供镜像,用户在使用这些系统时就会遇到障碍。

还有一项虽然看似模糊但实际上很重要的地方在于其在国际开源社区中的影响力。长期参与镜像维护,捐赠服务器对于提升其在开源圈子的存在感是极为有效的。这些高校和云服务商虽然目标不同,但最终都获得了好处:用户不再需要隔着半个地球来下载软件。这实际上相当于全国范围内增加了一层“缓存”。同样一批软件,过去可能需要一百个人各自下载一次;现在通过国内的仓库下载,大大减少了来自太平洋那边的流量压力。

还有一个常被忽视的点是合规性。这些镜像站所做的只是将软件原封不动地搬过来,任何一个字节都没有修改,包内的数字签名和安全更新仍由软件的官方团队负责,镜像站的任务只是负责搬运和分发。因此,软件本身的缺陷,并不应归咎于这些镜像站。

about image

最后,澄清几个容易出现误解的事项。第一,这些镜像站不是Ubuntu、Debian等系统的开发者,它们所同步的包并非自主开发的,若系统出现问题不应归责于镜像站。第二,不能把这些资源当作“无限制免费使用”。存储和带宽都需要成本,因此各家镜像站都会设定流量限制,若频繁下载大文件可能会被限制速率,甚至被封禁。日常的软件安装和系统更新正常使用是完全没问题的。第三,早期高校的镜像站是为校内用户服务的,对外公开实属顺手之举。虽然使用起来很方便,但不要理所当然地认为这是理所应当的。这是别人投资时间和精力的结果,帮助你节省了宝贵的时间。

about image

总的来说,这些Linux软件源的运作并不复杂。高校寻求的是省钱和便捷,而云服务商则追求商业利益和品牌效应,而用户只需一个快速的源。各方利益相互作用,有效地达成了共赢。这样一个不错的资源能够持续存在多年,并非因为出于高度的奉献精神,而是因为与此同时,所有参与者都能从中获益。