Celebrating 45 Years of Kermit with the First New C-Kermit Release in 15 Years
changelog.complete.org
changelog.complete.org
Kermit was an extraordinary monument to portability in an era when "portable" often meant "we have individually accommodated every incompatible system anyone has ever built or might possibly still be using, however improbably."
I compiled, weak and weary,
Over many a quaint and curious
emerge of GNU more—
While I nodded, nearly napping,
suddenly there came a tapping,
As of someone gently rapping, rapping at my chamber door.
“’Tis just automake,” I muttered, “gently checking CPU floor—
Only this, and nothing more.”
“Automake!” said I, “thing of evil!—automake still, if GNU or devil!—
Whether Linus sent, or whether Stallman tossed thee here ashore,
Desolate yet all undaunted, on this desert land enchanted—
On this home by horror haunted—tell me truly, I implore—
Is there—is there caching in Gentoo?—tell me—tell me, I implore!”
Quoth automake, “Nevermore.”
It would be nice if automake remembered your system in a cache.
It saddens me whenever someone or a group religiously tie their opinions or assumptions to a particular platform and irrationally scoff at others or refuse to consider that other things exist, are used, and function.
Then, around 1991, a friend gave me access to his college Unix account so I could play with Gopher, Archie, and TinyFugue (the world of MUDs/MUCKs/etc.). The catch: to get to his account from my home machine, I had to call into a Florida state network that let you dial in and connect to machines on various college campuses. The network ran on some IBM minicomputer. And, it didn't connect to the Unix machine, oh no. It connected to a VAX, which was then on the same local network as the Unix machine.
So I had to dial in to the IBM machine, connect from it to a VAX, and then telnet from the VAX to the Unix box.
Incredibly, this all worked with only mildly annoying lag...but then I tried to transfer a file from the Unix machine to my personal machine. ZMODEM didn't work. XMODEM didn't work. I think I tried one or two other things that I've forgotten.
Then I remembered Kermit, and its reputation for being able to handle difficult connections. It got the file through on its first try.
For context, on the other side of the wall where we were doing this was a Cray, probably a Cray 1. The one with the bench seating in a semicircle on top of cooling hardware.
https://www.billcatchings.com/2012/04/frog-from-my-past.html https://www.billcatchings.com/2013/11/kermit-oral-history-pa...
and here is a link to the oral history he discusses:
https://www.computerhistory.org/collections/catalog/10274641...
For several of them, it is possibly the only surviving publicly accessible code.
For example, the GUTS (Gothenburg University Timesharing System) implementation-I doubt you will find any other code written for GUTS anywhere online. Maybe some offline archive at some former user still has some code for it, maybe this is all that survives
By the time zmodem became popular, the biggest remaining selling point of Kermit was the built-in scripting. Not much use for one-off BBS-style transfers, but very handy for keeping a directory in sync etc.
In modern times, I use it as a powerful ssh wrapper and BBS client. Its character-set translation is ideal for CP437 to UTF8. See https://www.openkermit.org/ckermit/ssh/ and https://www.openkermit.org/ckermit/bbs/
I remember evaluating Kermit and ymodem for my embedded work too, but didn't end up using them. Maybe I didn't understand Kermit fully. I wanted something to connect over serial (usb cdc and ble) via the browser and manage files and the state of the device.
I always end up writing something worse and half-baked in the end..
I used MS-Kermit as a terminal emulator on the same system. I was accessing academic Unix systems and probably also remote access at my first job. MS-Kermit had a keycode translation capability that I used extensively.
My 2400/MNP5 modem sometimes only had a 7-bit connection. Without being 8-bit clean, I couldn’t directly use the Meta key with GNU Emacs. But sometimes I did achieve an 8-N-1 clean connection in the same modem pool!
So I wrote up two large tables for MS-Kermit: one for the 7-bit connection that would send ESC to simulate Meta for Emacs. And one for 8-bit-clean operation that used ALT as Meta and sent the ASCII code >=128.
I eventually submitted them to the GNU Emacs project and one was distributed with Emacs 18. Eventually, they were forced to remove it during a copyright/license cleanup audit. But it was my claim to 15 minutes of fame.
So… why? We didn’t collectively settle on YMODEM and ZMODEM until many years later. There were lots of early protocols to choose from back then, too. Punter, anyone? No Kermit, though.
And finally Kermit didn’t have great defaults especially compared to ymodem and zmodem. So getting good performance out of Kermit was much harder than the others.
All of that added up to much lower adoption outside of the mainframe world.
I never used the translation features, though I can think of one particular summer where that would have been very useful (had a 7E1 connection - I got files to my PC by uuencoding to screen, saving the buffer contents to my PC, and then uudecoding them locally).
FTP is another great example where people got the impression that it was prone to corrupting transfers because the default setting was to corrupt binary transfers.
The remote host just needs kermit or zmodem (sz/rz), since at least K95 supported zmodem also.
There are paid for SSH clients (SecureCRT) that has the feature with Zmodem. Nice to have it on free software.
Ages a ago I used it on Coherent OS via dial up to sign into a Sun Server at work that I used for USENET and general internet access. When I dialed in the server would hang up and call be back so I would avoid Long Distance Charges. ckermit handled that itself, fun times.
I purchased the book to help with the project, I should go and dig it out :)
that certainly would never happen nowadays.
The Apple 2+ only supported displaying capital letters.
I remember calling a few local BBSes using terminal software that let me press the right arrow (I think) and the character key, and it would display the character inverted (white background, black letter).
Hayes 1200 baud serial modem (I think) hooked up to a serial card.
That's how I knew I was sending a capital letter.
Not sure if it was Kermit though..
Those were the days lol.
doesn't sound so different anymore...the VCs have managed to go back to the future...
This graph (https://ourworldindata.org/grapher/historical-cost-of-comput...) doesn't contain the latest uptick, but just to get the picture:
1981: 1 TB of memory cost 12.8 billion $ (at least theoretically - I'm not sure if worldwide RAM production for that year was more than 1 TB?)
2023: 1 TB of memory cost 1088 $