Введение
Протокол передачи файлов Kermit — это протокол передачи и управления компьютерными файлами, а также набор коммуникационных программных средств, широко использовавшихся в первые годы развития персональных компьютеров в 1980-х годах. Он предоставляет унифицированный подход к передаче файлов, эмуляции терминалов, программированию сценариев и преобразованию кодировок символов для различных аппаратных и программных платформ.
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.
Технические
Протокол Kermit поддерживает передачу текстовых и бинарных файлов как в полнодуплексном, так и в полудуплексном режиме на 8- и 7-битных последовательных соединениях, независимо от системы и среды, и реализован на сотнях различных компьютерных и операционных системных платформах. В полнодуплексных соединениях используется протокол скользящего окна с селективной повторной передачей, обеспечивающий высокую производительность и надежное восстановление ошибок. В 7-битных соединениях сдвиги с блокировкой обеспечивают эффективную передачу 8-битных данных. При правильной реализации, как в пакете Kermit Software, разработанном Колумбийским университетом, его авторы утверждают, что производительность равна или превосходит другие протоколы, такие как ZMODEM, YMODEM и XMODEM, особенно на некачественных соединениях. В соединениях через статистические мультиплексоры RS 232, где некоторые управляющие символы не могут быть переданы, Kermit можно настроить для работы, в отличие от протоколов, таких как XMODEM, которым требуется прозрачное соединение (то есть возможность передачи всех 256 возможных значений байта). Kermit можно использовать для загрузки другого программного обеспечения, включая сам себя. Для распространения Kermit в сетях, не поддерживающих 8-битное кодирование, Columbia разработала boo – систему кодирования двоичных данных в текст, аналогичную BinHex. Например, компьютеры, совместимые с IBM PC, и компьютеры Apple с установленной картой совместимости могут подключаться к несовместимым системам, таким как мэйнфреймы, для получения MS DOS Kermit в формате boo. Пользователи затем могут ввести на своих персональных компьютерах на языке BASIC программу "Baby Kermit", которая загружает Kermit и преобразует его в двоичный код. Аналогично, машины CP/M используют множество различных форматов дискет, что означает, что одна машина часто не может читать диски с другой машины CP/M, и Kermit используется в процессе передачи приложений и данных между машинами CP/M и другими машинами с разными операционными системами. Программа копирования файлов CP/M PIP обычно может получить доступ к последовательному (RS 232) порту компьютера, и при настройке на очень низкую скорость передачи данных (поскольку она не имеет встроенной коррекции ошибок) может быть использована для передачи небольшой, упрощенной версии Kermit с одной машины на другую через модемный кабель null-modem, или, в противном случае, очень простую версию протокола Kermit можно закодировать в двоичном виде объемом менее 2 КБ с помощью DDT, инструмента динамической отладки CP/M. После этого упрощенную версию Kermit можно использовать для загрузки полнофункциональной версии. Эту версию затем можно использовать для передачи любых приложений или данных CP/M. Более поздние версии Kermit включали в себя язык сценариев и автоматизацию команд. Язык сценариев Kermit развился из языка команд, вдохновленного TOPS 20 EXEC, и синтаксически и семантически испытал влияние ALGOL 60, C, BLISS 10, PL/I, SNOBOL и LISP. Корректность протокола Kermit была проверена с использованием формальных методов.
История
В конце 1970-х годов пользователи мейнфрейм-компьютеров Колумбийского университета располагали всего 35 килобайтами памяти на человека. Kermit был разработан в университете, чтобы студенты могли перемещать файлы между собой и дискетами на различных микрокомпьютерах по всему кампусу, таких как мейнфреймы IBM или DEC DECSYSTEM 20 и компьютеры Intertec Superbrains, работающие под управлением CP/M. Мейнфреймы IBM использовали набор символов EBCDIC, а машины CP/M и DEC – ASCII, поэтому преобразование между этими двумя наборами символов было одной из первых функций, реализованных в Kermit. Первая передача файлов с использованием Kermit состоялась в апреле 1981 года. Протокол был первоначально разработан в 1981 году Фрэнком да Крузом и Биллом Кэтчингсом. Колумбийский университет координировал разработку версий Kermit для множества различных компьютеров в университете и за его пределами, а также распространял программное обеспечение бесплатно; Kermit для нового персонального компьютера IBM стал особенно популярен. В 1986 году университет основал проект Kermit, который взял на себя дальнейшую разработку и начал взимать плату за коммерческое использование; проект был финансово самодостаточным. Kermit предназначен для использования и распространения всеми желающими. Получив его, смело передавайте его своим друзьям и коллегам. Хотя программное обеспечение защищено авторским правом и не находится в общественном достоянии, мы просим вас не пытаться продавать его с целью получения прибыли и использовать только в мирных и гуманных целях. К 1988 году Kermit был доступен на более чем 300 компьютерах и операционных системах. Протокол де-факто стал стандартом для передачи файлов между разнородными компьютерными системами, а к началу 1990-х годов он мог преобразовывать многоязычные кодировки символов. Программное обеспечение Kermit использовалось во многих странах для решения самых разных задач – от простых студенческих заданий до устранения проблем совместимости на борту Международной космической станции. Он был портирован на широкий спектр мейнфреймов, миникомпьютеров и микрокомпьютерных систем, включая портативные устройства и электронные карманные калькуляторы. Большинство версий имели пользовательский интерфейс, основанный на оригинальном TOPS 20 Kermit. Более поздние версии некоторых реализаций Kermit также поддерживают сетевые и последовательные соединения. В настоящее время поддерживаются реализации C Kermit (для Unix и OpenVMS) и Kermit 95 (для версий Microsoft Windows, начиная с Windows 95, и OS/2), но другие версии также остаются доступными. С 1 июля 2011 года Колумбийский университет прекратил поддержку этого проекта и выпустил его под лицензией с открытым исходным кодом. В июне 2011 года проект Kermit выпустил бета-версию C Kermit v9.0 под лицензией Revised 3 Clause BSD. Помимо реализаций, разработанных и/или распространяемых Колумбийским университетом, протокол Kermit был реализован во многих сторонних программных пакетах связи, в том числе ProComm и ProComm Plus. Термин "СуперКермит" был придуман сторонними поставщиками для обозначения высокоскоростных реализаций Kermit, предлагающих такие функции, как полнодуплексный режим работы, скользящие окна и длинные пакеты; однако оригинальная команда Kermit в Колумбийском университете отвергла этот термин, считая эти функции просто особенностями основного протокола Kermit.
Название и авторские права
Кермит был назван в честь Кермита-лягушонка из «Маппетов» с разрешения компании Henson Associates. Иконкой программы в версии для Apple Macintosh было изображение Кермита-лягушонка. Однако, возможно, чтобы избежать проблем с товарными знаками, был создан акроним, читающийся наоборот: KL10 Error Free Reciprocal Microprocessor Interchange по линиям TTY. Kermit – это открытый протокол, любой может использовать его в качестве основы для собственной программы, но некоторые программы Kermit и исходный код защищены авторским правом Колумбийского университета. На последней странице лицензии было указано:
Начиная с версии 9.0 (с первого бета-теста), C Kermit имеет лицензию с открытым исходным кодом – пересмотренную трехпунктную лицензию BSD. Любой может использовать его по своему усмотрению для любых целей, включая распространение и перепродажу. Он может быть включен в любую операционную систему, в которой он работает или может быть адаптирован для работы, включая бесплатные и коммерческие версии Unix и Hewlett Packard (ранее DEC) VMS (OpenVMS). Техническая поддержка от Колумбийского университета будет доступна только до 30 июня 2011 года.
As of version 9.0 (starting with the first Beta test), C Kermit has an Open Source license, the Revised 3 Clause BSD License. Everybody can use it as they wish for any purpose, including redistribution and resale. It may be included with any operating system where it works or can be made to work, including both free and commercial versions of Unix and Hewlett Packard (formerly DEC) VMS (OpenVMS). Technical support will be available from Columbia University only through 30 June 2011.