Qué es Debian Almquist Shell
Hay componentes de las distribuciones Linux cuyo nombre todos conocemos mientras que otros, aún muy utilizados son casi desconocidos. En este post te contamos qué es Debian Almquist Shell que tal vez sea el mejor ejemplo de mi afirmación.
Un shell es un programa informático que interpreta instrucciones expresadas por palabras en forma de comandos. Cuando en Linux Adictos te decimos que hagas algo escribiendo instrucciones en la terminal, es un shell el que interpreta esas instrucciones y las pone en práctica.
El artículo de la Wikipedia habla también de la existencia de shell gráficos (El típico escritorio) pero la mayoría de las referencias que consulté se refieren al uso de la línea de comandos por lo que vamos a quedarnos con esa definición.
Cómo trabaja un shell
El shell es el componente del sistema operativo que trabaja más estrechamente con el usuario. Mediante el uso de un lenguaje de programación específico puede controlar procesos, administrar archivos, además de iniciar y controlar otros programas. El shell gestiona la interacción usuario computadora al solicitarle al primero una entrada, traducir esa entrada para el sistema operativo pueda entenderla y después ocuparse de cualquier salida resultante de la puesta en práctica de esas instrucciones. La entrada puede adoptar la forma de instrucciones ingresadas por el teclado o de un script (una serie de comandos almacenados en un archivo.)
En el momento de iniciar sesión en nuestra distribución el sistema identifica el programa de shell que debe ejecutar. Cuando presionamos en el icono de la terminal el shell nos mostrará el símbolo del sistema identificado con la forma del signo del dólar. Si escribimos un comando a continuación de ese símbolo y presionamos intro el shell lee el comando e intenta ejecutarlo. En caso de poder hacerlo, cuando finaliza vuelve a mostrar el símbolo del sistema o nos indica cuál es el error.
Qué es Debian Almquist Shell (Dash)
El shell original de UNIX se llamaba Bourne Shell y data de 1977. Con el tiempo surgieron diferentes forks que mantuvieron gran parte de sus características, uno de ellos fue Bourne Again Shell (Bash) que de la mano del proyecto GNU pasó a ser parte integrante de la mayoría de las distribuciones Linux.
Pues bien, Debian Almquist Shell cumple las mismas funciones de Bash en las distribuciones derivadas de Debian, solo que lo hace más rápido y consumiendo menos recursos. Aunque una aclaración, solo se usa en script predefinidos, cuando se trata de ejecutar script creados por el usuario el que se encarga es Bash.
Se trata del port para Linux de ash (the Almquist SHell) el shell de NetBSD y, aunque lleva entre nosotros desde 1997 recién adoptó su nombre actual en el 2022. La descripción oficial de Debian es la siguiente:
dash es el intérprete de comandos estándar para el sistema Linux. La versión actual de dash está en proceso de cambio para cumplir con las especificaciones POSIX 1003.2 y 1003.2a para el shell. Esta versión tiene muchas características que la hacen parecer similar en algunos aspectos al shell de Korn, pero no es un clon del shell de Korn. Solo las funciones designadas por POSIX, además de algunas extensiones de Berkeley, se incorporan a este shell.
Korn es otro de los derivados de Bourne Shell, mientras que las especificaciones POSIX son un conjunto de estándares que el Instituto de ingenieros electrónicos y eléctricos (IEEE) compilan para normalizar la forma en que los programas interactúan con el sistema operativo. De esta forma se facilita su interoperabilidad.
Surge entonces la pregunta. Si Dash hace las cosas más rápido y consumiendo menos recursos ¿Por qué no usarlo para todo?
Por el mismo motivo que no usas un auto de carreras para hacer las compras en el supermercado.
Dash logra su economía de recursos y ocupa un menor espacio en disco dado que utiliza una sola biblioteca en lugar de las múltiples dependencias que requiere Bash, pero eso es a costa de menores prestaciones. Por ejemplo, no puede interactuar con el usuario.