Kermit es un protocolo de transferencia y gestión de archivos de computadora y un conjunto de herramientas de software de comunicaciones utilizadas principalmente en los primeros años de la informática personal en la década de 1980. Proporciona un enfoque consistente para la transferencia de archivos, la emulación de terminal , la programación de scripts y la conversión de conjuntos de caracteres en muchas plataformas de sistemas operativos y hardware de computadora diferentes .
El protocolo Kermit admite transferencias de archivos binarios y de texto en conexiones seriales de 8 y 7 bits tanto full-duplex como half-duplex de una manera independiente del sistema y del medio, y se implementa en cientos de plataformas de computadoras y sistemas operativos diferentes. En conexiones full-duplex, se utiliza un protocolo de ventana deslizante con retransmisión selectiva que proporciona excelentes características de rendimiento y recuperación de errores. En conexiones de 7 bits, los cambios de bloqueo proporcionan una transferencia eficiente de datos de 8 bits. Cuando se implementa correctamente, como en la colección de software Kermit de la Universidad de Columbia , sus autores afirman que el rendimiento es igual o mejor que otros protocolos como ZMODEM , YMODEM y XMODEM , especialmente en conexiones deficientes. [1] En conexiones a través de multiplexores estadísticos RS-232 donde algunos caracteres de control no se pueden transmitir, [ cita requerida ] Kermit se puede configurar para que funcione, a diferencia de protocolos como XMODEM que requieren que la conexión sea transparente (es decir, que los 256 valores posibles de un byte sean transferibles).
Kermit puede utilizarse como un medio para arrancar otro software, incluso a sí mismo. Para distribuir Kermit a través de redes que no sean de 8 bits, Columbia desarrolló .boo , un sistema de codificación de binario a texto similar a BinHex . Por ejemplo, los ordenadores compatibles con IBM PC y los ordenadores Apple con una tarjeta de compatibilidad instalada pueden conectarse a sistemas que de otro modo serían incompatibles, como un ordenador mainframe, para recibir Kermit MS-DOS en formato .boo. Los usuarios pueden entonces escribir un "bebé Kermit" en BASIC en sus ordenadores personales que descargue Kermit y lo convierta en binario. [2] [3]
De manera similar, las máquinas CP/M utilizan muchos formatos de disquete diferentes , lo que significa que una máquina a menudo no puede leer discos de otra máquina CP/M, y Kermit se utiliza como parte de un proceso para transferir aplicaciones y datos entre máquinas CP/M y otras máquinas con diferentes sistemas operativos. El programa de copia de archivos CP/M PIP generalmente puede acceder al puerto serie ( RS-232 ) de una computadora y, si se configura para usar una tasa de baudios muy baja (porque no tiene corrección de errores incorporada), se puede utilizar para transferir una versión pequeña y simple de Kermit de una máquina a otra a través de un cable de módem nulo o, en su defecto, se puede codificar manualmente una versión muy simple del protocolo Kermit en binario en menos de 2K utilizando DDT, la herramienta de depuración dinámica CP/M. Una vez hecho esto, se puede utilizar la versión simple de Kermit para descargar una versión completamente funcional. Esa versión se puede utilizar luego para transferir cualquier aplicación o dato CP/M. [4]
Las versiones más nuevas de Kermit incluían lenguaje de script y automatización de comandos. [5] El lenguaje de script Kermit evolucionó a partir de su lenguaje de comandos inspirado en TOPS-20 EXEC [6] y fue influenciado sintáctica y semánticamente por ALGOL 60 , C , BLISS-10 , PL/I , SNOBOL y LISP . [7]
La corrección del protocolo Kermit ha sido verificada con métodos formales. [8]
A finales de los años 70, los usuarios de los ordenadores centrales de la Universidad de Columbia tenían sólo 35 kilobytes de almacenamiento por persona. Kermit se desarrolló en la universidad para que los estudiantes pudieran mover archivos entre ellos y disquetes en varios microordenadores del campus, [9] [10] [11] como los mainframes IBM o DEC DECSYSTEM-20 y los Intertec Superbrains que ejecutaban CP/M . Los mainframes IBM utilizaban un conjunto de caracteres EBCDIC y las máquinas CP/M y DEC utilizaban ASCII , por lo que la conversión entre los dos conjuntos de caracteres fue una de las primeras funciones integradas en Kermit. La primera transferencia de archivos con Kermit se produjo en abril de 1981. El protocolo fue diseñado originalmente en 1981 por Frank da Cruz y Bill Catchings. [12] [13]
La Universidad de Columbia coordinó el desarrollo de versiones de Kermit para muchos ordenadores diferentes en la universidad y en otros lugares, y distribuyó el software de forma gratuita; Kermit para el nuevo ordenador personal de IBM se hizo especialmente popular. En 1986, la universidad fundó el Proyecto Kermit, que se hizo cargo del desarrollo y comenzó a cobrar tarifas por el uso comercial; el proyecto era autosuficiente financieramente. [11] Para el uso no comercial, la Universidad de Columbia declaró que [14]
Kermit es para que todos lo usen y compartan. Una vez que lo obtengas, no dudes en pasárselo a tus amigos y colegas. Aunque está protegido por derechos de autor y no es de dominio público, solo te pedimos que no intentes venderlo con fines lucrativos y que lo uses solo con fines pacíficos y humanitarios.
En 1988, Kermit estaba disponible en más de 300 computadoras y sistemas operativos. [15] El protocolo se convirtió en un estándar de facto para las comunicaciones de datos [16] para transferir archivos entre sistemas informáticos diferentes y, a principios de los años 1990, podía convertir codificaciones de caracteres multilingües . El software Kermit se ha utilizado en muchos países para tareas que van desde tareas sencillas para estudiantes hasta la solución de problemas de compatibilidad a bordo de la Estación Espacial Internacional . [11] Se adaptó a una amplia variedad de sistemas mainframe, minicomputadoras y microcomputadoras, hasta computadoras portátiles y calculadoras electrónicas de bolsillo. La mayoría de las versiones tenían una interfaz de usuario basada en el Kermit TOPS-20 original. Las versiones posteriores de algunas implementaciones de Kermit también admiten conexiones en red y en serie .
Las implementaciones que actualmente son compatibles incluyen C -Kermit (para Unix y OpenVMS ) y Kermit 95 (para versiones de Microsoft Windows desde Windows 95 en adelante y OS/2 ), pero otras versiones también siguen estando disponibles.
A partir del 1 de julio de 2011, la Universidad de Columbia dejó de albergar este proyecto y lo lanzó como código abierto . En junio de 2011, el Proyecto Kermit lanzó una versión beta de C-Kermit v9.0 bajo la Licencia BSD Revisada de 3 Cláusulas . [17]
Además de las implementaciones desarrolladas y/o distribuidas por la Universidad de Columbia, el protocolo Kermit se implementó en varios paquetes de software de comunicaciones de terceros, entre otros ProComm y ProComm Plus . [18] [19] [20] [21] [22] El término "SuperKermit" fue acuñado por proveedores externos para referirse a implementaciones de Kermit de mayor velocidad que ofrecen características como operación dúplex completa, [23] ventanas deslizantes, [24] [25] [26] [27] [ 28] [29] y paquetes largos; sin embargo, ese término fue desestimado por el equipo original de Kermit en la Universidad de Columbia, que los vio simplemente como características del protocolo Kermit central. [30]
Kermit recibió su nombre de la Rana Gustavo de Los Teleñecos , con permiso de Henson Associates . [31] El icono del programa en la versión de Apple Macintosh era una representación de la Rana Gustavo. No obstante, se creó un acrónimo , tal vez para evitar problemas de marca registrada, K L10 Error -Free R eciprocal M icroprocessor Interchange over T TY lines. [32]
Kermit es un protocolo abierto: cualquiera puede basar su propio programa en él, pero parte del software y el código fuente de Kermit están protegidos por derechos de autor de la Universidad de Columbia. [33] [34] La página final de la licencia decía: [35]
A partir de la versión 9.0 (a partir de la primera prueba Beta), C-Kermit tiene una licencia de código abierto, la Licencia BSD revisada de 3 cláusulas. Todo el mundo puede utilizarlo como desee para cualquier propósito, incluida la redistribución y la reventa. Puede incluirse en cualquier sistema operativo en el que funcione o se pueda hacer que funcione, incluidas las versiones gratuitas y comerciales de Unix y Hewlett-Packard (anteriormente DEC) VMS (OpenVMS). El soporte técnico estará disponible en la Universidad de Columbia únicamente hasta el 30 de junio de 2011.