One more hop for Kermit

http://lwn.net/Articles/448636/
By Jonathan Corbet
June 22, 2011

翻译:马少兵

在过去最美好的时代,我做 VMS 系统管理员的时候,那时 ARPAnet 还是一个很小、龟速的网络,而且接入点及其有限。当一些牛人基于UUCP连接建立了USENET,Unix系统还没有被广泛使用。但已经开始出现了个人电脑,电子公告板系统也开始被建立,我们中的一些幸运儿还能够买得起1200波特的调制解调器。在那些日子里所使用的调制解调器工具是一个叫做 kermit 的小程序,并且下载是完全免费的。俺已经不记得最后一次使用调制解调器是哪个时候,但是我仍然会很有兴趣去看到,已经30多年的工程即将通过最后的过渡,和其他的一样,最终走向自由软件。

那个年代的许多系统,尤其是没有任何政府预算支持的,其“网络接口”是串口。通过该接口,我们可以连接到计算机工作,也是它让我们在那个时代获得了最早的远程服务。任何通过RS232联网的用户首先需要在计算机的RS232接口和modem的RS232接口之间交换串行数据。尽管Unix系统通过一个叫“cu”的工具来达到这个目的,但是人们还是倾向于用kermit来代替。

Kermit最早起源于美国哥伦比亚大学,是把它作为多种不同网络环境下的计算机通信的方法。相比”cu”,kermit具有容易安装到软盘、设置和使用的特点。仅仅只需要弄清有多少数据位、多少停止位、多少校验位(RS232是最流行的标准)、以及适合与调制解调器上的ATD命令相对应的类型是什么等。Kermit甚至可以对不同处理字符集之间进行转换;也可以直接同 EBCDIC主机通信。

在一个很短的时间内,Kermit开发了一些适合文件传输的功能。该协议是相当有效率的,而且它的设计还包括用于处理串口通信中偶尔出现的控制字符,将8位数据转为7位数据等。该协议的健壮性意味着,它可“工作于”任何两种类型结构的机器之间。所以在前互联网时代,Kermit成为了最流行的文件传输协议,是不足为奇的。

尽管哥伦比亚大学以源代码方式发布了Kermit的多个版本;包括从 BBS 下载,DECUS磁带等,但是从来不是自由软件。造成这样问题的主要原因是,当kermit首次发布和使用的时候,自由软件许可证还没有出现。虽然哥伦比亚大学已经考虑将代码发布到一个公共的领域,但是这种决定看起来并不是最好的。

因为我们想使得Kermit软件能够被公开共享,而不是仅仅发布到一个公共领域,虽然这看起来是矛盾的。我们觉得通过拥有版权,可以防止企业独占该软件,以及所带来的将该软件成为一种商业产品而出售的情况。因为在我们面前已经发生了一系列这样的事件,由于一些大学将自己的代码发布至公共领域,结果被公司重写,最终使得公司占据了该代码的版权。

Kermit许可证会随着时间变化而改变,但是“你可以使用在非商业化的程序中”的情况是保持不变的。Kermit许可证的最终版本允许,可以将该代码绑定在免费的操作系统之中,但是禁止在没有允许的情况下修改源代码。因此事实是,尽管Kermit许可证和Linux操作系统一样允许分发,但是由于它不是一个真正的免费软件,而导致大量的发行版最终躲避使用它。

除了免费的操作系统以外,任何人想要发布商业化与Kermit有关的系统,必须向哥伦比亚大学购买许可证($3-10/each)。

在过去,Kermit已经取得了引人注目的成绩。但是随之而来的互联网已经取代它的位置。现在利用手机,都可以运行ssh协议。RS232逐渐退出了历史舞台。内核的开发者仍然在某些情况下用串口进行调试,但是我估计,大部分的LWN读者从未考虑过什么是 null modem cable. Kermit的用户肯定会逐渐萎缩,对那些需要的人来说,仍然会被使用和购买

可能在三月份,哥伦比亚大学宣布不再支持Kermit项目的维护了。其中一个可能性是由于商业许可证的销售额减少,导致没有足够的日常管理费来维持目前的工作。在2011.7.31号以后,哥伦比亚大学将不再开发任何的代码加入到Kermit系统中,也不再提供系统支持和维护服务。已经运行了30年得工程即将结束。

哥伦比亚大学计划在Kermit系统结束以前还要做一件事情,那就是将该软件放置于BSD许可证下。C-Kermit9.0版本就携带该许可证信息;6月15号,首个测试版已经发布。9.0版本将支持FORCE-3包协议(“使用在恶劣环境下”),改进了相应的脚本、修复了很多地方的bug等。因此9.0版本的发布,大概会选取一个距离7月31号截止日期之前的某一天,不仅仅有新的功能。而且将会首次免费发布。

由于这种变化的结果,Kermit将会很快出现在你的发行版的仓库中;对于大多数的Linux用户,这一点关注度可能很小。但是对于我们中的大多数,有时候通过串口连接是唯一和系统进行通信的方式。虽然Kermit系统远不是我们唯一的选择,但它相当不错。我们很欢迎Kermit能够加入开源软件社区。

Topic: sohulinux