KornShell
From Wikipedia, the free encyclopedia
設計
KornShellは、POSIX.2 Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992) に準拠している。
従来のBourne shellとKornShellとの主な違いは次の通りである。
歴史
2000年まで、KornShellはAT&Tの権利保有するプロプライエタリソフトウェアであった。その後AT&T独自のライセンスの下でオープンソースとなり、2005年の 93q から Common Public License での配布となった。KornShellはAT&T Software Technology (AST) Open Source Software Collectionの一部として入手可能である。ks は当初AT&Tの商用ライセンスでしか入手できなかったため、オープンソースの代替実装がいくつも生まれた。その中には、パブリックドメインのpdksh、mksh、GNUプロジェクトのbash、zshなどが含まれる。
最初のKornShellであるksh88の機能がPOSIX.2 Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992) の元になっている。
ベンダーによっては古いksh88を/bin/kshとしていまだに使っているところもあり、独自に拡張している場合もある。ksh93は作者であるコーンがいまだに保守している。ksh93の後ろにアルファベット1文字をつけてバージョンを表しており、最新版はksh93u+である。その1つ前はksh93u、さらに前はksh93t+だった。バグ修正用の中間バージョンはこのバージョン文字列を変更せずにリリースされることもある[5]。
デスクトップ用KornShellとされるdtkshはCDEの一部として配布されたksh93である[6]。このバージョンではMotifウィジェットのシェルレベルでのマッピングを提供しており、Tcl/Tkとの対抗を意図していた[7]。
最初のKornShellである ksh88 は、AIXバージョン4からAIXのデフォルトのシェルとされており[8][9]、ksh93はそれとは別に用意されている[10]。
派生
KornShellからの派生ソフトウェアを以下に示す。
- dtksh — ksh93からのフォーク。CDEの一部。
- tksh — ksh93からのフォーク。Tkウィジェット・ツールキットへのアクセスを提供。
- oksh — OpenBSD版KornShellのフォーク。GNU/Linuxでのみ動作。DeLi Linuxでデフォルトのシェルとして使われている。
- mksh — KornShellの自由ソフトウェア実装。MirOS BSDで開発。
- SKsh — AmigaOS版KornShell。ARexxとの相互作用などAmiga固有の機能を提供している。
- MKS Korn shell — MKS社による商用実装。Microsoft Windows Services for UNIX (SFU) のバージョン2.0までで使われていた。デビッド・コーンによれば、1998年時点のMKS Korn ShellはKornShellと完全互換ではなかった[11][12]。SFUバージョン3.0でマイクロソフトはMKS Korn shellの代替として新たにPOSIX.2準拠のシェルをInterixの一部として導入した[13]。
- デビッド・コーンが開発したUWINはWindows上のUNIX互換パッケージで、KornShellも含まれている[14]。