Kermit (protocol)
   HOME

TheInfoList



OR:

Kermit is a
computer file A computer file is a computer resource for recording data in a computer storage device, primarily identified by its file name. Just as words can be written to paper, so can data be written to a computer file. Files can be shared with and transfe ...
transfer/management
protocol Protocol may refer to: Sociology and politics * Protocol (politics), a formal agreement between nation states * Protocol (diplomacy), the etiquette of diplomacy and affairs of state * Etiquette, a code of personal behavior Science and technolog ...
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 A terminal emulator, or terminal application, is a computer program that emulates a video terminal within some other display architecture. Though typically synonymous with a shell or text terminal, the term ''terminal'' covers all remote termin ...
,
script Script may refer to: Writing systems * Script, a distinctive writing system, based on a repertoire of specific elements or symbols, or that repertoire * Script (styles of handwriting) ** Script typeface, a typeface with characteristics of handw ...
programming, and
character set Character encoding is the process of assigning numbers to graphical characters, especially the written characters of human language, allowing them to be stored, transmitted, and transformed using digital computers. The numerical values that ...
conversion across many different
computer hardware Computer hardware includes the physical parts of a computer, such as the computer case, case, central processing unit (CPU), Random-access memory, random access memory (RAM), Computer monitor, monitor, Computer mouse, mouse, Computer keyboard, ...
and
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
platforms.


Technical

The Kermit protocol supports
text Text may refer to: Written word * Text (literary theory), any object that can be read, including: **Religious text, a writing that a religious tradition considers to be sacred **Text, a verse or passage from scripture used in expository preachin ...
and
binary file A binary file is a computer file that is not a text file. The term "binary file" is often used as a term meaning "non-text file". Many binary file formats contain parts that can be interpreted as text; for example, some computer document fil ...
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 Columbia University (also known as Columbia, and officially as Columbia University in the City of New York) is a private research university in New York City. Established in 1754 as King's College on the grounds of Trinity Church in Manhatt ...
Kermit Software collection, its authors claim performance is equal to or better than other protocols such as
ZMODEM ZMODEM is an inline file transfer protocol developed by Chuck Forsberg in 1986, in a project funded by Telenet in order to improve file transfers on their X.25 network. In addition to dramatically improved performance compared to older protocol ...
,
YMODEM YMODEM is a file transfer protocol used between microcomputers connected together using modems. It was primarily used to transfer files to and from bulletin board systems. YMODEM was developed by Chuck Forsberg as an expansion of XMODEM and was ...
, and XMODEM, especially on poor connections. On connections over
RS-232 In telecommunications, RS-232 or Recommended Standard 232 is a standard originally introduced in 1960 for serial communication transmission of data. It formally defines signals connecting between a ''DTE'' (''data terminal equipment'') such a ...
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 ''8-bit clean'' is an attribute of computer systems, communication channels, and other devices and software, that handle 8-bit character encodings correctly. Such encoding include the ISO 8859 series and the UTF-8 encoding of Unicode. History ...
networks Columbia developed .boo, a
binary-to-text encoding A binary-to-text encoding is encoding of data in plain text. More precisely, it is an encoding of binary data in a sequence of printable characters. These encodings are necessary for transmission of data when the channel does not allow binary dat ...
system similar to
BinHex BinHex, originally short for "binary-to-hexadecimal", is a binary-to-text encoding system that was used on the classic Mac OS for sending binary files through e-mail. Originally a hexadecimal encoding, subsequent versions of BinHex are more simil ...
. For instance,
IBM PC compatibles IBM PC compatible computers are similar to the original IBM PC, XT, and AT, all from computer giant IBM, that are able to use the same software and expansion cards. Such computers were referred to as PC clones, IBM clones or IBM PC clones. ...
and Apple computers with a
Compatibility Card A compatibility card is an expansion card for computers that allows it to have hardware emulation with another device. While compatibility cards date back at least to the Apple II family, the majority of them were made for 16-bit computers, often ...
installed can connect to otherwise incompatible systems such as a
mainframe computer A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterpris ...
to receive
MS-DOS MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few ope ...
Kermit in .boo format. Users can then type in a "baby Kermit" in
BASIC BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
on their personal computers that downloads Kermit and converts it into binary. Similarly,
CP/M CP/M, originally standing for Control Program/Monitor and later Control Program for Microcomputers, is a mass-market operating system created in 1974 for Intel 8080/ 85-based microcomputers by Gary Kildall of Digital Research, Inc. Initial ...
machines use many different
floppy disk A floppy disk or floppy diskette (casually referred to as a floppy, or a diskette) is an obsolescent type of disk storage composed of a thin and flexible disk of a magnetic storage medium in a square or nearly square plastic enclosure lined w ...
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 In telecommunications, RS-232 or Recommended Standard 232 is a standard originally introduced in 1960 for serial communication transmission of data. It formally defines signals connecting between a ''DTE'' (''data terminal equipment'') such a ...
) port, and if configured to use a very low
baud In telecommunication and electronics, baud (; symbol: Bd) is a common unit of measurement of symbol rate, which is one of the components that determine the speed of communication over a data channel. It is the unit for symbol rate or modulatio ...
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 Null modem is a communication method to directly connect two DTEs (computer, terminal, printer, etc.) using an RS-232 serial cable. The name stems from the historical use of RS-232 cables to connect two teleprinter devices or two modems in orde ...
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. Newer versions of Kermit included
scripting language A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system. Scripting languages are usually interpreted at runtime rather than compiled. A scripting ...
and automation of commands. The Kermit scripting language evolved from its
TOPS-20 The TOPS-20 operating system by Digital Equipment Corporation (DEC) is a proprietary OS used on some of DEC's 36-bit mainframe computers. The Hardware Reference Manual was described as for "DECsystem-10/DECSYSTEM-20 Processor" (meaning the DEC PDP- ...
EXEC-inspired command language and was influenced syntactically and semantically by
ALGOL 60 ALGOL 60 (short for ''Algorithmic Language 1960'') is a member of the ALGOL family of computer programming languages. It followed on from ALGOL 58 which had introduced code blocks and the begin and end pairs for delimiting them, representing a k ...
, C, BLISS-10,
PL/I PL/I (Programming Language One, pronounced and sometimes written PL/1) is a procedural, imperative computer programming language developed and published by IBM. It is designed for scientific, engineering, business and system programming. I ...
,
SNOBOL SNOBOL ("StriNg Oriented and symBOlic Language") is a series of programming languages developed between 1962 and 1967 at AT&T Bell Laboratories by David J. Farber, Ralph E. Griswold and Ivan P. Polonsky, culminating in SNOBOL4. It was one of ...
, and
LISP A lisp is a speech impairment in which a person misarticulates sibilants (, , , , , , , ). These misarticulations often result in unclear speech. Types * A frontal lisp occurs when the tongue is placed anterior to the target. Interdental lisping ...
. The correctness of the Kermit protocol has been verified with formal methods.


History

In the late 1970s, users of Columbia University's
mainframe computer A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterpris ...
s had only 35 kilobytes of storage per person. Kermit was developed at the university so students could move files between them and
floppy disk A floppy disk or floppy diskette (casually referred to as a floppy, or a diskette) is an obsolescent type of disk storage composed of a thin and flexible disk of a magnetic storage medium in a square or nearly square plastic enclosure lined w ...
s at various
microcomputer A microcomputer is a small, relatively inexpensive computer having a central processing unit (CPU) made out of a microprocessor. The computer also includes memory and input/output (I/O) circuitry together mounted on a printed circuit board (PC ...
s around campus, such as IBM or DEC
DECSYSTEM-20 The DECSYSTEM-20 was a 36-bit Digital Equipment Corporation PDP-10 mainframe computer running the TOPS-20 operating system (products introduced in 1977). PDP-10 computers running the TOPS-10 operating system were labeled ''DECsystem-10'' as a ...
mainframes and
Intertec Superbrain The Intertec SuperBrain was an all-in-one commercial microcomputer that was first sold by Intertec Data Systems Corporation of Columbia, South Carolina, USA in 1979. The machine ran the operating system CP/M and was somewhat unusual in that i ...
s running
CP/M CP/M, originally standing for Control Program/Monitor and later Control Program for Microcomputers, is a mass-market operating system created in 1974 for Intel 8080/ 85-based microcomputers by Gary Kildall of Digital Research, Inc. Initial ...
. IBM mainframes used an
EBCDIC Extended Binary Coded Decimal Interchange Code (EBCDIC; ) is an eight-bit character encoding used mainly on IBM mainframe and IBM midrange computer operating systems. It descended from the code used with punched cards and the corresponding six- ...
character set and CP/M and DEC machines used
ASCII ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
, 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. 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 The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible de facto standard. Released on August 12, 1981, it was created by a team ...
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 By 1988 Kermit was available on more than 300 computers and operating systems. The protocol became a
de facto ''De facto'' ( ; , "in fact") describes practices that exist in reality, whether or not they are officially recognized by laws or other formal norms. It is commonly used to refer to what happens in practice, in contrast with ''de jure'' ("by la ...
data communications standard for transferring files between dissimilar computer systems, and by the early 1990s it could convert multilingual
character encoding Character encoding is the process of assigning numbers to Graphics, graphical character (computing), characters, especially the written characters of Language, human language, allowing them to be Data storage, stored, Data communication, transmi ...
s. Kermit software has been used in many countries, for tasks ranging from simple student assignments to solving compatibility problems aboard the
International Space Station The International Space Station (ISS) is the largest modular space station currently in low Earth orbit. It is a multinational collaborative project involving five participating space agencies: NASA (United States), Roscosmos (Russia), JAXA ...
.''International Space Station Incorporates Kermit''
(December 2003)
It was ported to a wide variety of mainframe,
minicomputer A minicomputer, or colloquially mini, is a class of smaller general purpose computers that developed in the mid-1960s and sold at a much lower price than mainframe and mid-size computers from IBM and its direct competitors. In a 1970 survey, ...
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 Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
and
OpenVMS OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using Ope ...
) and Kermit 95 (for versions of
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
from
Windows 95 Windows 95 is a consumer-oriented operating system developed by Microsoft as part of its Windows 9x family of operating systems. The first operating system in the 9x family, it is the successor to Windows 3.1x, and was released to manufacturin ...
onwards and
OS/2 OS/2 (Operating System/2) is a series of computer operating systems, initially created by Microsoft and IBM under the leadership of IBM software designer Ed Iacobucci. As a result of a feud between the two companies over how to position OS/2 ...
), but other versions remain available as well. As of 1 July 2011, Columbia University ceased to host this project and released it to open source. In June 2011, the Kermit Project released a beta version of C-Kermit v9.0 under an
Open Source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
Revised 3-Clause
BSD License BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...
. 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 Datastorm Technologies, Inc., was a computer software company that existed from 1986 until 1996. Bruce Barkelew and Thomas Smith founded the company to develop and publish ProComm, a general purpose communications program for personal computers. ...
and
ProComm Plus Datastorm Technologies, Inc., was a computer software company that existed from 1986 until 1996. Bruce Barkelew and Thomas Smith founded the company to develop and publish ProComm, a general purpose communications program for personal computers. ...
. The term "SuperKermit" was coined by third-party vendors to refer to higher speed Kermit implementations offering features such as full duplex operation, sliding windows, 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.


Naming and copyright

Kermit was named after
Kermit the Frog Kermit the Frog is a Muppet character created and originally performed by Jim Henson. Introduced in 1955, Kermit serves as the everyman protagonist of numerous Muppet productions, most notably ''Sesame Street'' and ''The Muppet Show'', as well ...
from
The Muppets The Muppets are an American ensemble cast of puppet characters known for an absurdist, burlesque, and self-referential style of variety- sketch comedy. Created by Jim Henson in 1955, they are the focus of a media franchise that encompasses ...
, with permission from
Henson Associates The Jim Henson Company (formerly known as Muppets, Inc., Henson Associates, Inc., and Jim Henson Productions, Inc.; commonly referred to as Henson) is an American entertainment company located in Los Angeles, California. The company is known for ...
. The program's
icon An icon () is a religious work of art, most commonly a painting, in the cultures of the Eastern Orthodox, Oriental Orthodox, and Catholic churches. They are not simply artworks; "an icon is a sacred image used in religious devotion". The most ...
in the
Apple Macintosh The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc. Macs are known for their ease of use and minimalist designs, and are popular among students, creative professionals, and software en ...
version was a depiction of Kermit the Frog. A
backronym A backronym is an acronym formed from an already existing word by expanding its letters into the words of a phrase. Backronyms may be invented with either serious or humorous intent, or they may be a type of false etymology or folk etymology. The ...
was nevertheless created, perhaps to avoid trademark issues, ''KL10 Error-Free Reciprocal Microprocessor Interchange over TTY lines.'' 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. The final license page said:"LICENSING". The Kermit Project. Columbia University. 7 April 2011 http://www.columbia.edu/kermit/ck80.html#license.


See also

*
IND$FILE IND$FILE is a file transfer program from IBM that was first released in 1983 to allow the transfer of files between an IBM PC running the IBM 3270 emulator (PC/3270) and a VSE, MVS or VM/CMS mainframe. IND$FILE originally worked only with th ...
*
BLAST (protocol) BLAST (BLocked ASynchronous Transmission), like XMODEM and Kermit, is a communications protocol designed for file transfer over asynchronous communication ports and dial-up modems that achieved a significant degree of popularity during the 1980 ...


References


Further reading

* * * *


External links

* * {{DEFAULTSORT:Kermit Computer-related introductions in 1981 BBS file transfer protocols Communication software File transfer protocols Terminal emulators Columbia University