Upload
dodien
View
224
Download
2
Embed Size (px)
Citation preview
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 1
Facultad de IngenieríaUniversidad de Buenos Aires
75-08 Sistemas OperativosLic. Ing. Osvaldo ClúaLic. Adrián Muccio
2016
Procesos en Mobile OsProcesos en Mobile Os
75-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 2
Sistemas Operativos en MóvilesSistemas Operativos en Móviles● Poco tiempo en varias aplicaciones, interacciones
cortas. lanzamiento y conmutación (switching) rápida entre apps. (200 ms)
● Simplificar el uso de las apps (lanzamiento, cierre, inter-operación)
● Neutralidad del diseño del Sistema Operativo.● Los Teléfonos, Tablets, Phablets ( Pantalla de 130-180
mm, 5-6 pulgadas) poseen un SO principal como plataforma de software junto con un segundo SO real-time y propietario para operar aspectos de hardware como la radio
375-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 3
AndroidAndroid● Posee la mayor base instalada de TODOS
los SOs existentes.● Mobile market share > 80% (iOS 18,
Windows 1%)● Escrito en C, C++ y Java● Android Open Source Project (AOSP)
> 13.000 apps > 1M downloads> 125 apps > 100M downloads
475-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 4
Android - ContAndroid - Cont● El diseño de la interfaz está orientado a
una manipulación directa “touch” que trata de asemejar a acciones del mundo real
● Cardboard– Experiencia inmersiva 360°
● Daydream – Realidad virtual– Google lo anuncia para esta primavera
575-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 5
HistoriaHistoriaLas versiones finales son Open Source, no así las de desarrollo
2.0-2.1 Eclair 2.2 Froyo2.3 Gingerbread3.0 -3.2 Honeycomb (Tablet)4.0 Ice Cream Sandwich (Kernel 3.0)4.2 Jelly Bean4.4.3 KitKat
5.0 – 5.1 Key Lime Pie Lolipop6.0 Marshmallow
675-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 6
Historia de Android IncHistoria de Android Inc
Fundada en Palo Alto, California en 2003 Andy Rubin (Danger - apps celulares), Rich Miner (Wildfire Communications voice interface), Nick Sears (VP de T-Mobile), Chris White (diseñador en WebTV)
Adquirida por Google en 2005El primer producto Android fue desarrollado por la Open Handset Alliance
775-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 7
GeneralidadesGeneralidades● Basado en el Kernel 2.6, 3.4 o 3.10 de
Linux.Aseguran que en unos años se unirán ambos forks.No usa X.
● Incluye NFC (Near Field Communication)● Kronos OpenGL interfaz bajo nivel entre
software y aceleradores gráficos ● Perfil de Trabajo con administración separada
875-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 8
ArquitecturaArquitectura
975-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 9
Android RuntimeAndroid Runtime● Usó hasta la versión 4.4.3 una JVM
llamada Dalvik basada en Apache Harmony era JIT. No corría los bytecodes .class sino .dex
● Desde Lolipop usa Android Runtime compatible con Dalvik
● Soporta Ahead-of-time (AOT), Just in Time (JIT) y código interpretado
1075-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 10
Android Runtime - ArquitecturaAndroid Runtime - Arquitectura
Paquete
InstaladoOptimiza ciclos de CPU para ejecutarReduce el consumo de batería
Ocupa más espacioTarda más tiempo la instalación
1175-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 11
Android Run Time (ART)Android Run Time (ART)
● Compila al instalar la aplicación. AOT (Ahead of Time) Compilation.
– Mejora el tiempo de respuesta y la vida de la batería
– Aunque el código AOT no es mas rápido que el JIT (Just in Time).
– Y se pierden aspectos dinámicos ● Transforma DEX en ELF
1275-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 12
Aplicaciones AndroidAplicaciones Android
Vienen empaquetadas en un .apkUna vez instalada tiene su sandbox, cada apk es un usuario de linux con permisos y directorio propios.
Una Aplicación tiene cuatro componentesActivities, Services, Content providers y Boradcast Receivers
Se activan con un mensaje llamado Intent
1375-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 13
Aplicaciones AndroidAplicaciones Android
Los componentes están descriptos en un Manifest (XML).
Usa recursos (ej: iconos) a los que el sistema les da un resourceId.
Hay mecanismos para compartir datos entre distintas aplicaciones.
Hay una previsión para notificaciones asincrónicas
1475-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 14
Aplicaciones y ActivitiesAplicaciones y Activities
Activity es una aplicación que se comunica por medio de una pantalla con el usuario.
Generalmente full-screen pero puede usar una pantalla flotante.
Una Aplicación consiste de una o mas activities
Solo una está activa, el resto se guarda en un stack (que se recorre con la tecla Back)
1575-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 15
Activitys y ProcesosActivitys y Procesos
Cada aplicación corre en su propio proceso con su propia copia de Dalvik/ART.
Los procesos son provistos por el kernel y manejados por el Android Run Time (o Dalvik + bibliotecas).
Para mantener la respuesta del sistema, Android puede “matar” sin aviso procesos (y las aplicaciones contenidas).
1675-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 16
Zygote Y Wake LocksZygote Y Wake Locks
Zygote es la primer célula viva de un organismo. Es el proceso encargado de lanzar las Dalvik.
Se replica a si mismo, dando origen a una Dalvik ya cargada e inicializada.
El hardware de android pasa a sleep apenas queda ocioso.
Los wake locks sirven para que la aplicación quede activa
… y gastando batería ...
1775-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 17
Prioridad de una ActivityPrioridad de una ActivityEl programador extiende la class Activity
Y programa los eventos a los que responde.
Las interacciones se realizan por RPC.
Que son ruteadas por el Binder
La prioridad se determina por la de su proceso.
O por la de su interlocutor.
1875-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 18
Ciclo de Vida de una ActivityCiclo de Vida de una Activity
Active: está al tope del stack e interactuando con el usuario.
Paused: Visible pero sin foco.
Stopped: Queda en memoria pero ya terminó. Candidata al kill.
Inactive: Fuera de la memoria. Debe lanzarse nuevamente.
1975-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 19
LolipopLolipop● Responder notificaciones con pantalla
bloqueada● Las llamadas no interrumpen a las
aplicaciones (permiten ser rechazadas) ● Múltiples usuarios por teléfono(“ usuario
en la nube”)● Continuidad de aplicaciones entre
dispositivos.
2075-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 20
Apple IOSApple IOS
No confundir con Cisco/IOS.
Sistema operativo de iPhone, iPod touch, Apple TV e iPad
Basado en Darwin
Presenta 4 capas
de abstracción
Objective-C como lenguaje preferido.
2175-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 21
Darwin/XNUDarwin/XNU
X is Not Unix
Desarrollado para la NexTSTEP.
Un híbrido de Mach 3 y de 4.3BSD.Tiene un componente OO para escribir drivers, el IO Kit.
Es la base de todos los Sistemas Operativos de Mac (ARM, X86-64).
2275-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 22
Kernel HíbridoKernel Híbrido
Con características de los sistemas microkernel y de monolíticos.
Pasaje de mensajes y protección de memoria.
2375-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 23
IOSIOS
Cocoa TouchEs el framework para el desarrollo de aplicaciones
Auto-Layout y StoryBoardsMultitasking y Printing Data Protection (encriptado)Push y Local NotificationsUIState PreservationReconocimiento de gestos y display externoMVC standards
2475-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 24
IOS MultitaskingIOS Multitasking
Desde la v. 4.3, habilitada por API para:Background audio
Voice over IP
Background location
Push notifications
Local notifications
Task finishing
Fast app switching
2575-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 25
IOSIOS
Media LayerManejo de Audio, Video y Gráficos.
Audio AAC, Apple Lossless (ALAC), A-law, IMA/ADPCM (IMA4), Linear PCM, µ-law, DVI/Intel IMA ADPCM, Microsoft GSM 6.10, AES3-2003.Video .mov, .mp4, .m4v, .3gp
H264, Mpeg4
Airplay, midi, Quartz, OpenAL y OpenGL.
2675-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 26
IOSIOS
Core Services LayerServicios fundamentales usados pro las aplicaciones
iCloud, Bloqueo de Objetos, Grand Central Dispatch, SQLite, XML, InAppPurchase
Core Frameworks Foundation, AddressBook, Location, TE, Eventos, Store
2775-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 27
Core OS LayerFrameworks de bajo nivel.
Accelerate (math,DSP, vector)External Accesories (hardware externo)SecuritySystem
Threading (POSIX threads), Networking (BSD sockets), File-system access, Standard I/O, Bonjour and DNS services, Locale information, Memory allocation
IOSIOS
2875-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 28
ProcesosProcesos
Corren bajo dos UIDs, root (0), algunos del sistema y mobile (501)
No se pueden manejar en forma directa.
Al pasar a background provocan un evento y quedan suspendido.
Pueden cerrarse usando la taskbar.
Hay una aplicación que muestra todo lo que Apple permite ver.
2975-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 29
Core OS LayerFrameworks de bajo nivel.
Accelerate (math,DSP, vector)External Accesories (hardware externo)SecuritySystem
Threading (POSIX threads), Networking (BSD sockets), File-system access, Standard I/O, Bonjour and DNS services, Locale information, Memory allocation
IOSIOS
3075-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 30
iCloudiCloud
Sincroniza los datos del usuario en todos los dispositivos asociados a la cuenta de iCloud.
Usa Ubiquity Containers
Key-Value files
Document Files
Core-Data Files
3175-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 31
Captura de pantalla iPadCaptura de pantalla iPad
3275-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 32
Procesos y Tasks en XNU Procesos y Tasks en XNU Un proceso BSD tiene al menos una task.
Las tasks indican una unidad ejecutable en su ambiente de ejecución (flavor). Puede haber tasks sin procesos BSD asociados.
Algunos flavors pueden ser COCOA, Kernel, BSD, Mach Threads, pthread.
Los Threads son las unidades de ejecución.
El Kernel solo conoce los Mach Threads, el resto está mapeado.
3375-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 33
Concurrencia GCD Concurrencia GCD
Permite que las tasks corran en paralelo encolándolas y planificándolas (“routing”)
Maneja la concurrencia usando Dispatch Queues.El usuario indica las acciones atómicas usando Process Blocks o functions (closures).Maneja eventos con Dispatch Sources.Provee de agrupamientos y semáforos.
3475-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 34
Threads en IOS7Threads en IOS7
Apple trata que no se usen threads en forma directa.
Cada thread tiene unrun-loop para manejar eventos.
Un run-loop tiene un “modo” que indica que eventos recibe.
3575-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 35
Grand Central DispatchGrand Central Dispatch
Tecnología para soportar multiprocesamiento simétrico.
Desarrollado por Apple y libre desde 2009 bajo licencia Apache.
Disponible en BSD y Linux como libdispatch.
Es una implementación del patrón thread-pool
3675-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 36
IOS 8IOS 8
● Extensión de Apps– Permite a las apps presentarse como
alternativas en algunas tareas como Share, Action, Keyboard, Photo Edit, Storage Provider, Today
– Permite a las apps controlar la cámara (exposición, foco, balance de blanco, velocidad, bracket ...)
3775-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 37
IOS 8IOS 8● Extension de Apps
– Acceso a audio– Acceso a Touch id
● Extensiones a OpenGL● HealthKit Framework● HomeKit Framework● HandOff● Swift para desarrollo
● Scaling para nuevos tamaños de pantalla
● Redes privadas ad-hoc simultaneas para AirDrop y AirPlay
● Scene-kit para desarrollo de juegos
3875-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 38
IOS 9IOS 9● Pantalla partida para iPad● Picture in Picture● Gestos multi-touch. Por ejemplo para selección de texto● Mayor poder a Siri:
– Mostrame fotos de las últimas vacaciones– Recordame tal nota cuando esté en el auto– Recomendaciones basadas en estadísticas de uso
de aplicaciones, la hora del día, etc.● Mejoras en el uso de batería
3975-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 39
Vigilancia global y MóbilesVigilancia global y Móbiles
● Edward Snowden entregó al periodismo documentos que obtuvo de su empleador Booz Allen Hamilton y de la red exclusiva Five Eyes.
– Se calcula que solo se publicaron unos 26 de 58.000 documentos.
– Entre ellos un catálogo de dispositivos de intercepción.
4075-08 Sistemas Operativos Prof. Lic. Ing. Osvaldo Clúa
Lic. A MuccioFIUBA 2016 40
Remote Control SystemRemote Control System
● Una empresa ofrece una aplicación para observar y controlar funciones de:
– Wi-Fi, GPS, GPRS, recording voice, e-mail, SMS, MMS, listing files, cookies, visited URLs, cached web pages, address book, call history, notes, calendar, clipboard, list of apps, SIM change, live microphone, camera shots, support chats, WhatsApp, Skype, and Viber.