Shell Bourne compatible con versiones anteriores de Unix creado por David Korn
KornShell ( ksh) es un shell Unix desarrollado por David Korn en Bell Labs a principios de la década de 1980 y anunciado en USENIX el 14 de julio de 1983. [1] [2] El desarrollo inicial se basó en el código fuente del shell Bourne . [7] Otros contribuyentes tempranos fueron los desarrolladores de Bell Labs Mike Veach y Pat Sullivan, quienes escribieron el código de los modos de edición de líneas estilo Emacs y vi , respectivamente. [8] KornShell es compatible con versiones anteriores del shell Bourne e incluye muchas características del shell C , inspiradas en las solicitudes de los usuarios de Bell Labs.
Características
KornShell cumple con POSIX.2 , Shell y utilidades, intérprete de comandos (IEEE Std 1003.2-1992). Las principales diferencias entre KornShell y el shell Bourne tradicional incluyen:
KornShell era originalmente un software propietario . En 2000, el código fuente se publicó bajo una licencia específica de AT&T, pero desde el lanzamiento de ksh93q a principios de 2005, se obtuvo la licencia pública Eclipse . [4] KornShell está disponible como parte de la colección de software de código abierto de AT&T Software Technology (AST). Como inicialmente KornShell solo estaba disponible a través de una licencia patentada de AT&T, se crearon varias alternativas gratuitas y de código abierto. Estos incluyen pdksh , mksh , Bash y Z shell .
La funcionalidad del KornShell original, ksh88 , se utilizó como base para el intérprete de comandos estándar POSIX.2 , Shell and Utilities (IEEE Std 1003.2-1992).
Algunos proveedores todavía envían sus propias versiones de la variante ksh88 anterior , a veces con extensiones. ksh93 se mantiene en GitHub . [10]
Como "Desktop KornShell" ( dtksh ), ksh93 se distribuye como parte del entorno de escritorio común . [11] Esta versión también proporciona asignaciones a nivel de shell para widgets de Motif . Estaba pensado como competidor de Tcl / Tk . [12]
El KornShell original, ksh88 , se convirtió en el shell predeterminado en AIX en la versión 4, [13] [14] y ksh93 está disponible por separado. [15]
UnixWare 7 incluye ksh88 y ksh93 . El shell Korn predeterminado es ksh93 , que se suministra como /usr/bin/ksh , y la versión anterior está disponible como /usr/bin/ksh88 . [16] UnixWare también incluye dtksh cuando se instala CDE .
La distribución ksh93 sufrió un destino menos estable después de que los autores dejaron AT&T alrededor de 2012 en la versión estable ksh93u+ . Los autores principales continuaron trabajando en una rama ksh93v- beta hasta aproximadamente 2014. Ese trabajo finalmente fue retomado principalmente por Red Hat en 2017 (debido a solicitudes de los clientes) y resultó en el eventual lanzamiento inicial de ksh2020 [17] en el otoño de 2019. Esa versión inicial (aunque solucionó varios problemas de estabilidad anteriores) introdujo algunas roturas menores y problemas de compatibilidad. [18] En marzo de 2020, AT&T decidió revertir los cambios de la comunidad, guardarlos en una sucursal y reiniciar desde ksh93u+ , ya que los cambios eran demasiado amplios y demasiado centrados en ksh para que la empresa los absorbiera en un proyecto en modo de mantenimiento. [19] [20] El desarrollo de corrección de errores continúa en la rama ksh93u+m , según la última versión estable de AT&T ( ksh93u+ 2012-08-01). [21] ksh2020 [22] se lanzó como un "lanzamiento importante por varias razones" [23] como la eliminación del soporte EBCDIC , la eliminación del soporte para complementos binarios escritos para ksh93u+ y la eliminación de algunas funciones matemáticas rotas, pero nunca se ha mantenido o respaldado por AT&T (ni siquiera en su fecha de lanzamiento inicial).
Contribuciones principales a la rama principal del software.
A los efectos de las listas siguientes, la rama de software principal de KSH se define como el programa original, que data desde julio de 1983, hasta el lanzamiento de KSH2020 a finales de 2019. El desarrollo continuo de versiones posteriores (ramas) de KSH ha se dividen en diferentes grupos a partir de 2020 y no se detallan a continuación.
Contribuyentes individuales primarios
Los siguientes se enumeran en un orden cronológico aproximadamente ascendente de sus contribuciones:
David G. Korn (AT&T Bell Laboratories, AT&T Laboratories y Google; y creador)
Glenn S. Fowler (Laboratorios AT&T Bell, Laboratorios AT&T)
Kiem-Phong Vo (Laboratorios AT&T Bell, Laboratorios AT&T)
Adam Edgar (Laboratorios Bell de AT&T)
Michael T. Veach (Laboratorios Bell de AT&T)
Patrick D. Sullivan (Laboratorios Bell de AT&T)
Matthijs N. Melchior (AT&T Network Systems Internacional)
Karsten-Fleischer (Ingeniería de software Omnium)
boyer-moore
Siteshwar Vashisht (Sombrero Rojo)
Kurtis asaltante
Consultor de integración
Roland Maguncia
Principales contribuyentes corporativos
Los siguientes se enumeran en un orden cronológico aproximadamente ascendente de sus contribuciones:
Además de las principales corporaciones contribuyentes (enumeradas anteriormente), algunas empresas han contribuido con recursos gratuitos al desarrollo de KSH. Estos se enumeran a continuación (ordenados alfabéticamente):
mksh : una implementación gratuita del lenguaje KornShell, bifurcada de OpenBSD pdksh . Fue desarrollado originalmente para MirOS BSD y tiene licencia bajo términos permisivos (aunque no de dominio público); en concreto, la Licencia MirOS . [6] Además de su uso en BSD, esta variante ha reemplazado a pdksh en Debian, [26] y es el shell predeterminado en Android.
SKsh : una variante de AmigaOS que proporciona varias características específicas de Amiga, como la interoperabilidad ARexx . [27] En esta tradición, MorphOS usa pdksh en su SDK.
MKS Korn shell de MKS Inc .: una implementación patentada del lenguaje KornShell de Microsoft Windows Services para UNIX (SFU) hasta la versión 2.0; según David Korn, el shell MKS Korn no era totalmente compatible con KornShell en 1998. [28] [29] En SFU versión 3.0, Microsoft reemplazó el shell MKS Korn con un nuevo shell compatible con POSIX.2 como parte de Interix . [30]
KornShell está incluido en UWIN , un paquete de compatibilidad Unix de David Korn. [31]
/bin/sh en el paquete System V de Doug Gwyn (US Army BRL) en BSD incluía la versión de Ron Natalie del SVR2 /bin/sh que tenía control de trabajo y edición de línea de comando. [ cita necesaria ] Este era un contemporáneo del ksh original en un momento en el que no había escapado a AT&T. [ cita necesaria ] Este fue posteriormente el /bin/sh que se envió con todos los sistemas derivados de CMU Mach. [ cita necesaria ]
^ ab Ron Gomes (9 de junio de 1983). "Calendario de la conferencia Toronto USENIX (provisional)". Grupo de noticias : net.usenix . Consultado el 29 de diciembre de 2010 .
^ ab Guy Harris (10 de octubre de 1983). "pregunta csh". Grupo de noticias : net.flame . Consultado el 29 de diciembre de 2010 .
^ "Korn Shell Launcher para el subsistema de Windows para Linux« Reflexiones ". blog.fpmurphy.com . Consultado el 29 de enero de 2021 .
^ ab "paquete ast-open". Investigación de AT&T. nd Archivado desde el original el 1 de octubre de 2015 . Consultado el 19 de diciembre de 2022 .
^ "LEGAL". Archivado desde el original el 6 de febrero de 2012 . Consultado el 10 de junio de 2010 .
^ ab "MirBSD Korn Shell". Mirbsd.org . Consultado el 10 de diciembre de 2018 .
^ Korn, David G. (26 de octubre de 1994), "ksh - An Extensible High Level Language", Actas del Simposio de lenguajes de muy alto nivel USENIX 1994 , Asociación USENIX , consultado el 5 de febrero de 2015 , en lugar de inventar un nuevo lenguaje de escritura , creamos un sistema de entrada de formularios modificando el shell Bourne y agregando comandos integrados según fuera necesario.
^ Bolsky, Morris I.; Korn, David G. (1989). "Agradecimientos". El lenguaje de programación y comando KornShell. Englewood Cliffs, Nueva Jersey: Prentice Hall. págs.xii. ISBN0-13-516972-0.
^ "familia tradicional de conchas Bourne / historia y desarrollo". En-ulm.de . Consultado el 10 de diciembre de 2018 .
^ "Este es el sitio de descarga de software AT&T Software Technology ast de AT&T Research. La colección de software AT&T AST OpenSource proporciona una descripción general y un software UNIX práctico y reutilizable". Github.com . 10 de diciembre de 2018 . Consultado el 10 de diciembre de 2018 .
^ Bill Rosenblatt; Arnold Robbins (2002). Aprendiendo el Korn Shell (2 ed.). O'Reilly. págs. viii-ix. ISBN978-0-596-00195-7.
^ Pendergrast, J. Stephen (1995). Programación gráfica de escritorio KornShell. Addison-Wesley. pag. 359.ISBN978-0-201-63375-7.
^ Cañón Casey; Scott Trent; Carolyn Jones (1999). Simplemente AIX 4.3 . Prentice Hall. pag. 21.ISBN978-0-13-021344-0.
^ "Centro de conocimiento de IBM". IBM . Consultado el 10 de diciembre de 2018 .
^ "Centro de conocimiento de IBM". IBM . Consultado el 10 de diciembre de 2018 .
^ "Conformidad con UNIX95". Uw714doc.sco.com . Consultado el 10 de diciembre de 2018 .
^ "ksh2020". GitHub . 26 de febrero de 2021.
^ "registro de cambios ksh2020". GitHub . 29 de mayo de 2020.
^ "Rebobinando este repositorio y alentando a la comunidad · Número 1466 · att/ast". GitHub .
^ "segfault con globos extendidos · #1464 · att/ast". GitHub .
^ "ksh 93u+m". GitHub . 17 de noviembre de 2021.
^ "2020.0.0: versión estable de ksh-2020.0.0". GitHub . Consultado el 29 de enero de 2021 . Nota: ksh2020 no se mantiene ni es compatible
^ "REGISTRO DE CAMBIOS ksh 2020.0.0". GitHub . 2021-01-29.
^ "bien en GitHub". GitHub . 1 de agosto de 2020.
^ "loksh en GitHub". GitHub . 15 de octubre de 2021.
^ "5.11. La transición de PDKSH a MKSH". Archivado desde el original el 28 de julio de 2014 . Consultado el 28 de julio de 2014 .
^ "Aminet-util/Shell/SKsh21.LZH".
^ "David Korn lo cuenta todo". Punto barra . Consultado el 22 de octubre de 2009 .
^ "Jerry Feldman - asistente a la conferencia USENIX NT/LISA NT". Listas.blu.org. 29 de agosto de 1998 . Consultado el 22 de octubre de 2009 .
^ "Servicios de Windows para UNIX versión 3.0". Technet.microsoft.com . Consultado el 22 de octubre de 2009 .
^ Anatole Olczak (2001). El shell Korn: manual de programación Unix y Linux. Profesional de Addison-Wesley. pag. 4.ISBN978-0-201-67523-8.
Otras lecturas
Morris I. Bolsky; David G. Korn (1995). El nuevo lenguaje de programación y comandos KornShell. PTR de Prentice Hall. ISBN 978-0-13-182700-4.
David G. Korn; Charles J. Northrup; Jeffery Korn (julio de 1996). "El nuevo KornShell: ksh93". Diario de Linux (27). Archivado desde el original el 11 de octubre de 2015.
enlaces externos
Página web oficial
Página de manual de ksh93 en Wayback Machine (archivada el 5 de junio de 2013)
Página de manual de ksh88 en Wayback Machine (archivada el 5 de noviembre de 2015)
Shell Korn de dominio público (pdksh) en Wayback Machine (archivado el 21 de octubre de 2016)