Sistemas operativos modernos

un sistema, qué parámetros usan, qué deben hacer y qué resultados deben devolver. Ni siquie­ ra menciona las llamadas reales al sistema. Además del sistema operativo y de la biblioteca de llamadas al sistema, todas las versiones de UNIX ofrecen un gran número de programas estándar, algunos de los cuales se especifican en la norma POSIX 1003.2, y otros difieren entre las versiones de UNIX. Éstos incluyen el intér­ prete de comandos (shell), compiladores, editores, programas para procesar texto y programas para manipular archivos. Son estos programas los que invoca el usuario en su terminal. Así, podemos hablar de tres interfaces distintas con UNIX: la verdadera interfaz de llama­ das al sistema, la interfaz de biblioteca y la interfaz constituida por el conjunto de programas utilitarios estándar. Aunque esto último es lo que el usuario informal piensa que es “UNIX”, en realidad no tiene casi nada que ver con el sistema operativo mismo y se puede sustituir con gran facilidad. Por ejemplo, algunas versiones de UNIX han sustituido esta interfaz de usuario, orientada hacia el teclado, por una interfaz gráfica de usuario orientada hacia el ratón, sin alterar en abso­ luto el sistema operativo en sí. Es precisamente esta flexibilidad lo que hace a UNIX tan popular y le ha permitido sobrevivir en forma airosa a tantos cambios en la tecnología subyacente. 10.2.3 El shellóe UNIX Muchos sistemas UNIX tienen una interfaz gráfica de usuario del tipo que se popularizó gra­ cias a la Macintosh y más adelante a Windows. Sin embargo, los verdaderos programadores si­ guen prefiriendo una interfaz de línea de comandos, llamada shell. Su uso es mucho más rápido, es más potente, puede extenderse con facilidad y no causa en el usuario lesiones por tensión repetitiva (RSI; repetitive strain injuries) por tener que usar el ratón todo el tiempo. A continuación describiremos de manera somera el shell Boume (sh). Con el tiempo, se han es­ crito muchos shells nuevos (ksh, bash, etcétera). Aunque UNIX maneja en forma plena un en­ torno gráfico (X Windows), incluso en ese mundo muchos programadores crean simplemente múltiples ventanas de consola y hacen como si tuvieran media docena de terminales ASCII, ca­ da una de las cuales ejecuta el shell. Cuando el shell se pone en marcha, se inicializa y luego muestra en la pantalla un indi­ cador de comandos (prompt), que suele ser un signo de porcentaje o de dólar, y espera hasta que el usuario teclee una línea de comandos. Cuando el usuario lo hace, el shell extrae la primera palabra de la fila, supone que es el nombre de un programa a ejecutar, lo busca y, si lo encuentra, lo ejecuta. En ese momento el shell se suspende a sí mismo hasta que el programa termina, y entonces trata de leer la si­ guiente línea de comandos. Lo importante aquí es la observación de que el shell es un progra­ ma de usuario común y corriente. Lo único que necesita es la capacidad de leer de la terminal y escribir en ella, y la facultad de ejecutar otros programas. Los comandos pueden tener argumentos, que se pasan al programa invocado en forma de cadenas de caracteres. Por ejemplo, la línea de comandos cp origen destino

RkJQdWJsaXNoZXIy MjI4NDcx