sistemas operativos embebidos y sailfish web viewsailfish es basado en un sistema operativo linux de...

87
Sistemas operativos embebidos y Sailfish Compilación bibliográfica El presente trabajo contiene toda la información acerca de los sistemas embebidos, sus componentes, estructura, plataformas, entre otra información. Además contiene información sobre Sailfish el cual es un sistema operativo para Smartphone. 2015 Luis Felipe Londoño Rojas 912044 Luis David Fandiño Vasquez 912029 Universidad Nacional de Colombia Sede Manizales 10/11/2015

Upload: vuongnguyet

Post on 30-Jan-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

Luis Felipe Londoño Rojas 912044 Luis David Fandiño Vasquez 912029

Universidad Nacional de Colombia Sede Manizales10/11/20152015

Sistemas operativos embebidos y SailfishCompilación bibliográfica

El presente trabajo contiene toda la información acerca de los sistemas embebidos, sus componentes, estructura, plataformas, entre otra información. Además contiene información sobre Sailfish el cual es un sistema operativo para Smartphone.

Page 2: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

CONTENIDO

CONTENIDO..................................................................................................................................2

INTRODUCCIÓN............................................................................................................................4

HISTORIA......................................................................................................................................5

Descripción general de los distintos sistemas operativos /subtemas (características generales, ambiente, plataforma).................................................................................................................8

Sistemas operativos embebidos...........................................................................................8

Características de los Sistemas Embebidos..........................................................................8

Plataformas..........................................................................................................................9

SISTEMA OPERATIVO SAILFISH...................................................................................................10

Clases de dispositivos selectivos.........................................................................................10

Sailfish OS SDK....................................................................................................................10

Arquitectura ARM, 64 bits x86...........................................................................................14

GNU/Linux..........................................................................................................................15

Sistema de Gestión de Paquetes: RPM Package Manager.................................................17

Versiones:...........................................................................................................................17

Licencia:..............................................................................................................................19

Modelo de Desarrollo:........................................................................................................20

Emuladores:.......................................................................................................................21

Gente alimentados OS........................................................................................................22

SISTEMAS OPERATIVOS EMBEBIDOS..........................................................................................24

PRESENTACIÓN...................................................................................................................24

ESTRUCTURA Y COMPONENTES DEL SISTEMA...................................................................25

PLATAFORMAS SOBRE LAS QUE TRABAJA..........................................................................28

PROCESO DE INSTALACIÓN................................................................................................32

GESTIÓN DE PROCESOS Y DEL PROCESADOR.....................................................................33

GESTIÓN DE MEMORIA......................................................................................................35

GESTIÓN DE MEMORIA AUXILIAR.......................................................................................37

GESTION DE ENTRADA Y SALIDA........................................................................................40

GESTIÓN DE COMUNICACIONES Y SEGURIDAD.................................................................40

SOPORTE A TIEMPO REAL...................................................................................................43

SOPORTE PARA LA NUBE E INTEGRACION A ELLA (CLOUD COMPUTING)..........................45

ANÁLISIS COMPARATIVO ENTRE PLATAFORMA TRADICIONAL Y EL SMARTPHONE...........46

ESTADISTICAS DE UTILIZACION A NIVEL MUNDIAL.............................................................50

2

Page 3: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

OTROS ASPECTOS...............................................................................................................53

RESUMEN DEL TRABAJO.............................................................................................................54

CONCLUSIONES Y OBSERVACIONES...........................................................................................60

BIBLIOGRAFÍA.............................................................................................................................61

3

Page 4: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

INTRODUCCIÓN

Un sistema operativo embebido es aquel que está integrado en los circuitos de los dispositivos electrónicos, entre estos dispositivos encontramos electrodomésticos, teléfonos móviles, radios, televisores, automóviles, lectores de códigos de barras, equipos médicos, asistentes digitales personales (PDA), etc. Estos sistemas suelen tener algunas características de los sistemas de tiempo real los cuales han sido desarrollados con el fin de con el fin de garantizar el cumplimiento de forma adecuada de las tareas teniendo en cuenta las restricciones de tiempo lo que hace necesario que el sistema sea determinista; pero los sistema operativo embebido tienen limitaciones de tamaño, memoria y consumo de electricidad que los hace especiales; y no suelen ser visibles.

Windows CE es otro ejemplo de sistema operativo embebido el cual es un integrante de la familia Windows que tiene un objetivo especial, proveer un moderno sistema operativo de plataforma cruzada, multihilado y de tamaño pequeño. Cuando se habla de tamaño, se refiere a la cantidad de memoria y de almacenamiento necesario para albergar al sistema.

Ha sido notable la importancia y el aumento de la utilidad de los sistemas operativos embebidos, pues hoy en día estamos rodeados de todo tipo de aparatos electrónicos y este tipo de sistema operativo es el más común en muchos de ellos puesto que están limitados a un número fijo y escaso de tareas.

El objetivo de esta compilación bibliográfica es el poder definir distintas etapas y componentes que integran los sistemas operativos embebidos y que le han permitido lograr un mejor rendimiento de todos los componentes electrónicos en el cumplimiento de sus funciones. Se comprende la historia, evolución y visión general de los sistemas operativos embebidos, ce y de tiempo real, conceptos del funcionamiento interno, gestión de procesos, de memoria, comunicación y seguridad, también se presentan estadísticas para medir las tendencias de uso de estos en el mercado actual.

También conoceremos el sistema operativo Sailfish el cual es un sistema operativo para Smartphone, conocer cuáles son sus características, cuál es su arquitectura además de los dispositivos móviles en los cuales este sistema operativo corre así como los emuladores que permiten simular el sistema operativo.

Conocer el funcionamiento y los detalles de este tipo de sistemas es importante para tener una visión como desarrollador que finalmente es uno de los objetivos de la carrera de Administración de Sistemas Informáticos reconociendo que cualquier desarrollo va a necesitar estar sobre un sistema operativo particular de acuerdo a las actividades que realice el mismo.

4

Page 5: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

HISTORIA

Sistemas Operativos Embebidos

A finales de los 40's el uso de computadoras estaba restringido a aquellas empresas o instituciones que podían pagar su alto precio, y no existían los sistemas operativos. En su lugar, el programador debía tener un conocimiento y contacto profundo con el hardware, y en el infortunado caso de que su programa fallara, debía examinar los valores de los registros y paneles de luces indicadoras del estado de la computadora para determinar la causa del fallo y poder corregir su programa, además de enfrentarse nuevamente a los procedimientos de apartar tiempo del sistema y poner a punto los compiladores, ligadores, etc; para volver a correr su programa, es decir, enfrentaba el problema del procesamiento serial ( serial processing ).

La importancia de los sistemas operativos nace históricamente desde los 50's, cuando se hizo evidente que el operar una computadora por medio de tableros enchufables en la primera generación y luego por medio del trabajo en lote en la segunda generación se podía mejorar notoriamente, pues el operador realizaba siempre una secuencia de pasos repetitivos, lo cual es una de las características contempladas en la definición de lo que es un programa. Es decir, se comenzó a ver que las tareas mismas del operador podían plasmarse en un programa, el cual a través del tiempo y por su enorme complejidad se le llamó "Sistema Operativo". Así, tenemos entre los primeros sistemas operativos al Fortran Monitor System ( FMS ) e IBSYS.

Posteriormente, en la tercera generación de computadoras nace uno de los primeros sistemas operativos con la filosofía de administrar una familia de computadoras: el OS/360 de IBM. Fue este un proyecto tan novedoso y ambicioso que enfrentó por primera vez una serie de problemas conflictivos debido a que anteriormente las computadoras eran creadas para dos propósitos en general: el comercial y el científico. Así, al tratar de crear un solo sistema operativo para computadoras que podían dedicarse a un propósito, al otro o ambos, puso en evidencia la problemática del trabajo en equipos de análisis, diseño e implantación de sistemas grandes. El resultado fue un sistema del cual uno de sus mismos diseñadores patentizó su opinión en la portada de un libro: una horda de bestias prehistóricas atascadas en un foso de brea.

Surge también en la tercera generación de computadoras el concepto de la multiprogramación, porque debido al alto costo de las computadoras era necesario idear un esquema de trabajo que mantuviese a la unidad central de procesamiento más tiempo ocupada, así como el encolado (spooling ) de trabajos para su lectura hacia los lugares libres de memoria o la escritura de resultados. Sin embargo, se puede afirmar que los sistemas durante la tercera generación siguieron siendo básicamente sistemas de lote.

En la cuarta generación la electrónica avanza hacia la integración a gran escala, pudiendo crear circuitos con miles de transistores en un centímetro cuadrado de silicón y ya es posible hablar de las computadoras personales y las estaciones de trabajo. Surgen los conceptos de interfaces amigables intentando así atraer al público

5

Page 6: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

en general al uso de las computadoras como herramientas cotidianas. Se hacen populares el MS-DOS y UNIX en estas máquinas. También es común encontrar clones de computadoras personales y una multitud de empresas pequeñas ensamblándolas por todo el mundo.

Para mediados de los 80's, comienza el auge de las redes de computadoras y la necesidad de sistemas operativos en red y sistemas operativos distribuidos. La red mundial Internet se va haciendo accesible a toda clase de instituciones y se comienzan a dar muchas soluciones ( y problemas ) al querer hacer convivir recursos residentes en computadoras con sistemas operativos diferentes. Para los 90's el paradigma de la programación orientada a objetos cobra auge, así como el manejo de objetos desde los sistemas operativos. Las aplicaciones intentan crearse para ser ejecutadas en una plataforma específica y poder ver sus resultados en la pantalla o monitor de otra diferente (por ejemplo, ejecutar una simulación en una máquina con UNIX y ver los resultados en otra con DOS ). Los niveles de interacción se van haciendo cada vez más profundos.

En los últimos 10 años el mundo de las comunicaciones ha cambiado drásticamente. A partir del año 1993 con el surgimiento de la WWW, una buena parte de la población del mundo tuvo acceso a una red de datos global que durante mucho tiempo fue de uso exclusivo de la comunidad académica universitaria y del departamento de defensa de los Estados Unidos de América. Este acercamiento masivo hacia esta red de redes conocida como Internet, trajo consigo muchas ventajas, la más importante de estas es sin duda la posibilidad de achicar las distancias. La World Wide Web, permitió a los usuarios de la red acceder de manera simple a una gran cantidad de información e incluso de una manera sencilla colocar la propia información al alcance de todos los demás usuarios. El navegado se volvió una herramienta de uso cotidiano en el hogar.

Con el tiempo Internet permitió realizar tareas que hace 10 años demandarían días u horas en unos pocos minutos y dio origen a nuevas ideas. La posibilidad de actuar a distancia usando a Internet como medio para poder realizar operaciones de control o mantenimiento también empezó a cobrar vigencia. Y es sobre esto lo que versa una parte importante de este trabajo, que toma como punto de partida la posibilidad y el alcance de usar a Internet como un medio de fácil acceso para permitir el control y el mantenimiento de dispositivos electrónicos. Por ejemplo usando un simple navegador se puede tener un panorama completo y en tiempo real del estado de una planta industrial, una finca o el sistema de seguridad de una vivienda, y esto puede ser controlado desde cualquier parte del mundo que tenga una conexión a Internet disponible.

Los sistemas embebidos se encuentran disponibles a cada comento de nuestra vida. El horno microondas, el auto, el ascensor, el equipo de audio, el avión son controlados por computadoras que normalmente no poseen una pantalla, un teclado o disco rígido, y no responden a lo que comúnmente denominamos PC.

Sistema Operativo Sailfish

6

Page 7: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

Sailfish es basado en un sistema operativo Linux de propósito general, ampliamente conocido como un sistema operativo móvil que combina el núcleo de Linux para un uso plataforma de hardware especial, el código abierto Mer núcleo middleware, la propia interfaz de usuario contribuyó por Jolla, y otros componentes de terceros algunas de las cuales son de software libre, y otros de los cuales son de propiedad.

Sailfish está siendo desarrollado por Jolla en cooperación permanente con la comunidad de Sailfish, el proyecto Mer y su comunidad, los miembros corporativos de la Alianza de Sailfish y varios miembros de la comunidad abierta. La comunidad Sailfish realiza solicitudes de desarrollo y decide las prioridades de desarrollo de la votación. El proyecto Mer recibe contribuciones de la comunidad Jolla, y Mer contribuye middleware para Jolla, asegurando así la compatibilidad de ambos proyectos.

Sailfish se utiliza en el teléfono inteligente Jolla, la Jolla Tablet, y por otros licenciatarios.

El sistema operativo es una continuación evolucionada de los Linux MeeGo OS previamente desarrollados por la alianza de Nokia y de Intel. El legado MeeGo está contenido en el núcleo Mer en aproximadamente el 80% de su código; de ahí el nombre Mer expande a MEego R econstructed.

Jolla y MERproject.org siguen un sistema meritocrático para evitar los errores que conducen a la interrupción entonces no anticipado del proyecto MeeGo.

Sailfish 2.0 es actualmente en desarrollo para móviles y la Jolla Tablet anunciado. OS Sailfish 2.0 se desarrolla con un modelo de integración continua, con el objetivo de proporcionar actualizaciones de software mensuales a todos los usuarios del sistema operativo Sailfish y asociados para el desarrollo. Los clientes que utilizan 1.x Sailfish con cualquier dispositivo pueden actualizarse a Sailfish 2.0.

Los principales elementos para OS Sailfish 2.0 incluyen:

Técnicamente fuerte núcleo de sistema operativo

Mejora de la compatibilidad de las aplicaciones Android

Soporte para la arquitectura Intel, incluyendo el procesador Intel Atom x3

Diseño para proporcionar visibilidad en la interfaz de usuario para los proveedores de contenidos digitales y para permitir la integración de nivel de sistema operativo para el comercio móvil

Multitarea Strong (una de las ventajas más importantes del sistema operativo y declaró ser el mejor en el mercado)

Características de privacidad y personalización fuertes

Interfaz de usuario mejorada con la nueva interfaz de usuario / UX características, incluyendo el acceso más simple golpe a las funciones principales, notificaciones mejoradas y eventos vistas.

7

Page 8: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

Descripción general de los distintos sistemas operativos /subtemas (características generales, ambiente, plataforma).

Sistemas operativos embebidos

Se entiende por sistemas embebidos a una combinación de hardware y software de computadora, sumado tal vez a algunas piezas mecánicas o de otro tipo, diseñado para tener una función específica.

Se refieren a los dispositivos, instrumentos o las grandes estructuras de ingeniería / sistemas que son capaces de tratar una o varias tareas preestablecidas. El equipo de control todo es construido o en "incrustados" en el dispositivo.

Teléfonos móviles y asistentes digitales personales (PDA) son ejemplos de dispositivos con sistemas embebidos. Ambos realizan un determinado número de tareas que son controladas por una computadora incorporada en el sistema. Sistemas de guía inercial utilizado para la navegación aérea o como parte del paquete de la orientación de los misiles y bombas inteligentes, son ejemplos de instrumentos con sistemas embebidos. Un sistema de control de tráfico (que controla a distancia los semáforos, sin necesidad de intervención humana) es un ejemplo de una gran estructura con una ingeniería de sistemas embebidos.

En verdad, la línea entre "incrustados" los sistemas y los sistemas de propósito general (que puede o no contener un sistema embebido) se está convirtiendo en borrosa a medida que la tecnología avanza.

Características de los Sistemas Embebidos

La principal característica de un sistema embebido es que se supone que manejar unas simples tareas, a pesar de los pasos involucrados en la manipulación o el cumplimiento de esa tarea puede ser tan complejo como cualquier programa de ordenador. Un controlador de videojuego, por ejemplo, se puede decir que tienen tareas simples - y cargar el juego permiten al jugador controlar a través de comandos introducidos a través del auricular. En verdad, sin embargo, un juego (los juegos más recientes, especialmente construido para la X-box o PS3) pasa por una serie de medidas y acciones que requieren la mayor cantidad de poder de procesamiento como un equipo.

Entre las características de los modernos sistemas embebidos son

Interfaces de Usuario

8

Page 9: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

Sistemas simples que se derivan de Funcionalidad limitada Plataformas de CPU con microprocesadores o microcontroladores

Plataformas

Linux

Linux para los dispositivos embebidos comenzó con el soporte del kernel y el

compilador para los microprocesadores más populares de 32 bits: x86, ARM, PowerPC, MIPS y SH. Y luego continuó con la aparición de diferentes distribuciones de Linux con soporte para características específicas de los sistemas embebidos. Gracias a la disponibilidad del código fuente, a la ausencia de ‘royalties’ y al soporte de los micros y tecnologías modernas, Linux está actualmente atacando de forma feroz el mercado de los RTOS.

Windows CE.

Aunque Microsoft ha mantenido a los fabricantes de sistemas operativos alternativos a Windows contra la pared en lo que se refiere a equipos de sobremesa, su posición en la batalla por la supremacía en el terreno de los sistemas operativos para dispositivos que no fueran PC era vulnerable.

De ahí que Microsoft da un paso más en este sector, lanzando la versión para dispositivos embebidos. Esta decisión parece ir en consonancia con las predicciones que apuntan a una progresiva inclusión de microprocesadores en casi cualquier tipo de aparatos (frigoríficos, coches, etc). Además, con esta iniciativa Microsoft hace frente a la competencia surgida por parte, por ejemplo, de Linux que, según muchos analistas, permite reducir costes, ya que no carga el precio de los royalties.

También existe la opción de utilizar un sistema propietario como los desarrollados por la compañía Wind River Systems cuyo punto fuerte es su gran capacidad para trabajar en tiempo real, su alta resistencia a fallos y la posibilidad de procesar comandos de forma inmediata. Sería el caso, por ejemplo, de aparatos médicos que deben ser muy fiables y rápidos.

Dos

El DOS está estrechamente ligado al progresivo desarrollo de los microprocesadores de arquitectura x86 de Intel. Y es que es un sistema operativo que hay que conocer porque sigue estando en vigor gracias a su estabilidad. ¿Qué por qué es tan estable? Pues porque se desarrollaba en paralelo con la tecnología de Intel e IBM y porque es

9

Page 10: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

un sistema operativo muy simple, monousuario y monotarea. En otras palabras, DOS sólo ejecuta un programa cada vez. Es obvio, que para un ordenador personal el DOS resulta bastante inútil. Pero ¿y para un dispositivo electrónico?

Java

La tecnología Java es cada vez más utilizada en sistemas embebidos avanzados, debido a sus capacidades inherentes de soporte de red, optimización de dispositivos y procesado de datos. La mayoría de las características de la plataforma Java SE pueden ser ahora empleadas para el desarrollo embebido, gracias a la capacidad cada vez mayor del nuevo hardware disponible en el mercado

SISTEMA OPERATIVO SAILFISHSistema Operativo Sailfish

El sistema operativo de Sailfish y Sailfish kit de desarrollo de software (SDK) se basan en el kernel de Linux y Mer. Sailfish OS incluye una multitarea shell gráfica llamada "Lipstick" construido por Jolla en la parte superior del protocolo de servidor de visualización Wayland. Jolla utiliza gráficos controladores de dispositivos libres y de código abierto, pero el Hybris biblioteca permite el uso de propiedad controladores de dispositivos gráficos para Android. El objetivo declarado de Jolla es para Sailfish sea de código abierto con el tiempo.

OS Sailfish puede ejecutar Android aplicaciones a través de una capa de compatibilidad de propiedad.

Clases de dispositivos selectivos Sailfish se conoce comúnmente a ser dirigida a los dispositivos móviles, aunque como MeeGo previamente y como parte de su legado, porque alrededor del 80% del código de Sailfish es de facto MeeGo código, Sailfish se puede utilizar con cualquier dispositivo ya que es un Linux de propósito general completa OS, para dispositivos como IVI, la navegación, la televisión inteligente, ordenadores de sobremesa y portátiles, yates,, el comercio electrónico de la automoción, bienes de casa, equipos de medición y control, equipos de edificio inteligente etc .; Ver casos de uso de originales MeeGo para comparar. Consulte la Dispositivos sección para los dispositivos que ejecutan el sistema operativo de Sailfish.

Sailfish OS SDK El Sailfish OS SDK se anunció en Helsinki en Slush en 2012, y de la alfa se publicó en febrero de 2013. El SDK, tutoriales de instalación y de codificación están disponibles para su descarga gratuita desde el sitio web Sailfish OS aunque la licencia general no es de código abierto.

10

Page 11: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

SDK Sailfish utiliza Qt con VirtualBox para el desarrollo, la compilación y emulación de los propósitos, en contraste con la simulación método. Esta técnica permite la compilación del sistema operativo Sailfish y prueba completa de software desarrollada en el equipo virtual, emulando pero no simula toda la Sailfish OS. La técnica también separa las actividades de desarrollo y los efectos secundarios de todo lo demás que se ejecutan en el ordenador en particular anfitrión, dejando inalterado por el desarrollo y pruebas. De acuerdo con Jolla, el desarrollo con SDK Sailfish es el desarrollo en el sistema operativo en sí Sailfish ; no hay diferencias entre la apariencia del software desarrollado y el comportamiento en el SDK y en un dispositivo que ejecuta Sailfish OS.

La disponibilidad del código fuente para el SDK permite dar forma y reconstrucción para las empresas "o desarrolladores necesidades específicas, la creación de un entorno de contexto específico que se establece una vez y no necesita ninguna preparación al arrancar el dispositivo. El SDK se ejecuta en los sistemas operativos Android, 32- y 64-bit versiones de Linux, las versiones de 64 bits de OS X y Microsoft Windows. [15] Se puede utilizar para la elaboración de software para dispositivos OS Sailfish de fuentes de Linux. Su consola generales / modo de terminal sigue un estándar de uso común. Binarios o bibliotecas compatibles también pueden ser utilizados.

Sistema operativo Sailfish está construido como una distribución clásica Linux. El núcleo del sistema operativo se basa en el Proyecto Mer, un, distribución núcleo móvil optimizado abierta.

La firma Sailfish UI ha sido desarrollada por Jolla usando QML, un poderoso lenguaje de diseño de experiencia de usuario proporcionada por el marco de Qt. El lenguaje y las características QML dan OS Sailfish la capacidad de proporcionar un completo conjunto de elementos de interfaz de usuario, para crear interfaces de usuario, habilitados para tocar animados y aplicaciones ligeras. Jolla ha creado los bloques de construcción de interfaz de usuario para crear aplicaciones nativas con componentes personalizados llamados Sailfish sílice.

OS Sailfish también incluye la capacidad de ejecutar aplicaciones de Android ™. Se basa en las bibliotecas Android, garantizando un rendimiento comparable con el medio ambiente nativo.

Con Sailfish usando QT5 y tecnología Wayland, adaptaciones de hardware hechas para Android existente se puede aprovechar, lo que facilita considerablemente el trabajo de adaptación del hardware necesario para soportar el sistema operativo.

Todo es un paqueteOS Sailfish está construido para requerir cada detalle desarrollo empaquetada para facilitar el mantenimiento, que van desde tradicionales (múltiple) binarios arquitectura, la documentación del proyecto a los scripts de construcción de imagen,

11

Page 12: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

traducciones, documentación de procesos y auto registros de cambios generados a partir de git.

Sistema modularOS y la integración de Sailfish está diseñado para ser modular por naturaleza y apoyar fácilmente múltiples objetivos de hardware. Componentes de terceros se mantienen por separado como características y se enchufan en en el sistema operativo principal. Actualmente, Sailfish UX es parte del sistema central, pero a su debido tiempo, se separa así para permitir flexibilidad en la construcción del sistema operativo.

1. Hardware

2. Adaptaciones del núcleo para hardware especifico

3. Núcleo MER

12

Page 13: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

1. Mer: Sistemas esenciales, Multimedia, Gráficos (X11), Comunicaciones, Personal Information Management, Software de administracición, Seguridad, Construcción y Desarrollo.

Mer es una distribución (de GNU/Linux) basada en el trabajo del proyecto MeeGo, optimizada para dispositivos móviles, dirigida a los fabricantes de estos y basada en la biblioteca de desarrollo de aplicaciones Qt, en la versión 5 del estándar HTML y en el lenguaje de programación JavaScript. El producto de software en cuestión es desarrollado de tal manera que cualquier interesado puede participar. El modelo de gobierno que rige el proyecto se conoce como "Meritocracia".

2. Qt: Qt, Qt Mobility, Qt Webkit

Qt es una biblioteca multiplataforma ampliamente usada para desarrollar aplicaciones con interfaz gráfica de usuario, así como también para el desarrollo de programas sin interfaz gráfica, como herramientas para la línea de comandos y consolas para servidores.

Qt es desarrollada como un software libre y de código abierto a través de Qt Project, donde participa tanto la comunidad, como desarrolladores de Nokia, Digia y otras empresas.2 Anteriormente, era desarrollado por la división de software de Qt de Nokia, que entró en vigor después de la adquisición por parte de Nokia de la empresa noruega Trolltech, el productor original de Qt, el 17 de junio de 2008.3 Qt es distribuida bajo los términos de GNU Lesser General Public License (y otras). Por otro lado, Digia está a cargo de las licencias comerciales de Qt desde marzo de 2011.

Qt es utilizada en KDE, entorno de escritorio para sistemas como GNU/Linux o FreeBSD, entre otros. Qt utiliza el lenguaje de programación C++ de forma nativa, adicionalmente puede ser utilizado en varios otros lenguajes de programación a través de bindings. También es usada en sistemas informáticos empotrados para automoción, aeronavegación y aparatos domésticos como frigoríficos.4

Funciona en todas las principales plataformas, y tiene un amplio apoyo. El API de la biblioteca cuenta con métodos para acceder a bases de datos mediante SQL, así como uso de XML, gestión de hilos, soporte de red, una API multiplataforma unificada para la manipulación de archivos

13

Page 14: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

y una multitud de otros para el manejo de ficheros, además de estructuras de datos tradicionales.

Qt es utilizada principalmente en Autodesk Maya,5 6 The Foundry's Nuke, Adobe Photoshop Album, Google Earth, Skype,7 VLC media player, VirtualBox, Dassault DraftSight,8 9 y Mathematica,10 y por la Agencia Espacial Europea,11 DreamWorks,12 13 HP,14 KDE,15 Lucasfilm,16 17 Panasonic,18 Philips,19 Samsung,20 Siemens,21 Volvo,22 Walt Disney Animation Studios23 y Research In Motion.24

4. Interfaz de usuario, y Capa intermedia

Wayland es un protocolo de servidor gráfico y una biblioteca para Linux que implementa este protocolo.2

Wayland proporciona un método para que los gestores de composición de ventanas se comuniquen directamente con las aplicaciones y el hardware de vídeo. Se espera que también sea posible la comunicación con hardware de entrada usando otras bibliotecas. Las aplicaciones renderizan los gráficos en sus propios buffers y el gestor de ventanas se convierten en el servidor gráfico, haciendo una composición con esos buffers para formar la visualización en pantalla de las ventanas de las aplicaciones. Este es un enfoque más simple y más eficiente que usar un gestor de composición de ventanas con el X Window System.3

Los gestores de composición de ventanas existentes, como KWin y Mutter, se espera que implementen soporte para Wayland de forma directa, para convertirse en compositores Wayland/servidores gráficos.

5. Aplicaciones

1. Jolla: Telefono, Mensajes, Contacto, Cámara, Galleria imágenes, Configuraciones, etc.

2. Terceros: Navegador web, aplicaciones Android, Mapas

3. Adaptaciones de Socios: 3.er y 4.º nivel de aplicaciones.

6. Tienda de Aplicaciones

7. Repositorios: oficial, socios, comunitarios (OpenRepos)

Sistema Operativo Sailfish

Arquitectura ARM, 64 bits x86ARM es una arquitectura RISC (Reduced Instruction Set Computer=Ordenador con Conjunto Reducido de Instrucciones) de 32 bits y recientemente con la llegada de su versión V8-A también de 64 Bits desarrollada por ARM Holdings. Se llamó Advanced RISC Machine, y anteriormente Acorn RISC Machine. La arquitectura ARM es el conjunto de

14

Page 15: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

instrucciones de 32 y 64 bits más ampliamente utilizado en unidades producidas.1 2 Concebida originalmente por Acorn Computers para su uso en ordenadores personales, los primeros productos basados en ARM eran los Acorn Archimedes, lanzados en 1987.

La relativa simplicidad de los procesadores ARM los hace ideales para aplicaciones de baja potencia. Como resultado, se han convertido en dominante en el mercado de la electrónica móvil e integrada, encarnados en microprocesadores y microcontroladores pequeños, de bajo consumo y relativamente bajo costo. En 2005, alrededor del 98% de los más de mil millones de teléfonos móviles vendidos utilizaban al menos un procesador ARM.3 Desde 2009, los procesadores ARM son aproximadamente el 90% de todos los procesadores RISC de 32 bits integrados, cabe hacer mención que no existe una tabla de equivalencias de rendimiento entre las distintas tecnologías de procesadores4 y se utilizan generalmente en la electrónica de consumo, incluyendo PDA, tabletas, teléfonos móviles, Teléfono inteligente, Relojes inteligentes, videoconsolas portátiles, calculadoras, reproductores digitales de música y medios (fotos, vídeos, etc.), y periféricos de ordenador como discos duros y routers.

La arquitectura ARM es licenciable. Las empresas que son titulares de licencias ARM actuales o anteriores incluyen a Alcatel-Lucent, Apple Inc., AppliedMicro, Atmel, Broadcom, Cirrus Logic, Digital Equipment Corporation, Ember, Energy Micro, Freescale, Intel (a través de DEC), LG, Marvell Technology Group, Microsemi, Microsoft, NEC, Nintendo, Nokia, Nuvoton, Nvidia, Sony, MediaTek, NXP (antes Philips Semiconductors), Oki, ON Semiconductor, Psion, Qualcomm, Samsung, Sharp, STMicroelectronics, Symbios Logic, Texas Instruments, VLSI Technology, Yamaha, y ZiiLABS.

Los procesadores ARM son desarrollados por ARM y los titulares de licencias de ARM. Prominentes familias de procesadores ARM desarrollados por ARM Holdings incluyen el ARM7,V8-A ARM9, ARM11 y Cortex. Los procesadores ARM notables desarrollados por los licenciatarios incluyen Applied Micro Circuits Corporation X-Gene, DEC StrongARM, Freescale i.MX, Marvell Technology Group XScale, NVIDIA Tegra, Qualcomm Snapdragon, Texas Instruments OMAP, Samsung Exynos, Apple Ax, ST-Ericsson NovaThor, Huawei K3V2 e Intel Medfield.

GNU/LinuxGNU/Linux es uno de los términos empleados para referirse a la combinación del núcleo o kernel libre similar a Unix denominado Linux con el sistema operativo GNU. Su desarrollo es uno de los ejemplos más prominentes de software libre; todo su código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la GPL (Licencia Pública General de GNU, en inglés: General Public License) y otra serie de licencias libres.

15

Page 16: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

A pesar de que "Linux" se denomina en la jerga cotidiana al sistema operativo, este es en realidad sólo el Kernel (núcleo) del sistema. La verdadera denominación del sistema operativo es "GNU/Linux" debido a que el resto del sistema (la parte fundamental de la interacción entre el hardware y el usuario) se maneja con las herramientas del proyecto GNU (www.gnu.org) y con entornos de escritorio (como GNOME), que también forma parte del proyecto GNU aunque tuvo un origen independiente. Como el Proyecto GNU destaca, GNU es una distribución, usándose el término sistema operativo en el sentido empleado en el ecosistema Unix, lo que en cualquier caso significa que Linux es solo una pieza más dentro de GNU/Linux. Sin embargo, una parte significativa de la comunidad, así como muchos medios generales y especializados, prefieren utilizar el término Linux para referirse a la unión de ambos proyectos. Para más información consulte la sección "Denominación GNU/Linux" o el artículo "Controversia por la denominación GNU/Linux".

A las variantes de esta unión de programas y tecnologías, a las que se les adicionan diversos programas de aplicación de propósitos específicos o generales se las denomina distribuciones. Su objetivo consiste en ofrecer ediciones que cumplan con las necesidades de un determinado grupo de usuarios. Algunas de ellas son especialmente conocidas por su uso en servidores y supercomputadoras. donde tiene la cuota más importante del mercado. Según un informe de IDC, GNU/Linux es utilizado por el 78% de los principales 500 servidores del mundo, otro informe le da una cuota de mercado de 89% en los 500 mayores supercomputadores. Con menor cuota de mercado el sistema GNU/Linux también es usado en el segmento de las computadoras de escritorio, portátiles, computadoras de bolsillo, teléfonos móviles, sistemas embebidos, videoconsolas y otros dispositivos.

Características del Sistema Operativo

Núcleo: Linux

Linux es un sistema operativo libre, basado en Unix. Es uno de los principales ejemplos de software libre y de código abierto. Linux está licenciado bajo la GPL v2 y está desarrollado por colaboradores de todo el mundo. El desarrollo del día a día tiene lugar en la Linux Kernel Mailing List Archive

El núcleo Linux fue concebido por el entonces estudiante de ciencias de la computación finlandés Linus Torvalds en 1991. Linux consiguió rápidamente desarrolladores y usuarios que adoptaron códigos de otros proyectos de software libre para usarlo con el nuevo sistema operativo. El núcleo Linux ha recibido contribuciones de miles de programadores de todo el mundo. Normalmente Linux se utiliza junto a un empaquetado de software, llamado distribución GNU/Linux y servidores.

16

Page 17: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

En contra de la creencia común, Linux es un sistema operativo en sí mismo, además de un núcleo. Esto es porque a pesar de que ambos conceptos son distintos, en un sistema operativo monolítico ambos se componen del mismo programa: se denomina núcleo a la parte que se ejecuta en modo privilegiado, y no debe tomarse en el sentido habitual de la palabra.

Sistema de Gestión de Paquetes: RPM Package Manager.RPM Package Manager (o RPM, originalmente llamado Red Hat Package Manager, pero se convirtió en acrónimo recursivo ) es una herramienta de administración de paquetes pensada básicamente para GNU/Linux. Es capaz de instalar, actualizar, desinstalar, verificar y solicitar programas. RPM es el formato de paquete de partida del Linux Standard Base.

Originalmente desarrollado por Red Hat para Red Hat Linux, en la actualidad muchas distribuciones GNU/Linux lo usan, dentro de las cuales las más destacadas son Fedora Linux, Mandriva Linux, Mageia, PCLinuxOS, openSUSE, SuSE Linux. También se ha portado a otros sistemas operativos.

CaracterísticasPara el administrador de sistemas que realice mantenimiento y actualización de software, el uso de gestor de paquetes en vez de construirlos manualmente tiene ventajas como simplicidad, consistencia y la capacidad de que aquellos procesos se automaticen.

Entre las características de RPM están:

Los paquetes pueden ser cifrados y verificados con GPG y MD5.

Los archivos de código fuente (por ejemplo .tar.gz, .tar.bz) están incluidos en SRPMs, posibilitando una verificación posterior.

PatchRPMs y DeltaRPMs, que son equivalentes a ficheros parche, pueden actualizar incrementalmente los paquetes RPM instalados.

Las dependencias pueden ser resueltas automáticamente por el gestor de paquetes.

Versiones:

Versión del softwareFecha de lanzamiento

Nombre

v1.0.0.5 (Versión inicial)

27 de noviembre 2013

Kaajanlampi

v1.0.1.10 09 de diciembre 2013

Actualización 1, la calidad del lago

17

Page 18: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

v1.0.1.1216 de diciembre 2013

v1.0.2.527 de diciembre 2013

Actualización 2, Maadajävri

v1.0.3.8 31 de enero 2014 Actualización 3, Naamankajärvi

v1.0.4.20 17 de marzo 2014 Actualización 4, Ohijärvi

v1.0.5.16 11 de abril 2014Actualización 5, Paarlampi

v1.0.5.19 24 de abril 2014

v1.0.6.x N/A Actualización 6 se fusionó con Update

v1.0.7.16 09 de junio 2014 Actualización 7, Saapunki

v1.0.8.19 14 de julio 2014Actualización de 8, Tahkalampi

v1.0.8.21 06 de octubre 2014

v1.1.0.38 (Opt-in de actualización)

23 de octubre 2014

Actualización 9, Uitukkav1.1.0.39 (Opt-in de actualización)

24 de octubre 2014

v1.1.1.2618 de diciembre 2014

Actualización 10, Vaarainjärvi

v1.1.1.2719 de diciembre 2014

v1.1.2.15 19 de febrero 2015Actualización 11, Yliaavanlampi

v1.1.2.16 25 de febrero 2015

v1.1.3.x N/A Actualización 12 se fusionó con actualización 13

v1.1.4.28 15 de abril 2015Actualización 13, Äijänpäivänjärvi

v1.1.4.29 04 de mayo 2015

18

Page 19: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

v1.1.5.x N/AModificar 14, caído durante la fase Release Candidate

v1.1.6.27 08 de junio 2015 Actualización 15, Aaslakkajärvi

v1.1.7.24 15 de julio 2015Actualización 16, Bear Swamp

v1.1.7.28 31 de agosto 2015

v1.1.9.2824 de septiembre 2015

Actualización 17: Eineheminlampi

v1.1.9.30 22 de octubre 2015

v2.0.0.10 22 de octubre 2015 Lago Saimaa (Early Access)

Licencia:

Licencia Pública General GNU y otro tipo de licencias de software libre y de fuente abierta.

La Licencia Pública General de GNU o más conocida por su nombre en inglés GNU General Public License (o simplemente sus siglas del inglés GNU GPL) es la licencia más ampliamente usada en el mundo del software y garantiza a los usuarios finales (personas, organizaciones, compañías) la libertad de usar, estudiar, compartir (copiar) y modificar el software. Su propósito es declarar que el software cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que restrinjan esas libertades a los usuarios. Esta licencia fue creada originalmente por Richard Stallman fundador de la Free Software Foundation (FSF) para el proyecto GNU.

La licencia GPL puede ser usada por cualquiera, ya que su finalidad es proteger los derechos de los usuarios finales (usar, compartir, estudiar y modificar). Esta es la primera licencia copyleft para uso general, lo que significa que los trabajos derivados sólo pueden ser distribuidos bajo los términos de la misma licencia. Bajo esta filosofía, la licencia GPL garantiza a los destinatarios de un programa de computador los derechos y libertades reunidos en definición de software libre y usa copyleft para asegurar que el software está protegido cada vez que el trabajo es distribuido, modificado o ampliado. En la forma de distribución (sólo pueden ser distribuidos bajo los términos de la misma licencia) se diferencian las licencias GPL de las licencias de software libre permisivas, de las cuales los ejemplos más conocidos son las licencias BSD (BSD licenses).

19

Page 20: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

El software bajo licencia GPL puede ser aplicado bajo todos los propósitos, incluidos los propósitos comerciales e incluso como herramienta de creación de software propietario. En uso puramente privativo (o interno), sin ventas ni distribuciones implicadas, el software puede ser modificado sin liberar el código fuente pero, de lo contrario, el código fuente y cualquier cambio realizado en él debe estar disponible para los usuarios, ya que en este caso los derechos del usuario están protegidos por copyleft. De esta forma, las aplicaciones instaladas en sistemas operativos bajo licencia GPL como Linux, no es necesario que estén licenciadas bajo GPL o que estén distribuidas con su código fuente disponible ya que las licencias no dependen de la plataforma. Por ejemplo, si un programa está formado completamente por código original, o si está combinado con software que no cumple los requisitos de copyleft no es necesario que se licencie bajo GPL o que se distribuya con su código fuente disponible. Sólo si un programa utiliza fragmentos de código GPL (y el programa es distribuido) el código fuente en su totalidad debe estar disponible, bajo la misma licencia. La licencia LGPL (GNU Lesser General Public License) fue creada para tener derechos menos restrictivos que GPL, por lo que en este caso en un programa que utiliza fragmentos de código LGPL, no es necesario liberar el código original.

Los usuarios o companías que distribuyen sus trabajos bajo licencias GPL, pueden cobrar o distribuirlas gratuitamente. Esto distingue las licencias GPL de las licencias de software que prohíben su distribución comercial. La FSF argumenta que no se debe restringir la distribución comercial del software (incluyendo la redistribución), ya que la GPL establece explícitamente que las obras cubiertas por esta licencia se pueden vender a cualquier precio.

Modelo de Desarrollo:

La mayor parte del sistema operativo es software libre, salvo algunos componentes privativos, como los de la interfaz de usuario que son conocidos como Sailfish Silica.

Dispositivos en los que se ejecuta el sistema operativo: Sailfish se ejecuta en la Jolla tableta y teléfono Jolla. También se ha portado a otros dispositivos, incluyendo:

Acer Iconia Tab W500

ExoPC

Google Nexus One

Google Nexus 4

Google Nexus 5

Google Nexus 7

HP Mini

HTC Desire HD

20

Page 21: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

HTC Desire Z

Nokia N950 y Nokia N9 - durante varias presentaciones realizadas por Jolla

O2 Joggler

OnePlus Uno

Packardbell Butterfly Touch

Raspberry Pi 2 -, ya que utiliza la CPU ARM Cortex-A7. (De frambuesa Pi1 ARMv6 CPU tiene una arquitectura diferente, y Sailfish requiere ARMv7.)

Samsung Galaxy S3

Samsung Galaxy Nexus

Sony Ericsson Xperia Pro codename Iyokan

Sony Xperia SP

Xiaomi Mi2

Sailfish se ejecuta en los siguientes dispositivos como el sistema operativo con licencia de sus fabricantes, incluyendo:

De Aqua Fish

Emuladores: Acer Iconia tab W500

O2 Joggler

Exopc.

HP Mini

PackardBell Buttefly Touch

Nokia N950 and Nokia N9 (presentados varias veces por la misma Jolla)

Google Nexus 7

Oneplus one. 11 de marzo de 2015

OS Sailfish 2.0 ya está disponible para el smartphone Jolla

Hoy hemos lanzado la actualización de software, que actualiza su teléfono Jolla con la nueva y renovada interfaz de usuario 2.0 Sailfish OS. Fue lanzado por primera vez en nuestro grupo de usuarios el acceso temprano hace una semana, y ahora está disponible para todos los usuarios del sistema operativo Sailfish.

21

Page 22: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

Junto con la nueva interfaz de usuario simplificada y hermoso viene muchas características nuevas y mejoradas - esto es para asegurarse de que la actualización de software del sistema operativo Sailfish más grande hasta ahora! Y la otra gran cosa para Sailfish OS 2.0 es que ahora es compatible con ambos teléfonos inteligentes y tabletas, como el primer Jolla Tablets impulsado por Sailfish OS 2.0 son casi listo para ser enviado. En el "qué hay de nuevo 'sección de abajo también se puede ver a algunos tablet características específicas, que hemos preparado para complementar el tamaño de la pantalla más grande.

Gente alimentados OSOS Sailfish ha sido siempre un pueblo plataforma potencia. Mientras maduración de Sailfish OS 2.0 que hemos escuchando con atención a comentarios de los usuarios a través de encuestas a los clientes y together.jolla.com, y trabajamos juntos con nuestra comunidad para crear la mejor experiencia de usuario posible. Los objetivos fundamentales de esta actualización son para facilitar y simplificar la experiencia de primera vez y para mejorar la calidad general del sistema operativo. Por supuesto, también aspiramos a tener la experiencia de usuario de todos los usuarios a un nivel completamente nuevo.

Mejorar el flujo con una nueva vista de carrusel

El cambio más notable es la nueva y renovada interfaz de usuario 2.0 Sailfish OS, que introduce un nuevo y sencillo modelo mental de puntos de vista fundamentales, mejorar el flujo del sistema operativo de forma espectacular.

Usted simplemente puede deslizar a izquierda o derecha entre el hogar y Eventos, como en un carrusel. La App Grid es rápidamente accesible desde cualquier parte de la interfaz de usuario con sólo deslizar sobre el borde inferior - que no es necesario ir a la pantalla de inicio si desea abrir una nueva aplicación.

Eventos es ahora más rico y más inteligente por comprender un widget del tiempo con una opción para mostrar el pronóstico de cinco días el tiempo, un widget de calendario, así como la manipulación de notificación agrupada y mejorada. Ahora usted es capaz de ver y hacer más con sus notificaciones directamente en eventos, ya sean de aplicaciones nativas o aplicaciones de Android.

También hemos añadido un montón de otras mejoras como el rediseñado App cubre Galería, notas y aplicaciones de la cámara, agregamos muchas nuevas animaciones, e hicimos mejoras en aplicaciones existentes como Jolla tienda, Calendario, Cámara. Solo por mencionar algunos.

Más personalización

Ahora hay incluso más opciones que le permiten personalizar el teléfono de acuerdo a sus necesidades. Un ejemplo es la definición de la conducta de la parte superior gesto de

22

Page 23: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

deslizar el borde: se puede optar por mantenerlo como un conmutador ambiente o cambiarlo para cerrar aplicaciones directamente con un golpe arriba (como antes).

Y asegúrese de echa un vistazo a los nuevos ambientes fríos escogidos de nuestra campaña fotográfica ambiente Jolla!

¿Qué hay de nuevo en esta actualización?

Nueva interfaz de usuario:

El hogar es ahora un carrusel. Pase para cambiar entre hogar y Eventos

Aplicación de cuadrícula se puede acceder desde cualquier parte del sistema operativo (incluso desde dentro de una aplicación) deslizando hacia arriba desde el borde inferior

Deslice hacia abajo desde el borde superior de la pantalla para abrir el menú Inicio con la acción de bloqueo y ambientes. El ambiente activo actualmente está marcado con un indicador. Puede cambiarlo para cerrar aplicaciones directamente con un golpe arriba.

Tutorial aplicación se ha actualizado para introducir el nuevo sistema de navegación de la interfaz de usuario

Estilo visual renovado en Inicio, botones, menús poleas, selector de tiempo, barra de volumen y el temporizador remordimiento

Renovados diseños para Calendario, Jolla tienda, Reloj, correo electrónico y aplicaciones de la cámara

Refreshed App activa Cubiertas para Gallery, Jolla tienda, Ajustes, notas y aplicaciones de la cámara

Eventos:

Events es ahora más rico y configurable a través de Configuración> Sistema> Eventos

Notificaciones en los eventos se muestran ahora, agrupándolos en función del tipo

Nueva opción gesto permite Eventos Vista Rápida acceso con un golpe a la izquierda, activar en Ajustes> Sistema> Gestos

Nuevo widget de Calendario muestra los próximos eventos directamente en la vista Eventos

Reproductor Tiempo Rediseñado muestra información de previsión de cinco días - pulse en el widget para visualizarla y recordar para establecer su ubicación en la aplicación El Tiempo

Jolla comprimido: ahora usted puede escoger sus atajos ajustes favoritos para ser mostrado en la vista Eventos

Jolla comprimido: realizar sus acciones favoritas directamente desde la vista Eventos. Por ejemplo, la conexión a Internet, buscar en la web, encontrar su lugar, tomar una foto, hacer una nota o añadir un recordatorio

23

Page 24: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

Camara fotografica:

Graba clips de vídeo en formato H.264 con empresa

Aplicaciones de Android:

Aplicaciones de Android utilizan ahora el tono del sistema "Chat" para las notificaciones, y alerta con vibración y notificación mediante LED

Notificaciones de aplicaciones Android ahora despiertan la pantalla

Otras mejoras / características:

Jolla comprimido: tres dedos gesto control de volumen habilitado - mantenga tres dedos en la pantalla y deslice uno de los dedos para ajustar el volumen

Soporte para el lenguaje de EE.UU. Inglés en el sistema operativo

Apoyo para la fuente Lohit devanagari (fuentes indias)

Nuevos ambientes basados en las selecciones de la campaña fotográfica ambiente Jolla con Jolla tonos establecen como acciones predeterminadas

Notas ahora puede ser compartida como archivos de texto

Controles de los medios de comunicación en la pantalla de bloqueo para aplicaciones multimedia nativo

La próxima actualización del sistema operativo incluirá nuevas mejoras en la experiencia del usuario Sailfish OS, y se completará la transición a Sailfish OS 2.0. En ese punto la versión de software de numeración también saltará a 2,0.

SISTEMAS OPERATIVOS EMBEBIDOS

PRESENTACIÓN

Se entiende por sistemas embebidos a una combinación de hardware y software de computadora, sumado tal vez a algunas piezas mecánicas o de otro tipo, diseñado para tener una función específica. Es común el uso de estos dispositivos pero pocos se dan cuenta que hay un procesador y un programa ejecutándose que les permite funcionar. Esto ofrece un contraste con la computadora personal, que si bien también esta formada por una combinación de hardware y software mas algunas piezas mecánicas (discos rígidos, por ejemplo). Sin embargo la computadora personal no es diseñada para un uso especifico. Si no que es posible darle muchos usos diferentes. Muchas veces un sistema embebido es un componente de un sistema mucho mas grande, como por ejemplo los sistemas de frenos o el sistema de inyección de combustible, en

24

Page 25: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

automóviles actuales son sistemas embebidos. Esta combinación de software y hardware puede ser reemplazada en muchos casos por un circuito integrado que realice la misma tarea. Pero una de las ventajas de los sistemas embebidos es su flexibilidad. Ya que a la hora de realizar alguna modificación resulta mucho mas sencillo modificar una líneas de código al software del sistema embebido que reemplazar todo el circuito integrado.

Un uso muy común de los sistemas embebidos es en los sistemas de tiempo real, entendiéndose por sistemas en tiempo real a aquellos sistemas en los que el control del tiempo es vital para el correcto funcionamiento. Los sistemas en tiempo real necesitan realizar ciertas operaciones o cálculos en un limite de tiempo. Donde ese limite de tiempo tiempo resulta crucial. Un ejemplo claro de un sistema de tiempo real es el control de trafico aéreo.

ESTRUCTURA Y COMPONENTES DEL SISTEMA

Estructura

Las principales características de un sistema embebido son el bajo costo y consumo de potencia. Dado que muchos sistemas embebidos son concebidos para ser producido sen miles o millones de unidades, el costo por unidad es un aspecto importante a tener en cuenta en la etapa de diseño. generalmente, los sistemas embebidos emplean procesadores muy básicos, relativamente lentos y memorias pequeñas para minimizar los costos. En estos sistemas la velocidad no solo está dada por la velocidad del reloj del procesador, sino que el total la arquitectura se simplifica con el fin de reducir costos. Normalmente, un sistema embebido emplea periféricos controlados por interfases seriales sincrónicas, las cuales son muchas veces más lentas que los periféricos empleados en un PC. Como se mostró anteriormente, un sistema embebido debe enfrentar fuertes restricciones de recursos, por tanto normalmente deberá hacer uso de sistemas operativos especiales, denominados de tiempo real (RTOS Real time operating system).Los sistemas embebidos deberán reaccionar a estímulos provenientes del ambiente, respondiendo con fuertes restricciones de tiempo en muchos casos, por lo tanto, un sistema se dice que trabaja en tiempo real si la información después de la adquisición y tratamiento es todavía vigente. Es decir, que en el caso de una información que llega de forma periódica, los tiempos de adquisición y tratamiento deben ser inferiores al período de actualización de dicha información. Un sistema embebido puede o no ser de tiempo de real dependiendo de los requerimientos específicos de la aplicación que se quiere implementar.

Los programas en estos sistemas se ejecutan minimizando los tiempos muertos y enfrentando fuertes limitaciones de hardware, ya que usualmente no tienen discos duros, ni teclados o monitores, una memoria flash reemplaza los discos y algunos

25

Page 26: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

botones y una pantalla LCD normalmente reemplazan los dispositivos de interfaz. El software que controla un dispositivo de hardware, por ejemplo n una memoria ROM, Flash o un circuito integrado se conoce como Firmware. Típicamente la programación en estos dispositivos se realiza en lenguaje ensamblador o en lenguaje C, actualmente se han desarrollado algunas máquinas virtuales y otros compiladores que permiten el diseño de programas más complejos. Además se puede encontrar depuradores, simuladores, ases de datos, GUIs, metodologías entre otras herramientas para el diseño y programación de este tipo de sistemas.

Componentes de un sistema embebido

Un sistema embebido en principio estaría formando por un microprocesador y un software que se ejecute sobre este. Sin embargo este software necesitara sin duda un lugar donde poder guardarse para luego ser ejecutado por el procesador. Esto podría tomar la forma de memoria RAM o ROM, Todo sistema embebido necesitara en alguna medida una cierta cantidad de memoria, la cual puede incluso encontrarse dentro del mismo chip del procesador. Además de esto normalmente un sistema embebido contara con una serie de salidas y entradas necesarias para comunicarse con el mundo exterior. Debido a que las tareas realizadas por sistemas embebidos son de relativa sencillez, los procesadores comúnmente usados cuentan con registros de 8 o 16 bits. En su memoria solo reside el programa destinado a gobernar una aplicación determinada. Sus líneas de entrada/salida soportan el conexionado de los sensores y actuadotes del dispositivo a controlar y todos los recursos complementarios disponibles tiene como única finalidad atender a sus requerimientos. Estas son las únicas características que tienen en común los sistemas embebidos, todo lo demás será totalmente diferente para cada sistema embebido en particular debido a la inmensa diversidad de aplicaciones disponibles.

Arquitectura básica más empleada

Microprocesador

Es el encargado de realizar las operaciones de cálculo principales del sistema. Ejecuta código para realizar una determinada tarea y dirige el funcionamiento de los demás elementos que le rodean, a modo de director de una orquesta.

Memoria

En ella se encuentra almacenado el código de los programas que el sistema puede ejecutar así como los datos. Su característica principal es que debe tener un acceso de lectura y escritura lo más rápido posible para que el microprocesador no pierda tiempo

26

Page 27: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

en tareas que no son meramente de cálculo. Al ser volátil el sistema requiere de un soporte donde se almacenen los datos incluso sin disponer de alimentación o energía.

Caché

Memoria más rápida que la principal en la que se almacenan los datos y el código accedido últimamente. Dado que el sistema realiza microtareas, muchas veces repetitivas, la caché hace ahorrar tiempo ya que no hará falta ir a memoria principal si el dato o la instrucción ya se encuentra en la caché. Dado su alto precio tiene un tamaño muy inferior (8 – 512 KB) con respecto a la principal (8 – 256 MB)

Disco duro

En él la información no es volátil y además puede conseguir capacidades muy elevadas. A diferencia de la memoria que es de estado sólido éste suele ser magnético. Pero su excesivo tamaño a veces lo hace inviable para PCs embebidos, con lo que se requieren soluciones como discos de estado sólido. Existen en el mercado varias soluciones de esta clase (DiskOnChip, CompactFlash, IDE Flash Drive, etc.) con capacidades suficientes para la mayoría de sistemas embebidos (desde 2 hasta mas de 1 GB). El controlador del disco duro de PCs estándar cumple con el estándar IDE y es un chip más de la placa madre.

Disco flexible

Su función es la de un disco duro pero con discos con capacidades mucho más pequeñas y la ventaja de su portabilidad. Siempre se encuentra en un PC estándar pero no así en un PC embebido. 10

BIOS-ROM

BIOS (Basic Input & Output System, sistema básico de entrada y salida) es código que es necesario para inicializar el ordenador y para poner en comunicación los distintos elementos de la placa madre. La ROM (Read Only Memory, memoria de sólo lectura no volátil) es un chip donde se encuentra el código BIOS.

CMOS-RAM

27

Page 28: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

Es un chip de memoria de lectura y escritura alimentado con una pila donde se almacena el tipo y ubicación de los dispositivos conectados a la placa madre (disco duro, puertos de entrada y salida, etc.). Además contiene un reloj en permanente funcionamiento que ofrece al sistema la fecha y la hora.

Chip Set

Chip que se encarga de controlar las interrupciones dirigidas al microprocesador, el acceso directo a memoria (DMA) y al bus ISA, además de ofrecer temporizadores, etc. Es frecuente encontrar la CMOS-RAM y el reloj de tiempo real en el interior del Chip Set.

PLATAFORMAS SOBRE LAS QUE TRABAJA

Linux en sistemas embebidos

Linux está presente en muchas partes. Quizá aún nohaya ganado la batalla en los ordenadores personales, pero definitivamente es el númer uno en el área de los sistemas embebidos. Sin saberlo, nos rodean miles de dispositivos que funcionan con Linux Al contrario de lo que pueda parecer, Embedded Linux no es una versión reducida de Linux. El calificativo «embebido » realmente hace referencia a la funcionalidad de la aplicación, no a la funcionalidad de Linux.La fiabilidad de Linux es consecuencia directa de esta filosofía que lleva implícita la aportación altruista de miles de programadores de todo el mundo observando el código, mejorándolo, cambiándolo y probándolo en miles de configuraciones posibles del sistema. Linux para los dispositivos embebidos comenzó con el soporte del kernel y el compilador para los microprocesadores más populares de 32 bits: x86, ARM, PowerPC, MIPS y SH. Y luego continuó con la aparición de diferentes distribuciones de Linux con soporte para características específicas de los sistemas embebidos. Gracias a la disponibilidad del código fuente, a la ausencia de ‘royalties’ y al soporte de los micros y tecnologías modernas, Linux está actualmente atacando de forma feroz el mercado de los RTOS. 13 Uno de los cambios fundamentales en Linux es la inclusión del proyecto uClinux en el kernel principal. El proyecto uClinux (que puede pronunciarse como "u-cé-linux" [en inglés "you-see-Linux"], aunque en rigor debe escribirse con la letra griega "mu") significa Linux para Microcontroladores. Esta variante de Linux ha sido un pila fundamental para su aceptación en el mercado embebido, y su inclusión en la versión oficial debería aumentar aún más el desarrollo en este campo. Al contrario que las

28

Page 29: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

variantes de Linux a las que estamos acostumbrados, en los sistemas embebidos no tenemos todas las capacidades del kernel, debido a limitaciones de hardware.

La principal diferencia en estas variantes es la ausencia de MMU (memory management unit o "unidad de gestión de memoria" - lo que hace que un sistema operativo pueda trabajar en modo protegido) integrada en el procesador. Aunque suelen ser sistemas Linux multitarea, no tienen protección de memoria ni otras características asociadas. (Sin protección de memoria, es posible que un proceso aventurero lea los datos de otros procesos, o incluso que los haga colgarse.) Esto reduce su utilidad en un sistema multiusuario, pero los hace ideales para una agenda electrónica (PDA) de bajo coste o un dispositivo dedicado. Es difícil exagerar la importancia de este cambio de arquitectura en Linux 2.6: hasta el momento, todas las versiones seguían afectadas (por más remotamente que fuera) por las limitaciones inherentes al trabajo inicial de Linus en su Intel 80386. Hay varias líneas nuevas de procesadores embebidos con soporte en Linux 2.6, incluyendo la serie Hitachi H8/300, el procesador NEC v850, y la línea de procesadores embebidos m68k diseñada por Motorola. Éstos últimos son los más familiares para el usuario corriente de Linux, ya que están en el corazón de las agendas Palm Pilot desde el principio (la Palm 1000). Otros modelos, con nombres tan sugerentes como DragonBall o ColdFire, son utilizados en sistemas y placas de evaluación fabricadas por Motorola, Lineo, Arcturus, y otras empresas. Por desgracia, la v2.6 todavía no permite usar otros procesadores m68k más antiguos sin MMU (como los procesadores 68000 utilizados en los primeros Macintosh), pero es bastante probable que surjan proyectos amateur para incluir éstos sistemas y otros parecidos. Aunque no sea parte de la inclusión de uClinux (al disponer de MMU), esta nueva revisión puede usarse también en los procesadores de Axis Communications, la serie ETRAX CRIS (Code Reduced Instruction Set, o "Conjunto Reducido de Instrucciones de Código"). (Hay que señalar que la inclusión de este procesador llegó durante el ciclo de mantenimiento del kernel 2.4 -- bastante después de que saliera la versión 2.4.0.) Es un procesador embebido usado sobre todo en equipamiento de redes. El kernel no incluye todavía soporte para variantes sin MMU, pero varios proyectos externos están ya trabajando en ello. Además de soporte para hardware, hay también mejoras importantes resultantes de la integración de sistemas embebidos en el kernel principal.

Mientras que la mayoría de ellas no son visibles, la robustez general del sistema operativo se ve mejorada por cambios como la capacidad de construir un sistema completo sin soporte de swap.

Windows XP para sistemas embebidos

Aunque Microsoft ha mantenido a los fabricantes de sistemas operativos alternativos a Windows contra la pared en lo que se refiere a equipos de sobremesa, su posición en la batalla por la supremacía en el terreno de los sistemas operativos para dispositivos que no fueran PC era vulnerable. De ahí que Microsoft da un paso más en este sector,

29

Page 30: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

lanzando la versión para dispositivos embebidos en la Conferencia para desarrolladores de este tipo de sistemas que se celebra en Las Vegas. Esta decisión parece ir en consonancia con las predicciones que apuntan a una progresiva inclusión de microprocesadores en casi cualquier tipo de aparatos (frigoríficos, coches, etc). Además, con esta iniciativa Microsoft hace frente a la competencia surgida por parte, por ejemplo, de Linux que, según muchos analistas, permite reducir costes, ya que no carga el precio de los royalties. También existe la opción de utilizar un sistema propietario como los desarrollados por la compañía Wind River Systems cuyo punto fuerte es su gran capacidad para trabajar en tiempo real, su alta resistencia a fallos y la posibilidad de procesar comandos de forma inmediata. Sería el caso, por ejemplo, de aparatos médicos que deben ser muy fiables y rápidos.

DOS en sistemas embebidos

Al ritmo que marcha la informática, cualquiera diría que el DOS es un sistema operativo antiquísimo, ya superado en gran medida por otros sistemas operativos de escritorio como Windows y Linux y, en cierta forma, prácticamente olvidado. Como si fuera algo de otro mundo. Sin embargo, hace tan sólo diez años casi cualquier ordenador funcionaba con este sistema.

El DOS está estrechamente ligado al progresivo desarrollo de los microprocesadores de arquitectura x86 de Intel. Y es que es un sistema operativo que hay que conocer porque sigue estando en vigor gracias a su estabilidad. ¿Qué por qué es tan estable? Pues porque se desarrollaba en paralelo con la tecnología de Intel e IBM y porque es un sistema operativo muy simple, monousuario y monotarea. En otras palabras, DOS sólo ejecuta un programa cada vez. Es obvio, que para un ordenador personal el DOS resulta bastante inútil. Pero ¿y para un dispositivo electrónico? La mayoría de ellos sólo tienen que realizar una tarea de forma repetitiva... Además de su reducido tamaño y de los escasos recursos que necesita, por ejemplo ROM-DOS posee algunas características que marcan la diferencia de forma significativa: RXE (Relocatable Executable): En DOS, los programas se cargan en RAM antes de proceder a su ejecución. La tecnología RXE permite convertir un programa estándar en un programa que se puede ejecutar directamente desde ROM. ROM-DOS BUILD Utility: Permite añadir y quitar características al sistema operativo, reduciendo así el tamaño final del kernel. Carga dinámica de drivers de dispositivo: ROM-DOSTM tiene la capacidad de detectar el hardware y cargar drivers de dispositivo de forma dinámica, lo que le permite autoconfigurarse según el entorno. Entre otros aparatos, este sistema operativo podemos encontrarlo en:

• Cámaras digitales

• Dispositivos de captura de datos

30

Page 31: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

• Cajeros automáticos

• Dispositivos GPS

Java para sistemas embebidos

Sun Microsystems, Inc., creadora y máxima defensora de la tecnología Java, amplia su oferta para el mercado de desarrollo embebido con el lanzamiento de dos nuevas ediciones de Java Platform Standard Edition (Java SE). Se trata de una versión "headless" con un tamaño reducido que emplea menos de 23 Mb de espacio de almacenamiento, y de una versión para usuarios de PowerPC.

La tecnología Java es cada vez más utilizada en sistemas embebidos avanzados, debido a sus capacidades inherentes de soporte de red, optimización de dispositivos y procesado de datos. La mayoría de las características de la plataforma Java SE pueden ser ahora empleadas para el desarrollo embebido, gracias a la capacidad cada vez mayor del nuevo hardware disponible en el mercado. La versión "headless" (sin soporte gráfico) de Java SE requiere sólo 23 Mb de espacio de almacenamiento y es ideal para desarrolladores de software para dispositivos embebidos que quieran aprovechar las sólidas capacidades de red y procesamiento, y el rendimiento de la tecnología Java. Por su parte, la plataforma para PowerPC es una versión estable de Java SE diseñada específicamente para el procesador PowerPC, que actualmente está muy extendido entre desarrolladores de dispositivos embebidos a gran escala (no teléfonos móviles). Hay dos tendencias convergentes en el mercado de dispositivos actuales: una es que la potencia y capacidad de escalar del procesador –según dicta la ley de Moore- hace posible la aparición de plataformas más pequeñas y más potentes para su uso en dispositivos embebidos; y la otra es que más y más dispositivos se están conectando a Internet todos los días. Esto significa que el mercado de dispositivos embebidos está evolucionando rápidamente y quizá está convirtiéndose en el principal entorno informático para este siglo", afirma José Manuel Estrada, arquitecto Java en Sun Java SE ofrece a los desarrolladores de dispositivos embebidos la capacidad para desplegar aplicaciones en múltiples plataformas hardware, y cuenta con características como genéricos, plantillas y compiladores que no están disponibles en ningún otro lenguaje de programación. Java Native Interface (JNI) proporciona a los desarrolladores la capacidad de acceder a sus librerías de código C/C++ directamente, sin necesidad de reescribir código. Además, los desarrolladores pueden acceder a un amplio abanico de código libre y de fuente abierta, así como participar junto a otros desarrolladores de software Java en proyectos en comunidad como NetBeans, Tomcat, Apache, Derby y muchos otros. Es importante señalar que las nuevas versiones de Java

31

Page 32: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

SE no restan valor a la plataforma Java Platform Micro Edition (Java ME). La tecnología Java ME sigue siendo una plataforma estándar de primera línea para el desarrollo embebido tradicional en dispositivos con poca memoria y potencia de procesador (tales como teléfonos móviles, PDAs, procesadores embebidos en pequeñas impresoras, copiadoras, etc.). Paralelamente a las dos nuevas versiones de Java SE, Sun también ha anunciado un nuevo servicio de ajuste y pruebas para optimizar el rendimiento de la plataforma Java SE en despliegues embebidos

PROCESO DE INSTALACIÓN

El proceso a grandes rasgos consiste en:

1. Saber la arquitectura hardware del dispositivo. 2. Configurar el kernel incluyendo los controladores para esos dispositivos y eliminando

todo lo que no nos sirva. 3. Crear el script de configuración y ejecución de la aplicación embebida. 4. Configurar y compilar la busybox incluyendo la aplicación y el script. 5. Compilar el kernel 6. Prueba de ejecución

Conociendo la arquitectura

Para generar el kernel correcto es necesario conocer lo más posible la arquitectura subyacente. Si disponemos del manual o datasheet del dispositivo podemos determinar los controladores necesarios. Si este no es nuestro caso, podemos arrancar con una distribución linux live (Ej. Ubuntu) y determinar que controladores son los necesarios analizando los módulos cargados y el árbol de ficheros generados bajo /sys.

Configuración del Kernel

Ya conocemos nuestro hardware. Ahora necesitamos configurar correctamente el kernel para que tenga una huella pequeña pero con toda la funcionalidad requerida.

1. Seleccionar la arquitectura "más cercana/compatible" a la nuestra (Ej. Pentium-4, Pentium II, etc)

2. Deshabilitamos "Enable loadable modules support", pues queremos inscrutar los controladores dentro de la imagen y no depender de módulos externos.

3. Seleccionar el modo apropiativo. ¿nuestro software interactua mucho con el usuario? Si ese el caso necesitamos poca latencia, luego seleccionamos el modo Apropiativo "Preemption Model->Preemptible Kernel. Si por el contrario nuestro sistema procesa transacciones a modo de servidor es conveniente usar "No force preemption". Por defecto el kernel usa el termino medio, Voluntary Preemption.

32

Page 33: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

4. Reloj. Si nuesta aplicación necesita temporización de alta precisión deberemos de activar el High Resolution Timer (si nuestro hardware también es capaz).

5. Dispositivos de bloque. Activar unicamente los controladores SATA/PATA/IDE de nuestro dispositivos.

6. USB. Es habitual habilitar el uso de USB 2.0 y la clase USB HID para poder usar teclados, ratones, etc. Dehabilitamos todo lo demas.

7. Sistema de archivos. Seleccionamos el sistema de archivos que necesitemos (recomendable sistema de archivos con Jourling, ej. ext3 o reiserfs). En sistemas con poco disco suele usarse a menudo el JFFS2 como sistemas de archivos para memorias flash.

8. Video4Linux. Normalmente se deshabilita. 9. Sound. ¿necesitamos sonido?

Después de seleccionar los controladores que necesitamos estariamos listos para generar una imagen del kernel "normal". En nuestro caso nos interes construir un kernel que después de inicializarse no monte un sistema de archivos dentro de un disco duro (procedimiento normal), sino que monte un sistema de archivos temporal que va comprimido y embebido dentro de la propia imagen del kernel.

Para lograr esto debemos especificar un fichero especial que sirve de guía para generar este sistema de archivos. Analicemos el ejemplo que muestra la ayuda de usr/gen_init_cpio.

Aplicación embebida

El objetivo de generar este kernel es poder correr nuestra aplicación en un sistema embebido. Debemos procurar generar nuestra aplicación teniendo muy en cuenta la arquitectura subyacente y aprovechando todo su potencial. Es recomendable si procede, generar un ejecutable estático e incluir herramientas de depuración remota o diagnósticos (ejecución, estado temperatura, carga de trabajo, logs, etc).

Compilado pues, lo agregamos a la lista de construcción de imagen la imagen con la correspondiente entrada "file". El fichero init invocará nuestra aplicación al final de la configuración.

Compilación del kernel.

Con los deberes hechos, ya podemos construir la imagen del kernel de forma habitual ("make") o según nuestros requisitos (compilación cruzada). Si todo ha ido bien, obtendremos nuestra imagen de kernel lista para ser implantada en nuestro sistema embebido.

GESTIÓN DE PROCESOS Y DEL PROCESADOR

33

Page 34: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

Un microprocesador es una implementación en forma de circuito integrado (IC) de la Unidad Central de Proceso CPU de un ordenador. Frecuentemente nos referimos a un microprocesador como simplemente “CPU”, y la parte de un sistema que contiene al microprocesador se denomina subsistema de CPU.

Los microprocesadores varían en consumo de potencia, complejidad y coste. Los hay de unos pocos miles de transistores y con coste inferior a 2 euros (en producción masiva) hasta de más de cinco millones de transistores que cuestan más de 600 euros.

Los subsistemas de entrada/salida y memoria pueden ser combinados con un subsistema de CPU para formar un ordenador o sistema integrado completo. Estos subsistemas se interconectan mediante los buses de sistema (formados a su vez por el bus de control, el bus de direcciones y el bus de datos).

El subsistema de entrada acepta datos del exterior para ser procesados mientras que el subsistema de salida transfiere los resultados hacia el exterior. Lo más habitual es que haya varios subsistemas de entrada y varios de salida. A estos subsistemas se les reconoce habitualmente como periféricos de E/S.

El subsistema de memoria almacena las instrucciones que controlan el funcionamiento del sistema. Estas instrucciones comprenden el programa que ejecuta el sistema. La memoria también almacena varios tipos de datos: datos de entrada que aún no han sido procesados, resultados intermedios del procesado y resultados finales en espera de salida al exterior.

Es importante darse cuenta de que los subsistemas estructuran a un sistema según funcionalidades. La subdivisión física de un sistema, en términos de circuitos integrados o placas de circuito impreso (PCB) puede y es normalmente diferente. Un solo circuito integrado (IC ) puede proporcionar múltiples funciones, tales como memoria y entrada/salida.

Un micro controlador (MCU) es un IC que incluye una CPU, memoria y circuitos de E/S. Entre los subsistemas de E/S que incluyen los micro controladores se encuentran los temporizadores, los convertidores analógico a digital (ADC) y digital a analógico (DAC) y los canales de comunicaciones serie. Estos subsistemas de E/S se suelen optimizar para aplicaciones específicas (por ejemplo audio, video, procesos industriales, comunicaciones, etc.).

Hay que señalar que las líneas reales de distinción entre microprocesador, micro controlador y microcomputador en un solo chip están difusas, y se denominan en ocasiones de manera indistinta unos y otros.

En general, un SE consiste en un sistema con microprocesador cuyo hardware y software están específicamente diseñados y optimizados para resolver un problema concreto eficientemente. Normalmente un SE interactúa continuamente con el entorno para vigilar o controlar algún proceso mediante una serie de sensores. Su hardware se diseña normalmente a nivel de chips, o de interconexión de PCB, buscando la mínima circuitería y el menor tamaño para una aplicación particular. Otra alternativa consiste

34

Page 35: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

en el diseño a nivel de PCB consistente en el ensamblado de placas con microprocesadores comerciales

GESTIÓN DE MEMORIA

La memoria es uno de los principales recursos de la computadora, la cual debe de administrarse con mucho cuidado. Aunque actualmente la mayoría de los sistemas de cómputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen también altos requerimientos de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y/o multiusuario.

La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estén utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando éstos la necesiten y liberándola cuando terminen, así como administrar el intercambio entre la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella.

Los sistemas de administración de memoria se pueden clasificar en dos tipos: los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecución y los que no.

El propósito principal de una computadora es el de ejecutar programas, estos programas, junto con la información que accesan deben de estar en la memoria principal (al menos parcialmente) durante la ejecución.

Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de tener varios procesos a la vez en la memoria principal, para lo cual dispone de varias opciones de administración tanto del procesador como de la memoria. La selección de uno de ellos depende principalmente del diseño del hardware para el sistema. A continuación se observarán los puntos correspondientes a la administración de la memoria.

Memoria real

La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido acceso. Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor.

35

Page 36: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

Mono programación sin intercambio o paginación

Cuando solo se tiene un proceso que ocupe la memoria a la vez, el esquema de la administración de la memoria es el más sencillo que hay. Sin embargo, éste método ya no tiene aplicación en la actualidad, ya que era visto en las computadoras con sistemas operativos de un solo usuario y una sola tarea. El usuario introducía su disco a la computadora (por lo general, la máquina no contaba con disco duro) y ejecutaba su aplicación, la cual acaparaba toda la máquina.

Multiprogramación y uso de memoria

Esta organización facilita la programación de una aplicación al dividirla en dos o más procesos. Además ofrece la capacidad de tener más de un proceso a la vez en memoria así puede ofrecer servicios a varios usuarios a la vez.

El esquema de multiprogramación incrementa el aprovechamiento del CPU, dado que a diferencia de la mono programación en donde solo un proceso reside en memoria a la vez limitando el uso del procesador a las llamadas que requiera dicho proceso, desperdiciando un promedio del 80% del tiempo del procesador. En cambio la multiprogramación, al tener varios procesos en la memoria principal y dividiéndose el tiempo de uso del procesador, logra reducir drásticamente el desperdicio del procesador.

Multiprogramación con particiones fijas

Para poder implementar la multiprogramación, se puede hacer uso de particiones fijas o variables en la memoria. En el caso de las particiones fijas, la memoria se puede organizar dividiéndose en diversas partes, las cuales pueden variar en tamaño. Esta partición la puede hacer el usuario en forma manual, al iniciar una sesión con la máquina.

Una vez implementada la partición, hay dos maneras de asignar los procesos a ella. La primera es mediante el uso de una cola única (figura 2a) que asigna los procesos a los espacios disponibles de la memoria conforme se vayan desocupando. El tamaño del hueco de memoria disponible es usado para localizar en la cola el primer proceso que quepa en él. Otra forma de asignación es buscar en la cola el proceso de tamaño mayor que se ajuste al hueco, sin embargo hay que tomar en cuenta que tal método discrimina a los procesos más pequeños. Dicho problema podría tener solución si se asigna una partición pequeña en la memoria al momento de hacer la partición inicial, el cual sería exclusivo para procesos pequeños.

Esta idea nos lleva a la implementación de otro método para particiones fijas, que es el uso de diferentes colas independientes (figura 2b) exclusivas para cierto rango en el tamaño de los procesos. De esta manera al llegar un proceso, éste sería asignado a la cola de tamaño más pequeño que la pueda aceptar. La desventaja en esta organización es que si una de las colas tiene una larga lista de procesos en espera, mientras otra

36

Page 37: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

cola esta vacía, el sector de memoria asignado para ese tamaño de procesos estaría desperdiciándose.

Multiprogramación con particiones variables

Este esquema fue originalmente usado por el sistema operativo IBM OS/360 (llamado MFT), el cual ya no está en uso.

El sistema operativo lleva una tabla indicando cuáles partes de la memoria están disponibles y cuáles están ocupadas. Inicialmente, toda la memoria está disponible para los procesos de usuario y es considerado como un gran bloque o hueco único de memoria. Cuando llega un proceso que necesita memoria, buscamos un hueco lo suficientemente grande para el proceso. Si encontramos uno, se asigna únicamente el espacio requerido, manteniendo el resto disponible para futuros procesos que requieran de espacio.

Consideremos el ejemplo de la figura 3, en donde se cuenta un espacio reservado para el sistema operativo en la memoria baja de 400K y un espacio disponible para procesos de usuario de 2160K, siendo un total de memoria del sistema de 2560K. Dada la secuencia de procesos de la figura y usando un algoritmo de First Come – First Served (FCFS) se puede asignar de inmediato memoria a los procesos P1, P2 y P3, creando el mapa de memoria de la figura 4(a) en el cual queda un hueco de 260K que ya no puede ser utilizado por el siguiente proceso dado que no es suficiente para abarcarlo.

GESTIÓN DE MEMORIA AUXILIAR

La memoria auxiliar (llamada también memoria física o memoria externa) que almacena información a largo plazo, incluso después de apagar el equipo. La memoria auxiliar corresponde a los dispositivos magnéticos de almacenamiento como por ejemplo el disco duro, dispositivos ópticos de almacenamiento como los CD-ROM y DVD-ROM, y a las memorias de sólo lectura.

SISTEMA DE ARCHIVOS (ZFS).

ZFS, es el sistema de archivos dinámico del sistema operativo Solaris. Con 16 millones de millones más de capacidad que los sistemas de archivos 64-bit existentes, ZFS virtualmente es el único sistema de archivos con capacidad de almacenamiento prácticamente ilimitada, lo que hace de Solaris el mejor de la industria para el almacenamiento de datos.

Este sistema de archivo ofrece:

37

Page 38: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

Administración sencilla:ZFS automatiza y consolida complicados conceptos de almacenamiento, con lo que se reduce la sobrecarga administrativa en un 80 por ciento.

Integridad de datos: ZFS protege todos los datos con sumas de comprobación de 64 bits que detectan y corrigen el daño de datos silenciosos.

Escalabilidad: ZFS, el primer sistema de archivos de 128 bits, ofrece una capacidad de 16.000 millones de veces superior a la de los sistemas de 32 ó 64-bits.

Rendimiento: El modelo transaccional elimina la mayor parte de las restricciones tradicionales sobre la orden de emisión de E/S, con lo que se consiguen increíbles mejoras en el rendimiento.

Al tiempo que simplifica en gran medida el trabajo de los administradores del sistema, ZFS ayuda a incrementar los beneficios económicos de una organización. Como ZFS está diseñado sobre conjuntos de almacenamiento virtual (a diferencia de los sistemas de archivos tradicionales que requieren un administrador de volúmenes), la creación y eliminación de sistemas de archivos resultan mucho menos complicadas. ZFS actúa para las aplicaciones como un sistema de archivos POSIX estándar, no se requiere conexión mediante puertos. Pero para los administradores, presenta un modelo de almacenamiento por conjuntos que eliminan el antiguo concepto de volúmenes, así como todos los problemas relacionados con la administración de particiones, el abastecimiento y el tamaño del sistema de archivos. Del conjunto de almacenamiento común de ZFS se pueden extraer miles (incluso millones) de sistemas de archivos y cada uno de ellos consume únicamente la cantidad de espacio que necesita. El ancho de banda de E/S combinado de todos los dispositivos de ese conjunto de almacenamiento está siempre disponible para cada sistema de archivos.

Dos de los objetivos de la creación del sistema de archivos ZFS consisten en deshacerse de numerosos conceptos de administración complicados y automatizar muchas tareas administrativas comunes.

Por ejemplo, la creación de un conjunto de almacenamiento, el incremento de un conjunto y la adición o eliminación de un sistema de archivos se pueden realizar con un único comando sencillo, en lugar del proceso de varios pasos (format, newfs, edit/etc/vfstab etc.) habitual en los sistemas de archivos y administradores de volúmenes tradicionales.

38

Page 39: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

Observemos el siguiente caso: para crear un conjunto, crear tres sistemas de archivos y, a continuación, incrementar el conjunto (5 pasos lógicos) se requieren 5 comandos sencillos de ZFS, frente a los 28 pasos necesarios con un sistema de archivos y administrador de volúmenes tradicionales.

Además, estos comandos son de tiempo constante y se completan en unos segundos, mientras que con frecuencia se requieren horas para configurar los sistemas de archivos y volúmenes tradicionales. En el caso mencionado anteriormente, ZFS reduce el tiempo necesario para completar estas tareas de 40 minutos a menos de 10 segundos.

La interfaz de la línea de comandos de ZFS simplifica drásticamente la administración. Se orienta a las tareas, por lo que los administradores pueden expresar las tareas que desean llevar a cabo en lugar de tener que memorizar o buscar comandos crípticos.

Los datos se pueden dañar de diferentes modos, como por ejemplo un error de sistema o una interrupción del suministro eléctrico inesperada, pero con ZFS se elimina este temor por lo desconocido. ZFS impide el daño a los datos ya que mantiene la coherencia de los mismos en todo momento. Todas las operaciones son transaccionales. De este modo, no sólo se mantiene la coherencia sino también se eliminan todas las restricciones sobre la orden de E/S y se permite que el conjunto de los cambios se realice correctamente o se produzca un error.

Todas las operaciones utilizan asimismo la técnica de copia por escritura (copy-on-write). Los datos en directo nunca se sobrescriben. ZFS escribe los datos en un nuevo bloque antes de cambiar los punteros de datos y confirmar la escritura. La técnica de copia por escritura ofrece varias ventajas:

· Estado en disco siempre válido. · Copias de seguridad coherente y fiable. · Capacidad de deshacer datos hasta un punto en el tiempo conocido.

Los administradores ya no tendrán que ejecutar laboriosos procedimientos de recuperación, como por ejemplo fsck, incluso si el sistema se cierra de un modo indebido.

Asimismo, ZFS es un sistema de archivos que realiza sumas de comprobación de 64 bits de un extremo a otro en todos los datos para evitar el daño de datos silencioso. Cuando se leen datos, se verifica la suma de comprobación con el fin de garantizar que se devuelven los datos que escribió la aplicación.

ZFS puede llevar a cabo la recuperación de datos automática en una configuración reflejada o RAID. Cuando una copia se daña, ZFS lo detecta mediante la suma de comprobación y utiliza otra copia para repararla.

39

Page 40: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

GESTION DE ENTRADA Y SALIDA

Una de las principales funciones del sistema operativo es la gestión de los recursos de la computadora y, en concreto, de los dispositivos periféricos. El gestor de Entrada/Salida debe controlar el funcionamiento de todos los dispositivos de Entrada/Salida para alcanzar los siguientes objetivos:

Facilitar el manejo de los dispositivos periféricos. Para ello ofrecer una interfaz sencilla, uniforme y fácil de utilizar entre los dispositivos, y gestionar los errores que se pueden producir en el acceso a los mismos.

Ofrecer mecanismos de protección que impidan a los usuarios acceder sin control a los dispositivos periféricos.

El sistema de entrada/salida en el sistema operativo Solaris se divide en dos sistemas complementarios: el estructurado por bloques y el estructurado por caracteres. El primero se usa para manejar cintas y discos magnéticos, y emplea bloques de tamaño fijo para leer o escribir. El segundo se utiliza para atender a las terminales, líneas de comunicación.

Cada dispositivo se estructura internamente mediante descriptores llamados número mayor, número menor y clase (de bloque o de caracteres). Para cada clase hay un conjunto de entradas, en una tabla, que aporta a los manejadores de los dispositivos. El número mayor se usa para asignar manejador, correspondiente a una familia de dispositivos; la menor pasa al manejador como un argumento, y éste lo emplea para tener acceso a uno de varios dispositivos físicos semejantes.

Las rutinas que el sistema emplea para ejecutar operaciones de E/S están diseñadas para eliminar las diferencias entre los dispositivos y los tipos de acceso. No existe distinción entre acceso aleatorio y secuencial, ni hay un tamaño de registro lógico impuesto por el sistema.

El sistema mantiene una lista de áreas de almacenamiento temporal (buffers), asignadas a los dispositivos de bloques. El Kernel usa estos buffers con el objeto de reducir el tráfico de E/S. Cuando un programa solicita una transferencia, se busca primero en los buffers internos para ver si el bloque que se requiere ya se encuentra en la memoria principal (como resultado de una operación de lectura anterior). Si es así, entonces no será necesario realizar la operación física de entrada o salida.

GESTIÓN DE COMUNICACIONES Y SEGURIDAD

40

Page 41: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

Existe un sinnúmero de sistemas embebidos que se pueden conectar a diferentes tipos de redes o Internet para mejorar sus características y desempeño, actualmente cuentan con elementos de hardware embebido, permitiendo que desde artefactos electrodomésticos hasta grandes equipos industriales puedan ser gobernados de forma remota por medio de conexiones a Internet y puedan ser inclusive controlados por medio de teléfonos celulares empleando una combinación de las tecnologías actuales. Es de esta forma, por ejemplo, como se pueden cambiar los valores de setpoint de reguladores de temperatura y encender o apagar los electrodomésticos de una casa, haciendo una simple llamada telefónica o accediendo a un sitio Web.

Estas características representan una nueva escala de riesgos, ya que no solo es la integridad de la información la que se ve comprometida con estos sistemas, sino al incluir diferentes actores que pueden ser gobernados por un atacante, se pueden generar estragos mucho mas graves que la pérdida de información o el cese de un servicio, como sucede normalmente en los incidentes de seguridad. Cambiar la temperatura de un recinto puede ser vital para algunas personas en épocas de invierno o verano. El ataque combinado a varios de estos elementos puede causar sobrecargas a las centrales de energía si se realiza el encendido simultáneo de múltiples elementos en las horas pico de consumo. Adicionalmente se puede realizar monitoreo del estado de dichos elementos y de esta forma se puede determinar los horarios en que una vivienda se encuentra vacía haciéndola vulnerable a robos y demás ataques físicos Por razones de costos, muchos de estos sistemas emplean procesadores sencillos, en los cuales los aspectos de seguridad son relegados a un segundo plano.

Existe un compromiso entre el costo y la seguridad que se puede lograr con estos sistemas ya que un poco mas de dinero, invertido en la adición de algún tipo de seguridad puede representar gran diferencia para las compañías que ensamblan millones de unidades al año, afectando la competitividad de dichas empresas, pero en contraste con los incidentes de seguridad de los sistemas de información convencionales, recuperar información o reestablecer un servicio puede requerir ciertos esfuerzos e inversión, pero revertir una muerte o una lesión física es imposible. En la medida en quelas funciones de los dispositivos de hardware embebido se vuelven mas complicadas, las herramientas para trabajar con estos se deben mejorar.

A menudo la forma para realizar mantenimiento y diagnóstico de estos dispositivos de hardware es conectarlos a una red local o una terminal de programación, lo cual puede generar riesgos adicionales debidos a ingresos no autorizados a la configuración y lectura del estado e historial de diagnósticos del equipo. Existen diferentes métodos de solucionar estos problemas, principalmente controlar el acceso a los equipos es clave. Estas soluciones pueden ser en algunos casos sencillas, y combina diferentes niveles de seguridad, pero pueden traer consigo algunos problemas:

41

Page 42: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

• Una de las soluciones consiste en la utilización de un esquema de contraseñas con el objeto de tener una barrera de primer nivel a los ingresos no autorizados. Sin embargo, hoy en día se logra muy poco con solo este tipo de protección dado que las contraseñas usualmente viajan por las redes en forma de texto no codificado. Tener diferentes

contraseñas para cada equipo también puede ser fuente de problemas, debido a que los usuarios normalmente deben escribirlas, compartirlas con otros usuarios e incluso incluirlas en scripts para ingreso automático, lo cual elimina la protección de acceso accidental.

• Existen diferentes tipos de protocolos orientados a generar seguridad en dispositivos simples como el SNMP Simple Network Management Protocol, el cual fue diseñado para obtener datos y programar dispositivos simples y es usado normalmente para monitorear nodos conectados a la red. Existen otros protocolos como SSH, SSL, IPSEC, e IKE entre otros, los cuales proporcionan un medio más seguro para establecer comunicación con este tipo de dispositivos.

• Existen otros métodos mas sofisticados, como el Sistema de autenticación Kerberos desarrollado por el MIT el cual se basa en tres principios de seguridad a saber, autenticación, autorización, y sistema de cuentas de usuario. Este es un sistema de autenticación de propósito general, en el cual los usuarios demuestran su identidad para acceder a cada servicio y el sistema decide si el usuario tiene acceso o no a dicho servicio. A medida que los dispositivos electrónicos, desde un PDA hasta un router, pasando por teléfonos celulares y tarjetas inteligentes avanzan tecnológicamente, también avanza la complejidad de los ataques a los que estos se enfrentan El punto de la seguridad en estos dispositivos es lo que más frena la adopción de dichas tecnologías para prácticas de comercio electrónico, según los resultados de encuestas recientes que revela que el 47% de las personas que tienen dispositivos móviles no se animan a este tipo de prácticas por temores concernientes a la seguridad de sus transacciones Siempre que se va a analizar problemas de seguridad en informática se debe tener la confidencialidad, integridad, disponibilidad, autenticación, rastreabilidad y no-repudio. Es por esto que en el mundo de los dispositivos móviles y PDA´s existe una variedad de protocolos y estándares como el WEP del IEEE Estándar 802.11, el WTLS del WAP y el SSL que sirven para protegerlos desde un punto de vista funcional, pero cuando se trata de sistemas embebidos debe tenerse también en cuenta algunos aspectos críticos como

• Muchos sistemas embebidos no tienen la suficiente capacidad de procesamiento para las exigencias de seguridad.

42

Page 43: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

• Los dispositivos que operan con baterías como los celulares y PDA’s no tienen la suficiente autonomía de funcionamiento ni los suficientes recursos de memoria para implementar medidas de seguridad.

• Los diferentes tipos de ataques que pueden sufrir estos dispositivos como los ataques por software y los ataques físicos entre otros, hacen que los sistemas tengan que ser diseñados de manera que aún cuando alguien tenga acceso a ellos física o lógicamente sigan siendo seguros. Podría asegurarse entonces que la encriptación de los datos no es suficiente por varios motivos, entre ellos el alto costo de procesamiento de los algoritmos de encriptación y el hecho de que los protocolos pueden no ser efectivos en los sistemas embebidos, por ejemplo en un dispositivo que reciba aplicaciones desarrolladas por terceros, cada tercero tendría que conocer ya sea el algoritmo o las llaves con las cuales se realiza la encriptación Algunas soluciones pueden ser: firewalls, detectores de intrusos, aplicaciones en criptografía, antivirus, administración de memoria y dump memory.

SOPORTE A TIEMPO REAL

Un sistema embebido complejo puede utilizar un sistema operativo como apoyo para la ejecución de sus programas, sobre todo cuando se requiere la ejecución simultánea de los mismos. Cuando se utiliza un sistema operativo lo más probable es que se tenga que tratar de un sistema operativo de tiempo real (RTOS),

Un sistema operativo de tiempo real (SOTR o RTOS -Real Time Operating System en inglés), es un sistema operativo que ha sido desarrollado para aplicaciones de tiempo real. Como tal, se le exige corrección en sus respuestas bajo ciertas restricciones de tiempo. Si no las respeta, se dirá que el sistema ha fallado. Para garantizar el comportamiento correcto en el tiempo requerido se necesita que el sistema sea predecible (determinista).

Características Generales

Usado típicamente para aplicaciones integradas, normalmente tiene las siguientes características:

No utiliza mucha memoria Cualquier evento en el soporte físico puede hacer que se ejecute una tarea Multi-arquitectura (puertos de código para otro tipo de UCP) Muchos tienen tiempos de respuesta predecibles para eventos electrónicos

43

Page 44: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

En la actualidad hay un debate sobre qué es tiempo real. Muchos sistemas operativos de tiempo real tienen un programador y diseños de controladores que minimizan los periodos en los que las interrupciones están deshabilitadas, un número llamado a veces duración de interrupción. Muchos incluyen también formas especiales de gestión de memoria que limitan la posibilidad de fragmentación de la memoria y aseguran un límite superior mínimo para los tiempos de asignación y retirada de la memoria.

Un ejemplo temprano de sistema operativo en tiempo real a gran escala fue el denominado «programa de control» desarrollado por American Airlines e IBM para el sistema de reservas Sabre.

Diseño

Hay dos diseños básicos:

Un sistema operativo guiado por eventos sólo cambia de tarea cuando un evento necesita el servicio.

Un diseño de compartición de tiempo cambia de tareas por interrupciones del reloj y por eventos.

El diseño de compartición de tiempo gasta más tiempo de la UCP en cambios de tarea innecesarios. Sin embargo, da una mejor ilusión de multitarea. Normalmente se utiliza un sistema de prioridades fijas.

44

Page 45: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

SOPORTE PARA LA NUBE E INTEGRACION A ELLA (CLOUD COMPUTING)

La generalización del termino cloud computing, la popular nube, como paradigma de todo tipo, tanto organizativo como de diseño de sistemas, comporta una interesante reflexión.

Si la nube permite a los clientes y usuarios poder obtener funcionalidades a través de servicios de los cuales solo conocen su contrato de servicio pero ignoran el diseño y la localización, ¿para qué leer un documento como el que tiene entre las manos?

Muchas veces olvidamos que los servicios han de ser fabricados, y que para eses trabajo, hay que prepararse y hacerlo bien, muy bien, ya que nuestros clientes son en la mayoría de los casos desconocidos y si nuestro producto no es correcto, simplemente nos dejaran.

Así pues, por encima de la nube están los usuarios i clientes, tanto finales como los profesionales que reutilizan los servicios, y por debajo, los constructores y suministradores de esos servicios.

Esta doble visión, no excluyente ya que los constructores pueden ser a si mismo clientes cuando reutilizan servicios, estará presente en todo el documento que tiene entre manos.

El software en la instrumentación virtual

El software es el componente más importante de un instrumento virtual. Con la herramienta de software apropiada los ingenieros y científicos pueden crear eficientemente sus propias aplicaciones, diseñando e integrando las rutinas que requiere un proceso específico. También pueden crear las interfaces de usuario que mejor satisfagan el objetivo de la aplicación y de aquéllos que van a interactuar con ellas.

45

Page 46: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

Pueden definir cómo y cuándo la aplicación adquiere datos desde el dispositivo, cómo los procesa, manipula y almacena los datos y cómo se presentan los resultados al usuario.

Disponiendo de un software poderoso, se puede dotar a los instrumentos con capacidades de inteligencia y de toma de decisiones de manera tal que se adapten cuando las señales medidas varíen inadvertidamente o cuando se requiera mayor o menor potencia de procesamiento.

Una importante ventaja que provee el software es la modularidad. Cuando se trata de un gran proyecto, el equipo de trabajo generalmente aborda la tarea dividiéndola en unidades funcionales manejables (metodología top-down). Estas tareas subsidiarias son más manejables y más fáciles de probar dadas las menores dependencias que podrían causar comportamientos inesperados. En este contexto se puede diseñar un instrumento virtual para solucionar cada una de estas tareas subsidiarias y luego reunirlas en un sistema completo para resolver la tarea de mayor envergadura. La facilidad con la cual se puede realizar esta división de tarea depende en mayor medida de la arquitectura subyacente en el software.

ANÁLISIS COMPARATIVO ENTRE PLATAFORMA TRADICIONAL Y EL SMARTPHONE

¿Si un sistema embebido se puede mover mientras está en operación, sigue siendo un sistema embebido o ahora es un dispositivo móvil?

Esta es una pregunta que ni siquiera se me hubiera ocurrido preguntar, sólo que surgió de manera aleatoria en el último mes y me encontré únicamente con la respuesta que di. Yo pensé, “Sí.” Nadie más lo hizo; ellos crearon un mercado separado para móviles.

Hay razones del por qué los móviles podrían merecer su propio mercado. La más obvia es que el mercado de móviles ha crecido tanto que amerita su propia categoría. Esto no necesariamente significa que los móviles no sean embebidos; es sólo que se han ganado su propia palabra clave y hashtag para que puedas profundizar en todas las cosas de móviles sin ser distraido por cosas realcionadas con otros tipos de sistemas embebidos. Podría, en efecto, decirse que los dispositivos móviles siguen siendo embebidos, pero les han otorgado su propia esquina; son un subconjunto diferente de embebidos.

Sin embargo, la otra posibilidad es que no compartan características de los sistemas embebidos, que de hecho sean diferentes técnicamente. Para explorar esa posibilidad, tenermos que hacer una pregunta, “¿Qué es un sistema embebido?”

Hemos escrito historias acerca de los sistemas embebidos por casi más de 6 años. Así

46

Page 47: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

que... puede parecer que sea un poco tarde para estar haciendo esta pregunta. Pero, basándome en algunas conversaciones que he tenido el último par de años, ésta puede ser más difícil de contestar de lo se podría pensar. Ingenieros experimentados pueden discutir por horas de esto. Yo lo he visto. Así que empecemos una inspección de las diferencias entre los sistemas embebidos y... bueno, los no embebidos (los cuales tienen múltiples encarnaciones).

Hay sistemas obvios con los que todos estaríamos de acuerdo que son embebidos. Una impresora o una de esas cosas portátiles que los repartidores de UPS siempre traen o un router blade de red o un PDV (punto de venta), puede bien decirse que todos son embebidos.

¿Porqué? Bueno, porque todos son dispositivos de los que no pensamos que sean computadoras y aún así usan tecnología de cómputo para cumplir algunas de sus tareas. Así que, comparadas con versiones “tontas” de un dispositivo similar (digamos, una de esas impresionantes, mecánicas y de la vieja escuela, cajas registradoras), tienen contenido de software así como contenido de hardware.

Pero por supuesto no todo sistema que ejecuta un software es un sistema embebido. Claramente, las PC de escritorio no lo son, cuando menos dado el como tú y yo las usaríamos en nuestros escritorios. Hay varias distinciones que me vienen a la mente:

Las computadoras de escritorio tienen una arquitectura más o menos regular (o dos -incluso tres si consideran WIntel, Apple y Linux-en-PC). La forma física puede variar un poco, pero todo se trata de meter las últimas versiones de todo lo que va en una PC en una elegante caja o reducir consumo de potencia o peso en laptops, sucesivamente. Y reduciendo el costo.

Los sistemas embebidos tienen formas específicas de fábrica; son como los perros, con muchas razas que se ven completamente diferentes. Esto se extiende a los periféricos: las expectativas de conectividad serán determinadas estrictamente por la función deseada del sistema. Una unidad de control industrial puede no tener una ranura Compact Flash -a menos que el diseñador específicamente previera que los programas o actualizaciones se entregarán vía CF. Es común que no tengan las múltiples opciones que una computadora de escritorio promedio tiene.

Las computadoras de escritorio son ricas en recursos. La memoria es barata (cuando menos hasta que tratas de mejorar una máquina vieja). Los procesadores son grandes y rápidos y tienen varios núcleos. El espacio en disco duro está creciendo a pasos agigantados. Los sistemas operativos y el software sacan ventaja de esto, con el inflaware siendo más la regla que la excepción. Las aplicaciones son mayoritariamente escritas usando programación orientada a objetos en lenguajes de alto nivel.

Los sistemas embebidos tienen un amplio rango de límites de recursos. En algunos dispositivos, todavía puedes medir la memoria en miles de bytes. Es muy raro que un sistema tenga un disco duro. Y el lenguaje C es el rey, habiendo cedido a C++ sólo donde los recursos lo permiten y la complejidad manda.

47

Page 48: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

Pero estas características son más descriptivas de, más que definitivas de, los sistemas embebidos. Casi entran en el tipo de “Reconozco uno cuando lo veo” de la escuela de taxonomía.

Sin embargo, hay una característica que parecería capturar la naturaleza esencial de los sistemas embebidos comparada con los no embebidos: están hechos para hacer una cosa (o un número pequeño de cosas bien definidas) y eso es todo. Cuando el usuario compra una unidad, todo el software necesario ya está dentro del sistema y, sin considerar las actualizaciones, el usuario no tiene más impacto en el contenido de software.

Las computadoras de escritorio, en contraste, son “pizarras en blanco” cuando las compras. (Bueno, en teoría nada más... en la vida real las embarcan con varios programas preinstalados que probablemente no quieras, algunos de los cuales pueden no operar correctamente -y no puedes obtener ayuda porque son versiones OEM y te dejan a tu suerte y muchos de ellos no se pueden desintalar fácilmente. Pero es sólo un detalle -la máquina podría ser embarcada sin todos los “regalitos” extra.) Son, en el fondo, simples dispositivos de cómputo y tú seleccionas qué cómputo quieres que hagan al cargarles y correr las aplicaciones de tu elección.

La diferencia es fundamentalmente clara de las características que vimos primero. Las originales estaban basadas en cosas como hardware y forma de fábrica. Esta nueva característica no tiene que ver con eso; tiene que ver con cómo el dispositivo es usado.

Así que cualquier servidor o computadora de escritorio de propósito general, ya sea operada sola o en un cluster de supercómputo o en la nube, no sería considerado embedido, porque no está desempeñando una función predefinida única.

Lo que trae una cuestión espinoza y aquí es donde dejamos lo potencialmente obvio y vamos al área donde puede haber debate. ¿Qué pasa si tienes una función dedicada que necesita ser ejecutada y la mejor manera posible de hacerlo es cargar software especializado en una computadora de escritorio y luego colocarla, digamos, en el piso de la fábrica cerca de la máquina que controla?

Por el primer conjunto de definiciones, esto no sería una aplicación embebida, porque involucra un sistema de escritorio. Pero por la última definición, sería embebido porque no es usado como una computadora de propósito general; sólo va a hacer una cosa. Yo sospecho que no hay una respuesta “oficial” a esta parte de la cuestión, pero, cuando menos, algunos ingenieros considerarían esto como un sistema o aplicación embebido.

¿Así qué dónde entran los dispositivos móviles en esto? Las definiciones relacionadas

48

Page 49: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

con hardware no dicen nada de si el dispositivo puede operar sin ataduras o moverse de lugar en lugar o algo por el estilo. La caja de rastreo de UPS es claramente un dispositivo móvil, pero es considerado típicamente embebido. Los teléfonos celulares viejos también califican como embebidos basados en la definición de “uso:” cuando comprabas un teléfono celular, el software que corría internamente era completamente invisible para el usuario. El teléfono hacía llamadas, enviaba mensajes de texto, accesaba a internet y eso era todo lo que podía hacer. Simplemente es que usaba la infraestructura celular para hacerlo.

Incluso desde un punto de vista de hardware, diferentes teléfonos eran diferentes: podían tener diferentes arquitecturas de cómputo, podían usar diferentes procesadores y podían tener diferentes E/S (distintos al de radio). Otra vez, entran en las características clásicas de los sistemas embebidos.

Sin embargo, todo eso cambió con las aplicaciones. Por primera vez, el smartphone podía actuar como una plataforma de cómputo de propósito general en la que los usuarios podían instalar y ejecutar aplicaciones que no estaban cargadas de fábrica. Por supuesto, los smartphones no entran dentro de la categoría de cómputo general, porque siguen siendo unidades altamente especializadas. Podrán ejecutar aplicaciones, pero esa es sólo una porción de lo que la unidad hace; no es la única función en el sentido en que lo es en un sistema de escritorio.

Las tabletas han desdibujado aún más las líneas. Son como laptops atontadas que corren el tipo de programas que podrías encontrar en un teléfono (sólo que ahora sí puedes ver o leer lo que ocurre). Puede ser que estén conectadas a la infraestructura celular, pero su función principal ya no es hacer llamadas (ignorando el hecho inconveniente de que los smartphones hacen llamadas telefónicas menos que otras cosas). Uno se vería bastante raro caminando por la calle con la tableta pegada a la oreja.

Así que tanto los smartphones como las tabletas violan la definición de uso de un sistema embebido. Pero tampoco son computadoras de propósito general. Son algo en medio. Validando los móviles como una categoría separada.

Esto todavía deja la cuestión acerca de lo que específicamente es llamado “móvil.” ¿Es el simple hecho de que un dispositivo se enlace a la infraestructura celular? ¿Es que se pueda comunicar con otros dispositivos mientras se mueve por ahí (en cuyo caso un dispositivo para música con conectividad Bluetooth podría calificar)? ¿Y que hay del dispositivo de rastreo de UPS, el cual se comunica con la nave nodriza en el aire mientras, en todos los demás aspectos, actúa como un sistema embebido? La habilidad de manejar aplicaciones -que es lo que en realidad les da a los móviles su propia categoría? no está claramente comprendida en la palabra “móvil.”

Quién sabe cómo se tomen las decisiones acerca de cuáles dispositivos se coloquen en

49

Page 50: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

qué categoría. Quizás el mercado de móviles fuera de hecho definido como distinto debido a su tamaño y concentración antes de que hubiera smartphones. Pero, aún si así fue, desde la llegada del smartphone en adelante, algunos dispositivos móviles claramente se han ganado su propio nicho que no es ni embebido ni computadora. Así que en vez de discutir acerca de si hay que crear una nueva categoría, podemos discutir qué dispositivos, que están en los límites, deberían ser considerados embebidos y cuáles deberían ser considerados móviles.

ESTADISTICAS DE UTILIZACION A NIVEL MUNDIAL

En el sitio de estadísticas StatCounter se puede apreciar que a enero de 2010, la distribución de uso de sistemas operativos de escritorio, obtenida al contabilizar las visitas a los sitios web que monitorizan:

Windows XP es el sistema operativo más extendido en el mundo con un 69.36% de usuarios

Le sigue Windows Vista con un 21.78%

MacOSX con un 4.32%

Windows 7 con un 2.35%

y GNU/Linux con un 'pequeño' 0,68%

StatCounter Global Stats - Browser, OS, Search Engine including Mobile Market Share

Sin embargo, haciendo el análisis por regiones, la cosa varía un poco, y tenemos resultados curiosos, como que en Europa Linux lo usa un 1,06% de los internautas, mientras que en Norteamérica (EE.UU. Canadá y México) el porcentaje es tan bajo que ni siquiera aparece reflejado en las estadísticas.

Por países igualmente resulta llamativo por ejemplo que mientras en España Linux tiene un 1.66% de penetración, en Alemania un 1,14% y en Francia un 1,87% (quizás el más alto en el mundo), en otros sitios como Argentina o Chile (por citar dos países de los que en este foro hay representantes) el uso de Linux no llegar a estar siquiera contemplado en la estadística... aunque por ejemplo en EE.UU o Japón tampoco.

En EE.UU en cambio Apple tiene por ejemplo un 10.2% del mercado.

En fin, que aunque Kalli tenga este hilo abierto, la cosa va aún despacio en lo que a sistemas de escritorio se refiere.

Ranking de sistemas operativos Febrero 2010:

50

Page 51: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

1. Windows XP: 65.49% 2. Windows Vista: 16.51% 3. Windows 7: 8.92% 4. Mac OS X 10.5: 2.21% 5. Mac OS 10 x 6: 1.88% 6. Linux: 0.98% 7. Mac OS X 10.4: 0.72% 8 Java ME 0.64% 8. Windows 2000: 0.56%

MarketShare ha publicado los últimos datos de la cuota de mercado de los sistemas operativos durante el pasado mes de Diciembre. En total, se han analizado más de 22 más de sistemas operativos, y ha habido alguna sorpresa que otra.

Evidentemente, las dos sorpresas mayores son Windows Vista y Linux. Mientras que Vista, el que ha sido llamado el fracaso del año, está colocado como el segundo sistema operativo más usado, Linux se coloca el séptimo con una cuota irrisoria del 0.63%, frente al 76.91% de XP y el 10.48% de Vista.

Antes de nada, hay que aclarar que estas estadísticas son recopiladas tras millones y millones de acceso a miles de páginas webs, por lo que los servidores dedicados no son contabilizados. Por tanto, de alguna manera esa cuota de Linux implica únicamente a los usuarios de escritorio, al igual que XP respecto a XP Server.

Por el resto no hay nada sorprendente. Mac sigue adelante en su cruzada y el iPhone ha desbancado totalmente a Windows CE (Mobile), y la sorpresa -que ya no lo es tanto- es la cantidad de gente que aún siguen usando Windows 2000 y 98. Y más abajo aún, con un 0.2%, está Windows 95, que con sus 11 años, aún sigue estando presente en muchos hogares del mundo.

GNU/Linux ocupa un lugar destacado como segundo sistema operativo que sirve web en Internet.

En algunos de los rastreos de Netcraft también se han incluido datos sobre sistemas operativos; dos rastreos en 2001, los de junio de 2001 y septiembre de 2001, revelaron que GNU/Linux es el segundo sistema operativo para servidores de web y ha ido ganando constantemente aceptación desde febrero de 1999. Este recuento no se hizo por nombre de servidor como se hace con el de programas servidores de web, sino por direcciones IP, o sea los identificadores únicos de cada máquina visible en Internet.

Una pequeña aclaración sobre las fechas: Netcraft da la fecha de cada estudio según el momento de la última tanda de rastreos, no el de publicación del informe. Por eso la revisión con fecha de "junio de 2001" se publicó en julio, y cubre resultados de revisiones de sistemas operativos desde marzo.Aquí tenemos un resumen del estudio de Netcraft:

51

Page 52: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

Grupo de sistemas operativos

Porcentaje (marzo)

Porcentaje (junio) Composición

Windows 49.2% 49.6% Windows 2000, NT4, NT3, Windows 95, Windows 98

[GNU/]Linux 28.5% 29.6% [GNU/]Linux

Solaris 7.6% 7.1% Solaris 2, Solaris 7, Solaris 8

BSD 6.3% 6.1% BSDI BSD/OS, FreeBSD, NetBSD, OpenBSD

Otros UNIX 2.4% 2.2% AIX, Compaq Tru64, HP-UX, IRIX, SCO UNIX, SunOS 4 y otros

Otros - no-UNIX 2.5% 2.4% MacOS, NetWare, sistemas operativos

cerrados de IBM

Desconocidos 3.6% 3.0% Sistemas operativos que el detector de Netcraft no identifica

Se pueden interpretar estas tablas de forma muy distinta según lo lo que se pretenda medir. Si queremos el porcentaje de sistemas abiertos, tendremos que sumar una parte de los BSD (FreeBSD, NetBSD, y OpenBSD), varios de los cuales son también abiertos, de modo que al menos un 6.1% se añade al 29,6% de GNU/Linux. En consecuencia, es más que razonable afirmar que una tercera parte de los ordenadores servidores de web usan sistemas operativos abiertos. Hay además diferencias geográficas. Por ejemplo, GNU/Linux supera a Windows en Alemania, Hungría, la República Checa y Polonia.

Entre los sitios web muy conocidos que utilizan GNU/Linux se encuentran La Casa Blanca, Google, y el proveedor líder de alojamiento web Rackspace. Más sitios web harto conocidos que utilizan otros sistemas abiertos son, por ejemplo Yahoo y Sony de Japón, que usan FreeBSD.

Si lo que le interesa es la proporción del mercado de servidores de web entre "UNIX y Windows", la puede encontrar también en la siguiente suma. Todos los sistemas operativos Windows se han reunido en un único número, sean Windows 95/98/ME o Windows NT/2000 aunque haya profundas diferencias. Una agrupación análoga de los ordenadores UNIX produce un total del 44,8% para sistemas de tipo UNIX en marzo de 2001, comparado con el 49,2% de Windows.

Nótese que estas cifras probablemente diferirían mucho si estuviesen basadas en direcciones de web en lugar de direcciones IP; ya que una clara mayoría de direcciones de web se encuentran en sistemas de tipo UNIX. Según Netcraft, "Aunque Apache ejecutándose en varios sistemas UNIX corre en más sitios que Windows, Apache está fundamentalmente instalado en empresas de hosting e ISPs (proveedores de servicios de Internet) que albergan tantos sitios como pueden en un único ordenador para ahorrar costes". De ahí la diferencia en las cifras.

52

Page 53: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

OTROS ASPECTOS

Aplicaciones de un sistema embebido

Los lugares donde se pueden encontrar los sistemas empotrados son numerosos y de varias naturalezas. A continuación se exponen varios ejemplos para ilustrar las posibilidades de los mismos:

En una fábrica, para controlar un proceso de montaje o producción. Una máquina que se encargue de una determinada tarea hoy en día contiene numerosos circuitos electrónicos y eléctricos para el control de motores, hornos, etc. que deben ser gobernados por un procesador, el cual ofrece un interfaz persona – máquina para ser dirigido por un operario e informarle al mismo de la marcha del proceso.

Puntos de servicio o venta (POS, Point Of Service). Las cajas donde se paga la compra en un supermercado son cada vez más completas, integrando teclados numéricos, lectores de códigos de barras mediante láser, lectores de tarjetas bancarias de banda magnética o chip, pantalla alfanumérica de cristal líquido, etc. El sistema empotrado en este caso requiere numerosos conectores de entrada y salida y unas características robustas para la operación continuada.

Puntos de información al ciudadano. En oficinas de turismo, grandes almacenes, bibliotecas, etc. existen equipos con una pantalla táctil donde se puede pulsar sobre la misma y elegir la consulta a realizar, obteniendo una respuesta personalizada en un entorno gráfico amigable.

Decodificadores y set-top boxes para la recepción de televisión. Cada vez existe un mayor número de operadores de televisión que aprovechando las tecnologías vía satélite y de red de cable ofrecen un servicio de televisión de pago diferenciado del convencional. En primer lugar envían la señal en formato digital MPEG-2 con lo que es necesario un procesado para decodificarla y mandarla al televisor. Además viaja cifrada para evitar que la reciban en claro usuarios sin contrato, lo que requiere descifrarla en casa del abonado. También ofrecen un servicio de televisión interactiva o web-TV que necesita de un software específico para mostrar páginas web y con ello un sistema basado en procesador con salida de señal de televisión.

Sistemas radar de aviones. El procesado de la señal recibida o reflejada del sistema radar embarcado en un avión requiere alta potencia de cálculo además de ocupar poco espacio, pesar poco y soportar condiciones extremas de funcionamiento (temperatura, presión atmosférica, vibraciones, etc.).

Equipos de medicina en hospitales y ambulancias UVI – móvil. Máquinas de revelado automático de fotos. Cajeros automáticos. Pasarelas (Gateways) Internet-LAN. Y un sin fin de posibilidades aún por descubrir o en estado embrionario como

son las neveras inteligentes que controlen su suministro vía Internet, PC de bolsillo, etc.

53

Page 54: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

RESUMEN DEL TRABAJO

SISTEMAS OPERATIVOS EMBEBIDOS

Un sistema operativo embebido es aquel que ha sido creado para un sistema embebido, es decir, un sistema de computación limitado a un número fijo y escaso de tareas. Aquí no entran, evidentemente, los ordenadores personales ni los móviles, tablets o dispositivos avanzados que conocemos. Una peculiaridad de los sistemas embebidos es que son un todo con las aplicaciones que ejecutan, lo que quiere decir que en muchos casos no es posible instalar en ellos ningún tipo de software adicional.

Algunas características son:

Fiabilidad y seguridad Eficiencia Interacción con dispositivos físicos Robustez

Entre las plataformas de los sistemas operativos embebidos tenemos:

Linux embebido es un sistema Linux típico del cual se han removido programas de utilidad, herramientas, y otros servicios del sistema que no son necesarios en un ambiente embebido. Linux para los dispositivos embebidos comenzó con el soporte del kernel y el compilador para los microprocesadores más populares de 32 bits: x86, ARM, PowerPC, MIPS y SH. Y luego continuó con la aparición de diferentes distribuciones de Linux con soporte para características específicas de los sistemas embebidos.

DOS Es un sistema operativo que hay que conocer porque sigue estando en vigor gracias a su estabilidad ya que se desarrollaba en paralelo con la tecnología de Intel e IBM y porque es un sistema operativo muy simple, monousuario y monotarea. En otras palabras, DOS sólo ejecuta un programa cada vez

Java para sistemas embebidos. La tecnología Java es cada vez más utilizada en sistemas embebidos avanzados, debido a sus capacidades inherentes de soporte de red, optimización de dispositivos y procesado de datos.

GESTIÓN DE MEMORIA AUXILIAR DE UN SISTEMAS OPERATIVOS EMBEBIDOS

La memoria auxiliar (llamada también memoria física o memoria externa) que almacena información a largo plazo, incluso después de apagar el equipo. La memoria auxiliar corresponde a los dispositivos magnéticos de almacenamiento como por ejemplo el disco duro, dispositivos ópticos de almacenamiento como los CD-ROM y DVD-ROM, y a las memorias de sólo lectura.

SISTEMA DE ARCHIVOS (ZFS).

54

Page 55: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

ZFS, es el sistema de archivos dinámico del sistema operativo Solaris. Con 16 millones de millones más de capacidad que los sistemas de archivos 64-bit existentes, ZFS virtualmente es el único sistema de archivos con capacidad de almacenamiento prácticamente ilimitada, lo que hace de Solaris el mejor de la industria para el almacenamiento de datos.

SISTEMAS OPERATIVOS TIEMPO REAL

Un proceso o tarea de tiempo real es el que se ejecuta en conexión con algún proceso, función o conjunto de sucesos externos al sistema informático y que debe cumplir uno o más plazos para interactuar en forma correcta y eficiente con el entorno exterior.

Características

Pequeño tamaño (con una mínima funcionalidad asociada)

Cambios de contexto rápidos

Capacidad para responder rápidamente a interrupciones externas

Multitarea con herramientas de comunicación entre procesos, como semáforos y señales

COMPONENTES DE UN SISTEMA EMBEBIDO

Un sistema embebido en principio estaría formando por un microprocesador y un software que se ejecute sobre este. Sin embargo este software necesitara sin duda un lugar donde poder guardarse para luego ser ejecutado por el procesador. Esto podría tomar la forma de memoria RAM o ROM, todo sistema embebido necesitara en alguna medida una cierta cantidad de memoria, la cual puede incluso encontrarse dentro del mismo chip del procesador.

PROCESO DE INSTALACIÓN

Los pasos necesarios para la instalación de los sistemas embebidos son:

Conocer la arquitectura hardware del dispositivo. Configurar el kernel incluyendo los controladores para esos dispositivos y

eliminar lo que no sirve. Crear el script de configuración y ejecución de la aplicación embebida. Configurar y compilar la busybox incluyendo la aplicación y el script. Compilar el kernel Prueba de ejecución

GESTIÓN DE MEMORIA

Cualquiera de las funcionalidades de los sistemas embebidos están compuestas de tres aspectos: procesamiento, almacenamiento y comunicación. El procesamiento es la transformación de los datos, el almacenamiento es la retención de los datos para su posterior uso, y la comunicación es la transferencia de los datos. Cada uno de estos

55

Page 56: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

aspectos debe ser implementado. Se usan procesadores para el procesamiento, memoria para el almacenamiento, y buses para la comunicación

Memoria real

La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido acceso. Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor.

SOPORTE A TIEMPO REAL

Un sistema embebido complejo puede utilizar un sistema operativo como apoyo para la ejecución de sus programas, sobre todo cuando se requiere la ejecución simultánea de los mismos. Cuando se utiliza un sistema operativo lo más probable es que se tenga que tratar de un sistema operativo de tiempo real (RTOS).

ANÁLISIS COMPARATIVO ENTRE PLATAFORMA TRADICIONAL Y EL SMARTPHONE

Desde un punto de vista de hardware, antiguamente los teléfonos eran diferentes: podían tener diferentes arquitecturas de cómputo, podían usar diferentes procesadores y podían tener diferentes E/S (distintos al de radio). Otra vez, entran en las características clásicas de los sistemas embebidos.

Sin embargo, todo eso cambió con las aplicaciones. Por primera vez, el smartphone podía actuar como una plataforma de cómputo de propósito general en la que los usuarios podían instalar y ejecutar aplicaciones que no estaban cargadas de fábrica. Por supuesto, los smartphones no entran dentro de la categoría de cómputo general, porque siguen siendo unidades altamente especializadas. Podrán ejecutar aplicaciones, pero esa es sólo una porción de lo que la unidad hace; no es la única función en el sentido en que lo es en un sistema de escritorio.

Así que tanto los smartphones como las tabletas violan la definición de uso de un sistema embebido. Pero tampoco son computadoras de propósito general. Son algo en medio. Validando los móviles como una categoría separada.

Sistema Operativo Sailfish

Sailfish es basado en un sistema operativo Linux de propósito general, ampliamente conocido como un sistema operativo móvil que combina el núcleo de Linux para un uso plataforma de hardware especial, el código abierto Mer núcleo middleware, la

56

Page 57: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

propia interfaz de usuario contribuyó por Jolla, y otros componentes de terceros algunas de las cuales son de software libre, y otros de los cuales son de propiedad.

Sailfish está siendo desarrollado por Jolla en cooperación permanente con la comunidad de Sailfish, el proyecto Mer y su comunidad, los miembros corporativos de la Alianza de Sailfish y varios miembros de la comunidad abierta. La comunidad Sailfish realiza solicitudes de desarrollo y decide las prioridades de desarrollo de la votación. El proyecto Mer recibe contribuciones de la comunidad Jolla, y Mer contribuye middleware para Jolla, asegurando así la compatibilidad de ambos proyectos.

Sailfish se utiliza en el teléfono inteligente Jolla, la Jolla Tablet, y por otros licenciatarios.

El sistema operativo es una continuación evolucionada de los Linux MeeGo OS previamente desarrollados por la alianza de Nokia y de Intel. El legado MeeGo está contenido en el núcleo Mer en aproximadamente el 80% de su código; de ahí el nombre Mer expande a MEego R econstructed.

Jolla y MERproject.org siguen un sistema meritocrático para evitar los errores que conducen a la interrupción entonces no anticipado del proyecto MeeGo.

Sailfish 2.0 es actualmente en desarrollo para móviles y la Jolla Tablet anunciado. OS Sailfish 2.0 se desarrolla con un modelo de integración continua, con el objetivo de proporcionar actualizaciones de software mensuales a todos los usuarios del sistema operativo Sailfish y asociados para el desarrollo. Los clientes que utilizan 1.x Sailfish con cualquier dispositivo pueden actualizarse a Sailfish 2.0.

Los principales elementos para OS Sailfish 2.0 incluyen:

Técnicamente fuerte núcleo de sistema operativo

Mejora de la compatibilidad de las aplicaciones Android

Soporte para la arquitectura Intel, incluyendo el procesador Intel Atom x3

Diseño para proporcionar visibilidad en la interfaz de usuario para los proveedores de contenidos digitales y para permitir la integración de nivel de sistema operativo para el comercio móvil

Multitarea Strong (una de las ventajas más importantes del sistema operativo y declaró ser el mejor en el mercado)

Características de privacidad y personalización fuertes

Interfaz de usuario mejorada con la nueva interfaz de usuario / UX características, incluyendo el acceso más simple golpe a las funciones principales, notificaciones mejoradas y eventos vistas.

Arquitectura del Sistema Operativo

57

Page 58: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

Dispositivo Sobre los que se ejecuta

Sailfish se ejecuta en la Jolla tableta y teléfono Jolla. También se ha portado a otros dispositivos, incluyendo:

Acer Iconia Tab W500

ExoPC

Google Nexus One

Google Nexus 4

Google Nexus 5

Google Nexus 7

HP Mini

HTC Desire HD

58

Page 59: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

HTC Desire Z

Nokia N950 y Nokia N9 - durante varias presentaciones realizadas por Jolla

O2 Joggler

OnePlus Uno

Packardbell Butterfly Touch

Raspberry Pi 2 -, ya que utiliza la CPU ARM Cortex-A7. (De frambuesa Pi1 ARMv6 CPU tiene una arquitectura diferente, y Sailfish requiere ARMv7.)

Samsung Galaxy S3

Samsung Galaxy Nexus

Sony Ericsson Xperia Pro codename Iyokan

Sony Xperia SP

Xiaomi Mi2

Sailfish se ejecuta en los siguientes dispositivos como el sistema operativo con licencia de sus fabricantes, incluyendo:

De Aqua Fish

Emuladores

Acer Iconia tab W500

O2 Joggler

Exopc.

HP Mini

PackardBell Buttefly Touch

Nokia N950 and Nokia N9 (presentados varias veces por la misma Jolla)

Google Nexus 7

Oneplus one. 11 de marzo de 2015

59

Page 60: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

CONCLUSIONES Y OBSERVACIONES

El control del usuario es generalmente mucho mayor en un sistema operativo en tiempo real que en un sistema operativo ordinario. En sistema operativo típico que no sea en tiempo real, el usuario no tiene control sobre la función de planificación del sistema operativo. En un sistema en tiempo real resulta esencial permitir al usuario un control preciso sobre la prioridad de las tareas.

A diferencia de los sistemas operativos convencionales, la mayoría de los sistemas operativos embebidos están enfocados a un CPU simple, que usualmente no tiene MMU. Además el resto del sistema tiene memoria limitada, poco o ningún espacio en disco; así que usualmente no usan memoria virtual.

Los sistemas operativos embebidos y de tiempo real han venido evolucionando de forma constante y presentando día tras días nuevos beneficios para su uso, otorgando mayor capacidad de almacenamiento, mayor rapidez y mejor desempeño.

Los sistemas Linux embebido y QNX no soportan paginación, esto quiere decir que los datos, texto y pila comparten un espacio contiguo de memoria. Esto implica que no existe protección a nivel de memoria, por ejemplo, la pila podría crecer hasta ocupar el espacio de texto o datos; o un proceso podría leer o escribir datos de otro proceso.

Para las personas que quieran entender de forma clara el funcionamiento de un sistema operativo embebido, primero deben estudiar como algunas implementaciones realizan el manejo de abstracciones básicas del sistema, de lo contrario les dificultara el entendimiento de estos sistemas operativos embebidos.

Una particularidad de los sistemas embebidos es que son un todo con las aplicaciones que ejecutan, lo que quiere decir que en muchos casos no es posible instalar en ellos ningún tipo de software adicional.

El sistema operativo Sailfish permite al ser software libre que los usuarios puedas obtener el código fuente del sistema operativo y adaptarlo a sus necesidades.

Sailfish permite que los usuarios se vinculen al proyecto de sailfish con sus aportes a mejoras del sistema operativo ya que es un sistema operativo cooperativo.

60

Page 61: Sistemas operativos embebidos y Sailfish Web viewSailfish es basado en un sistema operativo Linux de propósito general, ... es un ejemplo de una gran estructura con una ingeniería

BIBLIOGRAFÍA

http://espanol.techfocusmedia.net/index.php/articulos/20120315-moviles-y-embebidos/

http://www.esacademic.com/dic.nsf/eswiki/879454/Sistema

http://www.quickiwiki.com/es/Sistema_embebido

http://es.wikipedia.org/wiki/Sistema_embebido

http://es.scribd.com/doc/32547554/46/Windows-CE-caracteristicas

http://gnujavier.blogspot.com/2011/06/sistemas-operativos-embebidos.html

www.redeweb.com/_txt/642/48.pdf

https://es.wikipedia.org/wiki/Sailfish_OS

https://es.wikipedia.org/wiki/GNU_General_Public_License

https://es.wikipedia.org/wiki/N%C3%BAcleo_Linux

https://es.wikipedia.org/wiki/Arquitectura_ARM#Linux

https://es.wikipedia.org/wiki/RPM_Package_Manager

https://es.wikipedia.org/wiki/GNU/Linux

https://blog.jolla.com/sailfish-os-2-0-now-available/

https://sailfishos.org/

61