Kermit (protocol) explained

Kermit
Purpose:File transfer
Developer:Columbia University

Kermit is a computer file transfer and management protocol and a set of communications software tools primarily used in the early years of personal computing in the 1980s. It provides a consistent approach to file transfer, terminal emulation, script programming, and character set conversion across many different computer hardware and operating system platforms.

Technical

The Kermit protocol supports text and binary file transfers on both full-duplex and half-duplex 8-bit and 7-bit serial connections in a system- and medium-independent fashion, and is implemented on hundreds of different computer and operating system platforms. On full-duplex connections, a sliding window protocol is used with selective retransmission which provides excellent performance and error recovery characteristics. On 7-bit connections, locking shifts provide efficient transfer of 8-bit data. When properly implemented, as in the Columbia University Kermit Software collection, its authors claim performance is equal to or better than other protocols such as ZMODEM, YMODEM, and XMODEM, especially on poor connections.[1] On connections over RS-232 Statistical Multiplexers where some control characters cannot be transmitted, Kermit can be configured to work, unlike protocols like XMODEM that require the connection to be transparent (i.e. all 256 possible values of a byte to be transferable).

Kermit can be used as a means to bootstrap other software, even itself. To distribute Kermit through non 8-bit clean networks Columbia developed .boo, a binary-to-text encoding system similar to BinHex. For instance, IBM PC compatibles and Apple computers with a Compatibility Card installed can connect to otherwise incompatible systems such as a mainframe computer to receive MS-DOS Kermit in .boo format. Users can then type in a "baby Kermit" in BASIC on their personal computers that downloads Kermit and converts it into binary.[2] [3]

Similarly, CP/M machines use many different floppy disk formats, which means that one machine often cannot read disks from another CP/M machine, and Kermit is used as part of a process to transfer applications and data between CP/M machines and other machines with different operating systems. The CP/M file-copy program PIP can usually access a computer's serial (RS-232) port, and if configured to use a very low baud rate (because it has no built-in error correction) can be used to transfer a small, simple version of Kermit from one machine to another over a null modem cable, or failing that, a very simple version of the Kermit protocol can be hand coded in binary in less than 2K using DDT, the CP/M Dynamic Debugging Tool. Once done, the simple version of Kermit can be used to download a fully functional version. That version can then be used to transfer any CP/M application or data.[4]

Newer versions of Kermit included scripting language and automation of commands.[5] The Kermit scripting language evolved from its TOPS-20 EXEC-inspired command language[6] and was influenced syntactically and semantically by ALGOL 60, C, BLISS-10, PL/I, SNOBOL, and LISP.[7]

The correctness of the Kermit protocol has been verified with formal methods.[8]

History

In the late 1970s, users of Columbia University's mainframe computers had only 35 kilobytes of storage per person. Kermit was developed at the university so students could move files between them and floppy disks at various microcomputers around campus,[9] [10] such as IBM or DEC DECSYSTEM-20 mainframes and Intertec Superbrains running CP/M. IBM mainframes used an EBCDIC character set and CP/M and DEC machines used ASCII, so conversion between the two character sets was one of the early functions built into Kermit. The first file transfer with Kermit occurred in April 1981. The protocol was originally designed in 1981 by Frank da Cruz and Bill Catchings.[11] [12]

Columbia University coordinated development of versions of Kermit for many different computers at the university and elsewhere, and distributed the software for free; Kermit for the new IBM Personal Computer became especially popular. In 1986 the university founded the Kermit Project, which took over development and started charging fees for commercial use; the project was financially self-sufficient. For non-commercial use, Columbia University stated that[13]

By 1988 Kermit was available on more than 300 computers and operating systems.[14] The protocol became a de facto data communications standard[15] for transferring files between dissimilar computer systems, and by the early 1990s it could convert multilingual character encodings. Kermit software has been used in many countries, for tasks ranging from simple student assignments to solving compatibility problems aboard the International Space Station.[16] It was ported to a wide variety of mainframe, minicomputer and microcomputer systems down to handhelds and electronic pocket calculators. Most versions had a user interface based on the original TOPS-20 Kermit. Later versions of some Kermit implementations also support network as well as serial connections.

Implementations that are presently supported include C-Kermit (for Unix and OpenVMS) and Kermit 95 (for versions of Microsoft Windows from Windows 95 onwards and OS/2), but other versions remain available as well.

As of 1 July 2011, Columbia University ceased to host this project and released it as open source. In June 2011, the Kermit Project released a beta version of C-Kermit v9.0 under the Revised 3-Clause BSD License.[17]

As well as the implementations developed and/or distributed by Columbia University, the Kermit protocol was implemented in a number of third-party communications software packages, among others ProComm and ProComm Plus.[18] [19] [20] [21] [22] The term "SuperKermit" was coined by third-party vendors to refer to higher speed Kermit implementations offering features such as full duplex operation,[23] sliding windows,[24] [25] [26] and long packets; however, that term was deprecated by the original Kermit team at Columbia University, who saw these as simply features of the core Kermit protocol.[27]

Naming and copyright

Kermit was named after Kermit the Frog from The Muppets, with permission from Henson Associates.[28] The program's icon in the Apple Macintosh version was a depiction of Kermit the Frog. A backronym was nevertheless created, perhaps to avoid trademark issues, KL10 Error-Free Reciprocal Microprocessor Interchange over TTY lines.[29]

Kermit is an open protocol—anybody can base their own program on it, but some Kermit software and source code is copyright by Columbia University.[30] [31] The final license page said:[32]

See also

Further reading

External links

Notes and References

  1. Some of the sentences in the Technical section are based on text copied, on 30 October 2004, from the Free On-line Dictionary of Computing, which is licensed under the GFDL.
  2. Re: Printable Encodings for Binary Files . Kermit Project, Columbia University . Info-Kermit Digest . 1986-03-20 . 1 March 2016 . da Cruz, Frank.
  3. Kermit Bootstrapping . Kermit Project, Columbia University . Info-Kermit Digest . 1989-10-11 . 5 March 2016 . Fuller, Bill . da Cruz, Frank .
  4. Web site: C. . Gianone . CP/M-80 KERMIT VERSION 4.11 USER GUIDE. Columbia University Center for Computing Activities. New York. 23 April 1991. See "Figure 1-1: Bootstrap program for Kermit-80 and CP/M Version 2.2"
  5. http://www.columbia.edu/kermit/k95.html columbia.edu Kermit 95
  6. Web site: C-Kermit / Kermit 95 Scripting Tutorial and Library.
  7. Web site: C-Kermit / Kermit 95 Scripting Tutorial and Library .
  8. Book: Huggins, James K.. Specification and validation methods. Oxford University Press. 1995. 0-19-853854-5. Börger. Egon. New York. 247–293. Kermit: specification and verification. http://www.kermitproject.org/proof.pdf.
  9. News: Kermit: A File-Transfer Protocol for Universities / Part 1: Design Considerations and Specifications . BYTE . June 1984 . 23 October 2013 . da Cruz, Frank . Catchings, Bill . 251.
  10. News: Kermit: A File-Transfer Protocol for Universities / Part 2: States and Transitions, Heuristic Rules, and Examples . BYTE . July 1984 . 23 October 2013 . da Cruz, Frank . Catchings, Bill . 141.
  11. Book: Ying Bai. The Windows Serial Port Programming Handbook. 19 November 2004. CRC Press. 978-0-203-34196-4. 65.
  12. Book: Christopher J. Rawlings. S. Rawlings. Software Directory for Molecular Biology. 11 November 1986. Macmillan International Higher Education. 978-1-349-08234-6. 20.
  13. Announcing MS-DOS Kermit 2.30 . Kermit Project, Columbia University . Info-Kermit Digest . 1988-01-11 . 3 March 2016 . Doupnik, Joe . da Cruz, Frank .
  14. Kermits Needed . Kermit Project, Columbia University . Info-Kermit Digest . 1988-07-29 . 3 March 2016 . da Cruz, Frank.
  15. Web site: Standards: Do We Really Need Them?. Good. Robin. 23 December 2003. masternewmedia.org. 27 April 2009.
  16. http://www.spacedaily.com/news/iss-03zq.html International Space Station Incorporates Kermit
  17. Web site: C-Kermit 9.0 Beta Test . Columbia University's Kermit Project . 21 June 2011 . 22 June 2011.
  18. Book: Michele Woggon. Telecommunications Using ProComm & ProComm Plus Made Easy. 1 January 1995. Prentice Hall. 978-0-13-148412-2. 30–31.
  19. Book: Walter R. Bruce. Alan C. Elliott. Using Procomm Plus. 1 April 1991. Que Corp.. 978-0-88022-704-9. 139–143.
  20. Book: Joanne Krause. ProComm Plus 2.0 at Work. 1991. Addison-Wesley Longman, Incorporated. 978-0-201-57789-1. 109, 205.
  21. Book: Wally Wang. ProComm plus 2 for Windows for dummies. 1994. IDG Books. 127. 9781568842196.
  22. Book: Mike Callahan. Nick Anis. Dr. File Finder's Guide to Shareware. 1990. Osborne McGraw-Hill. 978-0-07-881646-8. 386.
  23. Book: Dictionary of Computer and Internet Words: An A to Z Guide to Hardware, Software, and Cyberspace. registration. 2001. Houghton Mifflin Harcourt. 0-618-10137-3. 150.
  24. Johnston. Christopher. 28 October 1986. Kermit. PC Magazine. Ziff Davis, Inc.. 5. 18. 132. 0888-8507.
  25. Book: Philip L. Becker. Introduction to PC communications. September 1991. Que. 978-0-88022-747-6. 69.
  26. Book: Alfred Glossbrenner. Power DOS!: learn to run your PC like a master. 31 March 1993. Random House Information Group. 978-0-679-73924-1. 368.
  27. Web site: Kermit FAQ - What Is SuperKermit?. www.columbia.edu. 2019-08-16.
  28. "Kermit - What is it?" The Kermit Project. 26 October 2006. Columbia University. 11 July 2007 http://www.columbia.edu/kermit/kermit.html.
  29. Web site: Superbrain Video Computer System. www.staff.ncl.ac.uk.
  30. Web site: Kermit Software: Frequently Asked Questions . dead . https://web.archive.org/web/20230523081033/http://www.columbia.edu/kermit/faq.html . 2023-05-23 . Columbia University.
  31. The preceding sentence is based on text copied, on 30 October 2004, from the Free On-line Dictionary of Computing, which is licensed under the GFDL.
  32. Web site: C-Kermit 8.0 - Interactive Communication, File Transfer, and Scripting across Serial Ports, Modems, Secure Telnet, Secure Shell (SSH), FTP and HTTP for Unix, VMS, QNX, ... . dead . https://web.archive.org/web/20230316142007/http://www.columbia.edu/kermit/ck80.html#license . 2023-03-16 . Columbia University.