Sistemas operativos modernos

shell. Aunque no es parte del sistema operativo, hace uso intensivo de muchas de sus funcio­ nes y por ello es un buen ejemplo de cómo pueden usarse las llamadas al sistema. También constituye la interfaz primaria entre un usuario sentado frente a su terminal y el sistema ope­ rativo, a menos que el usuario esté usando una interfaz gráfica (GUI). Existen muchos shells, incluidos sh, csh, ksh y bash. Todos ellos manejan la funcionalidad que describiremos a conti­ nuación, que se deriva del shell original (sh). Cuando un usuario inicia sesión, se arranca un shell que tiene la terminal como entrada es­ tándar y salida estándar. Lo primero que hace es mostrar un indicador de comandos (prompt): un carácter como, por ejemplo, un signo de dólares, que indica al usuario que el shell está es­ perando un comando. Si ahora el usuario teclea, por ejemplo, date el shell creará un proceso hijo y ejecutará el programa date como hijo. Mientras se está ejecu­ tando el proceso hijo, el shell espera a que termine. Cuando el hijo termina, el shell muestra el indicador de comandos otra vez y trata de leer la siguiente línea de entrada. El usuario puede especificar que )a salida estándar se redirija a un archivo, por ejemplo: date >archivo Asimismo, puede redirigirse la entrada estándar, como en: sort <arch1 >arch2 que invoca al programa sort, que tomará sus entradas de archi y enviará sus salidas a archi. Puede utilizarse la salida de un programa como entrada de otro programa conectándolas con una canalización. Por consiguiente, cat archi arch2 archS |sort >/dev/lp invoca el programa cat para conca/enar tres archivos y enviar la salida a sort para que ordene todas las líneas en forma alfabética. La salida de sort se redirige al archivo /dev/lp, que por lo general es la impresora. Si un usuario coloca un signo &después de un comando, el shell no esperará hasta que ter­ mine, y presentará el indicador de comandos de inmediato. Por lo tanto, cat archi arch2 archS |sort >/dev/lp & pone en marcha el ordenamiento como trabajo en segundo plano, y permite al usuario seguir trabajando en forma normal mientras el ordenamiento se efectúa. El shell tiene otras funciones interesantes, pero no tenemos suficiente espacio aquí para comentarlas. Casi todos los libros sobre UNIX tratan con amplitud el shell (por ejemplo, Kemighan y Pike, 1984; Kochan y Wood, 1990; Medinets, 1999; Newham y Rosenblatt, 1998, y Robbins, 1999).

RkJQdWJsaXNoZXIy MjI4NDcx