Kermit (протокол)
Kermit — компьютерный протокол передачи/управления файлами, а также набор программного обеспечения, преимущественно использовавшийся в ранние годы развития персональных компьютеров (в 1980-х годах); он предоставляет комплексный подход к передаче файлов, эмуляции терминала, скриптовому программированию и преобразованию кодировки символов между разным аппаратным обеспечением и операционными системами
Технические особенности
Протокол Kermit поддерживает передачу бинарных данных и текста, используя полу- и полнодуплексное 8- и 7-битное последовательное соединение в системо- и платформо-независимой форме, и реализован на сотнях разных аппаратных и операционных систем. При полнодуплексном соединении используется протокол скользящего окна, обеспечивающий отличную производительность и коррекцию ошибок. На 7-битных соединениях locking shifts обеспечивает эффективную передачу 8-битных данных. При правильной (качественной) реализации, как в Columbia University Kermit Software collection, группа разработчиков Kermit Колумбийского университета заявляет о производительности, равной или превосходящей такие протоколы как ZMODEM, YMODEM, и XMODEM, особенно при использовании некачественных линий передачи данных. При подключении через RS-232 Statistical Multiplexers, где некоторые управляющие (служебные) символы не передаются, Kermit возможно сконфигурировать для правильной работы в отличие от таких протоколов как XMODEM, которые требуют передачи всех 256 байт.
История
Kermit разработан в Колумбийском университете в 1981 году, чтобы студенты могли передавать данные между мейнфреймами IBM и DEC DECSYSTEM-20 и съёмными носителями на микрокопьютерах (изначально это были Intertec Superbrains под управлением CP/M). Мейнфреймы IBM использовали символьный набор EBCDIC, а мейнфреймы CP/M и DEC использовали ASCII, так что преобразование между двумя кодировками было одной из первых функций встроенных в Kermit.
Kermit может использоваться в качестве загрузчика ОС. К примеру машины CP/M использовали много разных форматов гибких дисков, что означало что одна машина не могла читать диски записанные на другой, и Kermit использовался как часть процесса по перемещению приложений и данных между машинами с разными ОС. PIP c очень низкой скоростью передачи данных (из-за отсутствия коррекции ошибок) мог использоваться для передачи маленькой базовой версии Kermit. После успешного запуска базовой версии она загружала полнофункциональную версию, которая могла использоваться для передачи любых данных и приложений CP/M.
В течение 1980-х годов протокол Kermit эволюционировал в стандарт де-факто для передачи файлом между разнородными компьютерными системами. Программное обеспечение Kermit использовалось для различных задач, начиная с простых студенческих задач до решения проблем совместимости оборудования на борту МКС. Он был портирован на длинный перечень мейнфреймов, мини-компьютеров и микрокомпьютерных систем. Большинство версий имеют пользовательский интерфейс основанный на оригинальном Kermit для TOPS-20. Версия для MS-DOS была разработана в 1983. Поздние версии Kermit также поддерживают сетевые соединения.
В настоящее время поддерживаются такие реализации как C-Kermit (для UNIX и OpenVMS) и Kermit 95 (для Windows версий 95 и более, и OS/2).
Изначально Kermit был разработан и бесплатно распространялся Колумбийским университетом, до 1986, когда был основан и взял на себя разработку и взимание платы за коммерческое использование. Проект является финансово-независимым. По состоянию на 1 июля 2011 года Университет Колумбии перестал хостить этот проект и выпустил его с открытым исходным кодом. В июне 2011 Kermit Project выпустил бета-версию C-Kermit v9.0 под лицензией BSD.
Название и авторские права
Kermit был назван так в честь Лягушонка Ке́рмита из кукольного шоу Маппеты. В версии программы для Apple Macintosh в качестве иконки использовалось изображение Лягушонка Кермита. Тем не менее был создан бэкроним, видимо для избежания притязаний по поводу торговой марки, KL10 Error-Free Reciprocal Microprocessor Interchange over TTY lines.
Kermit это открытый протокол — любой может создавать собственную программу, использующую его, но некоторые его реализации и исходный код являются собственностью Университета Колумбии. C-Kermit имеет Open Source лицензию BSD. Любой желающий может использовать его в любых целях, включая редистрибуцию и перепродажу. Он может распространяться в составе любой операционной системы, где он работает или может быть приведен в рабочее состояние, в том числе в бесплатных и коммерческих версиях UNIX и Hewlett-Packard (ранее DEC) VMS (OpenVMS).