Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Kermit (protocol)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Technical== The Kermit protocol supports [[Text file|text]] and [[binary file]] transfers on both full-duplex and half-duplex 8-bit and 7-bit [[RS-232|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.<ref>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]].</ref> On connections over [[RS-232]] [[Statistical time-division multiplexing|Statistical Multiplexers]] where some [[ASCII#ASCII control characters|control characters]] cannot be transmitted,{{Citation needed|date=August 2011}} 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 [[Bootstrapping|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 compatible]]s and [[Apple computer]]s with a [[Compatibility card|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 program|type in a "baby Kermit"]] in [[BASIC]] on their personal computers that downloads Kermit and converts it into binary.<ref name="dacruz19860320">{{cite mailing list | url=http://www.columbia.edu/kermit/ftp/e/mail.86a | title=Re: Printable Encodings for Binary Files | publisher=Kermit Project, Columbia University | mailing-list=Info-Kermit Digest | date=1986-03-20 | access-date=1 March 2016 | author=da Cruz, Frank}}</ref><ref name="fuller19891011">{{cite mailing list | url=http://www.columbia.edu/kermit/ftp/e/mail.89b | title=Kermit Bootstrapping | publisher=Kermit Project, Columbia University | mailing-list=Info-Kermit Digest | date=1989-10-11 | access-date=5 March 2016 |author1=Fuller, Bill |author2=da Cruz, Frank }}</ref> 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 [[Peripheral Interchange 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.<ref>{{Cite web|first=C. |last=Gianone |title=CP/M-80 KERMIT VERSION 4.11 USER GUIDE|publisher=Columbia University Center for Computing Activities|location=New York|date=23 April 1991|url=http://www.z80.eu/downloads/cpkermit.txt}} See "Figure 1-1: Bootstrap program for Kermit-80 and CP/M Version 2.2"</ref> Newer versions of Kermit included [[scripting language]] and automation of commands.<ref>[http://www.columbia.edu/kermit/k95.html columbia.edu Kermit 95]</ref> The Kermit scripting language evolved from its [[TOPS-20]] EXEC-inspired command language<ref>{{cite web |title=C-Kermit / Kermit 95 Scripting Tutorial and Library|url=http://www.kermitproject.org/ckscripts.html#introduction}}</ref> and was influenced syntactically and semantically by [[ALGOL 60]], [[C (programming language)|C]], [[BLISS|BLISS-10]], [[PL/I]], [[SNOBOL]], and [[Lisp (programming language)|LISP]].<ref>{{cite web |title=C-Kermit / Kermit 95 Scripting Tutorial and Library |url=https://kermitproject.org/ckscripts.html#intro }}</ref> The correctness of the Kermit protocol has been verified with formal methods.<ref>{{Cite book|title=Specification and validation methods|last=Huggins|first=James K.|publisher=Oxford University Press|year=1995|isbn=0-19-853854-5|editor-last=Börger|editor-first=Egon|location=New York|pages=247–293|chapter=Kermit: specification and verification|chapter-url=http://www.kermitproject.org/proof.pdf}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)