Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
Clase 13: Sistemas Operativos y Middleware EmbebidoSistemas Embebidos
Prof: Lic. Jose H. Moyano
Departamento de Ciencias e Ingenierıa de la Computacion
2019
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 1 / 52
Ejemplos de SO embebidos
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 2 / 52
Ejemplos de SO Embebidos
Al hablar de sistemas embebidos hay que tener presente el amplio espectro desistemas que existen:
I En un extremo estan aquellos sistemas con baja ocupacion de memoria pensadospara dispositivos con recursos limitados.
I En el otro extremo se encuentran los sistemas que ejecutan sobre procesadores deaplicacion con prestaciones cada vez mayores (sistemas cada vez mas parecidos alos de escritorio).
Las alternativas en cuanto a SO Embebidos son mucho mas numerosas que paraSO de escritorio.
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 3 / 52
Salvo RTOS
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 4 / 52
Salvo RTOS
Salvo es un sistema operativo de “tiempo real” comercial.
Corre en sistemas de bajo costo y con recursos muy limitados (baja utilizacion dememoria).
Caracterısticas:I Multitarea cooperativa (menos demandante en memoria, el RTOS no guarda
informacion del contexto ni realiza cambios de contexto).I Planificacion basada en prioridades (16 prioridades distintas)I Tareas de igual prioridad planificadas round-robinI Semaforos binarios y contadoresI Colas de Mensajes
No es apropiativo es cooperativo, las tareas deben ceder el procesadorvoluntariamente.
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 5 / 52
Salvo RTOS
¿Como puede un RTOS funcionar si no es apropiativo?
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 6 / 52
Procesadores soportados
8051 family and its derivatives
ARM R© ARM7TDMI R© and CortexTM-M3
Atmel R© AVR R© and MegaAVRTM
Motorola M68HC11
Microchip PIC12—16—17—18 PICmicro R© MCUs, Microchip PIC24 MCUs anddsPIC R© DSCs, Microchip PIC32TM MCUs
entre otros. . .
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 7 / 52
EscalabilidadMuy escalable y configurable. Se compila con la aplicacion (funciona como unabiblioteca de software).
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 8 / 52
OSEK-OS y FreeOSEK
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 9 / 52
OSEK-OS y FreeOSEK
OSEK-OS:Estandar del comite OSEK-VDX p/la industria automotriz
Superado hoy en dıa por Autosar-OS
Estandar estable, actualmente no recibe modificaciones
FreeOSEK:Implementacion libre de OSEK-OS
Sistema operativo estatico (se linkea a la aplicacion)
RTOS utilizado en el firmware del proyecto CIAA
Estandar abierto, implementacion libre
Conjunto de test cases estandar para validar el sistema
Posibilidad de obtener certificaciones del estandar
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 10 / 52
4 clases de conformidad
Solo tareas basicas:I BCC1: Una tarea por nivel de
prioridad y una activacion por tareaI BCC2: Multiples tareas por nivel de
prioridad y mas de una activacionpor tarea
Anaden tareas extendidas:I ECC1: Una tarea por nivel de
prioridad y una activacion por tareaI ECC2: Multiples tareas por nivel de
prioridad y mas de una activacionpor tarea (varias veces en la cola detareas listas)
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 11 / 52
Componentes del sistema
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 12 / 52
Flujo de trabajo
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 13 / 52
Codigo de ejemplo
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 14 / 52
Caracterısticas
Planificacion apropiativa (FULL preemptive) o noapropiativa (NON preemptive) configurable por tarea:Para tareas muy cortas, o mayor determinismo
Utiliza Priority Ceiling Protocol para evitar deadlocks einversion de prioridad no acotada
Gestion y declaracion explıcita de recursos
Alarmas (activar tareas, eventos o invocar callbacks)
Hookroutines, manejo de errores
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 15 / 52
Caracterısticas
Gestion de Interrupciones desde el sistema operativo:
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 16 / 52
QNX
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 17 / 52
QNX
QNX: Un RTOS comercial escalable basado en Unix que cumple con el estandarPOSIX.
Tiene una arquitectura de microkernel (mayor proteccion ante fallas en drivers yotros componentes externos al kernel).
Utiliza planificacion apropiativa basada en prioridades con herencia de prioridadespara evitar la inversion de prioridad.
Soporta multiprocesamiento.
Portabilidad (POSIX), soporte de red, filesystems, etc.
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 18 / 52
Capas
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 19 / 52
Modelo
Microkernel:I Task schedulerI Inter-process communicationI Interrupciones y timers
Lo demas ejecuta como servicios enespacio de usuario (incluso creacion deprocesos y gestion de memoria)
Ambiente unificado para aplicacionesRT y no RT.
Sistema inherentemente distribuido.
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 20 / 52
QNX Hypervisor
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 21 / 52
Linux Embebido
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 22 / 52
Linux Embebido
Existen numerosas distribuciones de linux adaptadas a Sistemas Embebidos:I Emdebian / RaspianI OpenWRTI Android*I Etc.
Requieren soporte de MMU en hardware (i.e. procesadores de aplicacion). Noexcluyente.
I Arquitecturas de 32 o 64 bitsI Requerimientos elevados en cantidad de memoria
Adaptado a la arquitectura target y al conjunto de dispositivos existentes en dichotarget.
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 23 / 52
Componentes basicos: Toolchain
Toolchain: Generar codigo p/target
ASM, Linker, GCC
Librerıas C (POSIX): glibc, eglibc,uClibc
Gdb: debugging remoto
Precompilado o generado c/herram.
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 24 / 52
Componentes basicos: BootloaderBootloader: Booteo inicial y carga de kernel
Reset vector (ROM): Carga 1st stage bootloader.
1st stage bootloader: Inicializacion basica (controlador de memoria, etc)2nd stage bootloader: Carga el Kernel de Linux
I U-Boot: estandar de-facto: ARM/PowerPC/MIPS/m68k/x86/NiosII/etcI Bareboot: diseno mas limpio que U-Boot pero menor soporte de HWI GRUB: estandar p/x86
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 25 / 52
Componentes basicos: Linux Kernel + Device TreeAdministracion de procesos y memoria, IPC, Drivers,Networking, Filesystems, Power Management
Ejecuta en modo privilegiado
Se configura (recompila) segun necesidades:
Programacion dentro del kernel:I API Distinta (no libc), no hay proteccion de memoriaI Para adaptar kernel a target o escribir device drivers
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 26 / 52
Componentes basicos: Device Tree
Device Tree: Describe el hardware (configuracion, funcionamiento). Extensible. Parte delABI del Kernel.
Separa la informacion de los dispositivos y la plataforma del kernel.
Binario separado: Device Tree Binary. El bootloader le pasa un puntero al DTB alkernel.
Device tree source (dts)
Device tree compiler (dtc)
Device tree inclusions (dtsi)
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 27 / 52
Ejemplo Device Tree
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 28 / 52
Componentes basicos: Root filesystem
Root filesystem (/): aplicac., librerıas, config., datos, etc.
Filesystems soportados:I ext2, ext3, ext4: para block devices (SD cards, discos, etc.)I jffs2, ubifs: usados en memorias flash (NAND, NOR, SPI)I squashfs: read only comprimido – contenido inmutableI vfat, ntfs: Soportados por compatibilidadI nfs, cifs: sistemas de archivo de red
Aplicaciones: init / shell / C Library / devices files. . .
Estructura de directorios: bin, dev, lib, sbin, usr/bin, usr/lib, usr/sbin, proc, sys, . . .
Busybox: comandos basicos compilados en una unica imagen ejecutable. Muyconfigurable.
Sistema funcional de mınima: Busybox + C library
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 29 / 52
Ejemplo sistema Linux Embebido
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 30 / 52
Personalizacion de Linux
Usar distribuciones binarias (ej. Debian, Gentoo, Slackware, etc.) disponiblesp/arquitecturas embebidas
Simple, rapido, poco flexible.
Configurar el sistema manualmente (no recomendable)
Usar sistemas de construccion automaticos de Linux:
Ej. Buildroot Yocto, OpenEmbedded, OpenWRT, etc.
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 31 / 52
Buildroot
Basado en herramientas bien establecidas:I kconfig (interface y configuracion), make (construccion)
Simple: es un makefile
Generacion relativamente rapida del root fs
Para sistemas pequenos a medianos:I No soporta administracion de paquetes en tiempo de ejecucionI Ciertos cambios en la configuracion suele requerir rebuilds completosI Poca posibilidad de reuso de una configuracion en otraI Para sistemas con un numero limitado de componentes
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 32 / 52
Configuracion buildrootSeleccion de arquitectura target y variantes, ABI, etc.
Seleccion de paquetes
Configuracion y gestion de dispositivos (/dev)
Soporte para bootloaders (1st y 2nd stage bootloaders)
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 33 / 52
Builroot: make menuconfig
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 34 / 52
Yocto ProjectPermite mayor flexibilidad al generar distribuciones de Linux personalizadas.Utiliza OpenEmbedded como sistema de construccion.
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 35 / 52
Yocto Project
Generacion con soporte de gestores de paquetes (runtime)
Mayor modularidad mediante:I Capas: Aislan cada una de las personalizaciones
F GeneralesF BSP (plataformas target)F Aplicacion
I Recetas: Definen la generacion de cada modulo/paqueteF Obtencion de fuentesF DependenciasF Opciones de configuracion
Bitbake: herramienta similar a make para construir la imagen del sistema y el sdk.
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 36 / 52
Android
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 37 / 52
Android
Android es el sistema operativo de la Open Handset Alliance (Google y otros) paradispositivos moviles. Es open source. No es un Linux tradicional.
Utiliza un kernel de Linux modificado.
Hasta Android 4.x integra una maquina virtual (Dalvik) optimizada paradispositivos moviles que brinda un framework de desarrollo de aplicaciones en Java.
A partir de Android 5 utiliza Android Run Time (ART), compilando programascompletos a codigo maquina nativo en su instalacion.
Soporte grafico vıa Open GL ES
Soporte para dispositivos usuales en dispositivos moviles: telefonıa, bluetooth, GPS,acelerometros, pantalla tactil, etc.
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 38 / 52
Arquitectura
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 39 / 52
Dalvik vs JVM
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 40 / 52
Dalvik vs ART
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 41 / 52
Boot sequence
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 42 / 52
Android Debug Bridge (ADB)
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 43 / 52
Otros ejemplos
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 44 / 52
Otros SO embebidos
Free RTOS: Un kernel de RTOS portable, open source, gratuito.
LynxOS: Un RTOS que conforma con POSIX basado en Linux.
eCos: RTOS open source escalable con gran soporte de HW.
VxWorks: RTOS propietario c/soporte p/Intel, ARM, MIPS, etc. Certificado deseguridad.
Windows Phone/Windows 10 Phone: Sistemas de Microsoft para Smartphones
iOS: El sistema de Apple.
etc. . .
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 45 / 52
Middleware Embebido
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 46 / 52
Middleware Embebido
La definicion de middleware es difusa.
Es software que se ha separado de la capa de aplicacion:I por ser parte de un paquete del Sistema Operativo.I por implementar funcionalidad con alto grado de reusablidad (disminuye costos,
tiempos de desarrollo y simplifica el desarrollo de la capa de aplicacion).
Se entiende por middleware aquel software que no es software de aplicacion, ni elkernel del SO, ni los drivers de dispositivos.
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 47 / 52
Middleware
Brindan un conjunto de APIs que resuelven los aspectos de infraestructura basicosy permiten concentrarse en la logica de la aplicacion.
Provee una interface que abstrae a las capas superiores de software de las inferiores.
Resulta util principalmente en presencia de multiples aplicaciones corriendo en elsistema embebido, ya que permite reusar funcionalidad comun (mayor portabilidady menor overhead).
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 48 / 52
Ejemplos de Middleware Embebido
Algunos ejemplos de Middleware Embebido implementan:I Stacks de protocolos de red,I Soporte para sistemas de archivos,I Maquinas virtuales tales como la JVM.I Frameworks particulares de aplicacion: RF, TV digital, etc.
Para aplicaciones de mayor envergadura, se tienen frameworks completos:I Java Micro Edition (Java ME)I .NET Compact FrameworkI OpenGL ESI etc.
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 49 / 52
Ejemplo: Middleware de red
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 50 / 52
Ejemplo: Graficos en Linux
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 51 / 52
ReferenciasBarr, M., Massa, A. Programming Embedded Systems: With C and GNUDevelopment Tools, 2nd Edition. O’Reilly Media. 2006. ISBN: 978–0596009830.Capıtulo 13.
Noergaard, T. Embedded Systems Architecture: A Comprehensive Guide forEngineers and Programmers. Newnes. 2005. ISBN: 978–0750677929. Capıtulo 6.
Simon, D. An Embedded Software Primer. Addison-Wesley Professional. 1999.ISBN: 978–0201615692. Capıtulos 6 y 7.
Cerdeiro, M. Introduccion a OSEK—OS — El Sistema Operativo delCIAA-Firmware, 1ra edicion. Editorial ACSE. 2015.
Di Donato, A. Android. Tutorial SASE 2014.
Petazzoni, T. Buildroot: a nice simple and efficient embedded Linux build system.Libre SW Meeting. 2012.
Petazzoni, T. Device Tree for Dummies. 2013.
Petazzoni, T. Embedded Linux Introduction. Free Electrons. 2012.
Srebro, G. BSPs Introduccion a Yocto. Tutorial. SASE 2014.
Wilmshurst, T. Designing Embedded Systems with PIC Microcontrollers: Principlesand Applications. Newnes. 2006. ISBN: 978–0750667555. Capıtulo 19.
Prof: Lic. Jose H. Moyano (Departamento de Ciencias e Ingenierıa de la Computacion)Clase 13: Sistemas Operativos y Middleware Embebido 2019 52 / 52