One more hop for Kermit
For many systems in those days - especially systems without a government budget behind them - the "network interface" was the serial port. That's how we connected to The Computer at work; that's also how we got onto the early services which were available in those days. The first thing any RS232 networking user needed was a way to move keystrokes between one interface (where they sat) and the interface connected to the modem. Unix systems often came with a tool called "cu" for that purpose, but, even on those systems, users tended to gravitate toward a newish tool called Kermit instead.
Kermit has its roots at Columbia University, where it was developed as a way to communicate between computers on a heterogeneous network. It would fit easily onto a floppy and was (unlike cu) easy to set up and use; one just needed to figure out how many data bits, how many stop bits, and what kind of parity to use (RS232 is a fun "standard"), type an appropriate ATD command at the modem, and go. Kermit could even handle things like translating between different character sets; talking to that EBCDIC mainframe was not a problem.
Over a short period of time, Kermit developed some reasonable file transfer capabilities. Its protocol was efficient enough, but it was also designed to deal with serial ports which might interpret control characters in unexpected ways, turn eight-bit data into seven-bit data, and more. The robustness of the protocol meant it "just worked" between almost any two arbitrary types of machines. So it's not surprising that, in those pre-Internet days, Kermit became a popular way of moving files around.
Columbia distributed a number of versions of Kermit in source form; it could be had from bulletin board sites, DECUS tapes, and more. The program was never released as free software, though. When Kermit was first coming into use, free software licenses as such didn't exist yet. The university considered releasing the code into the public domain but decided that it wasn't a good idea:
The license for Kermit varied over time, but was always of the "you may make noncommercial use of this program" variety. The final version of the Kermit license allowed bundling the program with free operating systems, but did not allow modifications to the source without permission. As a result, despite the fact that Kermit's license allowed distribution with systems like Linux, most distributors eventually shied away from it because it was not truly free software.
Anybody other than free operating system projects wanting to distribute Kermit commercially had to buy per-seat licenses (at a cost of $3-10 each) from Columbia.
Kermit has proved remarkably durable over the years. During Kermit's lifespan, the Internet has taken over, even our phones can run ssh, and RS232-based communications have mostly fallen by the wayside. Kernel developers are still known to use serial consoles for some types of debugging, but your editor would predict that a substantial portion of the rest of LWN's readership has never had to wonder where that null modem cable went to. Kermit's user base must certainly be shrinking, but it is still being maintained and sold to those who need it.
Or, it least, it was; in March the university announced that it was unable to continue supporting the Kermit project. One assumes that commercial license sales had finally dropped to the point where they weren't worth the administrative overhead of dealing with them. As of July 31, 2011, the university will put no further development effort into Kermit and will no longer provide support and maintenance services. A three-decade project is coming to a close.
Columbia University is doing one more thing with Kermit before the end,
though - it is releasing the software under the BSD license. C-Kermit 9.0 will carry
that license; the first beta release was made on June 15. The 9.0
release will also support the FORCE-3 packet protocol ("for use under
severe conditions
"), improved scripting, various fixes, and more.
So the 9.0 release, presumably scheduled for sometime close to the
July 31 deadline, will not just have new features; it will be free
software for the first time.
As a result of this change,
Kermit may soon show up in a distribution repository near you; most Linux
users are, at this point, unlikely to care much. But, for many of us,
there will yet come a time when the only way to talk to a system of
interest is through a serial connection. Kermit is far from the only
option we have at this point, needless to say, but it's a good one.
Kermit's hop into the the free software community is more than welcome.
Posted Jun 23, 2011 0:54 UTC (Thu)
by daney (guest, #24551)
[Link] (5 responses)
I use Kermit every day to communicate with little embedded systems (and the serial ports of x86 PCs when capturing console output to debug kernel crashes), and find it superior to minicom for this. Or perhaps I just can't be bothered to learn how to use minicom.
Posted Jun 23, 2011 2:54 UTC (Thu)
by lutchann (subscriber, #8872)
[Link] (3 responses)
Do you use GNU Screen? Try `screen /dev/ttyS2 115200` from inside your screen session.
You get all the nifty screen features like the scrollback buffer and logging, without having to learn anything new.
Posted Jun 23, 2011 7:17 UTC (Thu)
by jengelh (guest, #33263)
[Link]
Posted Jun 23, 2011 13:40 UTC (Thu)
by kena (subscriber, #2735)
[Link] (1 responses)
Posted Jun 23, 2011 15:09 UTC (Thu)
by iam.TJ (guest, #56644)
[Link]
<baud_rate>
cs8 or cs7
ixon or -ixon
ixoff or -ixoff
istrip or -istrip
I've always been confused by the ixon/ixoff option names and purpose since ixon/ixoff look like a complementary pair for enable/disable of a single function - I'd always thought the initial "i" was for "input" and the second pair would use "o" for "output", e.g: oxon/oxoff.
Posted Jun 23, 2011 9:00 UTC (Thu)
by leighbb (subscriber, #1205)
[Link]
Posted Jun 23, 2011 4:48 UTC (Thu)
by tstover (guest, #56283)
[Link]
These control characters let serial terminal graphics happen with actual pixel control. (I also think this is what the old Prodigy service used for its drawing)
Posted Jun 23, 2011 5:12 UTC (Thu)
by nlucas (guest, #33793)
[Link]
The only thing needed for that was, off course, kermit (and a bootable DOS disk, because the Amstrad didn't have any hard-drive, only two 3.5' floppy's).
At the time, terminals were already becoming scarce, so it took some effort finding information about it (and I had no monitor :).
------
Posted Jun 23, 2011 5:59 UTC (Thu)
by kena (subscriber, #2735)
[Link]
I do have to differ with Jon, though: I love reading about kernel stuff, but a kernel hacker I am not. Nevertheless, hardware labs are a place where RS-232 lives on strongly, and as an IT guy supporting hardware engineers, I always keep a couple spare null modems, gender-benders, 9-to-25 converters, USB-to-9-pin, etc., lying around.
In a real sense, the end of Kermit's commercial release, though, heralds the day in the foreseeable future when RS-232 will, finally, be defunct. It's had a good run -- I remember rather ecstatically when I got a *1200* baud modem; I was finally faster than my neighbor with the acoustic coupler! And (IMHO, in order) Modem-7, X-Modem, K-Modem, Kermit and Z-Modem had good runs, but I suppose it's best to look forward to what the wonderful world of truly networked protocols will deliver.
Posted Jun 23, 2011 8:50 UTC (Thu)
by eru (subscriber, #2753)
[Link]
Posted Jun 23, 2011 9:48 UTC (Thu)
by copsewood (subscriber, #199)
[Link]
To get an Apollo workstation to do the same trick I had to obtain the Kermit Pascal source code for it and compile it. I seem to remember the source code did need a minor modification to compile it.
As to future uses, in computer museums Kermit will probably be a very useful tool for enabling artefacts to communicate with each other.
Posted Jun 23, 2011 13:25 UTC (Thu)
by mtk (subscriber, #804)
[Link]
Posted Jun 23, 2011 14:21 UTC (Thu)
by rfunk (subscriber, #4054)
[Link]
I first used Kermit about 20 years ago to transfer files from a Unix server to my Atari computer. Later I used it to transfer files between my Linux computer and my HP-48 calculator. (An emulator of the latter now runs on my phone.) I think the last time I used it, though, was to turn an old DOS 386 laptop into a serial terminal, and that was nearly a decade ago.
I must protest the disparagement of cu, however; I'm quite a fan of the simplicity of using "cu -l /dev/ttyS0" to talk to a serial port.
Posted Jun 23, 2011 18:29 UTC (Thu)
by mleu (guest, #73224)
[Link] (1 responses)
Posted Jun 24, 2011 19:03 UTC (Fri)
by diederich (subscriber, #26007)
[Link]
Posted Jun 23, 2011 22:06 UTC (Thu)
by rwmj (subscriber, #5474)
[Link] (1 responses)
But it's still great that kermit is finally free software!
Posted Jun 24, 2011 0:50 UTC (Fri)
by vapier (guest, #15768)
[Link]
Posted Jun 24, 2011 11:01 UTC (Fri)
by brouhaha (subscriber, #1698)
[Link]
Posted Jun 30, 2011 11:07 UTC (Thu)
by robbe (guest, #16131)
[Link]
It is also useful to troubleshoot servers if you happened to hose even the management ethernet port. (If you have no clue about the IP address the management reacts to, e.g. it beats connecting a PC with a cross-over LAN cable and doing "nmap -sP 0.0.0.0/0".)
Maybe these will switch to acting as a USB gadget in the future, but there seems no pressing need. 9600 bps is still almost universal for this kind of use, so speed is not an issue. Maybe when UARTs become a significant cost...
Never used kermit, myself, being brought up with telix on DOS; minicom is a natural progression then.
Posted Jun 30, 2011 11:36 UTC (Thu)
by jpfrancois (subscriber, #65948)
[Link]
I find it much better (or at least intuitive) than minicom.
This is great news, since it means we will probably have distribution packages again :)
serial is far from dead since all processor I know has an UART, and lot of them can boot from it. You don't need RS-232 connector and cables, usb cables, and micro usb dongles with a three pin connector, and you are all set-up to start hacking with your board.
I used kermit scripting, until I started to know some python and switched to pyserial. However, I still launch kermit from this script to do some file transfer :)
One more hop for Kermit
One more hop for Kermit
One more hop for Kermit
One minor problem...
man screen...
connected to this device. This window type is similar to "screen cu -l /dev/ttya". Read and write access is required on the
device node, an exclusive open is attempted on the node to mark the connection line as busy. An optional parameter is
allowed consisting of a comma separated list of flags in the notation used by stty(1):
Usually 300, 1200, 9600 or 19200. This affects transmission as well as receive speed.
Specify the transmission of eight (or seven) bits per byte.
Enables (or disables) software flow-control (CTRL-S/CTRL-Q) for sending data.
Enables (or disables) software flow-control for receiving data.
Clear (or keep) the eight bit in each received byte.
One more hop for Kermit
ReGIS / Sixel
One more hop for Kermit
¹) http://en.wikipedia.org/wiki/PPC_512
One more hop for Kermit
One more hop for Kermit
One more hop for Kermit
One more hop for Kermit
One more hop for Kermit
One more hop for Kermit
One more hop for Kermit
rz and sz
rz and sz
One more hop for Kermit
RS232
One more hop for Kermit
I too uses kermit daily to talk to small embededd board, and upload
code to them.
The kermit file transfer protocol never let's me down.
