カーミット (プロトコル)

Kermit
通信プロトコル
目的 ファイル転送
開発者 コロンビア大学
導入 1981年 (43年前) (1981)

カーミット (Kermit) はコンピュータファイル転送プロトコルおよび通信ソフトウェアの名称である。カーミットはファイル転送、端末エミュレータスクリプト言語プログラミング、および異なるハードウェアオペレーティングシステム間での文字コード変換の機能を提供する。

技術

[編集]

カーミットプロトコルは、全二重および半二重/8ビットおよび7ビットのシリアル通信の上で、システム/媒体の非依存の形式で、テキストファイルバイナリファイルの転送の機能を提供し、数百の異なるコンピュータ/オペレーティングシステムの上に実装されている。全二重通信を使用した場合、スライディングウィンドウプロトコルによる選択的な再送が使用され、優れた性能とエラー回復を実現する。コロンビア大学のカーミットソフトを適切に実装すれば、ZMODEMYMODEMXMODEMのようなほかのプロトコルと同等か、より優れた性能を実現することができる。RS-232C上での通信では、XMODEMのようなプロトコルは、256種類の文字コードをすべて転送する必要があるが、カーミットはいくつかのASCII制御コードを転送しないので、統計多重化を構成できる。

歴史

[編集]

カーミットは1981年コロンビア大学で開発され、学生はマイクロコンピュータ(当初はCP/Mが動作するIntertec Superbrain)のリムーバブルメディアで、IBMメインフレームTOPS-20オペレーティングシステムが動作するDECDECSYSTEM-20からのファイルを使用することができた。IBMメインフレームはEBCDICキャラクタセットを使用し、CP/MとDECはASCIIキャラクタセットを使用していたため、2種類のキャラクタ間での文字コード変換は初期のカーミットに組み込まれた。

それぞれのCP/Mマシンは多数の異なるフロッピーディスクのフォーマットを使用していたので、あるCP/Mマシンのフロッピーディスクが、通常は他のCP/Mマシンでは読むことができなかった。非常に遅いボーレート(エラー回復が組み込まれていないため)でのPIPにより、ヌルモデムケーブルで、小さい簡易版のカーミットを一つのCP/Mマシンから別のマシンに転送した。もしそれができないならば、非常に小さい簡易版カーミットプロトコルが、CP/MのデバッガであるDDTを使用し、2K以内のバイナリでハンドコーディングされた。このようにして準備した簡易版のカーミットによって、フル機能のカーミットをダウンロードすることができた。フル機能のバージョンにより、あらゆるCP/Mのアプリケーション/データを転送することができた。

誕生から20年以上にわたって、カーミットプロトコルは世界的なデータ通信のデファクトスタンダードとなり、単純な学生の宿題から、国際宇宙ステーションでの互換性問題の解決までのタスクに使用された。それは幅広い範囲のメインフレーム、ミニコンピュータ、マイクロコンピュータに移植された(C-Kermit はHello Worldの次に多く移植されたプログラムといわれている)。多くのバージョンはオリジナルの TOPS-20 のカーミットに基づいたユーザインタフェースを持っている。MS-DOSバージョンのカーミットは1983年に開発された。後に実装されたカーミットのいくつかは、シリアル通信だけでなく、ネットワーク通信にも対応している。

現在サポートされている実装は「C-カーミット」(UnixおよびOpenVMS用)と「カーミット95」(Windows 95以降のWindowsおよびOS/2)だが、他のバージョンも同様に利用することができる。今でもカーミットプロトコルがブートストラップとして使われることがある。そして、その伝説的な移植性についての出所の怪しい話がある:「あなたのトースターの中にマイクロチップがあるならば、どこかの誰かがおそらくカーミットを移植している」。

初期のカーミットはコロンビア大学で開発され無料で配布されたが、1986年に開発を引き継ぐカーミットプロジェクトが設立され、商用利用に課金を開始した。このプロジェクトは経済的に自立している。

マペットと著作権

[編集]

カーミットは、マペットの カーミット (Kermit The Frog) にちなんで名づけられた。Macintosh版のプログラムのアイコンは、Kermit the Frogを描写したものであった。おそらくは商標問題を避けるためにバクロニムが作られた( KL10 Error-Free Reciprocal Microprocessor Interchange over TTY lines、但し、KL10 Error Free Reciprocal Micro Interconnect over TTY linesとする資料もある[1])。

カーミットは公開されたプロトコルであり、だれてもカーミットを元にしてプログラムを作ることができる。しかし、いくつかのカーミットのソースコードはコロンビア大学に著作権がある。

ソフトウェア

[編集]

UNIX系

[編集]

MS-DOS

[編集]

Microsoft Windows

[編集]

その他

[編集]

脚注

[編集]
  1. ^ bit 編集部『bit 単語帳』共立出版、1990年8月15日、50頁。ISBN 4-320-02526-1 
  2. ^ 木村広, 田井村明博「電子メール・電子ニュースの使い方」『長崎大学教養部紀要. 自然科学篇』第33巻第1号、長崎大学教養部、1992年7月、65-109頁、CRID 1050850247227498752hdl:10069/16633ISSN 02871319 

外部リンク

[編集]