KornShell

KornShell(ksh)は、1980年代初期にベル研究所のデビッド・コーンによって開発されたUnixシェルの一種です。1983年のUSENIX年次大会で発表され、初期の開発にはマイク・ヴィーチとパット・サリヴァンも携わりました。彼らはそれぞれ、Emacsスタイルとviスタイルの入力行編集モードのコードを実装しました。

設計思想



KornShellは、Bourne Shellに対して完全な上位互換性を持ち、C Shellの便利な機能も多数取り入れています。具体的には、コマンド履歴やジョブコントロール、コマンドエイリアスなどが挙げられます。開発者のコーンは、ベル研究所内のユーザーからの要望を受けてkshを開発したとされています。

POSIX.2 Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992) に準拠しており、標準的なシェルとして利用できます。

主な特徴



  • - Bourne Shellとの互換性: 既存のBourne Shellスクリプトをそのまま利用できます。
  • - C Shell由来の機能: コマンド履歴、ジョブコントロール、コマンドエイリアスなど、対話的な操作を快適にする機能が追加されています。
  • - WYSIWYG編集: 対話モードでは、コマンドラインをWYSIWYG(What You See Is What You Get)のように編集できます。カーソルキーで過去のコマンドを呼び出し、vi、emacs、XEmacs互換のキー操作で編集できます。
  • - ksh93の拡張機能: ksh93では、連想配列や浮動小数点数演算機能が組み込まれ、より高度な処理が可能になりました。

歴史



KornShellは、2000年までAT&Tのプロプライエタリソフトウェアでしたが、その後、AT&T独自のライセンスを経て、2005年の 93q からは Common Public License で配布されるようになりました。現在では、AT&T Software Technology (AST) Open Source Software Collectionの一部として入手できます。

当初は商用ライセンスのみで提供されていたため、代替となるオープンソース実装が複数開発されました。pdksh、mksh、bash、zshなどがその代表例です。最初のKornShellであるksh88は、POSIX.2 Shell and Utilitiesのベースとなっています。

現在でも、一部のベンダーは古いksh88を/bin/kshとして利用しており、独自の拡張を行っている場合もあります。ksh93は開発者であるコーン自身がメンテナンスを続けており、ksh93u+が最新版です。バグ修正版は、バージョン番号を変更せずにリリースされることもあります。

dtksh(デスクトップ用KornShell)は、CDE(Common Desktop Environment)の一部として配布されたksh93です。Motifウィジェットのシェルレベルでのマッピングを提供し、Tcl/Tkとの競合を意識していました。

派生ソフトウェア



KornShellからは、以下のような派生ソフトウェアが生まれています。

  • - dtksh: CDEの一部として配布されたksh93のフォーク。
  • - tksh: Tkウィジェット・ツールキットへのアクセスを提供するksh93のフォーク。
  • - oksh: OpenBSD版KornShellのフォーク。GNU/Linux|GNU_Linuxで動作し、DeLi Linuxでデフォルトシェルとして採用されています。
  • - mksh: MirOS BSDで開発されているKornShellの自由ソフトウェア実装。
  • - SKsh: AmigaOS版KornShell。ARexxとの相互作用などAmiga固有の機能を提供します。
  • - MKS Korn shell: MKS社による商用実装。Microsoft Windows Services for UNIX (SFU) のバージョン2.0までで採用されていましたが、完全な互換性はありませんでした。SFU 3.0以降では、Interixの一部としてPOSIX.2準拠のシェルが導入されています。
  • - UWIN: デビッド・コーンが開発したWindows上のUNIX互換パッケージで、KornShellも含まれています。

まとめ



KornShellは、Bourne ShellとC Shellの利点を併せ持ち、POSIX標準に準拠した強力なシェルです。オープンソース化によって幅広い環境で利用可能になり、多くの派生ソフトウェアが開発されました。現在も活発にメンテナンスされており、UNIX系OSのシェル環境において重要な役割を果たしています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。