stringtranslate.com

carcasa PWB

El shell PWB (también conocido como shell Mashey ) era un shell Unix . [1]

Historia

El shell PWB era una versión modificada (y generalmente restringida a ser compatible con versiones posteriores) del shell Thompson con características adicionales para aumentar la usabilidad para la programación. Fue mantenido por John Mashey y varios otros (Dick Haight, Alan Glasser). [1] [2] [3]

PWB/UNIX comenzó con la cuarta edición de Research Unix a mediados de octubre de 1973 y se actualizó con frecuencia durante los años siguientes, a medida que el departamento de PWB rastreaba los cambios de Research Unix y agregaba algunas características. El shell PWB se lanzó a mediados de 1975 [4] y permaneció disponible hasta la versión 6 de PWB/UNIX basado en Unix. [5] En la versión 7 de Unix (1979), el shell PWB fue reemplazado por el shell Bourne . [6] El shell PWB era el shell estándar para PWB/UNIX , alrededor de 1975–78, [1] pero no se ejecutaba en ninguna edición de Research Unix , ya que requería una nueva llamada al sistema udata(2)que permitía login(1)establecer el nombre de inicio de sesión y el directorio de inicio de sesión. ( $s ) y TTY ( $t ) para obtenerlos.sh(1)

Características notables

Se introdujeron varias características en el shell PWB que permanecen en muchos shells posteriores. Los comandos if y goto se hicieron internos al shell y se ampliaron para permitir if - then - else - endif y se introdujeron construcciones switch y while , así como onintr para ignorar interrupciones o detectarlas para realizar la limpieza. [1] Se podían utilizar variables simples, aunque sus nombres se limitaban a una letra y algunas letras estaban reservadas para propósitos especiales, de las cuales algunas son las precursoras de las variables de entorno que se encuentran en todos los sistemas Unix desde la Versión 7 en adelante.

Por ejemplo, la variable $s es la antecesora de $HOME y se utiliza para evitar nombres de ruta codificados. La variable $p es la antecesora de $PATH , que permite a los usuarios buscar comandos en los directorios que elijan. A diferencia de la mayoría de los sistemas UNIX de la época, el centro de computación PWB/UNIX original era compartido por múltiples grupos de programación que no podían cambiar el contenido de /bin o /usr/bin, pero querían crear sus propios conjuntos de comandos compartidos. Además, la búsqueda de comandos del shell se mejoró para permitir que los procedimientos del shell se invocaran como comandos binarios, es decir, si el shell encontraba un archivo no binario marcado como ejecutable, bifurcaría otra instancia del shell para leer ese archivo como un script de shell. Por lo tanto, la gente podría escribir en lugar de . Todo este comportamiento fue empaquetado como la función pexec , que es el antepasado de execvp , para permitir que cualquier programa invoque comandos de la misma manera que el shell.command argumentssh pathname/command arguments

El carácter $ , usado anteriormente para identificar argumentos en un script de shell , se convirtió en el marcador para desreferenciar una variable y podría usarse para insertar el valor de una variable en una cadena entre comillas dobles . (Además de los shells posteriores, esta característica también aparecería más tarde en los lenguajes de programación Perl y PHP ).

Descendientes

Estas características no pudieron superar las deficiencias del shell Thompson, por lo que Stephen Bourne escribió un nuevo shell desde cero . Este shell Bourne era incompatible con los shells Thompson y PWB, pero incluía equivalentes de la mayoría de las características del shell PWB, pero hecho desde cero, en lugar de incrementalmente, con mucha discusión entre los distintos participantes. En particular, Stephen Bourne, John Mashey y Dennis Ritchie diseñaron variables de entorno y maquinaria relacionada como un mecanismo general para reemplazar las características anteriores más limitadas. Después de la adopción del shell Bourne como shell estándar en la versión 7 de Unix , el uso del shell PWB se eliminó gradualmente, aunque durante un tiempo hubo un curso interno de Bell Labs llamado Programación de Bourne Shell para programadores de Mashey Shell . El shell C , desarrollado antes del lanzamiento público del shell Bourne, también heredó algunas de las características del shell PWB. [ cita necesaria ]

Ver también

Referencias

  1. ^ abcd Mashey, John R. (13 de octubre de 1976). "Uso de un lenguaje de comandos como lenguaje de programación de alto nivel". San Francisco, California, EE.UU .: Actas de la Segunda Conferencia Internacional sobre Ingeniería de Software. págs. 169-176. Archivado desde el original el 12 de abril de 2020 . Consultado el 12 de abril de 2020 . Además de estas variables [$n, $p, $r, $s y $t], se proporciona lo siguiente: $$ contiene un número de 5 dígitos que es el número de proceso único del shell actual. En algunas circunstancias, es necesario saber el número de un proceso, para poder matarlo, por ejemplo. Sin embargo, su uso más común hasta la fecha ha sido el de generar nombres únicos para archivos temporales.
  2. ^ Likic, Vladimir (28 de septiembre de 2018). "Comprensión de Bash: elementos de programación". Diario de Linux. Archivado desde el original el 21 de diciembre de 2018 . Consultado el 31 de diciembre de 2018 . El caparazón Thompson original, el caparazón Mashey y el caparazón Bourne se llamaron sh, y se superpusieron o reemplazaron entre sí en los años 1970-1976 a medida que se refinaron y adquirieron capacidades adicionales. ... El shell Thompson no tenía capacidades de programación. Esto cambió con el desarrollo del shell Mashey (y más tarde el shell Bourne).
  3. ^ Wiles, Jack (13 de octubre de 2011). Guía de TechnoSecurity para descubrimiento electrónico y análisis forense digital: un manual completo. Elsevier. ISBN 9780080558813. Consultado el 31 de diciembre de 2018 a través de Google Books.
  4. ^ Mashey, John R. (27 de enero de 1999) [1986]. Toomey, Warren (ed.). "Re: Historia de Shell, hechos reales, pero largos | Grupos de noticias: net.unix-wizards". Archivado desde el original el 6 de octubre de 2016 . Consultado el 31 de diciembre de 2018 . El "PWB Shell" apareció por primera vez a mediados de 1975. Derivó de un conjunto de requisitos y sugerencias que hice a principios de 1975 al intentar hacer una programación de shell seria. A mediados de 1975, el shell adquirió variables, incluidas 3 que se derivaron de datos por proceso. Aquí es donde surgió la idea de una búsqueda de caminos más generalizada.
  5. ^ Chorafas, Dimitris N. (1986). ¿Qué Unix? : AT&T, IBM y otros abanderados. McGraw-Hill . ISBN 9780070108790. Archivado desde el original el 31 de diciembre de 2018 . Consultado el 31 de diciembre de 2018 .
  6. ^ Iftekher, Mohammad Forhad (10 de noviembre de 2015). "Evolución de los shells de Unix/Linux: Unixmen". Unixmen.com . Archivado desde el original el 21 de julio de 2019 . Consultado el 31 de diciembre de 2018 .

enlaces externos