KornShell

KornShell (ksh) is a Unix shell which was developed by David Korn at Bell Labs in the early 1980s and announced at USENIX on July 14, 1983.[1][2] The initial development was based on Bourne shell source code.[7] Other early contributors were Bell Labs developers Mike Veach and Pat Sullivan, who wrote the Emacs and vi-style line editing modes' code, respectively.[8] KornShell is backward-compatible with the Bourne shell and includes many features of the C shell, inspired by the requests of Bell Labs users.

Design

KornShell complies with POSIX.2, Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992.) Major differences between KornShell and the traditional Bourne shell include:

History

Interaction with OpenBSD's default shell, pdksh

KornShell was originally proprietary software. In 2000 the source code was released under a license particular to AT&T, but since the 93q release in early 2005 it has been licensed under the Eclipse Public License.[4] KornShell is available as part of the AT&T Software Technology (AST) Open Source Software Collection. As KornShell was initially only available through a proprietary license from AT&T, a number of free and open source alternatives were created. These include pdksh, mksh, GNU bash, and zsh.

The functionality of the original KornShell, ksh88, was used as a basis for the standard POSIX.2, Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992.)

Some vendors still ship their own versions of the older ksh88 variant, sometimes with extensions. ksh93 is still maintained by its author. Releases of ksh93 are versioned by appending a letter to the name; the current version as of 16 January 2017 is ksh93u+, following ksh93u (which followed ksh93t+); ksh93v is in the beta phase (as of 16 January 2017)[10]

As "Desktop KornShell" (dtksh), ksh93 is distributed as part of the Common Desktop Environment.[11] This version also provides shell-level mappings for Motif widgets. It was intended as competitor to Tcl/Tk.[12]

The original KornShell, ksh88, became the default shell on AIX in version 4,[13][14] with ksh93 being available separately.[15]

UnixWare 7 includes both ksh88 and ksh93. The default Korn shell is ksh93, which is supplied as /usr/bin/ksh, and the older version is available as /usr/bin/ksh88.[16] UnixWare also includes dtksh when CDE is installed.

Variants

There are several software products related to KornShell:

  • dtksh – a fork of ksh93 included as part of CDE.
  • tksh – a fork of ksh93 that provides access to the Tk widget toolkit.
  • oksh – a Linux-based fork of OpenBSD's flavour of KornShell. It is used as the default shell in DeLi Linux.
  • mksh – a free implementation of the KornShell language, forked from pdksh. It was originally developed for MirOS BSD and is licensed under permissive (though not public domain) terms; specifically, the MirOS Licence.[6] In addition to its usage on BSD, this variant has replaced pdksh on Debian.[17]
  • SKsh – an AmigaOS flavour that provides several Amiga-specific features, such as ARexx interoperability.
  • MKS Inc.'s MKS Korn shell – a proprietary implementation of the KornShell language from Microsoft Windows Services for UNIX (SFU) up to version 2.0; according to David Korn, the MKS Korn shell was not fully compatible with KornShell in 1998.[18][19] in SFU version 3.0 Microsoft replaced the MKS Korn shell with a new POSIX.2-compliant shell as part of Interix.[20]
  • KornShell is included in UWIN, a Unix compatibility package by David Korn.[21]

See also

References

  1. ^ a b Ron Gomes (Jun 9, 1983). "Toronto USENIX Conference Schedule (tentative)". Newsgroupnet.usenix. Retrieved Dec 29, 2010. 
  2. ^ a b Guy Harris (Oct 10, 1983). "csh question". Newsgroupnet.flame. Retrieved Dec 29, 2010. 
  3. ^ https://web.archive.org/web/20150214070254/http://www2.research.att.com:80/~astopen/download/release.2013-06-01.2013-05-24.html
  4. ^ a b http://www2.research.att.com/~astopen/download/gen/ast-open.html
  5. ^ a b https://www.mirbsd.org/mksh.htm
  6. ^ Korn, David G. (October 26, 1994), "ksh - An Extensible High Level Language", Proceedings of the USENIX 1994 Very High Level Languages Symposium, USENIX Association, retrieved February 5, 2015, Instead of inventing a new script language, we built a form entry system by modifying the Bourne shell, adding built-in commands as necessary. 
  7. ^ Bolsky, Morris I.; Korn, David G. (1989). "Acknowledgements". The KornShell Command and Programming Language. Englewood Cliffs, NJ: Prentice Hall. pp. xii. ISBN 0-13-516972-0. 
  8. ^ http://www.in-ulm.de/~mascheck/bourne/#variants Bourne Shell evolvement
  9. ^ https://github.com/att/ast/blob/beta/src/cmd/ksh93/RELEASE
  10. ^ Bill Rosenblatt; Arnold Robbins (2002). Learning the Korn Shell (2 ed.). O'Reilly Media, Inc. pp. viii–ix. ISBN 978-0-596-00195-7. 
  11. ^ J. Stephen Pendergrast (1995). Desktop KornShell graphical programming. Addison-Wesley. p. 359. ISBN 978-0-201-63375-7. 
  12. ^ Casey Cannon; Scott Trent; Carolyn Jones (1999). Simply AIX 4.3. Prentice Hall PTR. p. 21. ISBN 978-0-13-021344-0. 
  13. ^ http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds5/sh.htm
  14. ^ http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.baseadmn/doc/baseadmndita/korn_shell_enhanced.htm
  15. ^ http://uw714doc.sco.com/en/DIFFS/UNIX95_Conformance.html#ksh-93_vs_ksh-88
  16. ^ https://people.debian.org/~spaillard/Debian_Release_Notes/mksh.html
  17. ^ "David Korn Tells All". Slashdot. Retrieved 2009-10-22. 
  18. ^ "Jerry Feldman — USENIX NT/LISA NT conference attendee". Lists.blu.org. Retrieved 2009-10-22. 
  19. ^ "Windows Services for UNIX Version 3.0". Technet.microsoft.com. Retrieved 2009-10-22. 
  20. ^ Anatole Olczak (2001). The Korn shell: Unix and Linux programming manual. Addison-Wesley Professional. p. 4. ISBN 978-0-201-67523-8. 

Further reading

  • Morris I. Bolsky; David G. Korn (1995). The new KornShell command and programming language. Prentice Hall PTR. ISBN 978-0-13-182700-4. 
  • David G. Korn, Charles J. Northrup and Jeffery Korn The New KornShell—ksh93, Linux Journal, Issue 27, July 1996

External links