Über Kermit

Frank da Cruz, fdc@kermitproject.org

Inhaltsverzeichnis

 

Letzte Aktualisierung: Montag,23. Juli 09:29:50 2018

NACHRICHTEN

o   Mündlich Überlieferte Geschichte des Kermit-Projektes

o   Mündlich Überlieferte Geschichte von Joe Doupnik  (MS-DOS Kermit)

Gültig ab1. Juli 2011…

  • Das Kermit-Projekt an der Columbia University wurde abgebrochen.
  • Eine neue Website des Kermit-Projekts wurde eröffnet: http://www.kermitproject.org.
  • Die gesamte Kermit-Software hat eineOpen-Source-Lizenzerhalten.
  • Das Kermit FTP-Archiv und die Webseite von Columbia bleiben bestehen (werden sich aber nicht ändern).

Willkommen zum neuen Open-Source Kermit-Projekt.

Mitteilung  Übergangsplan   Kermit 95   C-Kermit   E-Kermit   Andere Kermit-Software

WAS IST KERMIT?

Kermit ist der Name eines Dateiübertragungs- und -verwaltungsprotokolls und einer Reihe von Computerprogrammen für viele Computertypen, die dieses Protokoll sowie andere Kommunikationsfunktionen implementieren, die auch von der Terminalemulation bis zur Automatisierung von Kommunikationsaufgaben durch eine plattformübergreifende Hochsprache reichen. Die Software ist transportunabhängig, arbeitet über TCP/IP-Verbindungen im traditionellen Klartextmodus oder gesichert durch SSH, SSL/TLS, Kerberos IV oder V, sowie über serielle Schnittstellenverbindungen, Modems und andere Kommunikationsmethoden (X.25, DECnet, verschiedene LAN-Protokolle wie NETBIOS und LAT, parallele Schnittstellen usw. auf bestimmten Plattformen).

Das Kermit-Projekt wurde 1981 am Columbia University Computer Center (heute CUIT) gegründet, um einem speziellen Bedarf gerecht zu werden, und bis Ende der 90er Jahre war Kermit die Standard-Desktop-Konnektivitätssoftware von Columbia, die von Studenten, Lehrkräften und Mitarbeitern für die Verbindung von Desktop-Mikrocomputern, PCs, Macintosh und Unix-Workstations zu den zentralen Computereinrichtungen verwendet wurde: die IBM-Mainframes (1963-2017), das DECSYSTEM-20s (1977-1988),CLIO (Columbias erstes Online-Bibliotheksinformationssystem, 1984-2003) und Cunix (unsere Unix-basierten Server, seit 1986), sowie VAXes, PDP-11s, Suns und andere Minicomputer. In der Anfangszeit von Mikrocomputern und PCs, aber vor der weit verbreiteten Einführung von lokalen Netzwerken und Desktop-Workstations, die mit ihnen verbunden waren, verband Kermit Software den Desktop mit E-Mail, Schwarzes Brett, Datenaustausch, Textverarbeitung, Nachrichtenübermittlung und anderen Aspekten der neuen Online-Kultur, die heute als selbstverständlich angesehen wird, lange bevor die Erfahrung in den meisten anderen Institutionen verfügbar war. Bei Columbia sind die DEC-20s und die Abteilungs-Minicomputer längst weg und die IBM-Mainframes sind nur noch für den Backoffice-Einsatz gedacht, aber Kermit-Software wird immer noch für SSH-Sitzungen vom Desktop bis zu CUNIX und von den technischen Mitarbeitern für System- und Netzwerkadministrationsaufgaben verwendet; zum Beispiel für die Konfiguration von Racks voller HP-Blade-Server, die Verwaltung des Telefonsystems der Universität, CGI-Scripting, Alpha-Pagingvon Mitarbeitern auf Abruf und so weiter. Und natürlich auch von der alten Schule, die die Sicherheit und Effizienz von Textmodus-Shell-Sitzungen für E-Mailsund für ihre Arbeit bevorzugen, z.B. Software-Entwicklung und Website-Management.

Im Laufe der Jahre entwickelte sich das Kermit-Projekt zueiner weltweiten, kooperativen, gemeinnützigen Softwareentwicklung und -verteilung mit Hauptsitz an der Columbia Universityda Kermit-Software auf immer mehr Computer und Betriebssysteme portiert oder für diese entwickelt wurde (siehe Liste). Das Kermit-Projekt widmet sich der Herstellung von plattformübergreifender, langlebiger,stabiler, standardkonformer und interoperabler Kommunikationssoftware und hat sich aktiv am Normungsprozess beteiligt.  Kermit-Software wird auf der ganzen Welt in allen Wirtschaftssektoren eingesetzt: Regierung, Staat und Kommunen, Wissenschaft, Medizin und Gesundheitswesen, Maschinenbau, Luft- und Raumfahrt, Non-Profit und Handel.

Obwohl die Terminalemulation durch das Internet für den Online-Zugriff weitgehend verdrängt wurde, spielt die Kermit-Software weiterhin eine Rollein anderen Anwendungen wie Fernerkundung und Datenerfassung, Verwaltung und Fehlerbehebung von Netzwerk- und Telekommunikationsgeräten, Backoffice-Arbeiten, Fracht- und Bestandsmanagement, Einreichung von Krankenversicherungsansprüchen, elektronischer Geldtransfer und Online-Einreichung von Einkommensteuererklärungen. Kermit-Software ist eingebettet in Netzwerk-Router und -Switches, in Mobilfunktürme, in medizinische Diagnose- und Überwachungsgeräte, sogar in Herzschrittmacher, ganz zu schweigen von den Kassen einiger namhafter “Big Box”-Händler. Im Jahr 2002 flog Kermit auf der Internationalen Raumstation,und Kermit-Software ist die Kommunikationsmethode der EM APEX Ocean Floats (links), die bis heute Echtzeitdaten an Hurrikanforscher und Tracker liefert(das Hurrikan-Projekt ist 2010 in eine neue erweiterte Phase eingetreten, die auf einer neuen Version von Embedded Kermit basiert).

Seit den 80er Jahren werden das Kermit-Protokoll und die Software in derFabrik inprogrammierbaren Stanz-, Abkant-, Laminier-, Flachwalzen-, Scher-, Metall- und Kunststoffverarbeitungs-, Holzbearbeitungs- und anderen Maschinen eingesetzt. Zum Beispiel bei der Herstellung der Boeing 787,wo Kermit zur Steuerung einer Bandschichten eingesetzt wird, der bestimmte Karosserieteile bildet. Mehr darüber, wie Kermit in der Fabrik eingesetzt wird, erfahren Sie hier und hier.

In den 90er Jahren wurdeKermit-Software in der US-Postautomation eingesetzt. Sie spielte eine Schlüsselrolle bei den nationalen Wahlen 1994 in Brasilien (die bis dahin größten in der Geschichte der Welt), und sie war zentral für die UN-Hilfsmission in Bosnien,“die das gesamte Spektrum des Projektbetriebs, vom Großrechner, Minicomputer, PC bis hin zu Handheld-Geräten und Barcode-Lesegeräten, miteinander verband”.

In den 1980er Jahren war dasKermit-Protokoll aufgrund seiner Robustheit ideal für den Einsatz in der  Grünen Revolutionin Afrika, der gemeinsameneuropäisch-USR-Raumfahrtmission Giottound vielleicht vor allem für die Wiederherstellung der Datenkommunikation zwischen US-Forschungsstationen in der Antarktis und dem Festland, nachdem sie 1986 bei einem Computerunfall während des 9-monatigen antarktischen Winters abgeschnitten wurden. Im Jahr 1988 gab es eine internationale Konferenz über Kermit in Moskau, UdSSR, und Kermit Sitzungen wurden vorgestellt auf anderen Konferenzen in den 1980er Jahren in Tokio, Bern, Paris, Nashville, und anderswo.

Das Kermit-Protokoll und die Software sind nach Kermit the Frog, dem Star der Fernsehserie The Muppet Show, benannt; der Name Kermit wird mit Genehmigung von Henson Associates, Inc. verwendet.Warum ist es nach Kermit dem Frosch benannt?Im Mai 1981 hatten wir bereits erste Implementierungen des Protokolls, aber wir hatten noch keinen Namen für das Protokoll oder die Software. Eine Gruppe von uns diskutierte darüber (ich, Bill Catchings, Bill Schilit, Jeff Damens, ich glaube, das war die Gruppe), ohne sich wirklich zu sehr darum zu kümmern, da wir nie erwartet hatten, dass sich die Software über die ganze Welt verbreiten könnte und jahrzehntelang halten würde. Ich stand zufällig vor der Wand, auf der ein Muppets-Kalender stand, und da meine Kinder so große Fans der Muppet Show waren, sagte ich: Wie wär’s mit Kermit? Dreißig Jahre später (Mai 2011) fand ich die Kalenderseite, die ich mir angesehen habe, als ich das sagte, man kann sie auf der linken Seite sehen und auf sie klicken, um ein größeres Bild zu sehen.

KERMIT-SOFTWARE

Kermit-Softwarewurde für hunderte von verschiedenen Computern und Betriebssystemen geschrieben, einige davon von freiwilligen Programmierern auf der ganzen Welt, andere vom professionellen Personal des Kermit-Projekts. Die wichtigsten Merkmale der beliebtesten Kermit-Programme sind:

  • Verbindungsaufbau und Wartung für eine Vielzahl von Verbindungsmethoden (TCP/IP, X.25, LAN, serielle Schnittstelle, Modem, usw.).
  • Terminal-Emulation.
  • Fehlerfreie Dateiübertragung.
  • Internet-Protokolle wie Telnet, Rlogin, FTP und HTTP.
  • Internet-Sicherheitsmethoden wie Kerberos, SSL/TLS, SSH und SRP.
  • Zeichensatzkonvertierung sowohl bei der Terminalemulation als auch bei der Dateiübertragung – eine einzigartige Funktion der Kermit-Software.
  • Numerisches und alphanumerisches Paging.
  • Script-Programmierung zur Automatisierung komplizierter oder sich wiederholender Aufgaben.

Die Benutzeroberfläche und die Skript-Programmiersprache von Kermit sind plattform- und kommunikationstechnisch konsistent, so dass sich die Investition in das Lernen immer wieder auszahlt, wenn Sie von einer Plattform zur anderen oder von einer Kommunikationsmethode zur anderen wechseln.

Unsere ersten Kermit Software-Implementierungen waren:

C-Kermitund IBM Mainframe Kermits ind Host-basierte Pakete mit einer beispiellosen Vielseitigkeit.Kermit 95 und MS-DOS Kermitsindvoll funktionsfähige Desktop-Kommunikationsprogramme, die mit der Qualität von allem anderen auf dem Markt konkurrieren, außer vielleicht in der Einfachheit der Benutzeroberfläche: Kermit-Programme folgen dem Textmodus Prompt-and-Command-Stil von gestern, der für manche Leute verblüffend ist, bis sie die Vorteile erkennen:

  • Der Befehlssatz ist ziemlich konsistent über alle Plattformen hinweg und fast vollständig konsistent über moderne Plattformen wie Windows, Mac OS X, Linux und VMS. Lerne es einmal, benutze es überall.
  • Befehle können zu “Makros” oder “Programmen” kombiniert werden, um jede Aufgabe, die von Hand erledigt werden kann, wie hier beschrieben, zu automatisieren. In C-Kermit und Kermit 95 ist die Kommandosprache eine ausgewachsene Programmiersprache mit Variablen, Kontrollstrukturen, Funktionen, “Unterprogrammen” und einigen Überraschungen.
  • Sie müssen die Befehle weder im Voraus kennen noch vollständig eingeben. Der Befehlsstil wird “kontextsensitives Menü bei Bedarf” genannt (Sie sehen die verfügbaren Optionen, wenn Sie ein Fragezeichen eingeben), und Schlüsselwörter können abgekürzt werden. Auf der Kermit-Webseite gibt es eine jede Menge Hilfestellungen, zum Beispiel das C-Kermit-Tutorial und das Kermit 95-Tutorial,  nur für Anfänger.
  • Berührungsschreiber können schneller arbeiten, wenn sie ihre Hände nicht von den Heimtasten wegbewegen müssen, und sie erleiden weniger wiederholte Belastungsverletzungen.
  • Bestimmte Dinge können einfach nicht effizient oder gar nicht über eine GUI-Schnittstelle erledigt werden. Hier ist ein völlig zufälliges Beispiel, aber es macht alles deutlich:

Auf einem PC habe ich ein Verzeichnis, das Tausende von Bildern mit ihren Miniaturansichten enthält. Für jedes Bildxxx.jpggibt es ein Vorschaubild xxx-t.jpg.Ich möchte alle Vorschaubilder in Photoshop laden. Mit der Maus würde das den ganzen Tag dauern. Mit Kermit können Sie es so machen (an der Kermit-Eingabeaufforderung):

mkdir thumbnails

rename *-t.jpg thumbnails/

Und dann im Unterverzeichnis “thumbnails”, Strg-A, um “alles auszuwählen” und nach Photoshop zu ziehen (und dann, falls gewünscht, die Vorschaubilder mit einer Mausbewegung zurück in das ursprüngliche Verzeichnis zu ziehen oder sie mit einem Kermit-Befehl umzubenennen).

Kermit 95 wurde nicht nur entwickelt, um Columbias Bedarf an Konnektivität von Windows 95 (und später) zu den zentralen textbasierten Diensten zu decken, sondern auch, um Geld für das Kermit-Projekt zu sammeln. Im Gegensatz zu anderen Kermit-Programmen war K95 streng kommerziell, sowohl in einer Einzelhandelsversion (rechts) als auch in Massenlizenzen erhältlich. Seit der Veröffentlichung 1995 bis Mitte 2011 wurden mehr als eine Viertelmillion Lizenzen erworben. Etwa 30.000 eingeschweißte Exemplare wurden verkauft, viele tausend weitere von dere-academy zum Download gekauft und K95 wurde von über 100 Universitäten sowie von ganzen landesweiten Universitätssystemen wie SUNY (64 Universitäten mit etwa 400.000 Studenten) lizenziert.

Das Kermit-Projektwurde 1984 auf eine Selbstfinanzierungsbasis gestellt und erzielte bis zu seiner Auflösung im Jahr 2011 Einnahmen in Höhe von 8.894.912,00 US-Dollar für die Universität sowie einen Ausrüstungszuschuss (das Hermit-Projekt) im Wert von3.000.000,00 US-Dollar.

Kermit Bücher   Kermit 95   C-Kermit   E-Kermit   G-Kermit   Aktuelle Softwareversionen

KERMIT-PROTOKOLL

Seit seiner Einführung im Jahr 1981 hat sich das Kermit-Protokoll zueinem ausgereiften, leistungsfähigen underweiterbaren,transportunabhängigen Werkzeug für die Dateiübertragung und -verwaltung entwickelt:

Das Kermit-Protokoll verwendet gut definierte, sequenzierte, fehlergeprüfte Pakete in jede Richtung, um eine Dateiübertragungssitzung nach den Standardregeln der Protokollschichtung durchzuführen. Pakete sind auf maximale Transparenz ausgelegt, so dass sie jedes noch so restriktive Kommunikationsmedium passieren können. Halbduplex (Stop and Wait), Vollduplex (Schiebefenster mit selektiver Rückübertragung) und kontinuierlicher Streaming-Transport können zur Anpassung an jede Verbindung verwendet werden.

Das Merkmal, das das Kermit-Protokoll von den meisten anderen unterscheidet, ist seine große Auswahl an Einstellungen, die eine Anpassung an jede Art und Qualität der Verbindung zwischen zwei Arten von Computern ermöglichen – Paketlänge, Paketkodierung, Fenstergröße, Zeichensatz, Fehlererkennungsmethode, Timeouts, Pausen. Die meisten anderen Protokolle sind so konzipiert, dass sie nur auf bestimmten Arten oder Qualitäten von Verbindungen und/oder zwischen bestimmten Arten von Computern oder ähnlichen Dateisystemen funktionieren. Sie funktionieren daher schlecht (oder gar nicht) anderswo und bieten wenige oder gar keine Methoden, um sich an ungeplante Situationen anzupassen. Kermit hingegen ermöglicht Ihnen einen erfolgreichen Dateitransfer und die höchstmögliche Performance bei jeder Verbindung.

Im Gegensatz zu FTP oder X-, Y- und ZMODEM (die anderen Protokolle, mit denen Kermit am häufigsten verglichen wird), das Kermit-Protokoll erfordert Folgendes nicht:

  • eine Vollduplex-Verbindung;
  • eine Verbindung, die für Steuerzeichen transparent ist;
  • eine 8-Bit-Verbindung;
  • eine saubere Verbindung;
  • großen Puffern entlang des gesamten Kommunikationsweges;
  • Physical-Link-Layer-Flusskontrolle.

(obwohl Kermit keine dieser Bedingungen verlangt, kann es sie nutzen, wenn sie verfügbar sind). Ein Artikel über das Kermit-Protokoll von Tim Kientzle in der Februar-Ausgabe 1996 desDr. Dobb’s Journalstellte fest, dass “Kermits Fenstertechnik schneller ist als Protokolle wie XModem und YModem … Was viele Leute nicht wissen, ist, dass Kermits Fenstertechnik unter weniger als idealen Bedingungen wesentlich schneller als ZModem ist, ein Protokoll mit einem wohlverdienten Ruf für schnelle Übertragungen über qualitativ hochwertige Leitungen.” Die Effizienz des Kermit-Protokolls wirdhierundhiereingehend analysiert.

Kermit transferiert also fast immer “out of the box”. Und auf einer höheren Ebene ermöglicht die Kermit-Befehlssprache beispielsweise die Verwendung aller möglichen praktischen Dateiauswahlkriterien in beliebiger Kombination:

  • Platzhalter und Muster für Dateinamen
  • Auswahl nach Datumsbereichen
  • Auswahl nach Größenbereichen
  • Nur Textdateien
  • Nur Binärdateien
  • Nur Dateien, die auf der anderen Seite nicht existieren oder neuer sind
  • Ausnahmelisten und Muster

um fast jede erdenkliche Gruppierung zu erreichen. Während der Übertragung kann eine Datei ihren Zeichensatz konvertieren, sie kann durch einen Filter geleitet werden usw., und bei erfolgreicher Übertragung kann die Quelldatei gelöscht oder umbenannt werden. Die Zieldatei kann umbenannt oder versendet werden, und so weiter.

Die Kermit-Protokoll-Spezifikation

Die Spezifikation des Kermit-Dateiübertragungsprotokolls ist im Buch Kermit, A File Transfer Protocol von Frank da Cruz, mit einem Vorwort von Donald Knuth (jetzt online in PDF-Formatverfügbar) enthalten. Die Spezifikation ist auch in der sechsten Ausgabe des Kermit-Protokoll-Handbuchs (1986) online verfügbar. Beiden fehlen einige der späteren Verfeinerungen, aber sie beinhalten den Servermodus, lange Pakete, Schiebefenster, etc. Die Dokumentation für die späteren Protokollergänzungen ist HIERgesammelt und öffentlich zugänglich. Eineformale Spezifikation und Überprüfung desKermit-Protokolls wurde 1995 von James Huggins von der University of Michigan veröffentlicht; Sie können es HIER herunterladen.

BEISPIEL FÜR KERMIT-DATEIÜBERTRAGUNG

Schauen wir uns den allgemeinen Fall an, dass Sie einen Windows-Desktop-Computer mit einer Verbindung – jede Art von Verbindung (Modem, serielle Schnittstelle, normales Telnet, sicheres Telnet, rlogin, sicheres rlogin, SSH) – zu einer Shell-Sitzung auf einem Unix-Server (“Unix” = Linux, Mac OS X, FreeBSD, Solaris, AIX, HP-UX,etc)haben und Sie eine Datei zwischen Ihrem PC und dem Unix-Server übertragen möchten. Ihr Terminalemulator unter Windows ist Kermit 95 und auf dem Unix-Server ist C-Kermitoder G-Kermitinstalliert, die einfach durch Eingabe von “kermit” am Shell-Prompt (oder vielleicht “ckermit” und “gkermit”) aufgerufen werden können.

Um eine Datei, z.B.message.txt,herunterzuladen,geben Sie den folgenden Befehl an der Shell-Eingabeaufforderung ein:

kermit -s message.txt

Die Datei wird an das aktuelle Verzeichnis von Kermit 95 auf Ihrem PC gesendet (oder an dessenDOWNLOAD DIRECTORY, falls Sie eines definiert haben). Dabei spielt es keine Rolle, ob es sich um eine Text- oder Binärdatei handelt; Kermit findet sie heraus und überträgt sie automatisch in den entsprechenden Modus.

Ebenso, wenn Sie eine Gruppe von Dateien übertragen wollen, z.B. alle Dateien, deren Namen mit”daily” beginnen:

kermit -s daily.*

Kermit sendet jede passende Datei und schaltet automatisch zwischen Text- und Binärmodus um, je nach Datei (daily.jpg, daily.xls, daily.txt, …).

Das Hochladeneiner Datei von Ihrem PC auf Unix ist genauso einfach. Angenommen, Sie haben eine Datei namens”budget.xls” im aktuellen Verzeichnis von Kermit 95 auf Ihrem PC. Um es nach UNIX hochzuladen, geben Sie dies an der Unix-Shell-Eingabeaufforderung ein:

kermit -g budget.xls

Das sind die Grundlagen, es gibt viele Variationen und Verfeinerungen, zum Beispiel:

  • Übertragen Sie nur Dateien, die neuer sind als die Gegenstücke am anderen Ende.
  • Zeichensätze von Textdateien entsprechend konvertieren (z.B. zwischen ISO 8859-1 und Unicode UTF-8).
  • Wiederherstellen einer teilweisen Übertragung von der Fehlerstelle (nur im Binärmodus).

Um sich das Tippen zu ersparen, können Sie unter Unix (in Ihrem Shell-Profil) Aliase definieren:

alias s=”kermit -Ys”

alias g=”kermit -Yg”.

(sfür “Send”,gfür “Get”). Und dann

s message.txt

g budget.xls

Es ist erwähnenswert, dass Sie Ihre Dateien über dieselbe Verbindung übertragen, die Sie bereits haben; es besteht also keine Notwendigkeit, eine neue Verbindung herzustellen, sich neu zu authentifizieren oder ähnliche Bürokratie. Wenn die Verbindung durch SSH, Kerberos, SSL, TLS oder SRP gesichert ist, ist auch die Dateiübertragung automatisch sicher.

Das ist ein beispielloser Komfort. Wenn Sie C-Kermit unter Unix anweisen, eine Datei zu senden oder zu empfangen, wird das erste Dateiübertragungspaket automatisch vom Terminalemulator von Kermit 95 erkannt und K95 wechselt je nach Richtung in den Empfangs- oder Servermodus, und wenn die Übertragung beendet ist, kehrt K95 zu seinem Terminalemulationsbildschirm zurück. Wenn es einen Fehler gibt (z.B. wenn Sie keine Schreibberechtigung im Zielverzeichnis haben), bleibt K95 in seinem Dateitransfer-Bildschirm, so dass Sie sehen können, wo das Problem liegt.

Die gleichen Verfahren funktionieren auch mit Unix-to-Unix, K95-to-VMS, Unix-to-VMS, VMS-to-Unix oder OS/2-to-VMS und Unix, solange Sie K95 oder C-Kermit als Terminalprogramm verwenden.

KONTROVERSIEN

Sehen Sie auch:  Populäre Missverständnisse.

Im Laufe der Jahre waren das Kermit-Projekt und die Software Gegenstand verschiedener Kontroversen, insbesondere:

Lizenz

Von Anfang an wollten wir, dass die Kermit-Software für alle frei sei. Aber seit 1984 hat uns die Columbia University gezwungen, einen Weg zu finden, wie wir das Geld für uns selbst aufbringen können, d.h. die Gehälter der Voll- und Teilzeitkräfte sowie für Ausrüstung, Vorräte, Telefon usw. zu bezahlen. Andernfalls wäre es uns nicht erlaubt, die bis dahin weltweit populär gewordene Software weiter zu entwickeln, zu vertreiben und zu unterstützen.

Unsere Lösung bestand darin, die Software für jeden Einzelnen und jede Organisation für den eigenen Gebrauch frei zu halten, aber von den Unternehmen zu verlangen, sie zu lizenzieren, wenn sie sie mit einem Produkt bündeln oder anderweitig an Kunden ausliefern wollten, das heißt, wenn sie mit unserer Arbeit Geld verdienen wollten. Auf diese Weisekönntensie Geld verdienen, aber sie müssten es mit denen teilen, die die Arbeit gemacht haben.

Als die Freie-Software-Bewegung Fuß fasste, lehnten ihre Befürworter diesen Ansatz vehement ab, aber es erlaubte dem Kermit-Projekt, weitere 10 Jahre fortzusetzen. Dann im Jahr 1994, mit der bevorstehenden Veröffentlichung von Microsoft Windows 95, beschlossen wir, das einzige Kermit-Programm zu veröffentlichen, das zu 100% kommerziell war:Kermit 95Mit diesem Produkt konnte das Kermit-Projekt bis etwa 2003 gedeihen, als die US-Wirtschaft und die Weltwirtschaft zusammenbrachen, und bis 2011, als das Kermit-Projekt an der Columbia University endgültig eingestellt wurde. Zu diesem Zeitpunkt, da die Arbeit von niemandem mehr davon abhing, wurde die gesamte Kermit-Software, an der wir vollständige Rechte hatten, unter eine Open-Source-Lizenz gestellt,und jetzt sind alle glücklich, außer denen, die ihren Arbeitsplatz verloren haben und denen, die unsere kostenlose technische Support-Nummer anriefen, wann immer sie Hilfe brauchten. Und da sind diejenigen, die sich fragen, warum es nie wieder eine neue Kermit 95-Version gab.

Kermit gegen X/Y/ZMODEM

Das XMODEM-Dateiübertragungsprotokoll wurde 1977 an anderer Stelle entwickelt, um Dateien über Telefonverbindungen von einem Mikrocomputer auf einen anderen zu übertragen, und fand daher breite Anwendung bei Computer-Hobbyisten, Fans von BYTE-Magazinen, Benutzern und Administratoren von BBS-Systemenund dergleichen. Seine Nachfolger, wie YMODEM und ZMODEM, wuchsen in der gleichen Kultur auf und bedienten ungefähr die gleiche Benutzerbasis. In der BBS-Welt waren die Kommunikationsverbindungen immer zu 100% transparent für alle 256-Byte-Werte, so dass diese Protokolle relativ einfach waren undin dieser Umgebungnoch gut funktionierten; daher hatten die Bewohner der BBS/Hobby-Kultur keinen Grund, Kermit zu benötigen oder kennenzulernen.

Das Kermit-Protokoll hingegen wurde für Mikro-Mainframe-Verbindungen entwickelt, die viel weniger tolerant und anspruchsvoller waren, da die Verbindungen selten transparent waren und die zugrunde liegenden Computer radikal unterschiedlich waren; zum Beispiel könnten sie unterschiedliche Dateiformate und Zeichensätze für die Speicherung von Dateien verwenden. Kermit richtete sich daher eher an Institutionen – Universitäten, Krankenhäuser, Unternehmen, Regierungsbehörden -, die Maschinenräume mit großen zentralen gemeinsamen Computern oder einer Vielzahl von Abteilungs-Minicomputern sowie einzelne Benutzer mit PCs oder Workstations auf ihrem Schreibtisch hatten, als an Hobbyisten mit relativ homogenen persönlichen Mikrocomputern.

XMODEM war ein schmerzhaft langsames Protokoll, also war der Anstoß, es in immer schnellere Protokolle zu entwickeln; daher kamen YMODEM und ZMODEM. Die neueren MODEM-Protokolle gingen aber immer noch von einer (mehr oder weniger) 100% transparenten Verbindung zwischen zwei identischen oder sehr ähnlichen Rechnern aus.

Als YMODEM und ZMODEM auftauchten, begann man, das Kermit-Protokoll als langsam zu kritisieren, wie es eigentlich in seiner ursprünglichen Form war: kurze Pakete, weil die meisten Mainframes lange Bursts eingehender Daten von einem Terminal nicht aushalten konnten; halbduplexes Stop-and-Wait, weil IBM-Mainframes keine Vollduplex-Kommunikation unterstützten; druckbare Kodierungen für Steuerzeichen und 8-Bit-Zeichen, weil diese nicht durch den Terminal-Treiber des Mainframes laufen konnten. So war das ursprüngliche Kermit-Protokoll ein “kleinster gemeinsamer Nenner” unter allen Plattformen, auf denen es laufen musste (und vieles mehr, wie sich herausstellte). Seine größte Stärke bestand darin, dass es sich an jede Plattform oder Kommunikationsmethode anpassen ließ, auch an solche, bei denen die XMODEM-Familie überhaupt nicht passte, zum Beispiel in der IBM-Mainframe-Welt.

In der Zwischenzeit boten einige BBS-Softwarepakete das Kermit-Protokoll in ihren Upload- und Download-Menüs an, aber diese Kermit-Implementierungen waren immer minimal (d.h. langsam), oft fehlerhaft und gelegentlich völlig funktionslos (siehe die Populäre Missverständnisse Seite über Kermit-Protokollimplementierungen von Drittanbietern). Dies verstärkte den Eindruck innerhalb der Hobbykultur, dass das Kermit-Protokoll langsam war.

Um den Performance-Beschwerden zu begegnen, nutzten wir die intrinsische Erweiterbarkeit des Kermit-Protokolldesigns (bei dem Übertragungen mit einer Feature-Verhandlungsphase beginnen), um Optionen für längere Pakete und für Vollduplex-Schiebefenster mit selektiver Weiterleitung sowie Optionen zur Komprimierung und zur Nutzung von transparenten und/oder fehlerfreien Verbindungen (z.B. Netzwerkverbindungen) hinzuzufügen, wenn diese verfügbar waren. Diese Änderungen machten das Kermit-Protokoll genauso schnell oder schneller als ZMODEM, ohne seine Universalität, Datenkonvertierungsfunktionen, Robustheit und (vor allem) Abwärtskompatibilität zu beeinträchtigen (weshalb Sie keine separaten Protokolle sehen: XKERMIT, YKERMIT, ZKERMIT). Die Leistungsänderungen gehen auf etwa 1993 zurück; siehe Benchmarks.

Niemals hatte jedes Lager seine Anhänger, die weitgehend auf seiner eigenen Kultur basierten, und jedes neigte dazu, das andere abzulehnen, ein Trend, der bis heute anhält. Die meisten Kritiker von Kermit basieren ihre Beobachtungen auf Kermit-Software aus den frühen 80er Jahren oder auf Kermit-Protokollimplementierungen von Drittanbietern, die in der Regel schlecht funktionieren. Eine ausführlichere Diskussion finden Sie auf der Seite Populäre Missverständnisse.

Im Jahr 2013 fiel mir die Slashdot-Diskussion über die Absage des Kermit-Projekts an der Columbia University auf. Es veranschaulicht das aktuelle Thema sehr gut, da die Diskussion von Hobbyisten und BBS-Anwendern dominiert wird. Aber auch einige sachkundige Kermit-Anwender haben dazu beigetragen; hier sind einige Beispiele:

  • Wow, in meiner College- und Post-College-Zeit habe ich dieses Protokoll an so vielen Orten und auf so viele Arten verwendet, dass ich nicht einmal anfangen kann zu zählen. Das war ein sehr konservatives Protokoll, das fast alles durchmachen konnte. Einmal hatte ich es von einem tragbaren Computer über eine Modemverbindung zu einem Equinox Datenschalter durch einem AT&T 3b5 Unix gehen, dann zurück zum Equinox (um die Geschwindigkeit von 300 Baud auf 9600 Baud zu ändern), dann zu einem IBM 7171 Protokollkonverter und endlich zu einem IBM 4361. Und es könnte tatsächlich Dateien übertragen. Ein anderes Mal musste ich einen DECNET-Terminalsimulator auf einer Sun testen (die alte Version würde in der Mitte des Tages an den verkehrsreichsten Tagen ausfallen), also benutzte ich Kermit, um mich mit host1 zu verbinden, dann mit host2, zurück zu host 1, dann zurück zu host 2, ich denke etwa 40 mal. Dann habe ich eine Dateiübertragung über alle Verbindungen durchgeführt. Es hat funktioniert.
  • Anfang der 90er Jahre war ich dafür verantwortlich, die ersten rumänischen Universitäten (insbesondere Bukarest) mit dem Internet zu verbinden. Da wir IP aus verschiedenen technischen Gründen nicht zum Laufen bringen konnten, haben wir uns entschlossen, ihnen zumindest in der Zwischenzeit eine E-Mail zu bieten. Der erste Versuch war mit uucp, aber sie konnten seine Operationen auf der Bukarester Seite nicht bewältigen. Die Telefonleitungen waren damals nicht stabil genug. Also, für die ersten 6 Monate, E-Mails wurden nach Bukarest durch Kermit-Dateiübertragung gesendet, ausgelöst durch ein Sammelsurium von MDA-Skripten, die von sendmail aufgerufen wurden. Kermit war viel robuster als jedes andere Dateiübertragungsprotokoll zu dieser Zeit. Wir glaubten, dass es schließlich Bitübertragungen über nasse Wäscheleinen verarbeiten konnte.
  • Ja, es wird viel in der Embedded-Welt verwendet. Eines der wenigen Tools, die zur Verfügung stehen, um ein RS232-basiertes Gerät wiederherzustellen. Verwendet auf Dingen wie dem Gumstix, Beagleboard und vielen anderen SBCs wie ARM-basierten Embedded-Geräten. Wenn Sie benutzerdefinierte Versionen erstellen/bestellen oder Ihr eigenes Versandprodukt keine Alternativen wie MMC/SD-Karten-Boot-Fähigkeiten enthält, ist c-kermit eines der wenigen Dinge, die es Ihnen ermöglichen, von einem Tool auf solchen Geräten zu booten, Code zu laden und dann zur Konsole zu gehen. Habe meinen (und meinen Arbeitgeber) Arsch viele Male auf “bricked” oder fehlerhaften eingebetteten Geräten gerettet.

In der gleichen Diskussion wird beklagt, dass keine adäquate Erklärung dafür gegeben wurde, warum einige Module von Kermit 95 nicht in Open Source veröffentlicht werden konnten. Die Erklärung war und istHIER.

LINKS

 

Leider sind die meisten Informationen über Kermit-Software und -Protokoll, die auf externen Websites zu finden sind, ungenau oder stark veraltet. Auch der relativ vorteilhaft Wikipedia-Artikel konzentriert sich auf Details und längst vergessene Kleinigkeiten aus den frühen 80er Jahren und ignoriert die seither erzielten stetigen Fortschritte.