Sistemas operativos modernos

10,2 GENERALIDADES DE UNIX En esta sección presentaremos una introducción general a UNIX y a la forma en que se usa, pa­ ra beneficio de los lectores que no están familiarizados con él. Aunque las distintas versiones de UNIX tienen diferencias sutiles, el material aquí presentado es válido para todas ellas. En esta sección nos concentraremos en el aspecto que tiene UNIX visto desde una terminal. Las seccio­ nes que siguen se concentrarán en las llamadas al sistema y el funcionamiento interno. 10.2.1 Metas de UNIX UNIX es un sistema interactivo diseñado para manejar múltiples procesos y múltiples usuarios al mismo tiempo. Fue diseñado por programadores y para programadores, para utilizarse en un entorno en el que la mayoría de los usuarios tiene conocimientos relativamente avanzados y se dedica a proyectos de desarrollo de software que suelen ser complejos. En muchos casos, un gran número de programadores coopera en forma activa para producir un solo sistema, por lo que UNIX cuenta con extensos recursos para trabajar en colaboración y compartir información de formas controladas. Es obvio que el modelo de un grupo de programadores experimentados que colaboran en forma estrecha para producir software avanzado es muy diferente del mode­ lo de computadora personal con un solitario principiante que trabaja con su procesador de tex­ to, y esta diferencia se refleja en todo UNIX, de principio a fm. ¿Qué es lo que los buenos programadores buscan en un sistema? Por principio de cuentas, a casi todos les gusta que sus sistemas sean sencillos, elegantes y consistentes. Por ejemplo, en el nivel más bajo, un archivo debe ser sólo una colección de bytes. Tener diferentes clases de archivos para acceso secuencial, acceso aleatorio, acceso por claves, acceso remoto, etcétera (como hacen los mainframes), es sólo un estorbo. Asimismo, si el comando Is A* significa “mostrar una lista de todos los archivos que comienzan con A”, entonces rm A* significa “eliminar todos los archivos que comienzan con A”, y no significa eliminar el archi­ vo cuyo nombre consiste en una “A” y un asterisco. Esta característica se conoce como princi­ pio de mínima sorpresa. Otra cosa que los programadores experimentados desean, por lo general, es potencia y flexibi­ lidad. Esto implica que un sistema debe tener un número reducido de elementos básicos que pue­ dan combinarse en una infinita variedad de formas para adecuarlos a la aplicación. Una de las pautas básicas que siguió UNIX es que todo programa debe hacer una sola cosa y hacerla bien. Por lo tanto, los compiladores no producen listados, porque otros programas pueden hacerlo mejor. Por último, casi todos los programadores odian la redundancia innecesaria. ¿Por qué teclear copy si cp es suficiente? Para extraer del archivo/todas las líneas que contienen la cadena “ard”, el programador UNIX teclea grep ard f

RkJQdWJsaXNoZXIy MjI4NDcx