stringtranslate.com

Carcasa de placa de circuito impreso

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

Historia

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

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

Características destacables

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 las construcciones switch y while , así como onintr para ignorar interrupciones o capturarlas para realizar una limpieza. [1] Se podían usar variables simples, aunque sus nombres se limitaban a una letra y algunas letras se reservaban para propósitos especiales, de los cuales algunos son los precursores 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 , utilizada para evitar la codificación rígida de los nombres de ruta. La variable $p es la antecesora de $PATH , que permitía a los usuarios buscar comandos en los directorios que eligieran. A diferencia de la mayoría de los sistemas UNIX de la época, el centro informático PWB/UNIX original era compartido por varios 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. De este modo, las personas podían escribir en lugar de . Todo este comportamiento se empaquetó como la función pexec , que es el antecesor de execvp , para permitir que cualquier programa invocara comandos de la misma forma que el shell.command argumentssh pathname/command arguments

El carácter $ , utilizado anteriormente para identificar argumentos en un script de shell , se convirtió en el marcador para desreferenciar una variable y podía utilizarse para insertar el valor de una variable en una cadena entre comillas dobles . (Además de en 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 hechas desde cero, en lugar de hacerlo de forma incremental, con mucha discusión entre los diversos participantes. En particular, Stephen Bourne, John Mashey y Dennis Ritchie diseñaron las variables de entorno y la 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 el 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 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 requerida ]

Véase también

Referencias

  1. ^ abcd Mashey, John R. (1976-10-13). "Usando un lenguaje de comandos como lenguaje de programación de alto nivel". San Francisco, California, EE. UU .: Actas de la 2.ª 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 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). "Entendiendo Bash: Elementos de programación". Linux Journal. Archivado desde el original el 21 de diciembre de 2018. Consultado el 31 de diciembre de 2018. El shell Thompson original, el shell Mashey y el shell Bourne se llamaban sh, y se superpusieron o reemplazaron entre sí en los años 1970-1976 a medida que se refinaban y adquirían 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 el descubrimiento electrónico y la investigación forense digital: un manual completo. Elsevier. ISBN 9780080558813. Recuperado el 31 de diciembre de 2018 – vía Google Books.
  4. ^ Mashey, John R. (27 de enero de 1999) [1986]. Toomey, Warren (ed.). "Re: Historia de Shell, hechos verdaderos, 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 seria de shell. A mediados de 1975, el shell adquirió variables, incluidas 3 que se derivaron de datos por proceso. Aquí es donde entró en juego la idea de una búsqueda de rutas más generalizada.
  5. ^ Chorafas, Dimitris N. (1986). ¿Qué Unix? : AT&T, IBM y otros abanderados. McGraw-Hill . ISBN 9780070108790Archivado 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