Sistemas operativos modernos

ve un resultado llamado identificador (handle) a su invocador. Este identificador puede utili­ zarse después para ejecutar operaciones con el objeto. Los identificadores son específicos pa­ ra el proceso que creó el objeto al que se refiere el idenfificador; no pueden pasarse en forma directa a otro proceso y usarse ahí (así como los descriptores de archivo de UNIX no pueden pasarse a otros procesos y usarse en ellos). No obstante, en ciertas circunstancias es posible co­ piar un idenfificador y pasarlo a otros procesos empleando un mecanismo protegido, lo que ha­ ce posible tener acceso controlado a objetos que pertenecen a otros procesos. Además, cada objeto fiene asociado un descriptor de seguridad que indica de forma detallada quién está y quién no está autorizado para realizar algún tipo de operaciones con el objeto. No todas las estructuras de datos creadas por el sistema son objetos, y no todos los obje­ tos son objetos del kemel. Los únicos que son verdaderos objetos de kemel son los que deben nombrarse, protegerse o compartirse de alguna manera. Todo objeto de kemel tiene un tipo de­ finido por el sistema, tiene operaciones bien definidas que se ejecutan con él y ocupa espacio en la memoria del kemel. Aunque los usuarios pueden realizar las operaciones (emifiendo lla­ madas Win32), no pueden tener acceso a los datos de manera directa. El sistema operativo en sí también puede crear y usar objetos, y lo hace en forma intensi­ va. Casi todos esos objetos se crean con el fin de que un componente del sistema pueda alma­ cenar cierta información durante un fiempo considerable o pasar alguna estructura de datos a otro componente. Por ejemplo, cuando se carga un controlador de disposifivo, se crea un obje­ to para él con sus propiedades y apuntadores a las funciones que contiene. Entonces, se hace referencia al controlador dentro del sistema operativo, utilizando su objeto. A veces se dice que Windows 2000 está orientado a objetos porque la única forma de ma­ nipular objetos es invocando operaciones con sus identificadores o emitiendo llamadas a la API Win32. Por otra parte, el sistema carece de algunas de las propiedades más básicas de los sis­ temas orientados a objetos, como herencia y polimorfismo. Las llamadas de la API Win32 cubren todas las áreas concebibles de las que podría ocuparse un sistema operafivo, y un buen número de áreas de las que, en opinión de algunos, no debería ocu­ parse. Por supuesto, hay llamadas para crear y administrar procesos y subprocesos. También hay muchas llamadas relacionadas con la comunicación entre procesos (en realidad, entre subproce­ sos), como la creación, destrucción y uso de mutexes, semáforos, sucesos y otros objetos de IPC. Aunque gran parte del sistema de administración de memoria es invisible para el programador (en esencia es paginación por demanda), sí es visible una característica importante: la capacidad de un proceso para establecer la correspondencia entre un archivo y una región de su memoria virtual. Esto permite al proceso leer y escribir partes del archivo como si fueran palabras de memoria. Un área importante para muchos programas es la E/S de archivos. Desde la perspectiva Win32, un archivo es sólo una secuencia lineal de bytes. Win32 proporciona más de 60 llama­ das para crear y destruir archivos y directorios, abrir y cerrar archivos, leer y escribir archivos, solicitar y establecer atributos de archivos, y muchas cosas más. Otra área en la que Win32 proporciona llamadas es la seguridad. Cada proceso tiene un ID (idenfificador) que indica quién es, y cada objeto puede tener una lista de control de acceso que indica con lujo de detalles cuáles usuarios pueden tener acceso a él y qué operaciones pueden efectuar con él. Este método hace posible una seguridad de grano fino en la que puede otorgar­ se o negarse a personas individuales un acceso específico a cada objeto.

RkJQdWJsaXNoZXIy MjI4NDcx