Sistemas operativos modernos

lo que hace que todas las verificaciones aparezcan en el código ejecutable de ntoskml.exe y se realicen en fiempo ejecución. Aunque esto hace mucho más lento el sistema, ayuda a los crea­ dores de controladores a depurar sus controladores antes de entregarlos a los clientes. Las com­ pilaciones verificadas también tienen activadas muchas otras funciones de depuración. Los controladores de dispositivos La última parte de la figura 11-7 consiste en los controladores de dispositivos. Cada uno de éstos puede controlar uno o más dispositivos de E/S, pero también puede hacer cosas no rela­ cionadas con un dispositivo específico, como cifrar un flujo de datos o simplemente proporcio­ nar acceso a estructuras de datos del kemel. Los controladores de dispositivos no forman parte del binario ntoskml.exe. La ventaja de este enfoque es que una vez que un controlador se ins­ tala en un sistema, se añade a una lista del Registro y se carga en forma dinámica cuando arran­ ca el sistema. Así, ntoskml.exe es el mismo para todo mundo, pero cada sistema se configura de forma precisa para los dispositivos que confiene. Hay controladores para disposifivos de E/S macroscópicamente visibles, como los discos e impresoras, pero también para muchos dispositivos intemos y chips de los que casi nadie ha oído hablar. Además, los sistemas de archivos también están presentes como controladores de dispositivos, como ya mencionamos. El controlador de dispositivo más grande, el de Win32, GDI y vídeo, aparece a la derecha de la figura 11-7. Este componente maneja muchas llama­ das al sistema y casi todas las funciones de gráficos. Puesto que los clientes pueden instalar controladores de dispositivos nuevos, pueden afectar el kemel y corromper el sistema. Por ello, debe tener mucho cuidado al escribir controladores. 11.3.2 Implementación de objetos Los objetos quizá sean el concepto individual más importante de Windows 2000. Proporcionan una interfaz uniforme y coherente para todos los recursos del sistema y estructuras de datos, como procesos, subprocesos, semáforos, etc. Esta uniformidad tiene diversas facetas. En pri­ mer lugar, se tiene acceso y se da nombre a todos los objetos de la misma forma, empleando identificadores de objeto. Segundo, dado que todos los accesos a objetos se efectúan por me­ dio del administrador de objetos, es posible colocar todas las verificaciones de seguridad en un lugar y garantizar que ningún proceso pueda evitarlas. Tercero, el compartimiento de objetos entre procesos puede manejarse de manera uniforme. Cuarto, puesto que todas las aperturas y cierres de objetos se tramitan por medio del administrador de objetos, es fácil llevar el control de cuáles objetos están en uso todavía y cuáles pueden eliminarse sin peligro. Quinto, este mode­ lo uniforme de administración de objetos facilita administrar las cuotas de recursos en forma directa. Algo fundamental para entender los objetos es darse cuenta de que un objeto (del ejecuti­ vo) no es más que cierto número de palabras consecutivas en la memoria (es decir, en el espa­ cio de direcciones virtual del kemel). Un objeto es una estructura de datos en RAM, ni más ni menos. Un archivo en disco no es un objeto, aunque se crea un objeto (es decir, una estructura de datos en el espacio de direcciones virtual del kemel) para un archivo cuando se abre. Una con

RkJQdWJsaXNoZXIy MjI4NDcx