¿Terminal o Shell? Qué son y en qué se diferencian

 ¿Qué diferencia hay entre shell y terminal?

Dicen que Linux es difícil. Meh... No tanto. En realidad, era difícil, pero Linux ya no es complicado de usar.

Este sistema operativo se ganó la fama de complejo por varias razones, pero creo que dos fueron las principales: la dificultad al instalarlo y el uso de los comandos.

Pero ya no es así: existen distribuciones pensadas para todo tipo de usuarios, como Ubuntu, que son sencillas de instalar y que tienen una interfaz con ventanas muy amigables.

Ahora bien, si vas a usar Linux es porque eres de la tribu, y todos los que somos de la tribu vamos a querer usar los famosos comandos.

Pantalla negra, letras verdes, fuente de letra monoespaciada... Like a hacker.

Pero... ¿Dónde escribimos los comandos? ¿En el terminal o en la shell? ¿O son lo mismo?

¿La shell y el terminal son lo mismo?

No, no son lo mismo, aunque están íntimamente relacionados.

La Shell es la encargada de comunicarse con el sistema operativo, y ejecuta los comandos, mientras que el terminal es la interfaz que permite al usuario escribir los comandos y leer las respuestas del sistema operativo.

Es decir, el usuario escribe en el terminal, y luego este manda las órdenes al shell para que se encargue de ejecutarlos correctamente.

Ya tienes la respuesta... Pero eres de la tribu, así que quédate un poco más y aprende algo extra. ¡Yo invito!

Un poco de historia

Las computadoras han cambiado mucho.

En un origen eran máquinas gigantes, que ocupaban una habitación entera, y para nada eran tan versátiles como ahora. En esos aparatos no podías correr Doom.

Por aquel entonces no había pantallas táctiles ni ratón. En realidad, tampoco había teclado ni pantalla de ningún tipo. Se programaban con tarjetas perforadas.

Fuente: Wikipedia

Era un gran avance tecnológico, pero no era fácil de usar.

Pronto apareció un nuevo método para comunicarse con las computadoras, usando máquinas de escribir con las que el usuario podía mecanografiar diferentes órdenes para el ordenador, y donde también se leía su respuesta. Todo con tinta y papel.

Eso fue el origen del concepto de la interfaz de línea de comandos, o CLI (command-line interface). Consiste en que el usuario pueda mandar comandos u órdenes a la computadora para que ésta los ejecute.

En realidad, shell es el nombre que recibe la interfaz de línea de comandos de los sistemas operativos tipo Unix (por ejemplo, Linux), y le pusieron este nombre porque hace de cascarón (shell) del núcleo del sistema.

Usar una máquina de escribir, o teletipo, era una manera poco eficiente de trabajar con una computadora, así que empezaron a digitalizar esa comunicación. Así nació el terminal.

Terminal
Fuente: Wikipedia

El terminal no era más que un conjunto de pantalla y teclado mecánico que se usaba para que el usuario pudiera comunicarse con la computadora.

Por aquel entonces, la computadora era una única máquina compartida entre los usuarios que la necesitaran. Los terminales eran los diferentes puertos de conexión con la máquina. Podía haber varios terminales, y cada uno de ellos abría una nueva sesión en la misma máquina.

Sin embargo, ahora esto es muy diferente. Lo normal es que cada uno trabaje con su propio PC, y por lo tanto ya no necesitamos ningún terminal.

El intérprete de comandos sigue siendo una herramienta muy potente para trabajar con una computadora, pero hoy en día los sistemas operativos se basan en interfaces gráficas, como los gestores de ventanas. Es por ello que se inventaron los emuladores de terminal, para poder comunicarse con la shell de los nuevos sistemas operativos.

Sí, emulador de terminal es el nombre correcto, por que la terminal ya no existe. Bueno, quizás existe en algún laboratorio, pero no en nuestro PC.

Entonces, ¿debemos decir terminal, emulador de terminal o shell?

Da igual.

De verdad, da absolutamente igual.

Quiero decir, podríamos ponernos técnicos y asegurarnos de utilizar las palabras perfectas, pero hoy en día se ha normalizado cualquiera de los tres términos para hablar de lo mismo.

Casi nadie dice emulador de terminal, creo que es evidente que si alguien te dice "mira, me aparece este error en mi terminal" no se refiere a un aparato que solo tiene una pantalla y un teclado y que está conectado a una computadora que usan muchos usuarios.

Ahora bien, desde mi perspectiva, siempre es mejor entender qué es cada cosa para poder escoger mejor las palabras que usamos.

Comentarios

Entradas populares de este blog

Café con Bits 7 ☕ Motivación: hacer un videojuego

Zoom: el algoritmo de los puntos de fuga