Kermit生誕45周年!15年ぶりのメジャーアップデート「C-Kermit」がついにリリース
Celebrating 45 Years of Kermit with the First New C-Kermit Release in 15 Years
Celebrating 45 Years of Kermit with the First New C-Kermit Release in 15 Years
伝説的な通信プロトコルおよびファイル転送ソフトウェアである「Kermit」が、誕生から45周年を迎えました。これを記念して、なんと15年ぶりとなる「C-Kermit」の新しいメジャーリリースが発表されました。長らくアップデートが途絶えていたプロジェクトの復活は、レガシーシステムを愛するエンジニアにとって大きな驚きです。
自分はかなりのベテランだけど、組み込み開発では今でも普通にKermitを使ってるよ。シリアルポートコンソール経由での自動化には本当に便利なんだ。今の若い世代でどれくらい使われてるのか気になるところだね。
Frank da Cruzと一緒にオリジナルの仕様策定とコーディングを手伝った学部生のBill Catchingsは、今もブログを書いてるよ。彼がKermitについて直接語ったのは少し前だけど、Kermitの40周年に関する興味深い投稿が1つか2つあるよ。 https://www.billcatchings.com/2012/04/frog-from-my-past.html https://www.billcatchings.com/2013/11/kermit-oral-history-panel-update.html そして彼が言及しているオーラルヒストリーへのリンクはこちら。 https://www.computerhistory.org/collections/catalog/102746411/
若い頃、プール機器会社の各拠点でダイヤルアップモデムを使ってデータを同期させるプロジェクトなどでKermitをよく使ってた。あの頃は最高だったな(笑)
懐かしすぎて泣ける。自分はComputervisionのCGOS環境にKermitを移植したことがあるよ。ユーザーコミュニティではかなり人気だった。社内では、マシンルームまで歩いて行って磁気テープを漁ったり、FUTILと格闘したりしたくない時に、ターミナルコンセントレータ越しにシステム間でファイルを転送するのによく使われてたね。
1992年当時、Apple 2+を持ってたけど、その時点で既に古いマシンだったな。Apple 2+はアルファベットの大文字しか表示できなかったんだ。確か右矢印キーと文字キーを同時押しすると、文字が反転表示(白背景に黒文字)になるターミナルソフトを使って地元のBBSに繋いでいたのを覚えてる。シリアルカードにHayesの1200ボーのシリアルモデム(だったかな)を繋いでたんだけど、反転表示になることで大文字を送っているのが確認できたんだよね。Kermitだったかどうかは定かじゃないけど。
なんでBBSでKermitは使われなかったんだろう?当時、コンピュータ雑誌で読んだ記憶はあるけど、82年頃に初めてモデムを入手して以来、実際に使われているのを見た覚えがないんだ。初めてちゃんと触ったのは、自分で書いたファームウェアを組み込みコントローラーにアップロードする時だったな。でも、本来設計された目的では?一度もなかったよ。結局のところ、YMODEMやZMODEMが定着するまで何年もかかったし、当時はPunterとか初期のプロトコルもいろいろ選べたからね。でもKermitじゃなかったな。
BBS全盛期にはほとんどKermitはスルーしてたな。ZMODEMと張り合える「SuperKermit」が出てきた頃には、既に時代遅れのように見えたから。その後、1991年頃に友達から大学のUnixアカウントを使わせてもらって、GopherやArchie、TinyFugue(MUD/MUCKの世界!)で遊べるようになった。でも問題があって、自宅からそのアカウントに繋ぐには、フロリダ州のネットワーク経由でダイヤルインして、大学のキャンパスのマシンに繋ぐ必要があったんだ。そのネットワークはIBMのミニコンで動いてたんだけど、Unixマシンには直接繋がらず、まずはVAXに繋がって、そこからUnixマシンにtelnetするっていう面倒な手順が必要だった。信じられないことに、多少の遅延はあったけどこれで繋がったんだ。でもUnixマシンから自分のマシンにファイルを送ろうとしたら、ZMODEMもXMODEMも全然ダメで。諦めかけた時に、接続が難しい環境でも信頼できるというKermitの評判を思い出して試してみたら、一発で成功したよ。
1989年頃、「AIXは他のUnixとどれくらい互換性があるのか?」という研究の一環で、IBMのAIX向けにKermitをコンパイルしたことがある。Kermitのソースコードは、一つのソフトウェアがこれほど多種多様で互換性のない非標準プラットフォームをサポートできるのか、という点で、今でも記憶に残る最高傑作だよ。Unixそのものよりも凄くて、当時はVMSやUnix以外の環境でも動かせたからね。あんなに大量の #ifdef や、複雑な「今どのプラットフォームで動いてるんだ?この機能はあるか?いや、こっちはどうだ?HP-UXか?バージョン6?いや7?いや8?VMSか?SunOSか?Unix System IIIか?」といった判定の嵐は、人生で見たことがない。Kermitは、「ポータブル」という言葉が「ありとあらゆる不適合なシステムに個別に適応すること」を意味していた時代の、並外れた移植性のモニュメントだよ。
「Kermitという名前はHenson Associates, Inc.の許可を得て使用しています」なんて、今の時代ならまずあり得ない話だよね。
C-Kermitのクールな機能の一つは、開いているSSHセッション上でインラインのファイル転送ができることだね。screenやtmuxのようなターミナルマルチプレクサ上では動かないけど、クライアントとリモートホスト間で素早くファイルを送るにはかなり便利。リモートホスト側にkermitかzmodem(sz/rz)があればいいし、K95ならZmodemにも対応してたしね。SecureCRTみたいな有料のSSHクライアントにはZmodem機能があるけど、フリーソフトでこれが使えるのはありがたいよ。