EL SHELL:
La mayoría los nosotros hemos tenido cierta experiencia con un sistema operativo
como Windows, Linux, Mac os X etc., pero las apariencias que podemos notar en cada
uno de estos sistemas pueden ser engañosas. El programa con el que los usuarios
generalmente interactuamos se denomina Shell, cuando está basado en texto, y GUI
(Graphical User Interface; Interfaz gráfica de usuario) cuando utiliza elementos
gráficos o iconos.
El programa de interfaz de usuario, shell o GUI, es el nivel más bajo del software en
modo usuario y permite la ejecución de otros programas, como un navegador Web,
lector de correo electrónico o reproductor de música. Estos programas también utilizan
en forma intensiva el sistema operativo.
DEFINICIÓN:
El sistema operativo es el código que lleva a cabo las llamadas al sistema. Los
editores, compiladores, ensambladores, enlazadores e intérpretes de comandos en
definitiva no forman parte del sistema operativo, aun cuando son importantes y útiles.
Describiremos al intérprete de comandos de UNIX, conocido como shell. Y cabe
destacar que Aunque no forma parte del sistema operativo, utiliza con frecuencia
muchas características del mismo y, por ende, sirve como un buen ejemplo de la
forma en que se pueden utilizar las llamadas al sistema
También es la interfaz principal entre un usuario sentado en su terminal y el sistema
operativo, a menos que el usuario esté usando una interfaz gráfica de usuario.
Inicio de sesión: Cuando cualquier usuario inicia sesión, se inicia un shell. El shell
tiene la terminal como entrada estándar y salida estándar. Empieza por escribir el
indicador de comandos (prompt), un carácter tal como un signo de dólar, que indica al
usuario que el shell está esperando aceptar un comando. Por ejemplo, si el usuario
escribe:
date
el shell crea un proceso hijo y ejecuta el programa date como el hijo. Mientras se
ejecuta el proceso hijo, el shell espera a que termine. Cuando el hijo termina, el shell
escribe de nuevo el indicador y trata de leer la siguiente línea de entrada. El usuario
puede especificar que la salida estándar sea redirigida a un archivo, por ejemplo:
date >archivo
De manera similar, la entrada estándar se puede redirigir, como en:
sort <archivo1 >archivo2
con lo cual se invoca el programa sort con la entrada que se recibe del archivo1 y la
salida se envía al archivo2.
La salida de un programa se puede utilizar como entrada para otro, si se conectan
mediante un canal. Así:
cat archivo1 archivo2 archivo3 | sort >/dev/lp
invoca al programa cat para concatenar tres archivos y enviar la salida a sort para
ordenar todas las líneas en orden alfabético. La salida de sort se redirige al archivo
/dev/lp, que por lo general es la impresora.
Si un usuario coloca el signo & después de un comando, el shell no espera a que se
complete. En vez de ello, proporciona un indicador de comandos de inmediato. En
consecuencia:
cat archivo1 archivo2 archivo3 | sort >/dev/lp &
inicia el comando sort como un trabajo en segundo plano y permite al usuario
continuar su trabajo de manera normal mientras el ordenamiento se lleva a cabo. El
shell tiene otras características interesantes, que no describiremos aquí por falta de
espacio.
TIPOS DE SHELL:
Existen muchos shells, incluyendo sh, csh, ksh y bash. Todos ellos soportan la
funcionalidad antes descrita, que se deriva del shell original (sh).
Sh (Shell Bourne): Escrita por Steve Bourne, es el más utilizado en la actualidad es el
Shell estándar y el que se monta en casi todos los sistemas UNIX/LINUX.
Csh (C-Shell): procedente des sistema BSD. Se ejecuta en una ventana en modo
texto, y permite al usuario ingresar comandos.
Ksh: se usó como lenguaje de programación. desde su concepción, se le agregaron
gradualmente muchas.
Bash: fue creado para usarlo en el proyecto GNU. Se ejecuta en una ventana de
texto donde el usuario escribe comandos que causan acciones. Es compatible con el
Shell sh.
Actualmente, muchas computadoras personales utilizan una GUI. De hecho, la GUI es
sólo un programa que se ejecuta encima del sistema operativo, como un shell. En los
sistemas Linux, este hecho se hace obvio debido a que el usuario tiene una selección
de (por lo menos) dos GUIs: Gnome y KDE o ninguna (se utiliza una ventana de
terminal en X11). En Windows también es posible reemplazar el escritorio estándar de
la GUI (Windows Explorer) con un programa distinto, para lo cual se modifican ciertos
valores en el registro, aunque pocas personas hacen esto.
Bibliografía:
Sistemas-operativos-modernos-tanenbaum-3ED, El Shell.
[Link]
[Link]