Sistemas operativos modernos

forma automática su UID y GID, de modo que también tendrán el grupo y el usuario correc­ tos. Todos los archivos que ellos creen también recibirán esos valores. Cuando un proceso intenta abrir un archivo, el sistema coteja primero los bits de protec­ ción que están en el nodo-i del archivo con el UID y el GID efectivos del proceso para ver si está autorizado para el acceso. En tal caso, el archivo se abre y se devuelve un descriptor de ar­ chivo. En los demás casos, el archivo no se abre y se devuelve -1. No se efectúan verificacio­ nes en las llamadas read o write subsiguientes. Por tanto, si el modo de protección cambia cuando el archivo ya está abierto, el nuevo modo no afectará a los procesos que tengan abier­ to el archivo. La seguridad en Linux es casi igual que en UNIX. Todas las funciones de seguridad de UNIX están implementadas y no hay mucho más que decir al respecto. 10.8 RESUMEN UNIX nació como un sistema de tiempo compartido para minicomputadora, pero ahora se usa en máquinas que van desde computadoras portátiles hasta supercomputadoras. Existen tres in­ terfaces con UNIX: el shell, la biblioteca de C y las llamadas al sistema en sí. El shell permite a los usuarios teclear comandos para que se ejecuten. Éstos podrían ser comandos sencillos, canalizaciones o estructuras más complejas. Las entradas y las salidas pueden redirigirse. La biblioteca de C contiene las llamadas al sistema y también muchas llamadas ampliadas, como printf pára escribir salidas formateadas en archivos. La verdadera interfaz de llamadas al siste­ ma es delgada y funcional, con aproximadamente 100 llamadas, cada una de las cuales hace lo que se necesita y no más. Los conceptos clave de UNIX incluyen el proceso, el modelo de memoria, la E/S y el siste­ ma de archivos. Los procesos pueden bifurcarse en subprocesos, lo cual lleva a un árbol de pro­ cesos. La administración de procesos en UNIX emplea dos estructuras de datos clave, la tabla de procesos y la estructura de usuario. La primera siempre está en la memoria, pero la segunda pue­ de intercambiarse o paginarse a disco. Un proceso se crea duplicando la entrada de la tabla de procesos y luego la imagen de memoria. La calendarización se efectúa con un algoritmo basado en prioridades que favorece a los procesos interactivos. El modelo de memoria consiste en tres segmentos por proceso: texto, datos y pila. La admi­ nistración de memoria solía efectuarse con intercambio, pero ahora se usa paginación en casi to­ dos los sistemas UNIX. El mapa central lleva el control del estado de cada página, y el demonio de páginas emplea un algoritmo de reloj para que siempre haya suficientes páginas libres. El acceso a los dispositivos de E/S se efectúa empleando archivos especiales, cada uno de los cuales tiene un número de dispositivo principal y un número de dispositivo secundario. La E/S con dispositivos de bloques emplea un caché de búfer para reducir el número de accesos al disco. Se utiliza un algoritmo LRU para administrar el caché. La E/S por caracteres puede realizarse en modo crudo o cocinado. Se usan disciplinas de línea o flujos para añadir funcio­ nes a la E/S por caracteres. El sistema de archivos es jerárquico, con archivos y directorios. Todos los discos se mon­ tan en un solo árbol de directorios que principia en una raíz única. Es posible enlazar archivos

RkJQdWJsaXNoZXIy MjI4NDcx