Como principiante, mientras aprendemos Linux nos confundimos con el significado real de términos como Terminal, Consola, Shell y Kernel. A veces confundimos su uso, lo que es técnicamente incorrecto, por lo que es muy importante tener una idea clara de lo que realmente significa cada palabra y cómo y dónde deben usarse.
1. Terminal:
Para aquellos que tienen el sistema operativo Linux, cuando hacemos clic para abrir el ícono con el nombre «Terminal», se abre una ventana, por lo que en términos simples, ese marco rectangular o ventana se llama terminal. Con la invención de las computadoras modernas, tenemos esta aplicación llamada “Terminal”, que simplemente podemos abrir con un clic, pero durante los años 80, se conocía como “Terminal Emulators”, que no era un programa de software sino hardware, un normal. Dispositivo de entrada-salida compuesto por un teclado y un monitor. Ahora surge la confusión pues esto es lo que es una computadora!! Pero no, el propósito de una terminal no es procesar información (como una computadora típica) sino enviar comandos a otro sistema. El terminal es un programa que proporciona al usuario una interfaz de línea de comandos simple y realiza las siguientes 2 tareas:
- Toma la entrada del usuario en forma de comandos.
- Muestra la salida en la pantalla
Podemos decir que la terminal es una tontería, por lo que no sabe qué hacer con la entrada, por lo que necesita otro programa para procesarla y, en la mayoría de los casos, es el Shell.
2. Consola:
En el caso del sistema operativo Windows, la «Consola» realiza las mismas operaciones que realiza la terminal, por lo que podemos decir que para el sistema operativo Windows, la consola es el nombre de alias de la terminal. Pero la consola no se abre directamente, sino que debemos abrir a través del símbolo del sistema, que luego abre la consola o el marco rectangular en la pantalla.
3. Concha
Después de escribir nuestros comandos en la terminal, cuando presionamos la tecla Intro, la terminal pasa esos comandos a otro programa para averiguar qué quiere hacer el usuario y, en la mayoría de los casos, ese programa es el Shell, que forma la capa externa de Sistema operativo Linux, que realiza las siguientes funciones:
1. |
Interpreta el comando dado por el usuario final |
2. |
Verifica la sintaxis del comando y luego verifica si el comando se usa correctamente o no. |
3. |
Si todo es correcto, el shell convierte el comando en un formato comprensible para el kernel y lo pasa al kernel. De lo contrario, devuelve un mensaje de error. |
4. |
El mensaje $aparece en el terminal esperando el siguiente comando, independientemente de si los comandos anteriores fueron correctos o no. |
El shell es el mediador o la interfaz entre el usuario final y el kernel. Hay varios programas de shell entre los que podemos elegir, a saber, TCSH, KSH, Seashell, Bash y muchos más, pero el predeterminado en la mayoría de los sistemas Linux y en Mac es GNU Bash.
4. Núcleo
Es un programa de computadora que forma el componente más interno de un sistema operativo después del Shell. Tan pronto como el shell convierte el comando del usuario en una forma comprensible para el kernel, el kernel es responsable de ejecutar los comandos con la ayuda de sus 2 componentes, que son bibliotecas del sistema operativo y controladores de dispositivos que interactúan con el software de la aplicación y el hardware del dispositivo, respectivamente. Lo siguiente es una e
Software de aplicación: se escribe un programa en C que recibe entradas del teclado | ||
Sistema operativo: | El comando para ejecutar el programa lo da el usuario final | |
toma el comando interpretado del shell | función ead() que se invoca debido a la llamada scanf(). | |
Según la tabla anterior, queda claro que el Kernel actúa como interfaz entre el software de la aplicación y el hardware. El núcleo también se encargará de la asignación de memoria y la asignación del procesador.