OpenSolaris

You are not signed in. Sign in or register.

OpenSolaris Project: Korn Shell 93 integration/migration project

View the leaders for this project
Project Observers

Endorsing communities

OS/Net (ON)

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 (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 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 (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) 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)
ksh93 i18n demo 1 ksh93 calculating Pi using the Wallis product
ksh93 associate array demo1 ksh93 mandelbrot demo1

References/Links

Announcements

28 Dec 2008 ksh93-integration update1 integrated into OS/Net build 106
02 Dec 2008 ksh93-integration update1 entered code review
30 Nov 2008 ksh93-integration update1 2008-11-14 tarballs for Solaris Nevada >= B84+Indiana
14 Nov 2008 |libc::wordexp()| updated, distributions please check whether inetd still works
10 Nov 2008 ksh93 version 't' (ast-ksh.2008-11-04) released
23 Aug 2008 We moved (the tree) ...
12 Aug 2008 ksh93-integration update1 2008-08-10 tarballs for Solaris Nevada >= B84+Indiana
25 Jul 2008 ksh93 version 't' (ast-ksh.2008-07-25) released
24 Jun 2008 ksh93-integration update1 tarballs for Solaris Nevada >= B84+Indiana
17 Jun 2008 ksh93 update tarballs for Solaris Nevada+Indiana

Blogs

Sun Search - +keyword +korn93 - Bug ID: 6855879 typeset -X x ; print $x # does not print sufficient digits to restore value

Jun 29, 1:00 AM

Sun Search - +keyword +korn93 - Bug ID: 6855875 typeset -X x ; print $x # does not print sufficient digits to restore value

Jun 29, 1:00 AM

Sun Search - +keyword +ksh93 - Bug ID: 6853478 ksh93 update 2 manpages

Jun 22, 1:00 AM

Sun Search - +keyword +ksh93 - Bug ID: 6853183 prstat -a spends too much time in vm_getusage()

Jun 19, 1:00 AM

Sun Search - +keyword +ksh93 - Bug ID: 6851677 sockfs panics on X2250 systems with "!(wbp->b_datap->db_flags & DBLK_UIOA)"

Jun 16, 1:00 AM

... stf_execute ffffff0710525398 stf_execute ffffff0710915398 stf_execute ffffff0711387398 stf_timeout ffffff07113a9398 stf_jnl_context ffffff07113bd398 ksh93 ffffff0711495398 rsh ::ps S PID PPID ...