What are we are doing ?
The ksh93-integration project should investigate and execute the integration of the Korn Shell version 93 (ksh93) and related features, including:
- Introduction of ksh93 (as /usr/bin/ksh93 until /usr/bin/ksh will be updated to ksh93 in Solaris 11)
- Introduction of [[libshell.so>>Project ksh93-integration.shell]] (see below)
- Investigate the migration of /usr/bin/ksh to the standard version of ksh93
- Investigate changes required for ksh93 to replace the standard POSIX shell /usr/xpg4/bin/sh.
- Discussion/bugfixing of Solaris-specific ksh93 bugs+fixes
- Enhancement of Solaris tools to use [[libshell>>Project ksh93-integration.shell]] instead of homegrown commandline parsers (like zfs, xauth etc.)
- Enhancement of Solaris's POSIX commands based on the AT&T AST (upstream source of ksh93) commands available in libshell and libcmd
- Ensure backwards compatibility (for example via keeping the old version of Solaris ksh around as /usr/bin/oksh)
- Replacement of duplicate ksh versions in various Sun products with [[libshell.so>>Project ksh93-integration.shell]] (which is ksh93 as a shared library), including dbx and dtksh
Why are we doing this ?
- Because customers have been asking for it for years
- Customers have requested ksh93 integration and ksh93 features in Solaris for many years. RFEs supporting this including 4113420, 6332421, 1215363, 4201349, 4448701, 4827484, 4877415, 5034853 etc.)
- Lower the maintaince burden of Sun engineers by delivering an almost unmodified version of ksh93 instead of the current /bin/ksh codebase which is highly Solaris-specific
- Lower the burden of developers and site adminstrators and improve interoperability between versions of Unix via upgrading /bin/ksh to ksh93 level
- Provide a unified shell parser backend ([[libshell.so>>Project ksh93-integration.shell]]) for existing value-add (dbx/dtksh/tksh) and other Solaris components such as zfs.
- Improve the user-friendliness for ksh users, via enhancements of editing modes, history, builtins etc
- Dramatically improve performance of shell scripts (ksh93 is the fastest POSIX-conformant shell interpreter currently available + making many POSIX commands available builtins by default saves (at least) the |fork()|+|exec()|) overhead
Current Status
Phase I (the integration of ksh93 as /usr/bin/ksh93) and Phase II (ksh93-integration update1) have been completed (ksh93 is now part of Solaris as /usr/bin/ksh93 since B72 and additional infrastructure like the shell script compiler /usr/bin/shcomp are available since B106)
We're currently working on Phase III which will provide additional features, improvements and bugfixes.
Additionally OpenSolaris distributions are now shipping ksh93 as default system shell (e.g. /sbin/sh, /bin/sh, /usr/bin/sh, /usr/bin/ksh, /usr/bin/ksh93, etc.).
Filing bugs/RFEs
Submit a bug or RFE or view the list of open bugs.
Screenshots
(More screenshots can be found on the Screenshots page)|
|
References/Links