Sistemas Operativos para Dispositivos Mo
Sistemas Operativos para Dispositivos Mo
Sistemas Operativos para Dispositivos Mo
Ingeniería Informática
En esta unidad se estudia la arquitectura de los sistemas operativos móviles desde el núcleo hasta
las aplicaciones con las que interactúa el usuario, pasando por las librerías relacionadas con una
estructura administradora en tiempo de ejecución y el entorno de aplicaciones de apoyo.
Algunos de los sistemas operativos utilizados en los dispositivos móviles están basados en el modelo
de capas.
Kernel
El núcleo o kernel proporciona el acceso a los distintos elementos del hardware del dispositivo.
Ofrece distintos servicios a las superiores como son los controladores o drivers para el hardware, la
gestión de procesos, el sistema de archivos y el acceso y gestión de la memoria.
Middleware
El middleware es el conjunto de módulos que hacen posible la propia existencia de aplicaciones para
móviles. Es totalmente transparente para el usuario y ofrece servicios claves como el motor de
mensajería y comunicaciones, códecs multimedia, intérpretes de páginas web, gestión del
dispositivo y seguridad.
Las interfaces de usuario facilitan la interacción con el usuario y el diseño de la presentación visual
de la aplicación. Los servicios que incluye son el de componentes gráficos (botones, pantallas, listas,
etc.) y el del marco de interacción.
Aparte de estas capas también existe una familia de aplicaciones nativas del teléfono que suelen
incluir los menús, el marcador de números de teléfono etc...
También es el encargado de brindar diferentes servicios a las capas superiores como los
controladores de hardware, gestión de procesos, sistemas de archivos, además del acceso y
administración de la memoria del sistema.
Los sistemas operativos para móviles pueden basarse en núcleos Linux, tal como lo hace Android, o
hasta inclusive IOS, el SO del iPhone que utiliza un kernel heredado de Unix.
También en una gran cuota del mercado se encuentra presente Windows Mobile y RIM que utilizan
kernels propios.
Middleware
Esta capa o Middleware es el conjunto de módulos que permite que las aplicaciones diseñadas y
escritas para tales plataformas puedan ser ejecutadas.
El Middleware brinda la posibilidad de ejecutar servicios muy importantes para que otras
aplicaciones, en capas superiores de la jerarquía, puedan ejecutarse.
Estos servicios, como mencionamos son vitales para el normal funcionamiento de la estructura del
sistema operativo de nuestro móvil.
Entre los servicios que presta esta capa podemos citar los motores de comunicaciones y mensajería,
funciones de seguridad, servicios para la gestión de diferentes aspectos del móvil, ofrece servicios
claves como el motor de mensajera y comunicaciones, codecs multimedia, intérpretes de páginas
Web y servicios WAP, además de soporte para una gran variedad de servicios concernientes al
apartado multimedia que es capaz de ejecutar el móvil.
Interfaz de usuario
La interfaz de usuario es el elemento del teléfono que usualmente utilizamos para interactuar con
el aparato. Sin esta capa no sería posible utilizar nuestro dispositivo, ya que la misma presenta todos
los elementos necesarios para facilitar cualquier tipo de tarea que deseemos realizar en nuestra
terminal.
Además, incluye todos los elementos gráficos que harán posible el uso cómodo y sencillo del móvil:
botones, menús, pantallas y listas, entre otros.
Por otra parte, también coexisten en el teléfono una serie de aplicaciones que son nativas del móvil,
y que se encargan de tareas tales como menús, marcador de números de teléfono y demás.
Una de las particularidades más importantes incorporadas a la interfaz gráfica de usuario en los
últimos años ha sido, sin lugar a duda, la posibilidad de utilizar todas las funciones del teléfono
mediante el uso de los dedos de la mano, desplazando a los botones a un segundo plano en cuanto
al manejo de opciones y funciones en el móvil.
También una gran ventaja son los teclados del tipo virtual, que eventualmente reemplazarán a los
tradicionales dispositivos de entrada, permitiendo de esta manera un mejor y más liviano diseño
del móvil.
Otro punto muy interesante a tener en cuenta es la capacidad de personalización que permite la
interfaz del usuario de nuestro sistema operativo.
(informatica-hoy, s.f.)
2.2 Núcleo.
En informática, un núcleo o kernel (de la raíz germánica Kern, núcleo, hueso) es un software que
constituye una parte fundamental del sistema operativo, y se define como la parte que se ejecuta
en modo privilegiado (conocido también como modo núcleo). Es el principal responsable de facilitar
a los distintos programas acceso seguro al hardware de la computadora o en forma básica, es el
encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos
programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá
usar un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado.
Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen
implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y
proporcionar una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al
programador.
En algunos sistemas operativos, no existe un núcleo como tal (algo común en sistemas empotrados),
debido a que en ciertas arquitecturas no hay distintos modos de ejecución.
Técnica
Cuando se aplica voltaje al procesador de un dispositivo electrónico, éste ejecuta un reducido código
en lenguaje ensamblador localizado en una dirección concreta en la memoria ROM (dirección de
reset) y conocido como reset code, que a su vez ejecuta una rutina con la que se inicializa el
hardware que acompaña al procesador. También en esta fase suele inicializarse el controlador de
las interrupciones. Finalizada esta fase se ejecuta el código de arranque (startup code), también
código en lenguaje ensamblador, cuya tarea más importante es ejecutar el programa principal
(main()) del software de la aplicación.
Generalidades
En informática, los ordenadores son el núcleo del programa informático que se asegura de:
Aparte de las funcionalidades básicas, el conjunto de las funciones de los puntos siguientes
(incluidos los pilotos materiales, las funciones de redes y sistemas de ficheros o los servicios)
necesariamente no son proporcionados por un núcleo de sistema de explotación. Pueden
establecerse estas funciones del sistema de explotación tanto en el espacio usuario como en el
propio núcleo. Su implantación en el núcleo se hace con el único objetivo de mejorar los resultados.
En efecto, según la concepción del núcleo, la misma función llamada desde el espacio usuario o el
espacio núcleo tiene un coste temporal obviamente diferente. Si esta llamada de funciones es
frecuente, puede resultar útil integrar estas funciones al núcleo para mejorar los resultados.
En el caso del sistema operativo Android el kernel es de tipo Linux. Hay otros sistemas que también
utilizan Linux como kernel. El más conocido, aparte de Android, es GNU (también conocido como
GNU/Linux), cuyos máximos exponentes son Debian y Ubuntu.
2.2.1 Bibliotecas de comunicación.
Middleware o lógica de intercambio de información entre aplicaciones ("interlogical") es un
software que asiste a una aplicación para interactuar o comunicarse con otras aplicaciones, o
paquetes de programas, redes, hardware y/o sistemas operativos. Éste simplifica el trabajo de los
programadores en la compleja tarea de generar las conexiones y sincronizaciones que son
necesarias en los sistemas distribuidos. De esta forma, se provee una solución que mejora la calidad
de servicio, así como la seguridad, el envío de mensajes, la actualización del directorio de servicio,
etc.
Funciona como una capa de abstracción de software distribuida, que se sitúa entre las capas de
aplicaciones y las capas inferiores (sistema operativo y red). El middleware abstrae de la complejidad
y heterogeneidad de las redes de comunicaciones subyacentes, así como de los sistemas operativos
y lenguajes de programación, proporcionando una API para la fácil programación y manejo de
aplicaciones distribuidas. Dependiendo del problema a resolver y de las funciones necesarias, serán
útiles diferentes tipos de servicios de middleware. Por lo general el middleware del lado cliente está
implementado por el Sistema Operativo, el cual posee las bibliotecas que ejecutan todas las
funcionalidades para la comunicación a través de la red.
Definición
Historia
El origen de la palabra middleware se remonta al año 1968, en donde la palabra fue usada durante
la '1968 NATO Software Engineering Conference', siendo una idea de cómo conectar el nuevo
software con sistemas más antiguos. Durante las décadas previas a los años 1990, fue solamente
descrito como un software para la gestión de conexión en redes, pero para cuando las tecnologías
en redes alcanzaron una penetración y visibilidad suficiente, el software middleware' había
evolucionado en un conjunto de paradigmas y servicios. De esta forma se estaba ofreciendo una
manera más fácil, robusta y controlable, para construir aplicaciones distribuidas.
Taxonomía de los software middleware
La taxonomía o clasificación del software middleware puede ser descrita en dos grandes categorías:
una de integración y otra de aplicación. Estas poseen a su vez diferentes clases.
Categoría de integración
El tipo de integración que incluyen posee la capacidad de unirse con sistemas heterogéneos. Cada
middleware posee diferentes protocolos de comunicación o formas de operar en diferente
software. Los tipos de integración se pueden ver como:
Los middleware que son orientados a procesos, utilizan una comunicación sincronizada (como por
ejemplo el teléfono). Una de las características de estos, es que utilizan el client stub y el server
skeleton. El client stub convierte la petición en un mensaje que es mandado al servidor; luego el
server skeleton recibe el mensaje, lo convierte en la petición y llama a la aplicación del servidor
donde ésta es procesada. Terminado el procesamiento, ocurre el proceso inverso. El client stub
verifica los errores, envía los resultados al software que inició la petición y entonces suspenden el
proceso. Las ventajas de estos middleware es que usan un tipo estándar en nombres de servicios y
procesos remotos, pueden retornar respuesta aún con problemas en la red y pueden manejar
múltiples tipos de formatos para datos y niveles heterogéneos de sistemas de servicio. Las
desventajas son que no poseen escalabilidad, no pueden retornar la información a un programa
diferente del que realizó la solicitud (reflexión) y poseen procesos muy rígidos.
Orientados a objetos
Soportan pedidos de objetos distribuidos. La comunicación entre los objetos puede ser sincronizada,
sincronizada diferida o no sincronizada. Soportan múltiples pedidos similares realizados por
múltiples clientes en una transacción. La forma de operar es:
1. El objeto cliente llama a un método lógico para obtener un objeto remoto.
2. Un ORB Proxy (también conocido como stub) pone en orden la información (marshalling o
serialización) y la transmite a través del agente (broker).
3. El agente actúa como punto medio y contacta con diversas fuentes de información, obtiene
sus referentes IDs, recolecta información y, en ocasiones, la reorganiza.
4. El proxy remoto (también conocido como skeleton) desordena (unmarshalling o
deserialización) la información que le llega del agente y se la pasa al objeto servidor.
5. El objeto servidor procesa la información y genera un resultado que es devuelto al cliente
siguiendo los pasos inversos.
Las ventajas son que permiten generar reflexión y escalabilidad, que opera con múltiples tipos de
información y estados y que soporta procesos múltiples. Las desventajas consisten en obtener la
existencia de vínculos antes de la ejecución y de un código contenedor para algunos sistemas
heredados.
Se pueden dividir en dos tipos, espera y publicación/suscripción. El paso de espera se puede dividir
en mensaje y espera. El paso de mensaje inicia con que la aplicación envía un mensaje a uno o más
clientes, con el MOM del cliente. El servidor MOM, recoge las peticiones de la cola (Message Broker)
en un orden o sistema de espera predeterminado. Los actos del servidor MOM son como un router
y usualmente no interactúan con estas. El MOM de publicación y suscripción actúa de manera
ligeramente diferente, es más orientado a eventos. Si un cliente quiere participar por primera vez,
se une al bus de información. Dependiendo de su función, si es como publicador, suscriptor y ambas,
este registra un evento. El publicador envía una noticia de un evento al bus de memoria. El servidor
MOM envía un anuncio al subscriptor registrado cuando la información está disponible.
Orientados a componentes
Un componente es un «programa que realiza una función específica, diseñada para operar e
interactuar fácilmente con otros componentes y aplicaciones». El middleware en este caso en una
configuración de componentes. Los puntos fuertes de este middleware es que es configurable y
reconfigurable. La reconfiguración se puede realizar en tiempo de ejecución, lo que ofrece una gran
flexibilidad para satisfacer las necesidades de un gran número de aplicaciones.
Agentes
Categoría de aplicación
La clasificación por aplicación incluye los middleware que son ajustados para aplicaciones
específicas.
Los middleware para acceso a información tienen la característica de poder interactuar con diversas
fuentes de datos. En este tipo de middleware se encuentran los que procesan transacciones,
gateways de bases de datos y sistemas distribuidos de transacción/procedimiento.
Sus ventajas residen en la comunicación que tienen entre múltiples fuentes de datos, la conversión
del lenguaje de programación de la aplicación a un lenguaje aceptado por la fuente de datos de
destino y la capacidad de respuesta en un formato y lenguaje aceptable para el solicitante.
Middleware de escritorio
Este tipo de middleware asiste al usuario con la navegación web, el uso de interfaces que le permiten
encontrar páginas de su interés y detectar cambios de interés del usuario basado en su historial de
búsquedas. Provee de un servicio de identificación para un gran número de aplicaciones y
comunicación entre procesos independiente del sistema operativo, protocolo de red y plataforma
de hardware. Los middleware que se encuentran fuertemente unidos a la red se llaman servidores
de aplicaciones, ya que mejoraran el rendimiento, disponibilidad, escalabilidad, seguridad,
recuperación de información, y soportan la administración colaborativa y su uso. Los middleware
pueden contactar directamente a la aplicación ganando mejor comunicación entre el servidor y el
cliente. Otros servicios importantes dados por este tipo de middleware son servicios de directorios,
correos electrónicos, cadenas de suministros de gran tamaño, accesos remotos a información,
descarga de archivos, accesos a programas y acceso a aplicaciones remotas.
Las ventajas de este tipo de middleware son que proveen un proceso de decisión que determina el
mejor criterio para resolver procesos sensibles al tiempo, y la posibilidad de ayudar a los sistemas
operantes en la localización de recursos cuando tienen tiempos límites de operación.
Los middleware multimedia son una rama mayor en los middleware en tiempo real. Estos pueden
manejar una gran variedad de información. Estos tipos pueden ser textos, imágenes de todo tipo
(GPS, imágenes, etc.), procesadores de lenguajes naturales, música y video. La información debe ser
recopilada, integrada y entonces enviada al usuario sensible del tiempo. Los dispositivos multimedia
pueden incluir una mezcla de dispositivos tanto físicos (parlantes, cámaras, micrófono) como
lógicos.
Middleware especialistas
En muchos casos los middleware proveen una tarea muy específica que no se puede ajustar a las
categorías anteriores. Un ejemplo serían middlewares médicos.
Aplicaciones
Los servicios de middleware proporcionan un conjunto más funcional de la API s para permitir una
aplicación a:
• Localizar claramente a través de la red, proporcionando así una interacción con otro servicio
o aplicación
• Los datos filtrados para que sean utilizables en un ambiente público a través de
anonymization process para la protección de la privacidad (por ejemplo)
• Ser independiente del servicio de red
• Ser fiable y siempre disponible
• Añadir los atributos complementarios como semántica en comparación con el sistema
operativo y servicios de red.
Middleware ofrece algunas ventajas únicas tecnológicas para los negocios y la industria. Por
ejemplo, los sistemas tradicionales de bases de datos suelen ser desplegados en entornos cerrados,
donde los usuarios acceden al sistema sólo a través de una red restringida o intranet (por ejemplo,
red interna de una empresa). Con el crecimiento de la World Wide Web, los usuarios pueden
acceder a prácticamente cualquier base de datos para las que tengan derechos de acceso adecuados
desde cualquier parte del mundo. Middleware aborda el problema de diferentes niveles de
interoperabilidad entre las estructuras de base de datos diferente. Middleware facilita el acceso a
la herencia de un sistema de gestión de bases de datos (DBMS) o aplicaciones a través de un servidor
web, sin tener en cuenta las características específicas de base de datos.
Las empresas frecuentemente utilizan las aplicaciones de middleware para vincular la información
de bases de datos de sus departamentos, tales como nóminas, ventas y contabilidad, o bases de
datos alojadas en múltiples localizaciones geográficas. En el mercado de la salud que es altamente
competitivo, los laboratorios hacen un amplio uso de aplicaciones de middleware para minería de
datos y sistema informático del laboratorio (LIS), y para combinar los sistemas de información
durante fusiones de hospitales. Los Middleware ayudan a reducir la brecha entre LISs separados en
una red de salud recién formado a raíz de una compra del hospital.
Los desarrolladores de redes inalámbricas pueden utilizar middleware para afrontar los retos
asociados a los de sensores inalámbricos de red (WSN), o tecnologías WSN. La implementación de
una aplicación de middleware permite WSN desarrolladores. Para integrar los sistemas operativos
y hardware con la amplia variedad de aplicaciones diferentes que están disponibles actualmente.
Los middleware pueden ayudar a los desarrolladores de software a no tener que escribir APIs para
todos los programas de control, que actúa como una interfaz de programación independiente para
sus aplicaciones. Para la Internet del Futuro, el funcionamiento de la red a través del monitoreo de
tráfico en escenarios multi-dominio, utilizando herramientas de mediación (middleware) es una
poderosa ayuda, ya que permiten operadores, investigadores y proveedores de servicios para
supervisar Calidad de servicio y analizar los eventuales fracasos en servicio de telecomunicaciones.
Por último, el comercio electrónico utiliza middleware para ayudar en el manejo de transacciones
rápidas y seguras a través de muchos tipos diferentes de entornos informáticos. En resumen, el
middleware se ha convertido en un elemento crítico en una amplia gama de industrias, gracias a su
capacidad de reunir los recursos a través de diferentes redes o plataformas de computación.
En 2004 los miembros de la Unión Europea de Radiodifusión (UER), han realizado un estudio de
middleware con respecto a la integración de sistemas en entornos de difusión. Se trataba de sistema
de expertos en ingeniería de diseño de 10 principales cadenas europeas, se trabajó durante un
período de 12 meses para entender el efecto de productos, principalmente de software, basado en
técnicas de producción de medios de comunicación y el diseño del sistema de radiodifusión. Los
informes resultantes 3300S Tecnología 3300 y Tech fueron publicados y están disponibles
gratuitamente desde el sitio web de la UER. (Wikipedia, Middleware, 2017)
2.2.2 Bibliotecas de nivel de usuario.
Interfaz de usuario
La interfaz de usuario es el medio con que el usuario puede comunicarse con una máquina,
equipo, computadora o dispositivo, y comprende todos los puntos de contacto entre el usuario y el
equipo.
Definición
La interfaz de usuario es el espacio donde se producen las interacciones entre seres humanos y
máquinas. El objetivo de esta interacción es permitir el funcionamiento y control más efectivo de la
máquina desde la interacción con el humano.
Las interfaces básicas de usuario son aquellas que incluyen elementos como menús, ventanas,
contenido gráfico, cursor, los beeps y algunos otros sonidos que la computadora hace, y en general,
todos aquellos canales por los cuales se permite la comunicación entre el ser humano y la
computadora.
El objetivo del diseño de una interfaz es producir una interfaz que sea fácil de usar (explicarse por sí
misma), eficiente y agradable para que al operar la máquina dé el resultado deseado.
Funciones principales
1. Una interfaz de hardware, a nivel de los dispositivos utilizados para ingresar, procesar y
entregar los datos: teclado, ratón y pantalla visualizadora.
2. Una interfaz de software, destinada a entregar información acerca de los procesos y
herramientas de control, a través de lo que el usuario observa habitualmente en la pantalla.
3. Una interfaz de software-hardware, que establece un puente entre la máquina y las
personas, permite a la máquina entender la instrucción y al hombre entender el código
binario traducido a información legible.
Atendiendo a como el usuario puede interactuar con una interfaz, existen varios tipos de interfaces
de usuario:
Según su construcción
Valoración
El principal objetivo de una interfaz de usuario es que este pueda comunicar información a través
de ella hacia algún tipo de dispositivo o sistema. Conseguida esta comunicación, el siguiente objetivo
es el que dicha comunicación se desarrolle de la forma más fácil y cómoda posible para las
características del usuario que utiliza el servicio.
Sin embargo, las interfaces no siempre cumplen todos los objetivos, por ejemplo: como es el caso
de las consolas de línea de órdenes (CLI), que se encuentran en algunos sistemas de encaminadores
(como los NOS de los routers); algunas consolas de administración con sus intérpretes de
comandos (shell) de Unix, DOS, etcétera; y también en las consolas de administración de algunos
servidores dedicados como Microsoft Exchange Server. Estas interfaces son fáciles de usar, sin
embargo, se necesita un amplio conocimiento de la persona que las utiliza. Por lo que, tanto su
curva de aprendizaje, como el conocimiento técnico previo a su uso impiden que puedan ser
utilizadas por cualquier persona.
Si bien estas interfaces son las primeras que utilizaron las computadoras, y muchos usuarios podrían
considerarlas anticuadas, siguen siendo incluidas en nuevos dispositivos y sistemas gracias a las
ventajas que ofrecen al permitir automatizar acciones complejas mediante la creación de pequeños
programas de bajo nivel (conocidos como Script o Batch).
Por otra parte, existen interfaces que reducen significativamente la curva de aprendizaje y permiten
que usuarios sin experiencia y sin conocimientos técnicos puedan obtener resultados notables, por
ejemplo: la interfaz táctil utilizada por los sistemas operativos de iOS y Android.
Si bien el diseño de la interfaz es crítico para el manejo del dispositivo, los diseñadores al momento
de su creación ponen especial énfasis en determinar el tipo de usuario, su conocimiento y su
experiencia. Esto marcará importantes diferencias entre la interfaz de línea de comandos de un
gestor de correo electrónico, los menús flotantes para una aplicación de diseño gráfico o bien el
despliegue de información mediante una línea de tiempo en una red social.
La tendencia a futuro se vislumbra con una importante separación entre interfaces para la creación
de contenidos e interfaces para el consumo de contenidos. Como puede ser cotejado con el uso de
sistemas de código de barras, sistemas de acceso RFID Etiquetas o bien Social Networks ER, para la
creación de contenidos; y dispositivo como los llamados smartWatch, smartTV y tabletas.
Este sistema operativo gestiona el hardware del dispositivo en el que se encuentra instalado para
implementar aplicaciones nativas. El sistema viene con aplicaciones de aplicaciones como teléfono,
correo y navegador Safari que prestan servicios estándar del sistema para el usuario.
Características
Entre las características del iOS se encuentran:
• iOS se deriva del sistema operativo de Mac OS X, que está basado en Darwin BSD, un sistema
operativo Unix.
• Todo en sistema se encuentra en la partición “/root” y ocupa menos de 500MB.
• La interfaz de usuario de iOS está orientada a:
Historia cronológica
9 de enero de 2007.
Todo comenzó cuando Steve Jobs, fundador de Apple Inc, mostró el iPhone al público en la
convención Macworld 2007 en el Moscone Center en San Francisco. Apple indico que el sistema
operativo que se implementó en el dispositivo era OS X, haciendo referencian al MAC OS X para PC.
6 de marzo de 2008.
Apple presenta su primera versión beta del iPhone SDK, a partir de ese entonces se le llama iPhone
OS.
29 de junio de 2007.
Se le realiza oficialmente el lanzamiento del iPhone OS, unos meses después debido al crecimiento
de la plataforma iPhone y el incremento del iPod Touch, un dispositivo con capacidades multimedia
del iPhone pero sin la capacidad de hacer llamadas telefónicas, aumenta el interés del sistema
iPhone SDK
27 de enero de 2010
Steve Jobs, anunció el iPad, un dispositivo muy similar al iPod Touch pero con un enfoque más
orientado hacia la industria de contenidos. Un dispositivo apoyado en una pantalla táctil que viene
acompañado de la aplicación oficial iBooks para la compra y lectura de libros electrónicos y ya en
abril existían 185 mil aplicaciones instalables y disponibles para el iPhone OS.
17 de junio de 2010
Jobs presenta el iPhone y decide llamar a su sistema operativo oficialmente iOS, porque puede
funcionan en tres dispositivos distintos.
Versiones
El sistema operativo iOS ha tenido una cantidad significativa de versiones y mejoras a lo largo del
tiempo desde su oficial lanzamiento en el 2007. La última versión actual de iOS es la 5.0.1 para
dispositivos como el iPhone, Ipod touch y iPad que fue lanzado el 10 de noviembre del 201, además
existe otra versión que está en etapa de pruebas actualmente, la versión 5.1. Para llegar hasta los
avances que hoy en día se tuvo que atravesar por el desarrollo de las siguientes versiones:
Arquitectura
El sistema operativo iOS fue desarrollado usando el conocimiento del sistema operativo MAC OS X.
La arquitectura de iOS constituido por una serie de capas o niveles de abstracción, las cuales son:
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
Es la 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 sitúa 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:
• Gestión de memoria virtual
• Gestión procesos, hilos, el manejo de la memoria y comunicación entre procesos.
• Gestión del sistema de archivos.
• Gestión del acceso a red de bajo nivel.
• 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á restringido a un conjunto limitado de
framework del sistema y aplicaciones.
Entre las principales tecnologías disponibles de alto nivel en 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:
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 un objeto 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.
ARP viene a reemplazar el estilo un estilo de gestión de memoria presente en versiones anteriores.
Todas las aplicaciones que se crean de manera automática usan ARC
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 cuentas de usuario iTunes.
La biblioteca SQLite
Capa media
Conocida también como capa de “medios de comunicaciones”. Es una interfaz basada en una mezcla
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:
Tecnología de audio
Las tecnologías de audio disponibles en el IOS están diseñadas para proporcionar una excelente
experiencia de audio para los usuarios que incluye la capacidad de reproducir audio de alta calidad,
grabar audio de alta calidad, y activar la función de vibración en determinados dispositivos.
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.
• 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 simples 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:
Las tecnologías de vídeo en iOS compatible con la reproducción de archivos de películas con el mov,
mp4, m4v, y .3gp, 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.
Cualquier contenido de audio que reproduzca el uso de estos marcos se realiza automáticamente
elegible para la distribución de AirPlay. Una vez usuario decide el dispositivo a sincronizar es dirigida
automáticamente por el sistema
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.
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:
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.
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.
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.
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.
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.
Reconocimiento de Gestos
• 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)
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 /Documents esté disponible para el usuario. Con esto, el usuario
podrá meter o quitar archivos de este directorio desde iTunes.
Documentos en iTunes
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.
Interfaz iOS
Pantalla externa
Ventajas
El sistema operativo iOS tiene muchas ventajas, algunas de las más importantes son:
1. Al ser propietario de Apple tiene la mayor tienda de aplicaciones del mundo, el iTunes
2. Presenta interfaz gráfica es muy agradable y sencilla. Con buen diseño, funcionalidad,
facilidad de uso y una variedad de aplicaciones y juegos.
3. Tiene perfecta integración con servicios en la nube y equipos PC como Mac, por lo que el
correo, redes sociales, fotos, imágenes, videos y demás esta sincronizado.
4. Los dispositivos presentan gran capacidad de almacenamiento interno.
5. La interfaz se bloquea sólo, ya que tiene sensores de proximidad que bloquean y oscurecen
la pantalla cuando, esto para no activar accidentalmente ninguno de los controles de la
pantalla y ahorrar batería.
6. Capacidad de multitarea, para tener varias aplicaciones en uso sin necesidad de cerrarlas y
ejecutarlas cada vez que se necesiten.
7. Las notificaciones son un gran avance, que permite tener saber que pasa en las aplicaciones
que se encuentran en segundo plano, como las redes sociales, mails o cualquier otro cambio
en las notificaciones.
8. Facilidad de uso de la cámara y edición de fotografías. Se puede entrar directamente desde
la pantalla de bloqueo, y con solo dos pulsaciones desde la pantalla de inicio. Además, tiene
la velocidad de captura de fotos superiores a la competencia. Una vez sacada la fotografía
puede editarse con la aplicación incluida en el dispositivo.
9. Integración con redes sociales, como Twitter que posibilita iniciar sesión una sola vez y luego
se puede hacer tweets desde cada aplicación compatible con un solo toque, es muy sencillo,
además se puede compartir fotos y videos con solo compartir el contenido.
10. Integración con iMessage, una nueva La nueva app de Apple que es un servicio de
mensajería que sirve para comunicarse entre dispositivos de Apple usando WI-FI o 3G.
Permite el envío mensajes normales hasta de multimedia. Esta aplicación de Apple funciona
muy rápido e integra todo en un mismo lugar, siendo cómoda de usar.
Desventajas
A pesar de tener un sinfín de grandiosas características el sistema operativo iOS tiene varias
desventajas.
1. Al ser propietario de Apple, solo puede instalarse en dispositivos de la misma empresa que
sean compatibles con tecnología táctil.
2. Las aplicaciones que se instalan muchas no son gratis y el hardware que soporte el sistema
operativo tiene un elevado precio.
3. No cuenta con servicios de radio FM, por lo que solo puede reproducir audio almacenado
en el dispositivo.
4. No cuenta con un explorador de archivos que permita ver todas las carpetas incluidas en
la memoria.
5. El diseño del iOS es cerrado, es quiere decir menos posibilidades de cambiar la forma de
funcionar del teléfono y hay un control rígido de las aplicaciones publicadas para iOS.
6. No se pueden personalizar tonos, es decir, crear tonos de llamadas a partir de alguna
canción almacenada, comúnmente usado para establecer algún tono a un contacto.
(Porras, 2012)
Mapa conceptual de la arquitectura de los sistemas operativos móviles en general, la arquitectura de
S. O. Android, iOS y otro a elección del alumno.
Windows
General Android iOS
Phone
Application: Aplicaciones de apple y terceros
Interfaz de usuario: Elemento para interactuar Aplicaciones: Inicio, contactos, telefono, Applications: Frameworks, Silverlight, XNA,
con el dispositivo navegador, etc. HTML/JavaScript, CLR
Librerias nativas: System C, OpenCORE, Core services: Address Book, Core Foundation,
Middleware: Brinda la posibilidad de ejecutar Surface manager, WebKit, SGL, OpenGL ES, Core Location, CFNetwork, SQLite, XML Support Kernel: Security, Networking, Storage
servicios muy importantes para que otras FreeType, SQLite, SSL
aplicaciones, en capas superiores de la Hardware BSP: A-GPS, AccelerometerCompass,
jerarquía, puedan ejecutarse Runtime de Android: Máquina Virtual Dalvik o Light, Proximity, Media, Wi-Fi, Radio, Graphics
ART (en v5.0), Core libraries
Como desarrollador de aplicaciones, es importante conocer la forma en la que las distintas partes
de un dispositivo interactúan para poder crear programas mejor adaptados para obtener un
rendimiento óptimo del hardware.
El poder entender en qué nivel se ejecutará nuestro código también otorga la posibilidad de
desarrollar sistemas alternos o aumentativos que interactúen con los móviles a los que está
enfocado.
Referencias
informatica-hoy. (s.f.). Componentes de un Sistema Operativo Móvil. Recuperado el 20 de 10 de
2017, de www.informatica-hoy.com.ar: https://www.informatica-hoy.com.ar/soluciones-
moviles/Componentes-de-un-Sistema-Operativo-Movil.php
Porras, E. (11 de Abril de 2012). Sistemas operativos móviles: iOS. Recuperado el 20 de Octubre de
2017, de http://eve-ingsistemas-u.blogspot.mx: http://eve-ingsistemas-
u.blogspot.mx/2012/04/sistemas-operativos-moviles-ios.html