Servicios y Llamadas Mac OS X

January 21, 2019 | Author: Alex Navez Mariños | Category: Kernel (Operating System), Mac Os, Berkeley Software Distribution, Computer File, Computer Architecture
Share Embed Donate


Short Description

Download Servicios y Llamadas Mac OS X...

Description

El núcleo de Mac OS X (xnu) está basado en los núcleos de los sistemas operativos Mach y FreeBSD, pero también incluye parte de MkLinux, NetBSD, OpenBSD y otras tecnologías de Mach. Mac OS X Admite las llamadas del sistema de Mach y BSD Como el núcleo de OS X está basado tanto en Mach cómo 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 núcleo 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 diseño está motivado por razones de eficiencia, ya que una llamada l lamada directa entre módulo directamente enlazados es más rápida que una llamada a procedimiento remoto (RPC) o el envío de un mensaje. En cualquier caso, el kernel de Mac OS X sigue manteniendo un alto grado de modularidad modularidad ofreciendo más flexibilidad y sencillez que un kernel puramente monolítico. Dentro del kernel, por tanto, lo que aporta Mach es:   



Una API que que ofrece canales canales de comunicación comunicación para aplicaciones de usuario. usuario. Soporte para paralelismo, paralelismo, hilos y multiprocesamiento multiprocesamiento simétrico. simétrico. Una plataforma plataforma flexible de planificación planificación de procesos, procesos, incluyendo su uso para tiempo real. Un juego completo de de primitivas de comunicación comunicación entre entre procesos, como mensajes, mensajes, llamadas a procedimientos remotos, sincronización y notificación.

Estructura general del sistema basado en el sistema operativo Mac OS X.   

Un sistema sistema de gestión de memoria. Gran posibilidad de extensión extensión y portabilidad portabilidad.. Seguridad y gestión de recursos recursos basada en la abstracción abstracción de recursos. recursos.

POSIX/BSD  

Provee al Sistema Operativo de la personalidad propia del sistema Macintosh. Manejo de las API encargadas del sistema de ficheros:

Diseño mejorado del VFS 



Soporta múltiples formatos de ficheros (HFS, USF, HFS Plus). Permite compartir ficheros NFS, y da servicio a los serviciosde Telnet, FTP, esto es algo común 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 versión de protocolo IP, conocida por Ipv6. Soporte de AppleTalk.

Los Servicios del sistema son “pequeños programas” que interactúan con un elemento previamente seleccionado. Gracias a ellos podemos realizar acciones

rápidamente y de forma sencilla con sólo hacer clic sobre el archivo con el segundo botón del ratón, seleccionar Servicios y lanzar la acción deseada. Los servicios del menú de sistema de las aplicaciones permiten a los usuarios acceder a la funcionalidad de una aplicación desde otra aplicación cliente. Las aplicaciones anuncian los servicios  que proporcionan sobre uno o más tipos de datos. Las aplicaciones cliente (las que usan los servicios) no necesitan conocer por adelantado qué servicios existen en el sistema. La aplicación 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 serían la encriptación de un texto, el reconocimiento de caracteres en un bitmap, o generar un mensaje del día. 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.

Existen dos tipos de servicios: procesadores y proveedores. Procesadores . Este tipo de servicios reciben datos y realizan una operación sobre ellos.

Por ejemplo, si en una aplicación cliente seleccionamos un texto podemos enviárselo a alguien usando Mail como procesador. Si en la aplicación cliente seleccionamos una palabra podemos usar Dictionary  para buscar la palabra, tal como muestra la siguiente figura:

Proveedores . Estos servicios devuelven datos a la aplicación 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 posición del cursor en TextEdit:

La aplicación cliente y el servicio se ejecutan en procesos independientes. La forma de compartir datos es que las aplicaciones transportan datos a los servicios a través 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 aplicación cliente, ésta copia el texto o imagen seleccionado al portapapeles privado y se ejecuta la aplicación que proporciona e servicio (si ésta ya no está ejecutando). 2. La aplicación 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 aplicación cliente recoge los datos del portapapeles

Un servicio se puede ofrecer de dos f ormas: 

Como parte de una aplicación (p.e., Mail). En este caso la aplicación suele tener la extensión .app y se suele guardar en la carpeta /Applications.



Como un servicio standalone. En este caso la aplicación no tiene interfaz de usuario y se limita a proporcionar el servicio. Las aplicaciones standalone suelen tener la extensión .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 aplicación que extiende Finder para crear enlaces simbólicos blandos UNIX.

No todos los servicios existentes están 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.

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

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF