Está en la página 1de 36

INSTITUTO TECNOLÓGICO DE CHILPANCINGO

Ingeniería Informática

Sistemas Operativos para Dispositivos Móviles

Portafolio de evidencias (Bitácora) Unidad 2


Arquitectura de los Sistemas Operativos Móviles

Docente: Mercedes Hernández de la Cruz

Adonai Herrera González N. C. 13520574

Chilpancingo, Gro. Octubre 2017


Contenido
Introducción .......................................................................................................................................3
Unidad 2. Arquitectura de los Sistemas Operativos Móviles ..............................................................3
2.1 Elementos de los Sistemas Operativos para dispositivos móviles. ...........................................5
Kernel .........................................................................................................................................5
Middleware ................................................................................................................................5
Entorno de ejecución de aplicaciones ........................................................................................5
Interfaz de usuario .....................................................................................................................6
2.2 Núcleo. .....................................................................................................................................7
Técnica .......................................................................................................................................7
Generalidades ............................................................................................................................7
2.2.1 Bibliotecas de comunicación. ............................................................................................9
2.2.2 Bibliotecas de nivel de usuario. .......................................................................................15
2.3 Mapa de los Sistemas Operativos Móviles actuales. ..............................................................19
2.4 Estudio detallado de un Sistema Operativo Móvil..................................................................21
iOS ................................................................................................................................................21
Historia cronológica..................................................................................................................21
Versiones ..................................................................................................................................22
Arquitectura .................................................................................................................................23
Capa Core OS ............................................................................................................................23
Capa de Core Services. .............................................................................................................24
Capa media...............................................................................................................................27
Capa Co oa Tou h . ................................................................................................................29
Ventajas .......................................................................................................................................32
Desventajas ..................................................................................................................................33
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. .........................................................................34
Conclusiones ....................................................................................................................................35
Referencias.......................................................................................................................................36
Introducción
El presente documento es una recopilación de los temas que abarcan la unidad 2 de la materia
Sistemas Operativos de Dispositivos Móviles de la carrera de Ingeniería Informática del Tecnológico
Nacional de México.

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.

Unidad 2. Arquitectura de los Sistemas Operativos Móviles


Un sistema operativo móvil o SO móvil es un conjunto de programas de bajo nivel que permite la
abstracción de las peculiaridades del hardware específico del teléfono móvil y provee servicios a las
aplicaciones móviles, que se ejecutan sobre él. Al igual que los PCs que utilizan Windows, Linux o
Mac OS, los dispositivos móviles tienen sus sistemas operativos como Android, IOS o Windows
Phone, entre otros. Los sistemas operativos móviles son mucho más simples y están más orientados
a la conectividad inalámbrica, los formatos multimedia para móviles y las diferentes maneras de
introducir información en ellos.

Algunos de los sistemas operativos utilizados en los dispositivos móviles están basados en el modelo
de capas.

Capas de un sistema operativo móvil

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.

Entorno de ejecución de aplicaciones

El entorno de ejecución de aplicaciones consiste en un gestor de aplicaciones y un conjunto de


interfaces programables abiertas y programables por parte de los desarrolladores para la creación
de software.
Interfaz de usuario

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...

(Wikipedia, Sistema operativo móvil, 2017)


2.1 Elementos de los Sistemas Operativos para dispositivos móviles.
Kernel
Una de las más importantes y esenciales piezas que componen cualquier sistema operativo, sea el
de nuestro móvil, o el de la PC, es el denominado núcleo o Kernel, el cual es la capa de software que
permite el acceso a los diferentes elementos de hardware que conforman nuestro móvil.

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.

En el caso de Android y el de RIM, ambos sistemas operativos presentan la particularidad de contar


con un motor java en el desarrollo de sus núcleos.

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.

Su funcionamiento es totalmente trasparente para el usuario, no debiendo realizar ninguna acción


ni configurar alguna para su correcto desenvolvimiento.

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.

Entorno de ejecución de aplicaciones


Esta capa provee de todos los elementos necesarios para la creación y desarrollo de software a los
programadores, es decir contiene elementos que serán de gran ayuda a los mismos, en el momento
de escribir aplicaciones compatibles con ese sistema operativo.
Entre los servicios que los programadores pueden encontrar, se destacan un gestor de aplicaciones
y una serie de interfaces programables (APIs) o "Application Programming Interface" abiertas.

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.

Esta tendencia se convertirá paulatinamente en un estándar de la industria. Empresas como Apple,


RIM, Microsoft, Google y Symbian, hace algunos años que incorporan este tipo de tecnología, pero
sólo en sus móviles de gama más alta.

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.

También puede aplicarse en el caso del sistema operativo IOS.

Generalidades
En informática, los ordenadores son el núcleo del programa informático que se asegura de:

• La comunicación entre los programas que solicitan recursos y el hardware.


• Gestión de los distintos programas informáticos (tareas) de una máquina.
• Gestión del hardware (memoria, procesador, periférico, forma de almacenamiento, etc.)

La mayoría de las interfaces de usuario se construyen en torno al concepto de núcleo. La existencia


de un núcleo, es decir, de un único programa responsable de la comunicación entre el hardware y
el programa informático, resulta de compromisos complejos referentes a cuestiones de resultados,
seguridad y arquitectura de los procesadores. El núcleo tiene grandes poderes sobre la utilización
de los recursos materiales (hardware), en particular, de la memoria.
Funciones generalmente ejercidas por un núcleo
Los núcleos tienen como funciones básicas garantizar la carga y la ejecución de los procesos, las
entradas/salidas y proponer una interfaz entre el espacio núcleo y los programas del espacio del
usuario.

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.

(Wikipedia, Núcleo (informática), 2017)

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

Es el software que proporciona un enlace entre aplicaciones de software independientes.


Middleware a veces se llama a la vía que conecta dos aplicaciones y pasa los datos entre ellas. Los
middleware permiten que los datos contenidos en una base de datos puedan ser accedidos a través
de otra, ahorrando tiempo a los programadores.

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

Esquema taxonomía de 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:

Orientados a procedimiento o procesos

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.

Orientados a mensajes (MOM, Message-oriented middleware)

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

Los agentes son un tipo de middleware que posee varios componentes:

• Entidades. Pueden ser objetos o procesos.


• Medios de comunicación. Pueden ser canales, tuberías, etc.
• Leyes. Identifican la naturaleza interactiva de los agentes. Pueden ser la sincronización o el
tipo de esquema.
Las ventajas de los middleware agentes son que la capacidad de éstos para realizar una gran
cantidad de tareas en nombre del usuario y para cubrir una amplia gama de estrategias basadas en
el entorno que les rodea. Sin embargo su implementación es complicada debido a la complejidad y
dificultades dadas por las operaciones que manejan.

Categoría de aplicación

La clasificación por aplicación incluye los middleware que son ajustados para aplicaciones
específicas.

Middleware para acceso a información (DAM, Data Access middleware)

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

Los middleware de escritorio pueden hacer variaciones en la presentación de la información pedida


por el usuario por aplicaciones de rastreo y asistencia, controlar cualquier servicio de transporte y
proveer una copia de seguridad y otras operaciones de fondo. Otras pueden ser manutención y
gráficas, ordenamientos, directorios de servicios, manejo de información de la base de datos,
manejo de procesos, calendarización de trabajos, notificación de eventos de servicios, manejo de
instalación de software, servicios de cifrado y control de accesos.

Middleware basados en la web

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.

Middleware a tiempo real

La información en tiempo real es caracterizada porque la información correcta en un instante puede


no serlo en otro. Los middleware en tiempo real soportan las peticiones sensibles al tiempo y
políticas de planificación. Esto se realiza con servicios que mejoran la eficiencia de las aplicaciones
de usuario. Los middleware en tiempo real se pueden dividir en diferentes aplicaciones:

• Aplicación de base de datos en tiempo real.


• Sensor de procesamiento.
• Transmisión de información.

La información que pasa a través de un middleware en tiempo real se ha incrementado


dramáticamente con la introducción de internet, redes inalámbricas, y las nuevas aplicaciones
basadas en la difusión.

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

Evolución de las interfaces de usuario.


CLI (Command line interface): Interfaz de línea de comandos
GUI (Graphical user interface): Interfaz gráfica de usuario
NUI (Natural user interface): Interfaz natural 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.

Normalmente suelen ser fáciles de entender y fáciles de accionar, aunque en el ámbito de la


informática es preferible referirse a que suelen ser "amigables e intuitivos" porque es complejo y
subjetivo decir "fácil".

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

Las funciones principales son las siguientes:

▪ Puesta en marcha y apagado.


▪ Control de las funciones manipulables del equipo.
▪ Manipulación de archivos y directorios.
▪ Herramientas de desarrollo de aplicaciones.
▪ Comunicación con otros sistemas.
▪ Información de estado.
▪ Configuración de la propia interfaz y entorno.
▪ Intercambio de datos entre aplicaciones.
▪ Control de acceso.
▪ Sistema de ayuda interactivo.

▪ Ejemplo de interfaz de usuario tangible, Reactable.

▪ Diagrama del proceso de entrada/salida y procesamiento entre un humano y una


máquina.
Tipos

En las interfaces de usuario se pueden distinguir básicamente tres tipos:

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.

Según la forma de interactuar del usuario

Atendiendo a como el usuario puede interactuar con una interfaz, existen varios tipos de interfaces
de usuario:

▪ Interfaz de línea de comandos (Command-Line Interface, CLI): Interfaces alfanuméricas


(intérpretes de comandos) que solo presentan texto.
▪ Interfaces gráficas de usuario (Graphic User Interface, GUI): Permiten comunicarse con la
computadora de forma rápida e intuitiva representando gráficamente los elementos de
control y medida.
▪ Interfaz natural de usuario (Natural User Interface, NUI): Pueden ser táctiles, representando
gráficamente un «panel de control» en una pantalla sensible al tacto que permite
interactuar con el dedo de forma similar a si se accionara un control físico; pueden funcionar
mediante reconocimiento del habla, como por ejemplo Siri; o mediante movimientos
corporales, como es el caso de Kinect.

Según su construcción

Pueden ser de hardware o de software:

▪ Interfaces de hardware: Se trata de un conjunto de controles o dispositivos que permiten


que el usuario intercambie datos con la máquina, ya sea introduciéndolos (pulsadores,
botones, teclas, reguladores, palancas, manivelas, perillas) o leyéndolos (pantallas, diales,
medidores, marcadores, instrumentos).
▪ Interfaces de software: Son programas o parte de ellos, que permiten expresar las órdenes
a la computadora o visualizar su respuesta.

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.

(Wikipedia, Interfaz de usuario, 2017)


2.3 Mapa de los Sistemas Operativos Móviles actuales.
A continuación, mostramos un mapa de uso de los principales sistemas operativos móviles actuales.
Esto según http://gs.statcounter.com/ hasta septiembre del 2017

La siguiente gráfica muestra la distribución porcentual de los principales sistemas operativos


móviles en septiembre del 2017 a nivel global. En ellas se observa que el sistema operativo móvil
con mayor cuota del mercado es Android con un 73.52%, en segundo lugar, se encuentra iOS con
un 19.37%, en tercer lugar, se encuentran algunos sistemas operativos desconocidos con un 3.78%.
Todos los demás sistemas operativos conforman solo el 3.32% de forma combinada.
Porcentaje de cuota del mercado. (Sept 2017)
3.78
0.94 0.77
0.01
19.37 0.02
0.49
0.02
0.33 0.02
0.25
0.05
0.21 0.05
73.52
0.17 0.16

Android iOS Unknown Nokia Unknown


Windows Series 40 Samsung BlackBerry OS
Tizen SymbianOS LG Linux
Sony Ericsson MeeGo Playstation Other

Todos los datos fueron consultados desde http://gs.statcounter.com/os-market-


share/mobile/worldwide/#monthly-201709-201709-bar

(Statcounter Globalstats, 2017)


2.4 Estudio detallado de un Sistema Operativo Móvil.
iOS
iOS es un sistema operativo móvil creado por Apple.inc inicialmente desarrollado para el iPhone y
posteriormente usado en dispositivos como el iPod Touch, iPad y el Apple TV, todos productos
originales de Apple.

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 e siste a se e ue t a e la pa ti ió / oot y o upa e os de 500MB.
• La interfaz de usuario de iOS está orientada a:

1. Proveer una interfaz amigable que incluya:


• La manipulación directa, es decir, al uso de gestos multitáctiles controlados por elementos
como deslizadores, interruptores y botones.
• La interacción con el sistema operativo incluyendo gestos como deslices, toques, pellizcos
que el usuario realiza sobre la pantalla para que active una acción. Tienen definiciones
diferentes dependiendo del contexto de la interfaz.

2. El tiempo de respuesta inmediata a las órdenes del usuario.


3. Dar soporte de acelerómetros internos y giroscopio que funcionan en respuesta ante un
movimiento o un gesto para hacer que algunas aplicaciones respondan a sacudir el dispositivo,
por ejemplo, rotar en tres dimensiones que es un resultado común de cambiar de modo
vertical al apaisado o horizontal.

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:

iOS 1.x: la primera versión


Esta versión tuvo al menos 8 actualizaciones donde se incluyeron mejoras correctivas a los errores
de seguridad y de diversas aplicaciones tanto de IPhone como IPod Touch, además se incluyeron
nuevas herramientas como el soporte de salida para TV, las aplicaciones de Apple Store, mail,
mapas, incremento de capacidad que almacenar mensajes de texto, soporte multitouch, mejoras
en la cámara y demás. Esta versión esta descontinuada.

iOS 2.x: segunda versión


Esta versión del sistema operativo venia instalada previamente en los dispositivos iPhone 3G , esta
versión incluye la capacidad de descargar aplicaciones de terceros, además de incluir capturas de
pantalla, capacidad para guardar imágenes en Safari o mail, soporte de escritura para lenguajes
asiáticos, visualización de documentos de MS office, calendarios y mucho más. Esta versión está
descontinuada.

iOS 3.x: tercera versión


Esta versión se lanzó el 17 de junio del 2009, en las actualizaciones más importantes se destaca la
función de copiar/pegar y MMS (mensajes multimedia). Otras fueron mejoras de sincronización,
bloqueo remoto del dispositivo, de seguridad anti-phishing en Safari, correcciones de fallos durante
transmisiones de video. A partir de la actualización 3.2 se es posible la compatibilidad para el
dispositivo iPad con capacidad para leer iBooks y teclado vía Bluetooth.

iOS 4.x Cuarta versión


Esta versión del sistema operativo es estable y está disponible para el público usuarios de productos
iPhone 3G (limitado), iPhone 3GS, iPhone 4, iPod touch 2G (limitado), iPod touch 3G, iPod touch 4G,
iPad e iPad 2. Se incorpora la función de multitarea, configuración para compartir internet,
diccionario personalizado, mejora en resolución de pantalla, mejoras en el zoom digital de la
cámara, posibilidad de imprimir en redes inalámbricas, búsqueda de texto en páginas web, teclados
nuevos para diferentes idiomas, entre otros.

iOS 5: quinta generación


La versión fue presentada el 6 de junio del 2011. Entre sus actualizaciones se han destacado el
iMessage que permite compartir multimedia entre dispositivos con iOS 5 vía Wi-fi, integración de
Twitter, un Game Center para amantes de los juegos y la más importante la integración de iCloud.
Fue lanzado solo para dispositivos iPhone 3GS, iPhone 4, iPhone 4S, iPod touch 3G, iPod touch 4G,
iPad e iPad 2 el 12 de octubre de 2011.

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:

1. la capa del núcleo del sistema operativo.


2. la capa de core services.
3. la capa de media.
4. la capa de "Cocoa Touch".

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
siste a ope ati o UNIX. El Ke el está asado e Ma h y es espo sa le de todos los aspe tos 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.

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:
• 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.


Co o ida ta ié o o la apa de se i ios p i ipales . Esta pe ite al usua io a ede 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 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:

• 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áticas (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 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

Objetos que bloque


Introducido en iOS 4.0. Los Block objects son un lenguaje de construcción de nivel C. Un bloque es
una función anónima y los datos van con la función, son llamados llamadas de cierre o lambda según
sea el lenguaje. Son útiles en las devoluciones de llamadas donde se necesita una forma fácil de
cambiar el código a ejecutar y sus datos asociados. Se utilizan comúnmente para:
• Reemplazo de funciones de retorno de llamadas.
• Implementación de controladores de finalización funciones.
• Realización de tareas asincrónicas con colas de envió.

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 apli a ió APP. Esta apli a ió se i ple e ta utiliza do el sto e kit
f a e o k ue p o esa las t a sa io es fi a ie as usa do las ue tas de usua io iTu es.

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
Co o ida ta ié o o apa de edios de o u i a io es . Es u a i te faz 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:

• 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
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:

• 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.
• 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 .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.

Capa 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:

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

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)

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.

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
Pantalla externa

iphone conectado a Apple TV


Está disponible la posibilidad de conectar el dispositivo a una pantalla externa a través de sus
correspondientes conectores. La información acerca del dispositivo conectado está disponible
mediante el framework UIKit.

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

Cocoa Touch: UiKit Framework, Foundation


Framework
App Model: app management, licensing,
Entorno de aplicaciones: Sistema de vistas, chamber isolation, software updates.
Entorno de ejecución de aplicaciones: Gestor
Manejador de recursos, de actividades, de UI Model: Shell frame, Session manager,
de aplicaciones y una serie de interfaces
notificaciones, de ventanas, proveedores de Direct3D, Compositor
programables (APIs) Media: Open GL ES, Quartz, Core Graphics,
contenido. Cloud Integration: Xbox LIVE, Bing, Location,
Core Audio, OpenAL, Media Player
Push notifications, Windows Live ID

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

Core OS (Darwin): System utilities, Mach Kernel

Núcleo: Permite el acceso a los diferentes


elementos de hardware que conforman Linux Kernel: Controladores de dispositivo Hardware Foundation
nuestro móvil. Hardware
Conclusiones
La arquitectura de los sistemas operativos ha evolucionado y lo seguirá haciendo continuamente
para adaptarse a las necesidades de los usuarios. Aunque cada plataforma o desarrollador agrupa
las diferentes capas según su singular visión de las cosas, todos están enfocados en brindar la mejor
experiencia de uso a los usuarios finales. Las adaptaciones también giran en torno al desarrollo del
hardware sobre el que trabaja el sistema operativo por lo que es otro factor clave determinante de
la estructura del software que se ejecuta, desde el núcleo hasta la interfaz de usuario.

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

Statcounter Globalstats. (20 de Octubre de 2017). Statcounter. Obtenido de


http://gs.statcounter.com/os-market-share/mobile/worldwide/#monthly-201709-201709-
bar

Wikipedia, c. d. (14 de Septiembre de 2017). Interfaz de usuario. Recuperado el 20 de Octubre de


2017, de Wikipedia, La enciclopedia libre.:
https://es.wikipedia.org/w/index.php?title=Interfaz_de_usuario&oldid=101881881

Wikipedia, c. d. (7 de Agosto de 2017). Middleware. Recuperado el 20 de Octubre de 2017, de


Wikipedia, La enciclopedia libre:
https://es.wikipedia.org/w/index.php?title=Middleware&oldid=100980505

Wikipedia, c. d. (20 de Octubre de 2017). Núcleo (informática). Obtenido de Wikipedia, La


enciclopedia libre:
https://es.wikipedia.org/w/index.php?title=N%C3%BAcleo_(inform%C3%A1tica)&oldid=10
2728701

Wikipedia, c. d. (19 de Octubre de 2017). Sistema operativo móvil. Obtenido de Wikipedia, La


enciclopedia libre:
https://es.wikipedia.org/w/index.php?title=Sistema_operativo_m%C3%B3vil&oldid=1027
08577

También podría gustarte