Download sistemas operativos embebidos

Document related concepts

Linux embebido wikipedia , lookup

Windows XP Professional x64 Edition wikipedia , lookup

Sistema operativo móvil wikipedia , lookup

Windows NT wikipedia , lookup

Windows CE wikipedia , lookup

Transcript
SISTEMAS OPERATIVOS EMBEBIDOS, CE Y TIEMPO REAL
PRESENTADO A: CARLOS GOMEZ
PRESENTADO POR: BRIGETH CEBALLOS 908514
BEATRIZ SERNA 908558
UNIVERSIDAD NACIONAL DE COLOMBIA
SEDE MANIZALES
SISTEMAS OPERATIVOS
23 DE OCTUBRE DEL 2012
0
INDICE
INTRODUCCION………………………………………………………...........2
MARCO TEORICO………………………………………………………….....3
CUERPO………………………………………………………………………..4
Introducción……………………………………………………………...4
Historia y evolución...……………………………………………………5
Presentación………………………………………………………………16
Estructura y Componentes del sistema………………………………...17
Plataformas sobre las que trabaja………………………………………18
Proceso de instalación…………………………………………………...23
Gestión de procesos y del procesador……………………………….....25
Gestión de memoria……………………………………………………….27
Gestión de memoria auxiliar……………………………………………...28
Gestión de entrada y salida……………………………………………....31
Gestión de comunicaciones y seguridad……………………………….31
Soporte a tiempo real……………………………………………………..34
Soporte para la nube e integración a ella (cloud computing)……….35
Análisis comparativo con Linux y Windows XP………………………...38
Estadísticas de utilización a nivel mundial……………………………...39
Otros aspectos……………………………………………………….........43
RESUMEN………………………………………………………………………..45
CONCLUSIONES………………………………………………………………..50
OBSERVACIONES……………………………………………………………....51
BIBLIOGRAFIA…………………………………………………………………...52
1
INTRODUCCION
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.
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
2
cualquier desarrollo va a necesitar estar sobre un sistema operativo particular de
acuerdo a las actividades que realice el mismo.
MARCO TEORICO
Como parte de la investigación a realizar sobre los sistemas operativos embebidos
es necesario tener una base de conocimiento que responda a incógnitas
singulares como lo son:
¿Qué son sistemas operativos embebidos?, ¿Qué características presentan?,
¿Cómo se comportan? y otros interrogantes; cuyas respuestas las mostraremos a
continuación.
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, tabletas 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.
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 límite de tiempo.
Donde ese límite de tiempo resulta crucial.
Algunas de las características de estos sistemas es que son dependientes.
Dentro del concepto de dependencia surgen otros como confiabilidad,
mantenimiento, seguridad y disposición. Estos aplican para sistemas embebidos
que funcionan en fábricas o plantas industriales que corren durante todo el día.
También, los sistemas embebidos tienen que ser eficientes, tanto en el consumo
de energía como el código que ocupan para funcionar, esto se debe a la limitada
capacidad de memoria de almacenamiento que poseen.
3
INTRODUCCION
En la cotidianidad nos encontramos con miles de herramientas como el
microondas, el auto, el ascensor, el equipo de audio, el avión los cuales 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.
Pero realmente nunca nos detenemos para preguntarnos como logra desarrollar
todas sus funciones, la pregunta que podría surgir ¿es que acaso son
inteligentes?, pues no es así simplemente son sistemas de computación limitado
a un número fijo y escaso de tareas. Descartando, evidentemente, los
ordenadores personales ni los móviles, tablets o dispositivos avanzados que
conocemos; que tienen integrado un sistema operativo embebido y de tiempo real
que les permite desarrollar las actividades repetitivas y sencillas, para las que
fueron diseñados estos electrodomésticos.
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.
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.
4
HISTORIA SISTEMAS OPERATIVOS EMBEBIDOS Y TIEMPO REAL
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
5
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 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
6
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 Operativos Embebidos y de Tiempo Real surgen a finales de 70’s y
80’s.
Los sistemas embebidos se encuentran disponibles a cada momento 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.
EVOLUCIÓN SISTEMAS OPERATIVOS EMBEBIDOS Y TIEMPO REAL

1981: QMX primer SO de microkernel para PCs, soportado por la PC de
IBM.

1982: QMX primer SO para PCs que soportó un disco rígido (5MB Davong).

1983: QMX primer SO para PCs que corre en una 80286 en modo
protegido.

1984: QMX uno de los primeros en ofrecer procesamiento distribuido
transparente para PCs.

1985: QMX primer SO de tiempo real que corrió en la primera 80386 de
Compaq.

1990: QMX primer microkernel de SO de tiempo real certificado por POSIX.

1992: QMX primer SO de tiempo real para trabajar en red con tolerancia a
fallos (FLEETTM).

1993: El primer relase de NetBSD (la versión 0.8) vio el mundo el 20 de
Abril de 1993.

1994: QMX primer sistema de microkernel con ventanas embebible (el
Photon microGUI).

1995: Nació OpenBSD a raíz de la expulsión de Theo de Raadt del grupo
de desarrollo de NetBSD.

1996: QMX primer microkernel basado en POSIX para sistemas
profundamente embebidos (QNX/Neutrino). 1996: Windows CE 1.0:
lanzado comercialmente en este año y su código fuente fue escrito desde
7
cero, Parcialmente compatible con el Windows tradicional pues soporta una
parte de la famosa API Win32. Independiente del hardware pues es
compatible con las arquitecturas más comunes de 32 bits.

1997: QMX primer buscador de escritorio para la web de sistemas
embebidos (Voyager TM).

1997: Windows CE 2.0 Basado en la versión predecesora 1.0 vio la luz en
1997. Se añadió soporte para procesadores Intel y AMD Soporta pantallas
con resolución de 24 bits, conexión de red LAN Soporte de tecnología
ActiveX Incorpora la máquina virtual java. Soporte parcial MFC (Microsoft
Foundatin Classes, una librería de clases en C++ para programación bajo
Windows, incluida en MS. Visual C++) Conectividad USB e infrarrojos.
Soporte FAT e impresión.

1998: primero en ajustar un OS, GUI, browser, servidor, marcador, TCP/IP,
y más dentro de un disco de 1.44M (1.44M Disco de Demostración)

2000: Primero en ofrecer un host y plataforma gráfica para los diseñadores
de OS embebidos

2000: WindowsCE 3.0, esta versión salió al mercado en este año con el fin
de competir con el sistema operativo de PALM, incorporación de las
interrupciones con prioridades, mayor eficiencia en la gestión de threats y
en las comunicaciones entre procesos, mayor capacidad de
almacenamiento, es la base del sistema operativo PocketPC 2002, que se
podía encontrar entonces en algunas PDA y teléfonos.

2002: Windows CE 4.0: Sistema operativo mucho más robusto y eficiente a
nivel multiproceso que la anterior versión. Mayor grado de comunicación y
sincronización con el sistema Windows tradicional. De él nació en Junio del
2003 la conocida versión Windows Mobile 2003. Prácticamente fue un
cambio de nombre y unas aplicaciones añadidas. 2003: Se lanza Microsoft
Windows CE .Net 4.0

2004: Microsoft publica a Windows CE .Net 4.2 a principios de año. Se
lanza Windows XP Embedded.

2005: Windows CE 5.0: Penúltima versión de este sistema operativo
lanzado en Mayo. Mejora del software ofimático y multimedia. Mejoras en el
stack bluetooth. De él nació la versión Windows Mobile 5.0 disponible en
multitud de teléfonos móviles y PDAs.

2007: Windows CE 6.0: Última versión de este sistema operativo lanzado a
principios del año. Un 30% superior en prestaciones a su predecesor
Windows CE 5.0. Es posible acceder mediante API a un I/O en un ciclo de
100us. Los mayores cambios se encuentran en el Kernel. La arquitectura
8
del sistema operativo ha sido completamente revisada. Cada proceso es
capaz de direccionar 2GB (antes 32Mb). El nº de procesos simultáneos ha
aumentado de 32 a 32.000.
HISTORIA DE WINDOWS CE EMBEBIDO
El sistema operativo ce se creó a partir de los sistemas operativos ya existentes
de la familia Microsoft como Windows 9x, Windows NT, que sistemas ya creados
los cuales se dedicaban a la compatibilidad con las aplicaciones con los Hardware
existentes en cual pretendida integrar multitareas. Ya que lo Windows NT quería
era convertirse en el sistema operativo predilecto de las empresas. Sin embargo
Windows CE pretendía es: proveer un moderno sistema operativo de plataforma
cruzada, multihilado y de tamaño pequeño. Esta última característica es la
principal diferencia con Windows 95 y Windows NT. Cuando se habla de tamaño,
se refiere a la cantidad de memoria y de almacenamiento necesario para albergar
al sistema operativo. En un principio cuando se desarrollaba Windows CE se le dio
el nombre de pegasus conjuntamente se estaba desarrollando un nuevo
dispositivo el cual tendría como sistema operativo el Windows CE, a este
dispositivo se le llamo Handheld PC (HPC) o PC de bolsillo. Esta fue una de las
primeras plataformas en aceptar el uso de Windows CE
Otro dispositivo conocido es: la Palm-size PC o "PC del porte de la palma" que es
más pequeño que el anterior que no tiene teclado sino que se tiene un
reconocimiento de un sistema de tacto y un panel de entrada que aparece en la
pantalla.
Estos dispositivos cuentan con baterías para obtener poder y duran 20 horas con
mucho uso o con poco uso pueden durar una semana, como una regla general se
dice que los dispositivos que usan Windows CE tienen baterías con vida más
corta. A diferencia de los Windows 9x o NT el sistema operativo Windows CE no
necesita ser reiniciado cada vez que el usuario desee utilizarlo, de hecho se
pueden configurar las máquinas para que cuando el usuario le haga una entrada
al sistema el dispositivo se active.
Estos dispositivos solo venían en una pequeña tarjeta que se inserta en un HPC o
en un Palm-size PC.
9
Tomaremos como ejemplo HPC para mirar cual es el hardware que necesita el
cual nos permitirá conocer cómo funciona este sistema operativo. Este dispositivo
el cual se le implemento el Windows CE fue uno de los primeros, las tendencias y
las tecnologías han cambiado
Un PC de Bolsillo o HPC casi siempre se compone de una pantalla de 480x240 o
640x240 en escala de gris, acompañada de un pequeño teclado. En vez de
mouse, el dispositivo tiene un panel de contacto que cubre la pantalla. Todo HPC
incluye un puerto serial y un puerto infrarrojo de 115 Kbps. Los sistemas tienen un
slot PCMCIA o un slot de mini tarjeta. La configuración de la memoria física es
muy interesante en un HPC. Un PC de bolsillo típico tiene 4 MB ó 8 MB de
memoria ROM y 2 MB ó 4 MB de RAM. La memoria ROM contiene al sistema
operativo y a la suite de aplicaciones de bolsillo que se venden con Windows CE
(Word y Excel), a los que se les ha bautizado como Pocket Word y Pocket Excel
(Word de Bolsillo y Excel de Bolsillo). Sin embargo, y debido a la naturaleza de la
memoria ROM las aplicaciones no pueden sólo ejecutarse en ROM, las
aplicaciones no sólo leen de memoria, sino que también escriben. Por lo tanto se
puede concluir que en la memoria ROM residen las instrucciones y valores de sólo
lectura mientras que algo de RAM debe utilizarse para los valores que las
aplicaciones deseen escribir en algún momento. La memoria RAM necesaria para
el sistema operativo mismo es de cerca de 500 KB, y las aplicaciones en realidad
no ocupan mucho. Por ejemplo una instancia de Pocket Word utiliza solamente 16
K de RAM cuando se carga. La memoria RAM se divide en dos partes, una para la
RAM del sistema utilizada por el sistema operativo y las aplicaciones, y la otra
parte, denominada almacén de objeto, para el almacenamiento de datos. Los
archivos que se guardan en el almacén de objeto, no son guardados tal cual son,
sino que son comprimidos en un radio 2:1. Los HPCs no tiene unidades de disco
flexibles, ni discos duros, sin embargo se soporta SRAM y Tarjetas de PC Flash
ATRA en dispositivos con slots PC Card. Rompiendo con la tradición, los HPC
actualmente no utilizan procesadores Intel o compatibles con Intel. En cambio, los
HPC actualmente soportan el uso de procesadores RISC: El Hitachi SH3, el NEC
VR4101 y el Phillips 3910 (los dos últimos compatibles con el procesador MIPS).
Debido a que los procesadores NEC y Phillips utilizan un subconjunto común de
las instrucciones MIPS, se puede decir que desde el punto de vista software,
solamente se soportan dos CPUs: MIPS y SH3.
Windows CE 1.00 y 1.01 fueron el primer paso en la creación de un sistema
operativo Windows cuyo objetivo no era un PC. Si bien, mucha gente piensa que
CE significa "Compact Edition", la verdad es que ese nombre puede engañar al
programador y al usuario, porque al decir Edición Compacta suena a "subconjunto
de Windows", y en realidad Windows CE fue escrito desde cero, a diferencia por
10
ejemplo de Windows 95 que fue escrito basado en Windows 3.x. Como se ha
dicho, la primera versión de Windows CE se embarcó con los HPC.
Windows CE Windows CE fue el primer paso en la creación de un sistema
operativo cuyo objetivo no era un PC. Mucha personas piensan que CE significa
“Compact Edition”, la verdad este nombre puede engañar al programador y al
usuario, porque al decir edición compacta suena como una parte pequeña de
Windows, pero en realidad Windows CE fue escrito desde cero, a diferencia por
ejemplo de Windows 95 que fue escrito basado en Windows 3.x. como se dijo
anteriormente la primera versión de Windows CE se embarcó con los HPC.
EVOLUCION DE WINDOWS CE
La evolución de Windows CE el cual se inició muy básicamente fue incrementando
a medida que los usuarios fueron necesitando muchas más aplicaciones en sus
dispositivos. Conoceremos un poco de la evolución de Windows CE (versiones)
Windows CE 1.0.
Código fuente fue escrito desde cero y fue lanzado comercialmente en el año
1996. Parcialmente compatible con el Windows tradicional pues soporta una parte
de la famosa API Win32. Independiente del hardware pues es compatible con las
arquitecturas más comunes de de 32 bits.
Windows CE 2.0
Basado en la versión predecesora 1.0 vió la luz en 1997. Se añadió soporte para
procesadores Intel y AMD Soporta pantallas con resolución de 24 bits Conexión de
red LAN Soporte de tecnología ActiveX Incorpora la máquina virtual java. Soporte
parcial MFC (Microsoft Foundatin Classes, una librería de clases en C++ para
programación bajo Windows, incluida en MS. Visual C++) Conectividad USB e
infrarrojos Soporte FAT e impresión
Windows CE 3.0
Esta versión salió al mercado en el año 2000 con el fin de competir con el sistema
operativo de PALM. Incorporación de las interrupciones con prioridades. Mayor
eficiencia en la gestión de threats y en las comunicaciones entre procesos Mayor
capacidad de almacenamiento. Es la base del sistema operativo PocketPC 2002,
que se podía encontrar entonces en algunas PDA y teléfonos.
11
Windows CE 4.0
Esta nueva versión del sistema operativo apareció en Marzo del año 2002 Sistema
operativo mucho más robusto y eficiente a nivel multiproceso que la anterior
versión. Mayor grado de comunicación y sincronización con el sistema Windows
tradicional. De el nació en Junio del 2003 la conocida versión Windows Mobile
2003. Prácticamente fue un cambio de nombre y unas aplicaciones añadidas.
Windows CE 5.0
Penúltima versión de este sistema operativo lanzado en Mayo del año 2005.
Mejora del software ofimático y multimedia. Mejoras en el stack bluetooth De él
nació la versión Windows Mobile 5.0 disponible en multitud de teléfonos móviles y
PDAs.
Windows CE 6.0
Última versión de este sistema operativo lanzado a principios de este año. Un 30%
superior en prestaciones a su predecesor Windows CE 5.0 Es posible acceder
mediante API a un I/O en un ciclo de 100us Los mayores cambios se encuentran
en el Kernel. La arquitectura del sistema operativo ha sido completamente
revisada. Cada proceso es capaz de direccionar 2GB (antes 32Mb) El nº de
procesos simultáneos han aumentado de 32 a 32.000 ARQUITECTURA DE
WINDOWS CE
CARACTERÍSTICAS GENERALES
SISTEMAS OPERATIVOS EMBEBIDOS
Los sistemas embebidos y los de tiempo real son tecnologías inmersas en el diario
vivir y generalmente no se identifican fáciles y tampoco se definen los sistemas
operativos que hacen posible su manipulación y que a la vez administran los
recursos de dichos dispositivos para maximizar el desempeño.
Un sistema operativo embebido es aquel que está integrado en los circuitos de los
dispositivos electrónicos, entre estos dispositivos se encuentra electrodomésticos,
teléfonos móviles, radios, televisores, automóviles, lectores de códigos de barras,
equipos médicos, asistentes digitales personales (PDA), etc.
12
Estos sistemas suelen tener algunas características de los sistemas de tiempo real
pero también tienen limitaciones de tamaño, memoria y consumo de electricidad
que los hace especiales y no suelen ser visibles.
Algunas características son:
Fiabilidad y seguridad: Un fallo en un sistema de control puede hacer que el
sistema controlado se comporte de forma peligrosa o antieconómica. Es
importante asegurar que si el sistema de control falla lo haga de forma que el
sistema controlado quede en un estado seguro, hay que tener en cuenta los
posibles fallos o excepciones en el diseño
Eficiencia: Gran parte de los sistemas de control deben responder con gran
rapidez a los cambios en el sistema controlado
Interacción con dispositivos físicos: Los sistemas empotrados interaccionan
con su entorno mediante diversos tipos de dispositivos que normalmente no son
convencionales (teclados, impresoras): convertidores A/D y D/A, pwm, entradas y
salidas digitales paralelo y serie, (interfases con sensores, actuadores, periféricos
especiales). Los componentes del software que controlan el funcionamiento de
estos dispositivos son, en general, dependientes del sistema concreto.
Robustez: Embarcados en sistemas con movimiento o que pueden ser
transportados, sujetos a vibraciones e incluso impactos (coches, robots,
instrumentación portátil). No siempre trabajan en condiciones óptimas de
temperatura, humedad, y limpieza.
Entre las plataformas de los sistemas operativos embebidos tenemos:
QNX es un sistema operativo embebido desarrollado por QNX Software Systems
Ltd, para aplicaciones de dispositivos electrónicos, telecomunicaciones, sistemas
automotrices, etc.; que necesitan una gran confiabilidad, desempeño,
funcionalidades específicas, y una escalabilidad masiva.
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
13
diferentes distribuciones de Linux con soporte para características específicas de
los sistemas embebidos.
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,
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).
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 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. 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.
SISTEMAS OPERATIVOS CE
Windows CE fue introducido en un conjunto de productos de PC de mano en el
año 1996, pero posteriormente se transformo en un sistema operativo embebido
altamente configurable. Entre sus ventajas se encuentran que incluye un
subconjunto del API Win32 enfocado a los servicios que comúnmente se
necesitan, así como una optimización en el consumo de energía. En este sistema
cuando se habla de tamaño, se refiere a la cantidad de memoria y de
almacenamiento necesario para albergar al sistema.
14
Mientras se desarrollaba Windows CE se le dio el nombre de Pegasus y junto a él
se estaba diseñando un nuevo dispositivo que lo tendría más tarde como sistema
operativo. A este dispositivo se le llamó Handheld PC (HPC) o PC de bolsillo. CE,
adicionando un conjunto completo de herramientas de desarrollo para la
construcción de productos de diseño sofisticados, con aplicaciones poderosas
para rodar en el hardware más actual.
Es un sistema operacional vigoroso, en tiempo real, para el desarrollo ágil de
dispositivos de última generación conectados, inteligente y compacto. Éste incluye
el software necesario para crear dispositivos basados en el Windows
Características
•Windows CE da un soporte bastante completo a las características más
avanzadas que encontramos en computadores empotrados, tanto de los
procesadores como de otros elementos hardware.
•Es muy modular
•La API de Windows CE está pensada para facilitar la portabilidad con los
sistemas operativos Windows para SSPG.
Plataforma
Windows CE soporta más de 160 modelos de procesadores, pertenecientes a 5
tipos de arquitecturas distintas: ARM, MIPS, PowerPC, SH y x86 (modo
protegido). Son procesadores con una serie de características esenciales para
este SO:
La cantidad de memoria necesaria para almacenar el sistema operativo depende
de los módulos y funciones que necesite la plataforma. La versión mínima del SO,
que incluye el kernel y sistema de ficheros (servicios que veremos en la siguiente
sección), ocupa unos 200 KB si se compila para un x86 en versión Release (400
KB en versión Debug). Una configuración con el máximo número de módulos
puede llegar casi a los 30 MB en una compilación en modo debug para
procesadores de la familia MIPS.
15
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
• Uso de archivos secuenciales para almacenar datos a alta velocidad
• Planificación expropiativa basada en prioridades
• Reducción de los intervalos en los que están deshabilitadas las interrupciones
• Alarmas especiales y temporizadores
PRESENTACIÓN 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. 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 está formada por una combinación de hardware y software
más algunas piezas mecánicas (discos rígidos, por ejemplo). Sin embargo la
computadora personal no es diseñada para un uso específico. Si no que es
posible darle muchos usos diferentes. Muchas veces un sistema embebido es un
componente de un sistema mucho más grande, como por ejemplo los sistemas de
frenos o el sistema de inyección de combustible, en 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 más sencillo modificar
una línea de código al software del sistema embebido que reemplazar todo el
circuito integrado.
16
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 límite de tiempo.
Donde ese límite de tiempo resulta crucial. Un ejemplo claro de un sistema de
tiempo real es el control de tráfico aéreo.
ESTRUCTURA DE UN SISTEMA EMBEBIDO
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 producidos en 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 interfaces seriales sincrónicas, las
cuales son muchas veces más lentas que los periféricos empleados en un PC. 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
botones y una pantalla LCD normalmente reemplazan los dispositivos de interfaz.
El software que controla un dispositivo de hardware, por ejemplo en 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
17
lenguaje C, actualmente se han desarrollado algunas máquinas virtuales y otros
compiladores que permiten el diseño de programas más complejos.
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 actuadores del
dispositivo a controlar y todos los recursos complementarios disponibles tienen
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.
PLATAFORMAS SOBRE LAS QUE TRABAJAN LOS SISTEMAS
OPERATIVOS EMBEBIDOS
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,
18
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 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
19
é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, 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.
20
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 auto configurarse según el entorno. Entre otros aparatos, este sistema
operativo podemos encontrarlo en:
• Cámaras digitales
• Dispositivos de captura de datos
• Cajeros automáticos
• Dispositivos GPS
21
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 SE no restan valor a la
plataforma Java Platform Micro Edition (Java ME). La tecnología Java ME sigue
22
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
Windows CE es un sistema operativo modular compuesto de varios elementos
software. Estos elementos son interfaces compatibles con Win32 y estas
interfaces permiten que cada uno de los elementos software puedan integrarse
entre sí. Cada elemento comprende varios componentes de nivel más bajo y los
diseñadores del sistema tienen la posibilidad de incluir o excluir estos
componentes de nivel más bajo según sus necesidades.
Es posible que un desarrollador excluya módulos como USER y GDI, obteniendo
así un Windows CE sin interfaz de usuario. Esta característica permite ahora, que
Windows CE funcione en sistemas empotrados (Embedded Systems) en los
cuales todo es controlado mediante memoria ROM y no hay interfaz de usuario, ya
que por lo general los sistemas empotrados son automatizaciones donde no hay
intervención humana. Windows CE debido a su tamaño, es ideal para realizar
trabajo en tiempo real; permite llevar la API Win32 a sistemas automatizados de
tiempo real.
Comenzando por el fondo, los principales elementos que conforman el sistema
operativo son:
• La capa de abstracción OEM denominada OAL (OEM Abstraction Layer), que
incluye la administración de poder, los drivers de dispositivos y los servicios de las
tarjeta de PC (PC Card); • EL Kernel de Windows CE, USER, GDI, sistemas de
archivos y bases de datos; • Los protocolos de comunicaciones IRDA y TCP/IP; •
Las distintas APIs; • La conectividad remota, Internet Explorer para Windows CE •
El shell. • Como se dijo anteriormente un diseñador puede incluir o excluir algunos
de estos elementos (por ejemplo, el Internet Explorer) según sus necesidades.
PROCESO DE INSTALACIÓN DE UN SISTEMAS OPERATIVOS EMBEBIDOS
Los pasos necesarios para la instalación de los sistemas embebidos son:
1. Conocer la arquitectura hardware del dispositivo.
23
2. Configurar el kernel incluyendo los controladores para esos dispositivos y
eliminar lo que no sirve.
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
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
El configurar correctamente el kernel es necesario para que tenga una huella
pequeña pero con toda la funcionalidad requerida.
1. Seleccionar la arquitectura "más cercana/compatible" .
2. Deshabilitar "Enable loadable modules support", para
inscrutar los
controladores dentro de la imagen y no depender de módulos externos.
3. Seleccionar el modo apropiativo. Si ese el caso se necesita poca latencia,
luego se selecciona el modo Apropiativo "Preemption Model->Preemptible
Kernel. Si por el contrario el sistema procesa transacciones a modo de servidor
es conveniente usar "No force preemption". Por defecto el kernel usa el término
medio, Voluntary Preemption.
4. Reloj. Si la aplicación necesita temporización de alta precisión se debe de
activar el temporizador de alta resolución.
5. Dispositivos de bloque. Activar unicamente los controladores SATA/PATA/IDE
de el dispositivos.
6. USB. Es habitual habilitar el uso de USB 2.0 y la clase USB HID para poder
usar teclados, ratones, etc. Se deshabilita todo lo demás.
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.
24
8. Video Linux. Normalmente se deshabilita.
9. sonido
Después de seleccionar los controladores necesarios se procede a generar una
imagen del kernel "normal". En este caso se debe 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 se debe especificar un fichero especial que sirve de guía para
generar este sistema de archivos.
Aplicación embebida
El objetivo de generar este kernel es poder correr la aplicación en un sistema
embebido. Se debe procurar generar la 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).
Una vez compilado lo agregamos a la lista de construcción de imagen la imagen
con la correspondiente entrada "file". El fichero init invocará la aplicación al final de
la configuración.
Compilación del kernel.
Ya que se puede construir la imagen del kernel de forma habitual ("make") o
según los requisitos (compilación cruzada), se la podrá implementar en el sistema
embebido.
GESTIÓN DE PROCESOS Y DEL PROCESADOR SISTEMAS OPERATIVOS
EMBEBIDOS
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
25
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
26
aplicación particular. Otra alternativa consiste en el diseño a nivel de PCB
consistente en el ensamblado de placas con microprocesadores comerciales
GESTIÓN DE MEMORIA DE UN SISTEMAS OPERATIVOS EMBEBIDOS
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 aspectos debe ser implementado. Se usan
procesadores para el procesamiento, memoria para el almacenamiento, y buses
para la comunicación
La mayoría de los sistemas operativos modernos convencionales usan memoria
virtual paginada, donde la página es la unidad de protección y asignación de la
memoria. El uso de procesos y protección de memoria en sistemas embebidos es
muy importante; si se utiliza un único espacio de direcciones para todas las
aplicaciones, una falla de software de una aplicación puede resultar en la
corrupción de la memoria, ocasionando una falla de sistema. La desventaja, sin
embargo, es que la protección de memoria requiere que el CPU soporte MMU
(Memory Management Unit), lo cual resulta en un CPU más complejo.
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.
Por ejemplo, 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.
Por otro lado, Windows CE tiene un manejo de memoria más elaborado. Soporta
parcialmente memoria virtual paginada (esto implica soporte de TLB (Translation
Lookaside Buffer) en el CPU; y brinda protección de memoria a nivel de procesos
e hilos.
27
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.
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).
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:
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:
28
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.
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.
29
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 (copyon-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.
30
GESTIÓN DE ENTRADA Y SALIDA, DISPOSITIVOS QUE SOPORTA UN
SISTEMA OPERATIVO EMBEBIDO
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.
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).
GESTIÓN DE COMUNICACIONES Y SEGURIDAD EN UN SISTEMA OPERATIVO
EMBEBIDO
Existe un sin nú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, cómo se
pueden cambiar los valores de setpoint de reguladores de temperatura y encender
31
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 más 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 más 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 restablecer 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 que las funciones de los dispositivos de hardware
embebido se vuelven más 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:
32
 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 más 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
33
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:
o Muchos sistemas embebidos no tienen la suficiente capacidad de
procesamiento para las exigencias de seguridad.
o 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.
o 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
aun 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 EN UN SISTEMAS OPERATIVOS EMBEBIDOS
El soporte de red es importante en sistemas embebidos ya que les facilita
comunicarse con el mundo exterior, así como su actualización. QNX contiene
comunicación de red de bajo nivel en su microkernel; Windows CE posee varias
pilas de comunicación a nivel de kernel (IP, PPP, IrDA,
etc.).
Linux embebido por su parte posee un soporte de red heredado de los ambientes
cliente/servidor soportados por Linux, ofreciendo pilas de red y protocolos de
Internet.
34
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




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
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.
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
35
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. 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.
36
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.
SOLARIS 11 EXPRESS
Esta versión del sistema operativo se puede utilizar sólo para pruebas y desarrollo e
incluye capacidades de visualización de redes.
Oracle ha lanzado Solaris 11 Express, una versión del sistema operativo Solaris
pensada exclusivamente para desarrolladores y que también sirve como un adelanto
del lanzamiento de la versión comercial de Solaris 11 para el próximo año 2011. El
lanzamiento de Solaris 11 Express se produce unos meses después de que Oracle
anunciara que no ofrecerá más soporte al proyecto OpenSolaris, una distribución de
código abierto de Solaris, para centrarse en la versión comercial del sistema
operativo. Solaris 11 Express, tiene compatibilidad binaria con más de 11.000
aplicaciones desarrolladas por terceros en cerca de 1.000 sistemas SPARC y
basados de x86.
Principales características distintivas de Solaris 11 Express
a) Ha mejorado las características de disponibilidad y ha mejorado el tiempo de
inactividad del sistema a la mitad. Además, los tiempos de arranque son sólo
ahora de “decenas de segundos”.
b) Capacidades de virtualización de red, integración con el portal de soporte
online de Oracle y mejoras en el sistema de archivo ZFS.
c) Mejoras en la gestión de los datos, ya que ahora se incluyen nuevas
características avanzadas de almacenamiento como la deduplicación, cifrado
y las mejoras relacionadas con la tecnología ZFS mencionada anteriormente.
d) Escalabilidad: La versión actual del sistema operativo puede soportar cientos
de threads y unos pocos terabytes de memoria, pero la nueva versión escala
hasta miles de threads y cientos de terabytes de memoria. Además,
incorporará virtualización y seguridad.
37
e) Cloud Computing, enfocándose en la compatibilidad con nuevo hardware que
soportará enormes volúmenes de threads y sistemas de memoria, además de
cientos de gigabits de I/O.
f) Mejoras en su Administración: El administrador de sistemas de Solaris 11
Express ofrece una serie de cambios en la instalación, parches, reparto de
aplicaciones y otras áreas. En su página web, Oracle ofrece una serie de
recursos para ayudar con la transición.
ANÁLISIS COMPARATIVO CON LINUX Y WINDOWS 7.
Windows ce presenta un sistema dividió en 220modulos, cada uno dividido en
varios componentes, los cuales son ROMables y comprimibles, ademas soporta
cinco procesadores ARM/StrongARM, MIPS, PPC, SuperH, y x86 y un
sobconjunto de la API Win 32, en cuanto a conectividad cuenta con el ActiveSync,
que es la sincronización activa netre el PC de sobremesa y el dispositivo CE. Y
también posse el remote API, un control remoto del dispositivo desde una
aplicación en el PC.
En cuanto a Linux sabemos que es un sistema libre, cualquiera lo puede usar,
modificar y descubrir, es además muy estable y es difícil que se quede colgado,
los servidores que lo usan pueden funcionar durante meses sin parar, es
extremadamente seguro, tiene varios sistemas de protección y no existe virus para
Linux.
Ahora bien si hablamos de Windows 7 sabemos que pertenece a Microsoft, única
compañía que lo puede modificar, las licencias son demasiado costosas, es poco
estable, es común verse obligado a reiniciar el sistema, los servidores no admiten
38
mas allá de un par de semanas sin reiniciar, además de ser muy poco seguro y
para el cual existen miles de virus que vulneran el sistema, solo lee y escribe sus
propios sistemas de archivos y presenta incompatibilidades entre algunas de sus
versiones.
La comparación de Microsoft Windows y el sistema operativo de Linux es un tema
común de la discusión entre sus usuarios. Windows es el sistema operativo más
importante bajo una licencia propietaria de software, mientras que Linux es el
sistema operativo más importante bajo una licencia libre de software. Sin
embargo, la mayoría de los sitios de distribuciones de Linux también disponen de
componentes propietarios (tales como los controladores compilados de blob
binario, que proveen los fabricantes de hardware para su instalación normal)
En noviembre de 2007, Linux era el sistema operativo del 85% de las
supercomputadoras más poderosas (comparado con el 1,2% de Windows.En
febrero de 2008, cinco de las diez empresas más confiables proveedoras de
internet usaban Linux, mientras que sólo dos usaban Windows.
Los defensores de software libre discuten que la fuerza clave de Linux es que
respeta lo que ellos consideran para ser las libertades esenciales de usuarios: la
libertad de correrlo, Para estudiar y cambiarlo, y para redistribuir copias con o sin
cambios.
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
39
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:
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
40
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:
Grupo
de
Porcentaje Porcentaje
sistemas
Composición
(marzo)
(junio)
operativos
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,
NetBSD, OpenBSD
Otros UNIX
2.4%
2.2%
AIX, Compaq Tru64, HP-UX,
IRIX, SCO UNIX, SunOS 4 y
41
FreeBSD,
otros
Otros
UNIX
-
no-
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.
42
OTROS ASPECTOS
WINDOWS EMBEDDED ¿UNA OPCIÓN COMO SISTEMA OPERATIVO DE
ESCRITORIO?
Un sistema “Embedded” es un
equipo con un propósito
determinado, integrado en el
sistema que controla. Necesita
especificaciones particulares y
realiza tareas predefinidas.
Embedded significa encajado,
embutido,algo metido dentro
de otra cosa. Es un sistema
operativo para plataformas de
32
bits
adaptables
y
ampliables, que demanden
conectividad y amplio soporte
para el desarrollo de aplicaciones. Es la versión industrial del Windows XP
Profesional. Basado en los mismos binarios que el Windows XP Profesional. Se
eligen solo las funciones y servicios que se necesitan. Herramientas rápidas y
potentes para la creación de imágenes propias para cada aplicación. Este sistema
operativo es el que usan los ATM (cajeros automáticos), surtidores, puntos de
venta, algunas consolas y maquinas de videojuegos, etc.
Para el desarrollo de Windows XP Embedded existen una serie de herramientas:
Target Analyzer(TA): Genera información sobre la composición hardware.
Component Designer(CD): Creación de componentes personalizados.
Target Designer(TD): Selección y configuración de los componentes para generar
la imagen final S.O. Se usa para crear y generar el sistema
Windows Embedded es una versión de la plataforma Windows construida en base
a módulos, lo que permite crear un sistema a medida. Si Windows XP o Vista
43
incluyen gran cantidad de programas como el reproductor de medios Windows
Media Player o el navegador web Internet Explorer, Windows Embedded deja
fuera todo esto para permitir utilizarlo como módulo, de forma que a aquellos
clientes que no les interese el reproductor, pueden dejarlo fuera de su sistema.
El uso habitual de Windows Embedded es para la creación de sistemas
empotrados; un ejemplo podría ser un navegador GPS, en el cual se quiere
ofrecer un rango de funciones restringido pero a la vez que pueda actualizarse por
software con cierta comodidad cuando así lo quiera el fabricante. Es por ello que
este sistema se encuentra a la venta solamente para fabricantes de hardware,
aunque en Internet disponemos de una demo que nos permite utilizar una
instalación básica durante 120 días.
APLICACIONES DE LOS SISTEMAS OPERATIVOS EMBEBIDOS
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:
•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
44
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.
RESUMEN
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
45
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).
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 CE
Windows CE fue introducido en un conjunto de productos de PC de mano en el
año 1996, pero posteriormente se transformó en un sistema operativo embebido
altamente configurable. Entre sus ventajas se encuentran que incluye un
subconjunto del API Win32 enfocado a los servicios que comúnmente se
necesitan, así como una optimización en el consumo de energía. En este sistema
46
cuando se habla de tamaño, se refiere a la cantidad de memoria y de
almacenamiento necesario para albergar al sistema.
Características

Windows CE da un soporte bastante completo a las características más
avanzadas que encontramos en computadores empotrados, tanto de los
procesadores como de otros elementos hardware.

Es muy modular

La API de Windows CE está pensada para facilitar la portabilidad con los
sistemas operativos Windows para SSPG.
Plataforma
Windows CE soporta más de 160 modelos de procesadores, pertenecientes a 5
tipos de arquitecturas distintas: ARM, MIPS, PowerPC, SH y x86 (modo
protegido). Son procesadores con una serie de características esenciales para
este SO:
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
47
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:
1. Conocer la arquitectura hardware del dispositivo.
2. Configurar el kernel incluyendo los controladores para esos dispositivos y
eliminar lo que no sirve.
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
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 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.
48
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 CON LINUX Y WINDOWS 7.
Windows ce presenta un sistema dividió en 220modulos, cada uno dividido en
varios componentes, los cuales son ROMables y comprimibles, ademas soporta
cinco procesadores ARM/StrongARM, MIPS, PPC, SuperH, y x86 y un
sobconjunto de la API Win 32, en cuanto a conectividad cuenta con el ActiveSync,
que es la sincronización activa netre el PC de sobremesa y el dispositivo CE. Y
también posse el remote API, un control remoto del dispositivo desde una
aplicación en el PC.
En cuanto a Linux sabemos que es un sistema libre, cualquiera lo puede usar,
modificar y descubrir, es además muy estable y es difícil que se quede colgado,
los servidores que lo usan pueden funcionar durante meses sin parar, es
extremadamente seguro, tiene varios sistemas de protección y no existe virus para
Linux.
Ahora bien si hablamos de Windows 7 sabemos que pertenece a Microsoft, única
compañía que lo puede modificar, las licencias son demasiado costosas, es poco
estable, es común verse obligado a reiniciar el sistema, los servidores no admiten
más allá de un par de semanas sin reiniciar, además de ser muy poco seguro y
para el cual existen miles de virus que vulneran el sistema, solo lee y escribe sus
propios sistemas de archivos y presenta incompatibilidades entre algunas de sus
versiones.
49
CONCLUSIONES

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.
50
OBSERVACIONES

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.
51
BIBLIOGRAFIA

Asi son los sitemas operativos de cajeros, consultada el 18 de
octubre de 2012 URL: http://onsoftware.softonic.com/sistemasembebidos-y-usos-cotidianos

PDF Sistemas Embebidos y Sistemas Operativos Embebidos,
universidad central de Venezuela, autor: David Perez. Consultado el
17 de octubre del 2012

Sistema embebido, consultado el 18 de octubre de 2012 URL:
http://es.wikipedia.org/wiki/Sistema_embebido

Sistemas de tiempo real y empotrado, consultado el 17 de octubre de
2012URL:http://es.scribd.com/doc/32547554/46/Windows-CEcaracteristicas

Sistemas embebidos, consultado el 25 de octubre de 2012 URL:
http://server-die.alc.upv.es/asignaturas/PAEEES/2005-06/A07%20
%20Sistemas%20Embebidos.pdf

Bitácora sobre GNU/Linux y software libre: Sistemas operativos
embebidos, consultado 19 de octubre de 2012
URL:http://gnujavier.blogspot.com/2011/06/sistemas-operativosembebidos.html
52