El shell de Thompson es el primer shell de Unix , introducido en la primera versión de Unix en 1971, y fue escrito por Ken Thompson . [1] Era un intérprete de comandos simple, no diseñado para scripting, pero sin embargo introdujo varias características innovadoras a la interfaz de línea de comandos y condujo al desarrollo de los shells de Unix posteriores.
Autor (es) original (es) | Ken Thompson |
---|---|
Desarrollador (es) | Laboratorios AT&T Bell |
Versión inicial | 3 de noviembre de 1971 |
Sistema operativo | Unix y similar a Unix |
Tipo | Shell de Unix |
Historia
El nombre "shell" para un intérprete de línea de comandos y el concepto de hacer del shell un programa de usuario fuera del núcleo del sistema operativo se introdujeron en el precursor Multics de Unix .
Una de las primeras características del shell de Thompson fue una sintaxis compacta para la redirección de entrada / salida. En Multics, la redirección de la entrada o salida de un comando requería comandos separados para iniciar y detener la redirección; en Unix, uno podría simplemente agregar un argumento a la línea de comando que consiste en el símbolo
Una adición posterior fue el concepto de tuberías . Por sugerencia de Douglas McIlroy , la sintaxis de redirección se amplió para que la salida de un comando pudiera pasarse a la entrada de otro comando. La sintaxis de tubería original, como se describe en el manual de la Versión 3, era:
comando1> comando2>
Esta sintaxis resultó demasiado ambigua y se confundía fácilmente con la redirección hacia y desde archivos; el sistema no puede decir si "comando2" es el comando "comando2" o el archivo "comando2". En la versión 4, la sintaxis había cambiado para utilizar tanto el | y ^ símbolos para denotar tuberías:
command1 | comando2
Esto produce exactamente el mismo resultado que:
comando1 ^ comando2
El símbolo> cambió a:
comando1> archivo1
Esto pondría la salida de command1 en file1.
La sintaxis de shell de Thompson para la redirección con
Declive y reemplazos
El diseño del caparazón fue intencionalmente minimalista; incluso las instrucciones if y goto , esenciales para el control del flujo del programa, se implementaron como comandos separados. [1] Como resultado, para el lanzamiento de 1975 de la versión 6 de Unix , quedó claro que el shell de Thompson era inadecuado para las tareas de programación más serias.
En ese momento, los desarrolladores de la distribución UNIX de Workbench del programador , sobre todo John Mashey , comenzaron a modificar el shell de Thompson para hacerlo más adecuado para la programación. [1] El resultado, conocido como shell PWB o shell Mashey, incluyó mecanismos de control de flujo más avanzados e introdujo variables de shell, pero permaneció limitado por la necesidad de seguir siendo compatible con el shell Thompson.
Finalmente, el shell Thompson fue reemplazado como shell principal de Unix por el shell Bourne en la versión 7 de Unix y el shell C en 2BSD , ambos lanzados en 1979. Dado que prácticamente todos los sistemas Unix modernos y similares a Unix descienden de V7 y 2BSD, el Generalmente, la cáscara de Thompson ya no se usa. Sin embargo, está disponible como código abierto como parte de varias distribuciones de código fuente Ancient Unix , y se ha adaptado a los Unices modernos como una exhibición histórica.
Ver también
Referencias
- ↑ a b c J. R. Mashey (13 de octubre de 1976). "Uso de un lenguaje de comandos como lenguaje de programación de alto nivel". Actas de la 2ª Conferencia Internacional sobre Ingeniería de Software: 169-176. Cite journal requiere
|journal=
( ayuda )
enlaces externos
- Página del manual para el shell Thompson en Unix 1st Edition .
- La evolución del sistema de tiempo compartido de Unix : describe el desarrollo inicial del shell
- Orígenes del shell Bourne : páginas de manual para los shells Thompson de la tercera, cuarta y sexta edición, y otros recursos sobre los primeros shells
- Sexta edición Thompson Shell Port : el shell Thompson y sus utilidades asociadas trasladados a los sistemas Unix modernos