stringtranslate.com

Concha de cuervo

KornShell ( ksh) es un shell de Unix que fue 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 de Bourne Shell . [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ínea de estilo Emacs y vi , respectivamente. [8] KornShell es compatible con versiones anteriores de Bourne Shell e incluye muchas características de C Shell , 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:

Historia

Korn Shell ejecutándose en Servicios de Windows para UNIX

KornShell era originalmente un software propietario . En 2000, el código fuente fue publicado bajo una licencia particular de AT&T, pero desde el lanzamiento de ksh93q a principios de 2005 ha sido licenciado bajo 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 KornShell inicialmente solo estaba disponible a través de una licencia propietaria de AT&T, se crearon varias alternativas gratuitas y de código abierto. Estas incluyen pdksh , mksh , Bash y Z shell .

La funcionalidad del KornShell original, ksh88 , se utilizó como base para el estándar POSIX.2 , Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992).

Algunos proveedores aún envían sus propias versiones de la variante antigua ksh88 , a veces con extensiones. ksh93 se mantiene en GitHub . [10]

Como "Desktop KornShell" ( dtksh ), ksh93 se distribuye como parte del Common Desktop Environment . [11] Esta versión también proporciona asignaciones a nivel de shell para widgets Motif . Fue concebida como un 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 estuvo disponible por separado. [15]

UnixWare 7 incluye tanto ksh88 como ksh93 . El shell Korn predeterminado es ksh93 , que se proporciona 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 tuvo un destino menos estable después de que los autores abandonaran AT&T alrededor de 2012 en la versión estable ksh93u+ . Los autores principales continuaron trabajando en una rama beta de ksh93v- hasta alrededor de 2014. Ese trabajo finalmente fue asumido principalmente por Red Hat en 2017 (debido a solicitudes de los clientes) y resultó en el lanzamiento inicial final de ksh2020 [17] en el otoño de 2019. Ese lanzamiento inicial (aunque solucionó varios problemas de estabilidad previos) introdujo algunos problemas menores de compatibilidad y rotura. [18] En marzo de 2020, AT&T decidió revertir los cambios de la comunidad, guardarlos en una rama y reiniciar desde ksh93u+ , ya que los cambios eran demasiado amplios y estaban 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 , basada en la última versión estable de AT&T ( ksh93u+ 2012-08-01). [21] ksh2020 [22] se lanzó como una "versión 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 AT&T nunca lo mantuvo ni lo respaldó (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 principal del software de KSH se define como el programa original, que data de julio de 1983, hasta el lanzamiento de KSH2020 a fines de 2019. El desarrollo continuo de versiones posteriores (ramas) de KSH se ha dividido en diferentes grupos a partir de 2020 y no se detallan a continuación.

Principales contribuyentes individuales

A continuación se enumeran en orden cronológico aproximadamente ascendente de sus contribuciones:

Consultor de integración

Principales contribuyentes corporativos

A continuación se enumeran en orden cronológico aproximadamente ascendente de sus contribuciones:

Recursos corporativos donados

Además de las principales empresas contribuyentes (enumeradas anteriormente), algunas empresas han aportado recursos gratuitos al desarrollo de KSH. Se enumeran a continuación (en orden alfabético):

Variantes

Hay varias bifurcaciones y clones de KornShell:

Véase también

Referencias

  1. ^ por Ron Gomes (9 de junio de 1983). "Programa de la conferencia USENIX de Toronto (tentativo)". Grupo de noticias : net.usenix . Consultado el 29 de diciembre de 2010 .
  2. ^ de Guy Harris (10 de octubre de 1983). "csh question". Grupo de noticias : net.flame . Consultado el 29 de diciembre de 2010 .
  3. ^ "Subsistema de lanzamiento de Korn Shell para Windows para Linux « Reflexiones ». blog.fpmurphy.com . Consultado el 29 de enero de 2021 .
  4. ^ ab "paquete abierto". AT&T Research. nd Archivado desde el original el 1 de octubre de 2015 . Consultado el 19 de diciembre de 2022 .
  5. ^ ab "MirBSD Korn Shell". Mirbsd.org . Consultado el 10 de diciembre de 2018 .
  6. ^ Korn, David G. (26 de octubre de 1994), "ksh - Un lenguaje extensible de alto nivel", Actas del Simposio de lenguajes de muy alto nivel de USENIX de 1994 , Asociación USENIX , consultado el 5 de febrero de 2015. En lugar de inventar un nuevo lenguaje de script, construimos un sistema de ingreso de formularios modificando el shell Bourne y agregando comandos integrados según fuera necesario.
  7. ^ Bolsky, Morris I.; Korn, David G. (1989). "Agradecimientos". El lenguaje de programación y comandos KornShell. Englewood Cliffs, NJ: Prentice Hall. pp. xii. ISBN 0-13-516972-0.
  8. ^ "Familia tradicional de conchas Bourne / historia y desarrollo". In-ulm.de . Consultado el 10 de diciembre de 2018 .
  9. ^ "Este es el sitio de descarga de software de AT&T Software Technology ast de AT&T Research. La colección de software de código abierto AT&T AST proporciona una descripción general y software UNIX práctico y reutilizable". Github.com . 10 de diciembre de 2018 . Consultado el 10 de diciembre de 2018 .
  10. ^ Bill Rosenblatt; Arnold Robbins (2002). Aprendiendo la concha de maíz (2.ª ed.). O'Reilly. pp. viii–ix. ISBN 978-0-596-00195-7.
  11. ^ Pendergrast, J. Stephen (1995). Programación gráfica de KornShell para escritorio. Addison-Wesley. pág. 359. ISBN 978-0-201-63375-7.
  12. ^ Casey Cannon; Scott Trent; Carolyn Jones (1999). Simply AIX 4.3 . Prentice Hall. pág. 21. ISBN 978-0-13-021344-0.
  13. ^ "IBM Knowledge Center". IBM . Consultado el 10 de diciembre de 2018 .
  14. ^ "IBM Knowledge Center". IBM . Consultado el 10 de diciembre de 2018 .
  15. ^ "Conformidad con UNIX95". Uw714doc.sco.com . Consultado el 10 de diciembre de 2018 .
  16. ^ "ksh2020". GitHub . 26 de febrero de 2021.
  17. ^ "Registro de cambios de ksh2020". GitHub . 29 de mayo de 2020.
  18. ^ "Rebobinando este repositorio y alentando a la comunidad · Problema n.° 1466 · att/ast". GitHub .
  19. ^ "error de segmentación con globs extendidos · #1464 · att/ast". GitHub .
  20. ^ "ksh 93u+m". GitHub . 17 de noviembre de 2021.
  21. ^ "2020.0.0: Versión estable de ksh-2020.0.0". GitHub . Consultado el 29 de enero de 2021 . Nota: ksh2020 no recibe mantenimiento ni soporte
  22. ^ "REGISTRO DE CAMBIOS de ksh 2020.0.0". GitHub . 2021-01-29.
  23. ^ "oksh en GitHub". GitHub . 1 de agosto de 2020.
  24. ^ "loksh en GitHub". GitHub . 15 de octubre de 2021.
  25. ^ "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 .
  26. ^ "Aminet - utilidad/Shell/SKsh21.LZH".
  27. ^ "David Korn lo cuenta todo". Slashdot . Consultado el 22 de octubre de 2009 .
  28. ^ "Jerry Feldman — Asistente a la conferencia USENIX NT/LISA NT". Lists.blu.org. 29 de agosto de 1998. Consultado el 22 de octubre de 2009 .
  29. ^ "Servicios de Windows para UNIX versión 3.0". Technet.microsoft.com . Consultado el 22 de octubre de 2009 .
  30. ^ Anatole Olczak (2001). El shell Korn: manual de programación para Unix y Linux. Addison-Wesley Professional. pág. 4. ISBN 978-0-201-67523-8.
  31. ^ Natalie, Ron (30 de enero de 2023). ""Job Control and other terminal fun"". De la lista de correo TUHS ("The Unix Heritage Society"). Archivado desde el original el 7 de julio de 2024. Consultado el 7 de julio de 2024. ... El control de trabajos de Berkeley fue un truco interesante. Para nosotros en BRL, el problema era que detestaba absolutamente la sintaxis del shell C. El shell Korn aún no se había escapado de AT&T, así que pasé tiempo averiguando cómo funcionaba realmente en el shell C (no está muy bien documentado), principalmente mediante inspección, y luego lo volví a implementar en el Bourne Shell (usábamos la versión del código fuente de System V para eso). Todavía no podía conseguir tracción en BRL para usar el shell Bourne porque en ese momento, tcsh había salido con la edición de línea de comandos. Así que volví a las fuentes del shell. En ese momento, ya había salido 5R2, así que tomé el formato fuente del shell [ sic ] que. [...] Reelaboré la edición de línea de comandos al estilo emacs en el shell. Posteriormente, tuve una agradable conversación con David Korn en USENIX, siendo probablemente en ese momento los dos más familiarizados con los elementos internos de control de trabajos de Bourne Shell. También me senté con los chicos que escribían bash o pdksh (no recuerdo cuál) y les expliqué todo cómo funcionaba esto [ sic ]. ... Años después, yo había dejado BRL, pasé tres años como administrador de Rutgers y estaba trabajando para una pequeña empresa emergente en Virginia. Había una estación de trabajo MIPS allí. Estaba trabajando duro usando ed... Sin pensarlo, intenté recuperar un trabajo en segundo plano escribiendo "fg". Para mi sorpresa, el shell imprimió "Control de trabajos no habilitado". Hmm, digo. Eso suena como mi mensaje de error. "set -J", escribo. "Control de trabajos habilitado". ¡Hola! Este es mi shell. Resulta que Doug Gwyn puso mis modificaciones en su cinta de distribución "System V on BSD" y llegó a la base del código Mach, por lo que todos los sistemas derivados de Mach terminaron con ellas.

Lectura adicional

Enlaces externos