stringtranslate.com

concha de bourne

El shell Bourne ( sh) es un intérprete de línea de comandos de shell para sistemas operativos de computadora .

El shell Bourne era el shell predeterminado para la versión 7 de Unix . Los sistemas tipo Unix siguen teniendo /bin/sh, que será el shell Bourne, o un enlace simbólico o un enlace físico a un shell compatible, incluso cuando la mayoría de los usuarios utilizan otros shells.

Desarrollado por Stephen Bourne en Bell Labs , fue un reemplazo del shell Thompson , cuyo archivo ejecutable tenía el mismo nombre sh: . Fue lanzado en 1979 en la Versión 7 de Unix distribuida a colegios y universidades. Aunque se utiliza como intérprete de comandos interactivo, también fue pensado como un lenguaje de secuencias de comandos y contiene la mayoría de las características que comúnmente se consideran para producir programas estructurados.

Ganó popularidad con la publicación de The Unix Programming Environment de Brian Kernighan y Rob Pike , el primer libro publicado comercialmente que presentaba el shell como un lenguaje de programación en forma de tutorial.

Historia

Versión 7 Unix : la página del manual original del shell Bourne . Simulación de PDP-11 con SIMH

Orígenes

El trabajo en el shell Bourne comenzó inicialmente en 1976. [1] Apareció por primera vez en la versión 7 de Unix , [2] el shell Bourne fue precedido por el shell Mashey .

Algunos de los objetivos principales del caparazón fueron: [3]

Características de la versión original.

Las características de la versión 7 del shell UNIX Bourne incluyen:

El shell Bourne también fue el primero en presentar la convención de usar descriptores de archivos 2> para mensajes de error , lo que permite un control programático mucho mayor durante la secuencia de comandos al mantener los mensajes de error separados de los datos.

El estilo de codificación de Stephen Bourne estuvo influenciado por su experiencia con el compilador ALGOL 68C [2] en el que había estado trabajando en la Universidad de Cambridge . Además del estilo en el que se escribió el programa, Bourne reutilizó partes de las cláusulas ALGOL 68 y " (usando en lugar de ) en la sintaxis común del shell Bourne de Unix . Además, aunque el shell v7 está escrito en C , Bourne aprovechó algunas macros [4] para darle al código fuente C un sabor ALGOL 68. Estas macros (junto con el comando finger distribuido en Unix versión 4.2BSD ) inspiraron el Concurso Internacional de Código C Ofuscado (IOCCC) .if ~ then ~ elif ~ then ~ else ~ ficase ~ in ~ esacfor/while ~ do ~ oddoneod

Funciones introducidas después de 1979

Con el paso de los años, el shell Bourne fue mejorado en AT&T. Las diversas variantes se denominan así como la respectiva versión de AT&T Unix con la que se lanzó (algunas variantes importantes son Version7, System III, SVR2, SVR3, SVR4). Como el shell nunca tuvo una versión, la única forma de identificarlo era probando sus características. [6]

Las características de las versiones Bourne Shell desde 1979 incluyen: [7]

Variantes

cáscara DMERT

Duplex Multi-Environment Real-Time ( DMERT ) es un sistema operativo híbrido de tiempo compartido/tiempo real desarrollado en la década de 1970 en la ubicación de Bell Labs Indian Hill en Naperville, Illinois, y utiliza una instantánea de 1978 de Bourne Shell "VERSIÓN sys137 FECHA 1978 12 de octubre 22:39:57". [ cita necesaria ] El shell DMERT se ejecuta en computadoras 3B21D que todavía se utilizan en la industria de las telecomunicaciones. [ cita necesaria ]

cáscara de maíz

Interacción con pdksh en OpenBSD (shell predeterminado)

El shell Korn (ksh) escrito por David Korn basado en el código fuente original de Bourne Shell, [8] era un camino intermedio entre el shell Bourne y el shell C. Su sintaxis se extrajo principalmente del shell Bourne, mientras que sus características de control de trabajos se parecían a las del shell C. La funcionalidad del Korn Shell original (conocido como ksh88 desde el año de su introducción) se utilizó como base para el estándar de shell POSIX . Una versión más nueva, ksh93, es de código abierto desde 2000 y se utiliza en algunas distribuciones de Linux . Un clon de ksh88 conocido como pdksh es el shell predeterminado en OpenBSD.

Concha Schily Bourne

Schily-Tools de Jörg Schilling incluye tres derivados de Bourne Shell. [9]

Relación con otros caparazones

caparazón C

Bill Joy , el autor del shell C , criticó el shell Bourne por ser poco amigable para el uso interactivo, [10] una tarea para la cual el propio Stephen Bourne reconoció la superioridad del shell C. Bourne afirmó, sin embargo, que su shell era superior para scripting y estaba disponible en cualquier sistema Unix, [11] y Tom Christiansen también criticó el shell C por ser inadecuado para scripting y programación. [12]

Conchas de Almquist

Debido a problemas de derechos de autor relacionados con Bourne Shell tal como se usó en lanzamientos históricos de CSRG BSD, Kenneth Almquist desarrolló un clon de Bourne Shell, conocido por algunos como Almquist Shell y disponible bajo la licencia BSD , que se usa hoy en día en algunos BSD. descendientes y en situaciones de baja memoria. El Almquist Shell fue portado a Linux y el puerto pasó a llamarse Debian Almquist Shell , o guión. Este shell proporciona una ejecución más rápida de scripts estándar sh(y estándar POSIX sh, en sus descendientes modernos) con una huella de memoria menor que su contraparte, Bash. Su uso tiende a exponer bashismos : suposiciones centradas en bash hechas en scripts destinados a ejecutarse en sh.

Otras conchas

Uso

El shell Bourne alguna vez fue estándar en todos los sistemas Unix , aunque históricamente los sistemas basados ​​​​en BSD tenían muchos scripts escritos en csh . Como base de la sintaxis POSIX sh , los scripts de shell Bourne normalmente se pueden ejecutar con Bash o dash en Linux u otros sistemas similares a Unix .

Ver también

Referencias

  1. ^ https://www.bsdcan.org/2015/schedule/events/612.en.html Conferencia magistral de Stephen Bourne para BSDCan 2015
  2. ^ ab McIlroy, MD (1987). Un lector de Research Unix: extractos comentados del Manual del programador, 1971-1986 (PDF) (Informe técnico). CSTR. Laboratorios Bell. 139. Archivado (PDF) desde el original el 4 de mayo de 2014.
  3. ^ "La AZ de los lenguajes de programación: Bourne shell o sh". computerworld.com.au . Archivado desde el original el 11 de enero de 2010 . Consultado el 6 de marzo de 2009 .
  4. ^ Bourne, Steve (12 de enero de 1979). "mac.h: macros utilizadas por Bourne para estructurar C como Algol68C". Corporación AT&T . Consultado el 9 de septiembre de 2006 .
  5. ^ Landon Curt Noll ; Simón Cooper; Peter Seebach y Leonid A. Broukhis (2004). "Preguntas frecuentes del IOCCC - Preguntas y respuestas: ¿Cómo empezó el IOCCC?". ioccc.org . Consultado el 9 de septiembre de 2006 .
  6. ^ "¿Qué caparazón es este?". www.in-ulm.de .
  7. ^ "familia tradicional de conchas Bourne / historia y desarrollo". www.in-ulm.de .
  8. ^ 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, construyó un sistema de entrada de formularios modificando el shell Bourne y agregando comandos integrados según sea necesario.
  9. ^ "Schily Bourne Shell: una fuente Bourne Shell moderna, mejorada y compatible con POSIX mantenida por Jörg Schilling". Herramientas Schily .
  10. ^ Introducción al shell C Archivado el 13 de julio de 2018 en Wayback Machine por Bill Joy . [ página necesaria ]
  11. ^ Bourne, Stephen R. (octubre de 1983). "El caparazón de Unix". BYTE . pag. 187 . Consultado el 30 de enero de 2015 .
  12. ^ Tom Christiansen (28 de septiembre de 1995). "La programación Csh se considera dañina" . Consultado el 17 de febrero de 2014 .

enlaces externos