Arquitectura de Los Sistemas Operativos Moviles

ARQUITECTURA DE LOS SISTEMAS COMPUTACIONALES MOVILES Las arquitecturas de los teléfonos inteligentes han ido evoluciona

Views 80 Downloads 0 File size 981KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

ARQUITECTURA DE LOS SISTEMAS COMPUTACIONALES MOVILES

Las arquitecturas de los teléfonos inteligentes han ido evolucionando conforme pase el tiempo y se innove cosas en la cual permita al usuario tener una comunicación más rápida con el mundo, parte de esto las grandes industrias de teléfonos celulares hacen posible que cada año estos dispositivos de comunicación evolucionen en Hardware y Software, para que sea de agrado para el cliente y de gran ayuda para múltiples tareas en el mundo moderno. Tenemos algunos sistemas operativos y la descripción de su arquitectura como: IOS:

Constituido por capas como se ve en la imagen, los niveles más altos actúan como intermediarios entre el hardware y aplicaciones que aparecen en la pantalla de los dispositivos. Las capas superiores proporcionan una abstracción orientada a objetos, esto hace que sea más fácil entender su arquitectura. Adicionalmente, cada capa está compuesta por un conjunto de frameworks .

 Capa Core OS: Capa del Núcleo del sistema operativo que está basado en Darwin BSD.Es la capa base más baja de la pila de iOS y se situa directamente sobre el dispositivo hardware. 

El Kernel o Core OS El nivel del sistema abarca el entorno del núcleo, los controladores y las interfaces de bajo nivel del sistema operativo UNIX. El Kernel está basado en “MACH” y es responsable de todos los aspectos del sistema operativo. Se encarga de tareas básicas de bajo nivel, como: 1. Gestión de memoria virtual 2. Gestión procesos, hilos, el manejo de la memoria y comunicación entre procesos. 3. Gestión del sistema de archivos. 4. Gestión del acceso a red de bajo nivel.

5. Gestión de procesos que interactúan directo con el hardware. Los drivers en esta capa proveen la interfaz entre el hardware del sistema y los frameworks del sistema. Por seguridad el acceso al kernel y drivers están restringido a un conjunto limitado de framework del sistema y aplicaciones. iOS provee un conjunto de interfaces, basadas en lenguajes C, para el acceso a muchas características de bajo nivel del sistema operativo, a través de la biblioteca Libsystem y proveen soporte para: o o o o o o o o

Threading o hilos POSIX Red(sockets BSD API) Acceso al sistema de archivos. Manejo estándar de E/S. Bonjour y servicios DNS. Información de entorno local. Asignación de memoria. Cálculos matemáticos.

 Capa de Core Services: Permite al usuario acceder a todos los servicios básicos y contiene los servicios fundamentales del sistema operativo que pueden ser usados por todas las aplicaciones creadas por terceros. Muchas partes del sistema están construidas encima de esta capa. Entre las principales tecnologías disponibles de alto nivel esta capa se encuentran: Almacenamiento iCloud: Introducido en la versión iOS 5.0, permite que las aplicaciones escriban documentos y los datos a una ubicación central en la nube (espacio en internet) para acceder desde otros dispositivos del usuario. Es decir, al crear documentos de un usuario con iCloud significa que el usuario puede ver y editarlos desde cualquier dispositivo sin tener que sincronizar o transferir archivos. El almacenamiento en una cuenta iCloud provee una capa de seguridad para el usuario. Hay dos maneras en que las aplicaciones toman ventaja de este servicio: o o

Almacenamiento de documentos iCloud para almacenar documentos de usuario y datos en la su cuenta. Almacenamiento de clave-valor iCloud para compartir cantidades limitadas de datos entre instancias de aplicaciones que deben usarla para almacenar datos no críticos como las preferencias.

Conteo de referencias automáticos (ARC)

Introducido en la versión iOS 5.0. Es una característica del compilador que simplifica la gestión de la vida útil de los objetos en Objetive C, es decir, en lugar de recordar retener o liberar en objetivo el ARC evalúa las necesidades de su vida y los inserta de forma automática en las llamadas a métodos adecuados en tiempo de compilación.

Grand Central Dispatch (GCD) Introducido en la versión iOS 4.0 es una tecnología de nivel BSD que se utiliza para administrar la ejecución de tareas en aplicaciones. El GCD combina un modelo de programación asincrónica con un muy optimizado núcleo para proveer la conveniencia y hacerlo más eficiente. GCD ofrece alternativas para tareas de bajo nivel como leer y escribir, medidores de tiempo de ejecución y monitoreo de señales de control de procesos y eventos.

La compra APP Introducido en la versión 3.0, es un servicio que da la capacidad para vender contenidos y servicios desde el interior de la aplicación APP. Esta aplicación se implementa utilizando el “store kit framework” que procesa las transacciones financieras usando las cuenta de usuario iTunes. La biblioteca SQLite Biblioteca que permite incrustar una base de datos ligera de SQL en aplicaciones sin ejecutar un proceso separado del servidor remoto de base de datos. Se pueden crear archivos de base de datos locales y gestionar las tablas y registros en los archivos. Esta biblioteca fue diseñada para uso en general y esta optimizada para proporcionar un acceso rápido a los registros de base de datos. El ejemplo más común es la base de datos de contactos telefónicos. Soporte XML (lenguaje de marcas extensible) La fundación framework proporciona la clase NSXMLParser para recuperación de elementos en documentos XML. Esta biblioteca de código abierto permite analizar y escribir datos XML de forma rápida y transformar el contenido XML a HTML.

 Capa

Media:

Conocida también como capa de “medios de comunicaciones”. Es una interfaz basada en una mescla de lenguaje C y objetive C que permite la ejecución de tareas o gestión de ficheros multimedia. Esta capa contiene las tecnologías de gráficos, audio y video orientadas a crear la mejor experiencia de multimedia disponible en un dispositivo móvil. Las tecnologías están diseñadas para hacer que las aplicaciones se vean y suenen excelente. Las características de las tecnologías son: Tecnología de gráficos: La alta calidad de los gráficos es una parte importante de las aplicaciones de iOS. Estas aplicaciones comúnmente son creadas usando el framework UIKit con vistas estándares. Sin embargo, a veces es necesario usar en aplicaciones gráficos más detalladas, para ello se puede utilizar las siguientes tecnologías para gestión del contenido grafico como: o o o o o o

Core Grafics (Quartz): el nucleó gráficos, en español, maneja de vectores de 2D y la renderización de imágenes. Core animation: es una parte del Quartz Core framework que proporciona soporte avanzado para animaciones y otros contenidos. Open GL y GLKit: proporciona soporte para la renderización de 2D y 3D usando interfaces aceleradores de hardware. Core Text: ofrece un diseño sofisticado y un motor de texto. E/S estándar de imagen: proporciona interfaces para leer y escribir la mayoría de los formatos de imagen. La biblioteca Assets: proporciona acceso a las fotos t videos en la galería de usuario.

Tecnología de audio: El sistema ofrece varias alternativas de reproducir y grabas contenidos de audio, existen de dos tipos las tecnologías de audio de alto nivel son las

fáciles de usar mientras que las de bajo nivel ofrecen flexibilidad, algunas de estas tecnologías en iOS son. o o o o

Media player: ofrece un fácil acceso a la biblioteca de iTunes del usuario y soporte para reproducción de pistas y listas de reproducción. El framework AV: proporciona un conjunto de fácil de usar interfaz de Objetive-C para el manejo y reproducción de contenido audio visual. El OpenAl: proporciona un conjunto de fácil de usar interfaz de Objetive-C para el manejo de la reproducción de audio y grabación. El Core audio: ofrece dos interfaces simple y sofisticados para reproducir y grabar contenidos de audio, se utilizan para reproducir sonidos de alerta del sistema, provoca la capacidad de hacer vibrar al dispositivo y la gestión de almacenamiento temporal y la reproducción de multicanales locales y contenido de audio streaming.

La tecnología de audio en iOS soporta formatos: AAC, Apple Lossless (ALAC), A-law, IMA/ADPCM (IMA4), Linear PCM, µ-law, DVI/Intel IMA ADPCM, Microsoft GSM 6.10 y AES3-2003. Tecnología de video iOS ofrece varias tecnologías para reproducir contenido de video en los dispositivos con hardware de video, además de tecnologías para capturar video e incorporarlo a las aplicaciones. El sistema ofrece varias formas de reproducir y grabar contenido de vídeo se eligen según necesidades. Las tecnologías de video de alto nivel simplifican el trabajo para apoyar a las características de aplicaciones por terceros. Algunas de estas tecnologías ubicadas de según nivel son: La clase UIImagePickerController en UIKit proporciona una interfaz estándar para la grabación de vídeo en los dispositivos con una cámara compatible. o

o o

Media Player proporciona un conjunto de interfaces para la presentación de películas completas o parciales de pantalla de la aplicación. El framework AV proporciona un conjunto de interfaces de Objective-C para el manejo de la captura y reproducción de películas. Core Media proporciona interfaces de bajo nivel para la manipulación de los medios de comunicación.

Las tecnologías de vídeo en iOS compatible con la reproducción de archivos de películas con el mov, mp4, m4v, y .3 gp, como también otras extensiones de los archivos siguen estándares de compresión. Tecnología AirPlay AirPlay es una tecnología que permite que el flujo de audio de aplicación a Apple TV y altavoces AirPlay de terceros inalámbricamente a través de Wi-fi. El soporte AirPlay está integrado framework de AV Foundation y de la familia framework Core Audio. Algunas ventajas de iCloud son:

Se tiene una copia de seguridad de los archivos también llamado backup, en dado caso dispositivo se dañe todos los archivos que tengamos sincronizados con este servicio no se perderán. Además, se puede reproducir los archivos de música desde cualquier dispositivo, no es necesario tener el archivo ya que este servicio hace que el descargue de forma temporal, a esto se le llama streaming.

 COCOA TOUCH La capa Cocoa Touch o capa táctil de Cocoa es la interfaz de los dispositivos para con el usuario. Esta capa es una exclusiva interfaz con un diseño único que está constituida con aplicaciones probadas que comparten muchos patrones que se encuentran en la PC Mac, pero se reconstruyeron con un enfoque especial en el tacto y las interfaces basadas en optimización. La mayoría de estas aplicaciones están basadas en Objetive C. Esta capa define la infraestructura de la aplicación básica y el soporte para las tecnologías punta como: Multitarea, entradas táctiles, notificaciones y muchos servicios de sistemas de alto nivel. Esta interfaz provee la infraestructura básica (frameworks) clave para desarrollar las aplicaciones iOS, ya que contiene los recursos principales para ejecutar aplicaciones iOS, entre los recursos se distinguen esta capa está el High level Features o características de alto nivel: o

Multitarea Esta función que está incorporada en la versión de iOS4 y superiores. Todas las aplicaciones que son desarrolladas y ejecutadas en el mismo sistema no terminan de ejecutarse si se pasa al escritorio o se ejecuta otra aplicación, estas aplicaciones pasan a un segundo placo o background, el cual es un contexto de ejecución de aplicaciones diferente. Esta transición desde el primer plano al segundo y viceversa es posible mediante el uso de UIKit. El uIKit proporcionara las herramientas básicas que necesita para implementar gráficos, eventos de aplicaciones basadas en iOS, se basa en la infraestructura de la que se encuentra en el Mac OS X, incluyendo el manejo de archivos, redes, cadena de la construcción, y mucho más.

o

Impresión

UIKit permite enviar datos de manera inalámbrica a impresoras cercanas, esta herramienta lo hace de forma automática, por lo que el usuario solo debe darle formato a su documento. o

Protección de Datos La protección de datos permite a las aplicaciones trabajar con datos de usuario sensibles, aprovechado la encriptación implícita. Si la aplicación define un archivo como protegido, el sistema lo almacena en el disco con un formato encriptado. Cuando el dispositivo es bloqueado, el contenido de ese fichero es inaccesible, tanto para la aplicación como para cualquier potencial intruso. Cuando el dispositivo es desbloqueado, se genera una clave de desencriptación que permite a la aplicación acceder al archivo.

o

Servicio de notificaciones Push de Apple Este servicio permite notificar acerca de alguna nueva información aunque la aplicación no esté ejecutándose activamente en ese momento. Para que estas notificaciones aparezcan las aplicaciones instaladas deben solicitar la recepción de notificaciones y procesar la información una vez que ha sido recibida, además de un proceso de servidor que sea capaz de generar las notificaciones.

o

Notificaciones Locales

Notificación local Estas notificaciones complementan el modo de notificación por push, permitiendo a la aplicación generar sus propias notificaciones sin necesidad de tener conexión con ningún servidor externo. Una vez a la notificación está programada, el sistema operativo la gestiona, por lo que la aplicación no debe ejecutarse.

o

Reconocimiento de Gestos

Pantalla táctil de iPad Esta característica fue introducida en la versión del sistema operativo iOS 3.2. Se trata de objetos que podemos incluir en nuestras vistas y usarlos para detectar gestos comunes, como deslizamientos o pulsaciones en la pantalla. El ulkit tiene la clase UIGestureRecognizer, que permite crear aplicaciones con este comportamiento básico para todos los gestos. Entre los gestos comunes estándares se encuentran: Pulsación (Tapping) Pellizco, tanto interior como exterior, para el zoom (Pinching in and out) Pulsar y arrastrar (Panning and dragging) Deslizar (Swiping) Rotar (Rotating) Pulsación larga (Long presses)

o

Archivos compartidos Se permite tener disponibles ficheros de datos del usuario en iTunes. De este modo, una aplicación hará que el contenido de su carpeta /Documentos esté disponible para el usuario. Con esto, el usuario podrá meter o quitar archivos de este directorio desde iTunes.

Documentos en iTunes

o

Servicios Peer-to-Peer El framework Game Kit permite realizar conexiones punto a punto a través de Bluetooth. Se puede usar la conectividad punto a punto para iniciar comunicaciones con dispositivos cercanos e implementar infinidad de características disponibles para juegos multijugador.

o

Controladores estándar del sistema de vistas

Están disponibles un conjunto de view controllers para que las interfaces sean lo más estándar posibles y que el usuario se sienta más cómodo y mejore su experiencia.

Interfaz Ios

Windows phone: Debemos saber que Microsoft ya se había enfocado en llevar su propio sistema operativo a los teléfonos, entonces es así como surge Windows Mobile, pero uno de los grandes problemas a los que Microsoft debió hacer frente fue la fragmentación de hardware y software existente en el ecosistema, es decir a la diversidad de modelos que había en el mercado, aprendiendo de sus errores, en Windows phone 7 nos encontramos un modelo de hardware y software claro y conciso que ayudara a evitar la repetición de esta situación

 Modelo de Hardware: Tenemos un ejemplo Microsoft como fabricante del sistema, requiere que todo teléfono que desee ejecutar Windows phone 7 disponga de unas características mínimas, para asegurar la consistencia de todos los usuarios del sistema, con este modelo todos los usuarios obtienen la misma experiencia de uso y los desarrolladores sabemos que nuestra aplicación funcionara de forma idéntica en todos los dispositivos que tengan Windows phone 7, y no estamos encerrados en un solo hardware, existen distintos dispositivos de varios fabricantes, todos con unas características mínimas comunes. 1. 2. 3. 4. 5. 6. 7. 8.

Procesador: ARMv7 Cortex/Scorpion a 1 GHz. Procesador gráfico: Soporte hardware completo de Directx9 Memoria: 256Mb RAM/8GB ROM. Sensores: A-GPS, Acelerómetro, brújula, iluminación, proximidad. Cámara: 5mpx con flash y botón físico de disparo. Multimedia: Aceleración de audio y video por hardware. Pantalla: Capacitiva, resolución 800x480. Botones Físicos: Inicio, Buscar, Atrás.

 MODELO DE SOFTWARE:

Vamos a clasificar el software que funciona en windows phone 7 en 3 modelos:

o Modelo de Aplicación. En Windows Phone 7 las aplicaciones se despliegan en forma de paquete XAP, básicamente es un archivo dentro del cual podemos encontrar los ensamblados y recursos originales de nuestra aplicación. o Modelo de UI. El modelo de interface de usuario de Windows Phone 7 se compone de elementos y una sesión es el conjunto de

interacciones que realiza un usuario sobre nuestra aplicación e incluso puede involucrar a otras aplicaciones. o Integración con la Nube. Windows Phone 7 nace con una clara integración con la nube. Por defecto tenemos integración con servicios como Exchange, Google Mail, Hotmail, Xbox Live, Skydrive, Facebook o Bing. En la versión actual del kit de desarrollo no existen APIs que permitan a nuestras aplicaciones acceder a estos servicios directamente, pero se espera que aparezcan en próximas actualizaciones.

Android: Android está presente en una variedad enorme de dispositivos de muchos fabricantes, ya que dicho fabricante no tiene que pedirle permiso a google para usarlo. Para programar en Android se usa principalmente Java, aunque de nuevo se puede desarrollar en otros lenguajes. También necesitas hacer un único pago de 25 dólares para poder acceder a la consola de desarrollar si quieres subir tus aplicaciones a la play store.  Arquitectura: Android es una plataforma para dispositivos móviles que contiene una pila de software donde se incluye un sistema operativo, middleware y aplicaciones básicas para el usuario. La siguiente imagen muestra la arquitectura diseñada por capas que muestra Android, cada una de estas capas utiliza servicios ofrecidos por las anteriores, y ofrece a su vez los suyos propios a las capas de niveles superiores.

o Aplicaciones: Este nivel contiene, incluidos por defecto de Android como aquellos que el usuario vaya añadiendo posteriormente, ya sean de terceros empresas o de su propio desarrollo. Todas estas aplicaciones utilizan los servicios, las API y librerías de los niveles anteriores. Framework de aplicación: Representa fundamentalmente el conjunto de herramientas de desarrollo de cualquier aplicación. Toda aplicación que se desarolle para Android ya sean las propias del dispositivo. Todo aplicación que se desarrolle para Android, ya sean las propias del dispositivo, los desarrolladas por google o terceras compañías o incluso las que el propio usuario.

Entre las API más importante ubicada aquí, se pueden encontrar la siguiente:  Activity Maneger: conjunto de API que gestiona el ciclo de vidad de las aplicaciones en Android.  Windows Manager: Gestiona las ventanas de las aplicación y utiliza la librería Surface Manager.  Telephone Manager: Incluye todas las API vinculadas a las funcionalidades propias del teléfono (llamadas, mensajes, etc.).  Content Provider: Permite a cualquier aplicación compartir sus datos con las demás aplicaciones de Android. Por ejemplo, gracias a esta API la información de contactos, agenda, mensajes, etc. Será accesible para otras aplicaciones.  View System: Proporciona un gran número de elementos para poder construir interfaces de usuario (GUI), como listas, mosaicos, botones, ”check-boxes” , tamaño de ventanas, control de interfaces mediante teclado, etc. Incluye también algunas vistas estándar para las funcionalidades más frecuentes.  Location Manager: Posibilita a las aplicaciones la obtención de información de localización y posicionamiento.  Notificación Manager: Mediante el cual las aplicaciones, usando un mismo formato, comunican al usuario eventos que ocurran durante su ejecución: una llamada entrante, un mensaje recibido, conexión Wi-fi disponible, ubicación en un punto determinado, etc. Si llevan asociado alguna acción, en Android denominado Intent, (por ejemplo, atender una llamada recibida) ésta se activa mediante un simple clic.  XMPP Servicie: Colección de API para utilizar este protocolo de intercambio de mensajes basados en XML

o Librerías: La siguiente capa se corresponde con las librerías utilizadas por Android. Estas han sido escritas utilizando C/C++ y proporcionan a Android la mayor parte de sus capacidades más características junto al núcleo basado en Linux, estas librerías constituyen en el corazón de Android. Entre las librerías más importantes ubicada aquí, se pueden encontrar la siguiente:









   

Librería libc: incluye todas las cabeceras y funciones según el estándar del lenguaje C. Todas las demás librerías se definen en este lenguaje. Librería Surface Manager: Es la encargada de componer los diferentes elementos de navegación de pantalla. Gestiona también las ventanas pertenecientes a las distintas aplicaciones activas en cada momento. OpenGL/SL y SGL: Representan las librerías gráficas y, por tanto, sustentan la capacidad grafica de Android. OpenGL/SL maneja gráficos en 3D y permite utilizar, en caso de que esté disponible en el propio dispositivo móvil, el hardware encargado de proporcionar gráficos 3D. Por otro lado, SGL proporciona gráficos en 2D, por lo que será la librería más habitualmente utilizada por la mayoría de las aplicaciones. Una característica importante de la capacidad grafica de Android es que es posible desarrollar aplicaciones que combinen gráficos en 3D y 2D. Librería Media Libraries: Proporciona todas los códecs necesarios para el contenido multimedia soportado en Android(video, audio, imágenes estáticos y animales,etc) FreeType: Permite trabajar de forma rápida y sencilla con distintos tipos de fuentes. Librerías SSL: Posibilita la utilización de dicho protocolo para establecer comunicación seguras. Librería SQLite: Creación y gestión de bases de datos relacionales. Librería WebKit: Proporciona un motor para las aplicaciones de tipo navegador y forma el núcleo del actual navegador incluido por defecto en plataforma Android.

o Tiempo de Ejecución de Android: Al mismo nivel que las librerías de Android se sitúan le entorno de ejecución. Éste lo constituyen las Core libraries, que son librerías con multitud de clases Java y la maquina visual Dalvik. o Núcleo Linux : Android utiliza el núcleo de Linux 2.6 como una capa de abstracción para el hardware disponible en los dispositivos móviles. Esta capa contiene los drivers necesarios para que cualquier componente hardware pueda ser utilizado mediante las llamadas correspondientes. Siempre que un fabricante incluye un nuevo elemento de hardware, lo primero que se debe realizar para que pueda ser utilizado desde

Android es crear las librerías de control o drivers necesarios dentro de este kernel de Linux embebido en el propio Android.