From: Christian Weisgerber (naddy_at_mips.rhein-neckar.de)
Date: 05. Mar 2000
Jochen Lillich <jl_at_teamlinux.de> wrote:
> Frage eines Unwissenden: Was ist so toll an der ksh?
Das musst du ihre Anhänger in comp.unix.shell fragen. :-)
Als die AT&T Korn Shell (ksh) in der zweiten Hälfte der 80er-Jahre
auftauchte, war sie die erste Shell, die nicht mehr im kanonischen
Eingabemodus lief und einen eigenen, wahlweise emacs- oder vi-
ähnlichen Kommandozeileneditor anbot. Es gab vorher ja nur Bourne
Shell (sh) und C Shell (csh). ksh war abwärtskompatibel zur Bourne
Shell (sh), wies aber eine Fülle von Erweiterungen auf für eine
schnellere und komfortablere Skriptsprache.
In der Version von 1988, zur Unterscheidung ksh88 genannt, hielt
die Korn Shell bei fast allen kommerziellen Unices Einzug und war
der designierte Nachfolger der Bourne Shell.
Die IEEE-POSIX-1003.1-Norm spezifiziert eine gegenüber der klassischen
sh deutlich erweiterte Shell, wobei die meisten Erweiterungen direkt
von der ksh übernommen sind. Allerdings ist die POSIX-Shell immer
noch ein ganzes Stück von einer kompletten ksh entfernt, und ksh88
ist auch nicht ganz kompatibel zum Standard. FreeBSDs /bin/sh ist
ein Beispiel für eine Implementierung der POSIX-Shell.
ksh88 war immer proprietärer Code. Unter BSD oder Linux begegnet
man unter dem Namen »ksh« der Public Domain Korn Shell (pdksh).
Diese hat die Reimplementierung von ksh88 zum Ziel, modulo deren
Bugs und POSIX-Inkompatibilitäten. pdksh hat sich im Laufe der
Jahre ganz schön gemausert. Zur weitgehenden ksh88-Kompatibilität
fehlen ihr immer noch ein paar Dinge, aber sie kann sich sehen
lassen.
Die Korn Shell selbst ist auch weiterentwickelt worden. Die Version
von 1993, zur Unterscheidung ksh93 genannt, ist gegenüber ksh88
fehlerbereinigt, POSIX-konform, und nochmal um allerlei Nützliches
erweitert. Diese Version ist in »The KornShell Command and Programming
Language« von Morris Bolsky und David Korn, Prentice Hall, beschrieben.
Auch ksh93 war proprietärer Code. Sie ist bei den kommerziellen
Unices nie als Nachfolger von ksh88 als ksh eingesetzt worden.
Allerdings basiert die dtksh des CDE auf ksh93, und da kommerzielle
Unices heute mit CDE ausgeliefert werden, steht ksh93 dort auf
diesem Weg mehr oder weniger zur Verfügung.
Exkurs: CDE?
CDE ist das Common Desktop Environment. Es war der Versuch,
auf dem Motif-Toolkit aufbauend und von HP VUE ausgehend, eine
einheitliche Desktop-Umgebung für UNIX(TM) zu schaffen, um die
Benutzerakzeptanz außerhalb von Serveranwendungen zu erhöhen.
Ersteres ist gelungen, Letzteres nicht. Wie Motif ist auch CDE
nicht frei, weshalb es für BSD und Linux nur in kommerziellen
Versionen zur Verfügung steht, die keine nennenswerte Verbreitung
gefunden haben. Die Wahl des Namens »KDE« für das gleichnamige
Desktop-Projekt ist trotz aller gegenteiligen Beteuerungen
sicher kein Zufall.
dtksh stellt einen kompletten Satz Motif-Bindings zur Verfügung,
so dass man prinzipiell mit einem Shellskript eine X11-Applikation
mit hübschen Widgets realisieren kann - vgl. andere Kombinationen
von Skriptsprache und X11-Toolkit, wie Tcl/Tk oder Perl/Tk.
Vorcompilierte Executables von ksh93 für eine Reihe von Plattformen
bei nichtkommerzieller Verwendung waren schon seit einiger Zeit
von AT&T erhältlich. Z.B. habe ich zu Referenzzwecken eines für
BSD/OS unter FreeBSD/i386, und eines für SunOS4 unter OpenBSD/sparc
laufen.
AT&T, bzw. mittlerweile Lucent, hat nun (2000-03-01) die Sourcen
von ksh93 freigegeben, was zumindest die Verwendung auf Plattformen,
für die keine Executables bereitgestellt wurden, erleichtert.
Inwieweit das Open Source mit allen seinen Vorteilen ist, wird sich
zeigen, wenn jemand es geschafft hat, die Lizenz zu verstehen.
-- Christian "naddy" Weisgerber naddy_at_mips.rhein-neckar.de
Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET