Arquitectura del sistema
Para comprender más fácilmente MOSX podemos verlo como un conjunto
de capas, donde cada una depende de la capa inferior:

Al tope están los ambientes de aplicación, o sea, los ambientes
donde se ejecutan las aplicaciones. MOSX provee cinco:
- Classic: para las aplicaciones Mac OS 9. Este ambiente utiliza directamente
los servicios de las capas inferiores.
- Cocoa: para las nuevas aplicaciones escritas específicamente para
aprovechar las capacidades de MOSX.
- Carbon: para las aplicaciones Mac OS 9 modificadas para aprovechar algunas
de las ventajas de MOSX.
- Java: para las aplicaciones Java.
- BSD: para los programas que se invocan a través de la línea
de comandos. Este ambiente no depende de los servicios de las capas Application
Services y Core Services, por tanto, hay una línea que lo une con el
Kernel environment.
QuickTime es un caso especial. Provee servicios que pueden utilizar las aplicaciones,
pero también ofrece servicios que son característicos de las aplicaciones.
La capa Application Services se encarga del manejo de la pantalla (rendering,
ventanas, cursor), impresión y manejo de eventos.
Core Services ofrece los servicios que no están involucrados con la
interfaz gráfica: manejo de strings, colecciones, procesos, threads,
recursos, memoria e interacción con el sistema de archivos.
El Kernel environment proporciona los servicios esenciales para el funcionamiento
del sistema de operaciones. Consiste de cinco componentes:
- Mach. Proporciona memoria protegida, multitasking preemptivo, memoria virtual
y soporte para tiempo real.
- BSD. Sirve como base para las facilidades de redes y de sistema de archivo.
Provee sockets BSD, threads POSIX, políticas de seguridad básicas,
etc.
- Drivers de dispositivos y el I/O Kit. El I/O Kit facilita la creación
de drivers de dispositivos al proporcionar la mayor parte de la infraestructura
que necesitan. Plug and play, manejo dinámico de dispositivos ("hot
plugging") y manejo de energía, son las características
de los drivers desarrollados con I/O Kit.
- Redes. A través de los Network Kernel Extensions (NKE) es posible
añadir módulos y hasta protocolos adicionales al kernel.
- Sistemas de archivo.
Application Services: Gráficos y ventanas
La parte de MOSX que se encarga de los gráficos y el manejo de ventanas
se llama Quartz, y se compone de Core Graphics Rendering y Core Graphics Services.

El Core Graphics Rendering junto a QuickDraw, QuickTime y OpenGL se encargan
del pintado (rendering). Todas estas bibliotecas (o librerías, como prefiera
llamarlas) dependen de la otra parte de Quartz, Core Graphics Services.
El Core Graphics Services se ocupa de
- Manejo de pantallas
- Composición y manejo de ventanas
- Enrutado de eventos
- Manejo del cursor
El Core Graphics Services tiene un único proceso para el manejo de ventanas,
que es el servidor de ventanas. Este servidor no hace ninguna clase de rendering,
sino que se comunica con las capas superiores para ello.
Las ventanas están representadas como mapas de bits (bitmaps) que incluyen
un canal alfa (para efectos de transparencia) e información sobre anti-aliasing.
Además, estos bitmaps tienen un buffer para facilitar el redibujado de
las ventanas sin necesidad de que lo haga la aplicación dueña
de la ventana.
El Core Graphics Rendering es una biblioteca gráfica que utiliza vectores.
El modelo interno que usa es el Portable Document Format (PDF). También
es la base del sistema de impresión de MOSX.
Application Services: Sistema de impresión
Nueve módulos entran en juego para que el usuario pueda escoger una
impresora, mandar trabajos de impresión y manejar las colas de impresión:
- PrintCenter: es el reeemplazo del Chooser. Permite al usuario localizar,
seleccionar y configurar impresoras.
- Printer browser module (PBM): proporciona al PrintCenter la interfaz con
el usuario para diferentes métodos de conexión con las impresoras.
- I/O Module: implementa la conexión con las impresoras. Apple provee
los módulos para NetInfo, USB, TCP/IP y AppleTalk.
- Print Job Creator (PJC): es el módulo que recibe los trabajos de
impresión de las aplicaciones y muestra los diálogos de Impresión
y de Ajuste de página.
- Printing Dialog Extensions (PDE): extiende los diálogos de Impresión
y de Ajuste de página para aprovechar las características especiales
de las impresoras.
- Queue Manager: es el manejador de las colas de impresión.
- Job Manager: se encarga de la impresión. Hace las conversiones necesarias
para imprimir.
- Converter: ayuda al Job Manager en transformar de un formato a otro, de
PDF a raster, por ejemplo.
- Printer Module: se encarga de ajustar los datos para que la pueda aceptar
la impresora.
Los fabricantes de impresoras son los responsables de proveer el Printer Module
y el Printing Dialog Extension para cada modelo de impresora.
Application Services: Otros
Los otros servicios que provee esta capa son los manejados por:
- Process Manager: control de acceso a recursos compartidos, scheduling y
ejecución de aplicaciones.
- Carbon Event Manager: enruta los eventos al manejador apropiado.
- Pasteboard: equivalente al Clipboard.
Core Services>>>>