fbpx
Wikipedia

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.

KornShell
Interaction with OpenBSD's default shell, pdksh
Original author(s)David Korn
Initial release1983; 41 years ago (1983)[1][2]
Final release
93u+ / August 1, 2012; 11 years ago (2012-08-01)
Preview release
93v- / December 24, 2014; 9 years ago (2014-12-24)
Repositorygithub.com/att/ast
Written inC
Operating systemUnix and Unix-like (e.g. Linux and macOS; also works in Windows 10[3])
Available inEnglish
TypeUnix shell
License
Websitekornshell.com
ksh2020
Developer(s)Kurtis Rader, Siteshwar Vashisht, community
Final release
2020 / October 10, 2019; 4 years ago (2019-10-10)
Repositorygithub.com/ksh2020/ksh
Predecessor93v-
LicenseEclipse Public License
Websitekornshell.com 
ksh93u+m
Developer(s)Martijn Dekker, Johnothan King, hyenias
Stable release
1.0.8 / January 1, 2024; 53 days ago (2024-01-01)
Repositorygithub.com/ksh93/ksh
Predecessor93u+
LicenseEclipse Public License
Websitekornshell.com 

Features edit

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:

  • job control, command aliasing, and command history designed after the corresponding C shell features; job control was added to the Bourne Shell in 1989[9]
  • a choice of three command line editing styles based on vi, Emacs, and Gosling Emacs
  • associative arrays and built-in floating-point arithmetic operations (only available in the ksh93 version of KornShell)
  • dynamic search for functions
  • mathematical functions
  • process substitution and process redirection
  • C-language-like expressions
  • enhanced expression-oriented for and while loops
  • dynamic extensibility of (dynamically loaded) built-in commands (since ksh93)
  • reference variables
  • hierarchically nested variables
  • variables can have member functions associated with them
  • object-oriented-programming (since ksh93t)
    • variables can be objects with member (sub-)variables and member methods
    • object methods are called with the object variable name followed (after a dot character) by the method name
    • special object methods are called on: object initialization or assignment, object abandonment (unset)
    • composition and aggregation is available, as well as a form of inheritance

History edit

 
Korn Shell running on Windows Services for UNIX

KornShell was originally proprietary software. In 2000 the source code was released under a license particular to AT&T, but since the ksh93q 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, Bash, and Z shell.

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 maintained on GitHub.[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 a 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.

The ksh93 distribution underwent a less stable fate after the authors left AT&T around 2012 at stable version ksh93u+. The primary authors continued working on a ksh93v- beta branch until around 2014. That work was eventually taken up primarily by Red Hat in 2017 (due to customer requests) and resulted in the eventual initial release of ksh2020[17] in the fall of 2019. That initial release (although fixing several prior stability issues) introduced some minor breakage and compatibility issues.[18] In March 2020, AT&T decided to roll back the community changes, stash them in a branch, and restart from ksh93u+, as the changes were too broad and too ksh-focused for the company to absorb into a project in maintenance mode.[19][20] Bugfix development continues on the ksh93u+m branch, based on the last stable AT&T release (ksh93u+ 2012-08-01).[21] ksh2020 [22] was released as a "major release for several reasons"[23] such as removal of EBCDIC support, dropping support for binary plugins written for ksh93u+ and removal of some broken math functions, but has never been maintained or supported by AT&T (not even on its initial release date).

Primary contributions to the main software branch edit

For the purposes of the lists below, the main software branch of KSH is defined as the original program, dating from July 1983, up and through the release of KSH2020 in late 2019. Continuing development of follow-on versions (branches) of KSH have split into different groups starting in 2020 and are not elaborated on below.

Primary individual contributors edit

The following are listed in a roughly ascending chronological order of their contributions:

  • David G. Korn (AT&T Bell Laboratories, AT&T Laboratories, and Google; and creator)
  • Glenn S. Fowler (AT&T Bell Laboratories, AT&T Laboratories)
  • Kiem-Phong Vo (AT&T Bell Laboratories, AT&T Laboratories)
  • Adam Edgar (AT&T Bell Laboratories)
  • Michael T. Veach (AT&T Bell Laboratories)
  • Patrick D. Sullivan (AT&T Bell Laboratories)
  • Matthijs N. Melchior (AT&T Network Systems International)
  • Karsten-Fleischer (Omnium Software Engineering)
  • Boyer-Moore
  • Siteshwar Vashisht (Red Hat)
  • Kurtis Raider

Integration consultant edit

  • Roland Mainz

Primary corporate contributors edit

The following are listed in a roughly ascending chronological order of their contributions:

Donated corporate resources edit

Besides the primary major contributing corporations (listed above), some companies have contributed free resources to the development of KSH. These are listed below (alphabetically ordered):

Variants edit

There are several forks and clones of 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 port of OpenBSD's variant of KornShell, intended to be maximally portable[24] across operating systems. It was used as the default shell in DeLi Linux 7.2.
  • loksh – a Linux port of OpenBSD's variant of KornShell, with minimal changes.[25]
  • mksh – a free implementation of the KornShell language, forked from OpenBSD 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,[26] and is the default shell on Android.
  • SKsh – an AmigaOS variant that provides several Amiga-specific features, such as ARexx interoperability.[27] In this tradition MorphOS uses pdksh in its SDK.
  • 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.[28][29] In SFU version 3.0 Microsoft replaced the MKS Korn shell with a new POSIX.2-compliant shell as part of Interix.[30]
  • KornShell is included in UWIN, a Unix compatibility package by David Korn.[31]
  • /bin/sh in Doug Gwyn's (US Army BRL) System V on BSD package included Ron Natalie's version of the SVR2 /bin/sh that had both job control and command line editing.[citation needed] This was a contemporary of the original ksh at a time when it had not escaped AT&T.[citation needed] This was subsequently the /bin/sh that shipped with all the CMU Mach-derived systems.[citation needed]

See also edit

References edit

  1. ^ a b Ron Gomes (Jun 9, 1983). "Toronto USENIX Conference Schedule (tentative)". Newsgroup: net.usenix. Retrieved Dec 29, 2010.
  2. ^ a b Guy Harris (Oct 10, 1983). "csh question". Newsgroup: net.flame. Retrieved Dec 29, 2010.
  3. ^ "Korn Shell Launcher for Windows Subsystem for Linux « Musings". blog.fpmurphy.com. Retrieved 2021-01-29.
  4. ^ a b . AT&T Research. n.d. Archived from the original on October 1, 2015. Retrieved December 19, 2022.
  5. ^ a b "MirBSD Korn Shell". Mirbsd.org. Retrieved 10 December 2018.
  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. ^ "traditional Bourne shell family / history and development". In-ulm.de. Retrieved 10 December 2018.
  9. ^ "This is the AT&T Software Technology ast software download site from AT&T Research. The AT&T AST OpenSource Software Collection provides an overview and Practical Reusable UNIX Software." Github.com. 10 December 2018. Retrieved 10 December 2018.
  10. ^ Bill Rosenblatt; Arnold Robbins (2002). Learning the Korn Shell (2 ed.). O'Reilly. pp. viii–ix. ISBN 978-0-596-00195-7.
  11. ^ Pendergrast, J. Stephen (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. p. 21. ISBN 978-0-13-021344-0.
  13. ^ "IBM Knowledge Center". IBM. Retrieved 10 December 2018.
  14. ^ "IBM Knowledge Center". IBM. Retrieved 10 December 2018.
  15. ^ "UNIX95 conformance". Uw714doc.sco.com. Retrieved 10 December 2018.
  16. ^ "ksh2020". GitHub. 26 Feb 2021.
  17. ^ "ksh2020 changelog". GitHub. 29 May 2020.
  18. ^ "Rewinding this repo and encouraging community · Issue #1466 · att/ast". GitHub.
  19. ^ "segfault with extended globs · #1464 · att/ast". GitHub.
  20. ^ "ksh 93u+m". GitHub. 17 November 2021.
  21. ^ "2020.0.0: Stable release of ksh-2020.0.0". GitHub. Retrieved 2021-01-29. Note: ksh2020 is not maintained or supported
  22. ^ "ksh 2020.0.0 CHANGELOG". GitHub. 2021-01-29.
  23. ^ "oksh at GitHub". GitHub. 1 August 2020.
  24. ^ "loksh at GitHub". GitHub. 15 October 2021.
  25. ^ . Archived from the original on 2014-07-28. Retrieved 2014-07-28.
  26. ^ "Aminet - util/Shell/SKsh21.LZH".
  27. ^ "David Korn Tells All". Slashdot. Retrieved 2009-10-22.
  28. ^ "Jerry Feldman — USENIX NT/LISA NT conference attendee". Lists.blu.org. 29 August 1998. Retrieved 2009-10-22.
  29. ^ "Windows Services for UNIX Version 3.0". Technet.microsoft.com. Retrieved 2009-10-22.
  30. ^ Anatole Olczak (2001). The Korn shell: Unix and Linux programming manual. Addison-Wesley Professional. p. 4. ISBN 978-0-201-67523-8.

Further reading edit

  • 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; Jeffery Korn (July 1996). "The New KornShell—ksh93". Linux Journal (27). Archived from the original on 2015-10-11.

External links edit

  • Official website  
  • ksh93 man page at the Wayback Machine (archived June 5, 2013)
  • ksh88 man page at the Wayback Machine (archived November 5, 2015)
  • Public Domain Korn shell (pdksh) at the Wayback Machine (archived October 21, 2016)
  • MirBSD Korn Shell (mksh)
  • mksh(1) – MirOS BSD i386 General Commands Manual

kornshell, unix, shell, which, developed, david, korn, bell, labs, early, 1980s, announced, usenix, july, 1983, initial, development, based, bourne, shell, source, code, other, early, contributors, were, bell, labs, developers, mike, veach, sullivan, wrote, em. KornShell b ksh b 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 KornShellInteraction with OpenBSD s default shell pdkshOriginal author s David KornInitial release1983 41 years ago 1983 1 2 Final release93u August 1 2012 11 years ago 2012 08 01 Preview release93v December 24 2014 9 years ago 2014 12 24 Repositorygithub wbr com wbr att wbr astWritten inCOperating systemUnix and Unix like e g Linux and macOS also works in Windows 10 3 Available inEnglishTypeUnix shellLicenseAT amp T KornShell Eclipse Public License 4 pdksh Public domain with some ISC like code 5 mksh MirOS Licence 6 dtksh Eclipse Public License with some LGPLWebsitekornshell wbr comksh2020Developer s Kurtis Rader Siteshwar Vashisht communityFinal release2020 October 10 2019 4 years ago 2019 10 10 Repositorygithub wbr com wbr ksh2020 wbr kshPredecessor93v LicenseEclipse Public LicenseWebsitekornshell wbr com ksh93u mDeveloper s Martijn Dekker Johnothan King hyeniasStable release1 0 8 January 1 2024 53 days ago 2024 01 01 Repositorygithub wbr com wbr ksh93 wbr kshPredecessor93u LicenseEclipse Public LicenseWebsitekornshell wbr com Contents 1 Features 2 History 3 Primary contributions to the main software branch 3 1 Primary individual contributors 3 2 Integration consultant 3 3 Primary corporate contributors 3 4 Donated corporate resources 4 Variants 5 See also 6 References 7 Further reading 8 External linksFeatures editKornShell complies with POSIX 2 Shell and Utilities Command Interpreter IEEE Std 1003 2 1992 Major differences between KornShell and the traditional Bourne shell include job control command aliasing and command history designed after the corresponding C shell features job control was added to the Bourne Shell in 1989 9 a choice of three command line editing styles based on vi Emacs and Gosling Emacs associative arrays and built in floating point arithmetic operations only available in the ksh93 version of KornShell dynamic search for functions mathematical functions process substitution and process redirection C language like expressions enhanced expression oriented for and while loops dynamic extensibility of dynamically loaded built in commands since ksh93 reference variables hierarchically nested variables variables can have member functions associated with them object oriented programming since ksh93t variables can be objects with member sub variables and member methods object methods are called with the object variable name followed after a dot character by the method name special object methods are called on object initialization or assignment object abandonment unset composition and aggregation is available as well as a form of inheritanceHistory edit nbsp Korn Shell running on Windows Services for UNIXKornShell was originally proprietary software In 2000 the source code was released under a license particular to AT amp T but since the ksh93q release in early 2005 it has been licensed under the Eclipse Public License 4 KornShell is available as part of the AT amp T Software Technology AST Open Source Software Collection As KornShell was initially only available through a proprietary license from AT amp T a number of free and open source alternatives were created These include pdksh mksh Bash and Z shell 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 maintained on GitHub 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 a 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 The ksh93 distribution underwent a less stable fate after the authors left AT amp T around 2012 at stable version ksh93u The primary authors continued working on a ksh93v beta branch until around 2014 That work was eventually taken up primarily by Red Hat in 2017 due to customer requests and resulted in the eventual initial release of ksh2020 17 in the fall of 2019 That initial release although fixing several prior stability issues introduced some minor breakage and compatibility issues 18 In March 2020 AT amp T decided to roll back the community changes stash them in a branch and restart from ksh93u as the changes were too broad and too ksh focused for the company to absorb into a project in maintenance mode 19 20 Bugfix development continues on the ksh93u m branch based on the last stable AT amp T release ksh93u 2012 08 01 21 ksh2020 22 was released as a major release for several reasons 23 such as removal of EBCDIC support dropping support for binary plugins written for ksh93u and removal of some broken math functions but has never been maintained or supported by AT amp T not even on its initial release date Primary contributions to the main software branch editFor the purposes of the lists below the main software branch of KSH is defined as the original program dating from July 1983 up and through the release of KSH2020 in late 2019 Continuing development of follow on versions branches of KSH have split into different groups starting in 2020 and are not elaborated on below Primary individual contributors edit The following are listed in a roughly ascending chronological order of their contributions David G Korn AT amp T Bell Laboratories AT amp T Laboratories and Google and creator Glenn S Fowler AT amp T Bell Laboratories AT amp T Laboratories Kiem Phong Vo AT amp T Bell Laboratories AT amp T Laboratories Adam Edgar AT amp T Bell Laboratories Michael T Veach AT amp T Bell Laboratories Patrick D Sullivan AT amp T Bell Laboratories Matthijs N Melchior AT amp T Network Systems International Karsten Fleischer Omnium Software Engineering Boyer Moore Siteshwar Vashisht Red Hat Kurtis RaiderIntegration consultant edit Roland MainzPrimary corporate contributors edit The following are listed in a roughly ascending chronological order of their contributions AT amp T Bell Laboratories AT amp T Network Systems International AT amp T Laboratories now AT amp T Labs Omnium Software Engineering Oracle Corporation Google Red HatDonated corporate resources edit Besides the primary major contributing corporations listed above some companies have contributed free resources to the development of KSH These are listed below alphabetically ordered Coverity GitHub Travis CIVariants editThere are several forks and clones of 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 port of OpenBSD s variant of KornShell intended to be maximally portable 24 across operating systems It was used as the default shell in DeLi Linux 7 2 loksh a Linux port of OpenBSD s variant of KornShell with minimal changes 25 mksh a free implementation of the KornShell language forked from OpenBSD 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 26 and is the default shell on Android SKsh an AmigaOS variant that provides several Amiga specific features such as ARexx interoperability 27 In this tradition MorphOS uses pdksh in its SDK 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 28 29 In SFU version 3 0 Microsoft replaced the MKS Korn shell with a new POSIX 2 compliant shell as part of Interix 30 KornShell is included in UWIN a Unix compatibility package by David Korn 31 bin sh in Doug Gwyn s US Army BRL System V on BSD package included Ron Natalie s version of the SVR2 bin sh that had both job control and command line editing citation needed This was a contemporary of the original ksh at a time when it had not escaped AT amp T citation needed This was subsequently the bin sh that shipped with all the CMU Mach derived systems citation needed See also edit nbsp Free and open source software portalComparison of computer shells List of Unix commands test Unix References edit a b Ron Gomes Jun 9 1983 Toronto USENIX Conference Schedule tentative Newsgroup net usenix Retrieved Dec 29 2010 a b Guy Harris Oct 10 1983 csh question Newsgroup net flame Retrieved Dec 29 2010 Korn Shell Launcher for Windows Subsystem for Linux Musings blog fpmurphy com Retrieved 2021 01 29 a b ast open package AT amp T Research n d Archived from the original on October 1 2015 Retrieved December 19 2022 LEGAL Archived from the original on 2012 02 06 Retrieved 2010 06 10 a b MirBSD Korn Shell Mirbsd org Retrieved 10 December 2018 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 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 traditional Bourne shell family history and development In ulm de Retrieved 10 December 2018 This is the AT amp T Software Technology ast software download site from AT amp T Research The AT amp T AST OpenSource Software Collection provides an overview and Practical Reusable UNIX Software Github com 10 December 2018 Retrieved 10 December 2018 Bill Rosenblatt Arnold Robbins 2002 Learning the Korn Shell 2 ed O Reilly pp viii ix ISBN 978 0 596 00195 7 Pendergrast J Stephen 1995 Desktop KornShell graphical programming Addison Wesley p 359 ISBN 978 0 201 63375 7 Casey Cannon Scott Trent Carolyn Jones 1999 Simply AIX 4 3 Prentice Hall p 21 ISBN 978 0 13 021344 0 IBM Knowledge Center IBM Retrieved 10 December 2018 IBM Knowledge Center IBM Retrieved 10 December 2018 UNIX95 conformance Uw714doc sco com Retrieved 10 December 2018 ksh2020 GitHub 26 Feb 2021 ksh2020 changelog GitHub 29 May 2020 Rewinding this repo and encouraging community Issue 1466 att ast GitHub segfault with extended globs 1464 att ast GitHub ksh 93u m GitHub 17 November 2021 2020 0 0 Stable release of ksh 2020 0 0 GitHub Retrieved 2021 01 29 Note ksh2020 is not maintained or supported ksh 2020 0 0 CHANGELOG GitHub 2021 01 29 oksh at GitHub GitHub 1 August 2020 loksh at GitHub GitHub 15 October 2021 5 11 The PDKSH to MKSH transition Archived from the original on 2014 07 28 Retrieved 2014 07 28 Aminet util Shell SKsh21 LZH David Korn Tells All Slashdot Retrieved 2009 10 22 Jerry Feldman USENIX NT LISA NT conference attendee Lists blu org 29 August 1998 Retrieved 2009 10 22 Windows Services for UNIX Version 3 0 Technet microsoft com Retrieved 2009 10 22 Anatole Olczak 2001 The Korn shell Unix and Linux programming manual Addison Wesley Professional p 4 ISBN 978 0 201 67523 8 Further reading editMorris 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 Jeffery Korn July 1996 The New KornShell ksh93 Linux Journal 27 Archived from the original on 2015 10 11 External links editOfficial website nbsp ksh93 man page at the Wayback Machine archived June 5 2013 ksh88 man page at the Wayback Machine archived November 5 2015 Public Domain Korn shell pdksh at the Wayback Machine archived October 21 2016 MirBSD Korn Shell mksh mksh 1 MirOS BSD i386 General Commands Manual Retrieved from https en wikipedia org w index php title KornShell amp oldid 1207676440, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.