关于科米特

Original article: https://kermitproject.org/kermit.html

 

弗兰克·达克鲁兹,[email protected]

内容

  • 什么是克米特?
  • 科密特软件
  • 克米特协议
  • 文件传输示例
  • 链接

最近更新: 2023 年 9 月 9 日

最近的:

  • 2022 年 5 月 9 日:C-Kermit 10.0 Beta.09
  • 2022 年 7 月 17 日:用于 Windows Beta 测试的开源 C-Kermit
  • 2013 年 10 月 30 日:计算机历史博物馆的克米特项目口述历史记录:
  • 克米特项目口述历史小组
  • 乔·杜普尼克口述历史(MS-DOS Kermit)
  • 2013 年 10 月 29 日:计算机历史博物馆 [目录] 的克米特项目文档档案。

自 2011 年 7 月 1 日起生效…

  • 哥伦比亚大学的克米特项目被取消
  • 新的 Kermit 项目网站在http://www.kermitproject.org上开放。
  • 所有 Kermit 软件都有开源许可证。
  • 哥伦比亚大学的 Kermit 软件档案和网站将保持不变。

欢迎来到新的开源 Kermit 项目。

公告Kermit 95 C-Kermit E-Kermit其他 Kermit 软件

什么是克米特?

Kermit 是文件传输和管理协议的名称,也是一套适用于多种类型计算机的计算机程序,这些计算机程序实现该协议以及其他通信功能,包括从终端仿真到通过高级交叉协议实现通信任务自动化等其他通信功能。平台脚本语言。该软件独立于传输,通过 TCP/IP 连接以传统的明文模式运行,或者通过 SSH、SSL/TLS 或 Kerberos IV 或 V 进行保护,以及通过串行端口连接、调制解调器和其他通信方法( X.25、DECnet、特定平台上的各种 LAN 协议(例如 NETBIOS 和 LAT)、并行端口等)。

Kermit 项目于 1981 年在哥伦比亚大学计算机中心(现为CUIT )成立,以满足特定需求,直到 20 世纪 90 年代中后期,Kermit 一直是哥伦比亚大学的标准桌面连接软件,被学生、教职员工普遍使用从台式微型计算机、PC、Macintoshes 和 Unix 工作站连接到中央计算设施:IBM 大型机(1963-2017)、DECSYSTEM-20s (1977-1988)、CLIO(哥伦比亚第一个在线图书馆信息系统,1984-2003 年)和 Cunix(我们基于 Unix 的服务器,1986 年至今),以及部门 VAXes、PDP-11s、Suns 和其他小型计算机。在微型计算机和 PC 的早期,但在局域网和连接到它们的桌面工作站广泛部署之前,Kermit 软件将桌面与电子邮件、公告板、文件共享、文本处理、消息传递和其他方面连接起来。新的在线文化现在被认为是理所当然的,早在大多数其他机构提供这种体验之前。在哥伦比亚,DEC-20 和部门小型机早已不复存在,IBM 大型机现在仅用于后台使用,但 Kermit 软件仍然用于从桌面到 CUNIX 的 SSH 会话,以及由技术人员负责系统和网络管理任务;例如,在HP 刀片服务器到达时对其进行配置、管理大学的电话系统、CGI 脚本、待命员​​工的alpha 寻呼等。当然,对于老前辈来说,他们只是更喜欢安全且高效的文本模式 shell 会话来发送电子邮件并完成工作;例如,软件开发和网站管理。

多年来,随着Kermit 软件被移植到越来越多的计算机和操作系统(参见列表)或为越来越多的计算机和操作系统开发,Kermit 项目逐渐发展成为一个全球合作性非营利软件开发和分发项目,总部设在哥伦比亚大学并由哥伦比亚大学协调。Kermit项目致力于生产跨平台、持久、稳定、符合标准、可互操作的通信软件,并一直积极参与标准进程。Kermit 软件在世界各地的各个经济部门都有使用:国家政府、州和地方政府、学术、医药和保健、工程、航空航天、非营利组织和商业。

尽管终端仿真已在很大程度上被用于在线访问的 Web 所取代,但Kermit 软件继续在其他应用中发挥作用,例如遥感和数据收集、网络和电信设备的管理和故障排除、后台工作、货物和库存管理、医疗保险索赔提交、电子资金转账和在线提交所得税申报表。Kermit 软件嵌入在网络路由器和交换机、手机信号塔、医疗诊断和监测设备中,甚至心脏起搏器中,更不用说不少知名“大卖场”零售商的收银机中。2002年Kermit飞上国际空间站,Kermit软件是其使用的通信方式EM APEX 海洋浮标(左)至今仍在为飓风研究人员和跟踪人员提供实时数据(飓风项目在 2010 年基于新版本的嵌入式 Kermit进入了新的扩展阶段)。

自 20 世纪 80 年代以来,Kermit 协议和软件已在工厂车间的可编程模切、折弯机、层压、平卷、剪切、金属和塑料加工、木工和其他机器中使用。例如,在波音 787的制造中,Kermit 用于控制形成某些车身部件的磁带层。您可以在此处和此处阅读有关如何在工厂车间使用 Kermit 的更多信息。

20 世纪 90 年代,Kermit 软件被用于美国邮局自动化,它在1994 年巴西全国选举(当时世界历史上规模最大的选举)中发挥了关键作用,并且是联合国对波斯尼亚救援任务的核心,“连接项目运营的整个范围,从大型机、小型机、个人电脑到手持设备和条形码阅读器。”

在20 世纪 80 年代,柯米特协议的稳健性非常适合非洲绿色革命、欧洲-苏联乔托联合太空任务,也许最引人注目的是在美国南极洲研究站与大陆之间重建数据通信。 1986 年,南极洲长达 9 个月的冬季因电脑故障而中断。1989 年,在苏联莫斯科举办了一次关于克米特的国际会议,而 20 世纪 80 年代在东京、伯尔尼、巴黎、纳什维尔和其他地方举行的其他会议也以克米特会议为特色。

Kermit 协议和软件以电视剧《布偶秀》中的明星青蛙 Kermit命名;Kermit 这个名称的使用已获得 Henson Associates, Inc. 的许可。为什么它以青蛙科米特命名?1981 年 5 月,我们已经有了该协议的第一个实现,但我们还没有该协议或软件的名称。我们一群人正在讨论它(我、比尔·卡钦斯、比尔·希利特、杰夫·达门斯,我想就是这群人),但实际上并没有太关心,因为我们从未期望该软件会传播到世界各地并持续数十年。我碰巧面朝墙上,上面有布偶日历,因为我的孩子们是布偶秀的忠实粉丝,我说,克米特怎么样??三十年后(2011年5月)我找到了我说这句话时正在看的日历页面,你可以在左边看到它,你可以点击它看大图。

科密特软件

Kermit 软件已为数百种不同的计算机和操作系统编写,其中一些是由世界各地的志愿者程序员编写的,另一些是由 Kermit 项目的专业人员编写的。最受欢迎的 Kermit 程序的主要特点是:

  • 各种连接方法(TCP/IP、X.25、LAN、串行端口、调制解调器等)的连接建立和维护。
  • 终端仿真。
  • 无差错的文件传输。
  • Internet 协议包括 Telnet、Rlogin、FTP和 HTTP。
  • Internet 安全方法包括 Kerberos、SSL/TLS、SSH 和 SRP。
  • 终端仿真和文件传输期间的字符集转换是 Kermit 软件的独特功能。
  • 数字和字母数字寻呼。
  • 脚本编程可自动执行复杂或重复的任务。

Kermit 的用户界面和脚本编程语言在不同平台和通信方法之间是一致的,当您从一个平台转移到另一个平台、从一种通信方法转移到另一种通信方法时,学习投资会一次又一次地得到回报。

我们的首个 Kermit 软件实现是:

  • Kermit 95适用于 Windows 95/98/ME、Windows NT/2000/XP/Vista/7/8/10 和 OS/2;
  • 适用于UNIX、VMS、VOS 和其他几个操作系统系列的C-Kermit ;
  • 用于嵌入的E-Kermit。
  • 用于 DOS 和 Windows 3.x 的MS-DOS Kermit ;
  • 用于 VM/CMS、MVS/TSO 和 CICS 的IBM 大型机 Kermit 。

C-Kermit和IBM Mainframe Kermit是基于主机的软件包,具有无与伦比的多功能性。Kermit 95和MS-DOS Kermit是功能齐全的桌面通信软件程序,可与市场上(或市场外)的任何其他软件程序相媲美,除了用户界面的华丽之外:Kermit 程序遵循文本模式提示和命令风格过去,这让一些人感到困惑,直到他们意识到其中的优点:

  • 命令集在所有平台上都相当一致,并且在 Windows、Mac OS X、Linux 和 VMS 等现代平台上几乎完全一致。一次学习,随处使用。
  • 命令可以组合成“宏”或“程序”来自动执行任何可以手动完成的任务,如此处所述。事实上,在 C-Kermit 和 Kermit 95 中,命令语言是一种成熟的编程语言,具有变量、控制结构、函数、“子例程”以及一些惊喜。
  • 您不必提前知道这些命令,也不必完整地输入它们。命令样式称为“按需上下文相关菜单”(键入问号时会看到可用的选项),并且关键字可以缩写。有大量内置帮助,并且可以在 Kermit 网站上找到更多帮助;例如,C-Kermit 教程和Kermit 95 教程,仅供初学者使用。
  • 当触摸打字员不必将手从主页键上移开时,他们可以更快地工作,并且他们遭受的重复性劳损也更少。

有些事情无法使用 GUI 界面高效完成或根本无法完成。这是一个完全随机的例子,但它说明了这一点:
在 PC 上,我的目录包含数千张图像及其缩略图。对于每个图像xxx.jpg都有一个缩略图xxx-t.jpg。我想将所有缩略图加载到 Photoshop 中。使用鼠标,这需要一整天的时间。使用 Kermit,您可以这样做(在 Kermit 命令提示符下):
mkdir 缩略图

重命名 *-t.jpg 缩略图/

  • 然后在缩略图子目录中,按 Ctrl-A 组合键“全选”并拖动到 Photoshop(然后,如果需要,可以通过鼠标移动将缩略图拖回原始目录,或使用一个 Kermit 命令将其重命名回来)。

Kermit 95的开发不仅是为了满足哥伦比亚对从 Windows 95(及更高版本)到基于文本的中央服务的连接的需求,也是为了筹集资金来支持 Kermit 项目。与其他 Kermit 程序不同,K95 是严格商业性的,提供零售收缩包装版本(右)和批量复制权许可证。从 1995 年发布到 2011 年中期,已购买了超过 25 万个批量许可证席位,涉及 1000 多个许可证,许可证规模从 100 个席位到 10,000 个席位不等。大约销售了 30,000 份收缩包装版,还有数千份从电子学院购买下载,K95 获得了 100 多所大学以及整个州内的大学系统(如纽约州立大学)(64 个校区,约 400,000 名学生)的网站许可。

克米特项目于 1984 年在自筹资金的基础上启动,从那时起直到 2011 年取消为止,它为大学实现了8,894,912.00 美元的收入,加上价值3,000,000.00 美元的设备补助金(隐士项目) 。从 1984 年 Kermit“业务”开始到 1998 年互联网接管世界,我们在磁性介质(主要是 10 英寸卷轴的 9 磁道磁带)上发货了 31,591 份 Kermit 软件;其中 4679 份国际航班飞往 107 个不同的国家,其中包括苏联和南斯拉夫等一些已不复存在的国家,以及新喀里多尼亚等您可能意想不到的国家。

Kermit 书籍Kermit 95 C-Kermit E-Kermit G-Kermit当前软件版本

克米特协议

自 1981 年诞生以来,Kermit 协议已发展成为一种复杂、强大且可扩展的独立于传输的文件传输和管理工具,其中包括:

  • 在一次操作中传输多个文件。
  • 文件属性传输(大小、日期、权限等)
  • 文件名、记录格式和字符集转换
  • 文件冲突选项,包括“更新”功能
  • 文件传输恢复(从故障点恢复中断的二进制模式传输)
  • 自动上传和下载
  • 客户端/服务器文件传输和管理
  • 文件组传输期间自动按文件文本/二进制模式切换
  • 递归目录树传输,甚至在不同平台之间(例如 Unix、Windows、VMS)
  • 串行和网络连接上的统一服务
  • Internet Kermit 服务守护进程

Kermit 协议在每个方向上使用定义明确、有序、经过错误检查的数据包来实现文件传输会话,遵循协议分层的标准规则。数据包专为实现最大透明度而设计,因此它们可以通过任何通信介质,无论限制如何。半双工(停止并等待)、全双工(具有选择性重传的滑动窗口)和连续流传输可用于适应任何连接。

Kermit 协议与大多数其他协议的区别在于其广泛的设置,允许适应任何两种计算机之间的任何类型和质量的连接 — 数据包长度、数据包编码、窗口大小、字符集、错误检测方法、超时,停顿。大多数其他协议被设计为仅在某些类型或质量的连接上工作,和/或在某些类型的计算机或类似文件系统之间工作,因此在其他地方工作得很差(或根本不工作),并且几乎没有提供适应计划外的方法。 — 对于情况。另一方面,Kermit 允许您在任何给定连接上实现成功的文件传输和尽可能高的性能。

与 FTP 或 X-、Y- 和 ZMODEM(Kermit 最常与之比较的其他协议)不同,Kermit 协议不假设或要求:

  • 全双工连接;
  • 对控制字符透明的连接;
  • 8 位连接;
  • 干净的连接;
  • 整个通信路径都有大缓冲区;
  • 物理链路层流量控制。

(尽管 Kermit 不需要任何这些条件,但当它们可用时它可以利用它们)。Tim Kientzle 在《Dr.》 1996 年 2 月号上发表了一篇关于 Kermit 协议的专题文章。Dobb’s Journal指出,“Kermit 的窗口方法比 XModem 和 YModem 等协议更快。。。许多人没有意识到,在不太理想的条件下,Kermit 的窗口方法比 ZModem 快得多,ZModem 是一种因在高质量线路上进行快速传输而享有盛誉的协议。” Kermit 协议的有效性在此处和此处进行了深入分析。

因此,Kermit 几乎每次都“开箱即用”地传输工作。在更高级别上,Kermit 命令语言允许以任意组合使用各种方便的文件选择标准,例如:

  • 匹配文件名的通配符和模式
  • 按日期范围选择
  • 按尺寸范围选择
  • 仅文本文件
  • 仅二进制文件
  • 仅限另一端不存在或较新的文件
  • 例外列表和模式

几乎可以完成您能想象到的任何分组。在传输过程中,文件可以转换其字符集,可以通过过滤器等,并且在成功传输后,可以删除或重命名源文件,可以重命名或邮寄目标文件等。

克米特协议规范

Kermit 文件传输协议规范在 Frank da Cruz 所著的《Kermit, A File Transfer Protocol》一书中给出, Donald Knuth作了前言(现已以PDF格式在线提供)。该规范还可在《克米特协议手册》第六版(1986 年)中在线获取。这两者都缺乏后来的改进,但确实包括服务器模式、长数据包、滑动窗口等。稍后添加的文档已收集并公开可用,请参见此处。1995 年,密歇根大学的 James Huggins 发布了 Kermit 协议的正式规范和验证;你可以在这里下载。

KERMIT 文件传输示例

让我们看一下常见的情况,您有一台 Windows 台式计算机,可以连接到 Unix 服务器上的 shell 会话(任何类型的连接(调制解调器、串行端口、常规 Telnet、安全 Telnet、rlogin、安全 rlogin、SSH))(“ Unix» = Linux、Mac OS X、FreeBSD、Solaris、AIX、HP-UX等)并且您想要在 PC 和 Unix 服务器之间传输文件。Windows 上的终端仿真器是Kermit 95,Unix 服务器安装了C-Kermit或G-Kermit,只需在 shell 提示符下键入“kermit”(或者可能是“ckermit”或“gkermit”)即可调用它们。

要下载文件(例如message.txt ),请在 shell 提示符下键入以下命令:

kermit -s 消息.txt

该文件将发送至您 PC 上 Kermit 95 的当前目录(或者发送至其下载目录,如果您已定义)。文件是文本还是二进制并不重要;Kermit 计算出它并以适当的模式自动传输它。

同样,如果您要传输一组文件,例如名称以“daily”开头的所有文件。”:

kermit -s 每日。*

Kermit 发送每个匹配的文件,并根据每个文件的情况自动在文本和二进制模式之间切换(daily.jpg、daily.xls、daily.txt…)

将文件从 PC 上传到 Unix 也同样简单。假设您的 PC 上 Kermit 95 的当前目录中有一个名为“ budget.xls ”的文件。要将其上传到 UNIX,请在 Unix shell 提示符下键入:

克米特-g 预算.xls

这些是基础知识;有许多变化和改进;例如:

  • 仅传输比另一端的对应文件更新的文件。
  • 适当地转换文本文件的字符集(例如,在 ISO 8859-1 和 Unicode UTF-8 之间)。
  • 从故障点恢复部分传输(仅限二进制模式)。

为了节省输入时间,您可以在 Unix 上定义别名(在您的 shell 配置文件中):

别名 s=»kermit -Ys»

别名 g=»kermit -Yg»

(s代表发送,g代表获取)。进而:

消息.txt

预算.xls

值得注意的是,您正在通过已有的连接传输文件;因此,无需建立新的联系、重新验证自己的身份或类似的官僚作风。如果连接受 SSH、Kerberos、SSL、TLS 或 SRP 保护,则文件传输也会自动安全。

这标志着无与伦比的便利程度。当您告诉 Unix 上的 C-Kermit 发送或获取文件时,Kermit 95 的终端仿真器会自动识别其第一个文件传输数据包,并且 K95 会根据方向以及传输何时进入接收模式或服务器模式。完成后,K95 返回到终端仿真屏幕。如果出现错误(例如,如果您在目标目录中没有写入权限),K95 会保留在其文件传输屏幕中,以便您可以查看问题所在。

只要您使用 K95 或 C-Kermit 作为终端,相同的过程也适用于 Unix 到 Unix、K95 到 VMS、Unix 到 VMS、VMS 到 Unix 或 OS/2 到 VMS 或 Unix程序。

现场链接

  • 克米特参考书目
  • 流行的误解
  • 克米特项目主页
  • 适用于 Unix 和 VMS 的 Kermit 软件
  • 适用于 Windows 的 Kermit 软件
  • 克米特新闻 1986-1994
  • 克米特新闻组档案 1994-2010
  • Kermit 协议数据包参考
  • RFC 2839 … RFC 2840
  • 自动化 — Kermit 脚本语言
  • 更多自动化(高级 FTP 脚本)
  • 标准活动
  • 克米特软件档案
  • 克米特项目历史
  • 哥伦比亚大学计算机史

站外链接

  • 克米特口述历史小组:Jeffrey Altman、Bill Catchings 和 Frank da Cruz,2012 年 4 月 6 日,纽约哥伦比亚大学沃森实验室,计算机历史博物馆 [本地存档副本]。
  • Joe Doupnik 的口述历史,2012 年 7 月 23 日,加利福尼亚州山景城,计算机历史博物馆 [本地存档副本]。注:在第 8 页,Joe 将 Daphne Tzoar 称为最初的 MS-DOS 程序员之一,这是正确的,但随后错误地将后续 MS-DOS Kermit 书籍归功于她,而这些书籍实际上是由 Christine Gianone 编写的。同样在该页面上,“Jeff Damons”应该是“Jeff Damens”。
  • 计算机历史博物馆中的克米特项目材料索引。
  • Frank da Cruz Kermit 记录指南,加州在线档案馆,2020 年 1 月。
  • Kermit(协议),维基百科,于 2019 年 10 月 9 日访问。此页面的全新且经过大幅改进的版本于 2019 年 8 月出现。