Sei sulla pagina 1di 7

Llamadas al Sistema

El ncleo de Mac OS X (xnu) est basado en los ncleos de los sistemas operativos Mach
y FreeBSD, pero tambin incluye parte de MkLinux, NetBSD, OpenBSD y otras
tecnologas de Mach. Mac OS X Admite las llamadas del sistema de Mach y BSD Como el
ncleo de OS X est basado tanto en Mach cmo en FreeBSD, xnu contiene dos tablas de
llamadas del sistema, de Mach y BSD y admite los API de los sistemas BSD y Mach.
Esquema de procedimientos del ncleo de Mac OS X.

El kernel de Mac OS X por parte de Mach 3.0, un sistema originalmente basado en una
estructura de microkernel. Sin embargo, el uso que se hace de este sistema en Mac OS X
no es como microkernel, sino que ha sido adaptado a las necesidades de Mac OS X. En
este caso concreto, Mach esta enlazado con el resto de componentes del sistema, de
forma que todo ello pertenece a un nico espacio de direcciones. Este diseo est
motivado por razones de eficiencia, ya que una llamada directa entre mdulo directamente
enlazados es ms rpida que una llamada a procedimiento remoto (RPC) o el envo de un
mensaje. En cualquier caso, el kernel de Mac OS X sigue manteniendo un alto grado de
modularidad ofreciendo ms flexibilidad y sencillez que un kernel puramente monoltico.
Dentro del kernel, por tanto, lo que aporta Mach es:
Una API que ofrece canales de comunicacin para aplicaciones de usuario.
Soporte para paralelismo, hilos y multiprocesamiento simtrico.
Una plataforma flexible de planificacin de procesos, incluyendo su uso para
tiempo real.
Un juego completo de primitivas de comunicacin entre procesos, como mensajes,
llamadas a procedimientos remotos, sincronizacin y notificacin.
Estructura general del sistema basado en el sistema operativo Mac OS X.
Un sistema de gestin de memoria.
Gran posibilidad de extensin y portabilidad.
Seguridad y gestin de recursos basada en la abstraccin de recursos.

POSIX/BSD
Provee al Sistema Operativo de la personalidad propia del sistema Macintosh.
Manejo de las API encargadas del sistema de ficheros:
Diseo mejorado del VFS
Soporta mltiples formatos de ficheros (HFS, USF, HFS Plus).
Permite compartir ficheros NFS, y da servicio a los serviciosde Telnet, FTP, esto es
algo comn en todos los sistemas UNIX.
Manejo de las API encargadas del sistema de redes.
Darwin incorpora la pila (stack) de protocolos para redes de BSD, la que es usada
por gran cantidad de equipos que trabajan con el protocolo TCP/IP.
Todo convenientemente actualizado para la nueva versin de protocolo IP,
conocida por Ipv6.
Soporte de AppleTalk.

Qu son los servicios Mac OS
Los Servicios del sistema son pequeos programas que interactan con un
elemento previamente seleccionado. Gracias a ellos podemos realizar acciones
rpidamente y de forma sencilla con slo hacer clic sobre el archivo con el segundo botn
del ratn, seleccionar Servicios y lanzar la accin deseada.
Los servicios del men de sistema de las aplicaciones permiten a los usuarios acceder a la
funcionalidad de una aplicacin desde otra aplicacin cliente. Las aplicaciones anuncian
los servicios que proporcionan sobre uno o ms tipos de datos. Las aplicaciones cliente
(las que usan los servicios) no necesitan conocer por adelantado qu servicios existen en
el sistema. La aplicacin cliente simplemente necesita indicar los tipos de datos que usa.
El men de servicios se encarga de indicar qu servicios se pueden realizar sobre el tipo
de dato que se est usando.
Ejemplos de servicios seran la encriptacin de un texto, el reconocimiento de caracteres
en un bitmap, o generar un mensaje del da. Cuando el usuario est manipulando un tipo
de dato (p.e., escribiendo en una caja de texto), el usuario puede ejecutar los servicios que
manipulan ese tipo de dato.
Ejemplo de servicios
Existen dos tipos de servicios: procesadores y proveedores.
Procesadores. Este tipo de servicios reciben datos y realizan una operacin sobre ellos.
Por ejemplo, si en una aplicacin cliente seleccionamos un texto podemos envirselo a
alguien usando Mail como procesador. Si en la aplicacin cliente seleccionamos una
palabra podemos usar Dictionary para buscar la palabra, tal como muestra la siguiente
figura:

Proveedores. Estos servicios devuelven datos a la aplicacin cliente que les llama. Por
ejemplo, podemos ejecutar desde TextEdit el servicio que captura parte de la pantalla:

Al terminar de ejecutarse el servicio obtenemos la captura de pantalla incrustada en la
posicin del cursor en TextEdit:


Cmo funcionan los servicios
La aplicacin cliente y el servicio se ejecutan en procesos independientes. La forma de
compartir datos es que las aplicaciones transportan datos a los servicios a travs de un
portapapeles privado. En caso de tratarse de un servicio proveedor, ste devuelve los
datos usando el mismo portapapeles.
En concreto el proceso es el siguiente:
1. Al seleccionar el men del servicio en la aplicacin cliente, sta copia el texto o
imagen seleccionado al portapapeles privado y se ejecuta la aplicacin que
proporciona e servicio (si sta ya no est ejecutando).
2. La aplicacin que presta el servicio lee los datos del portapapeles privado y procesa
los datos recibido.
Si el servicio es un proveedor:
3. El servicio vuelve a copiar los datos procesados al portapapeles privado
4. La aplicacin cliente recoge los datos del portapapeles
Servicios standalone
Un servicio se puede ofrecer de dos formas:
Como parte de una aplicacin (p.e., Mail). En este caso la aplicacin suele tener la
extensin .app y se suele guardar en la carpeta /Applications.
Como un servicio standalone. En este caso la aplicacin no tiene interfaz de usuario y se
limita a proporcionar el servicio. Las aplicaciones standalone suelen tener la
extensin .service y se guardan en la carpeta /Library/Services (puede ser que
tengamos que crear esta carpeta).
Un ejemplo de servicio standalone es SymbolycLinker, una aplicacin que extiende Finder
para crear enlaces simblicos blandos UNIX.
Habilitar/deshabilitar servicios
No todos los servicios existentes estn habilitados. Algunos se habilitan por defecto y otros
tenemos que habilitarlos en System Preferences | Keyboard Shortcuts | Services. Como
muestra la siguiente figura, estos servicios se agrupan por tipo.


Cmo se declara un servicio
Las aplicaciones que proporcionan un servicio pueden estar instaladas en cualquier lugar
del disco duro. Launch Services se encarga de identificar que una aplicacin proporciona
servicios consultando su fichero Info.plist. En base a esta informacin Mac OS X
rellena el men de servicios de las aplicaciones clientes. La siguiente figura muestra la
entrada NSServices de la aplicacin Dictionary. Esta es la entrada que usan las
aplicaciones para indicar los servicios que prestan a otras aplicaciones clientes.
Bsicamente la entradaNSServices es un array de objetos NSDictionary. Cada servicio
se describe en un objeto NSDictionary mediante una serie de claves y valores.

Potrebbero piacerti anche