Windows CE 5.0

Anuncio
Idoia Longan, Laura Val, Pablo González
Índice
1. Introducción
2. Orígenes de Windows CE
2.1. Contexto en el que nace Windows CE
2.2. Desarrollo de Windows CE
2.3. Breve resumen histórico
3. Objetivos del sistema operativo
3.1 Sistemas a los que se dirige
3.3 Objetivos y limitaciones
4 .Características y arquitectura
4.1 Características
4.2 Arquitectura de Windows CE
4.2.1 OAL (OEM Abstraction Layer)
4.2.2 Controladores (drivers) de dispositivos
4.2.3 APIs
4.2.4 Shell y Internet explorer
4.2.5 Kernel
4.5.6 Threads y procesos
4.3. Arquitectura de memoria de Windows CE
5. Tecnologías
5.1 Tecnologías de emulación
5.2 Platform builder
5.3 Trabajo en tiempo real
6. Aplicaciones
6.1 Windows Mobile
6.2 Windows Automotive
7. Servicios de red y comunicaciones
8. Conclusiones y futuro del sistema.
9. Bibliografía
1
Idoia Longan, Laura Val, Pablo González
Índice de figuras
Figura 1: Logo del primer prototipo de Windows CE
Figura 2: Escritorio de Windows CE 2.0
Figura 3: Versión Windows CE 3.0 utilizada para HPC.
Figura 4: Handheld-PC
Figura 5: Primer Pocket-PC de Apple
Figura 6: Windows CE 5.0 con Platform Builder
Figura 7: Diseño esquemático de la arquitectura de Windows CE
Figura 8. En esta figura se observa como Windows CE ofrece una capa (OAL) para la
adaptación de los dispositivos. El fabricante es el encargado de implementar las funciones
correspondientes al nivel OAL.
Figura 9: Windows Mobile 2003 incorporado en la versión CE 4.0
Figura 10: Teléfonos y PDAs con WMobile
Figura 11: Logo de Windows Automotive
Figura 12: Windows Automotive en un coche
Figura 13. En la figura se muestran los componentes de los sistemas de comunicaciones de Windows CE
Figura 14: Ovation iX
2
Idoia Longan, Laura Val, Pablo González
Este documento se centra en las novedades que aporta la versión Windows CE
5.0 a las versiones anteriores, prestando especial atención a sus nuevas funcionalidades
y vías de aplicación. Ofreciendo, en primer lugar una visión global del sistema
operativo y una introducción a su arquitectura.
1. Introducción
Microsoft Windows CE es un sistema operativo de 32 bits diseñado para
satisfacer las necesidades de los organizadores personales, sistemas empotrados y
dedicados.
Esto incluye las herramientas de Empresa como controladores industriales, hubs,
y terminales de punto de venta, así como productos del consumidor como cámaras y
teléfonos.
Windows 95 y Windows 98 se dedican a entregar compatibilidad con las
aplicaciones y hardware existentes, mientras intentan entregar nuevas características
como la multitarea. El objetivo de Windows CE 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.
2. Orígenes de Windows CE
En esta sección veremos los propósitos y motivaciones de la creación de
Windows CE, información que proporcionará una idea global del sistema operativo.
2.1. Contexto en el que nace Windows CE
Los avances tecnológicos y el mundo de la informática han permitido crear
aparatos de tamaño muy reducido y con funcionalidades muy específicas para satisfacer
necesidades informáticas personales. Son sistemas con limitaciones en sus
especificaciones, que sólo disponen de aquellos elementos necesarios para llevar a cabo
su función particular. Como por ejemplo podemos pensar en un PC de bolsillo que en
vez de ratón tiene un panel de contacto que cubre la pantalla, lo que lo hace más
portable o en un sistema de control de un automóvil donde no tiene sentido usar un
teclado (el conductor no puede usar las manos) y se han de buscar alternativas como el
reconocimiento de voz.
También se han desarrollado numerosos dispositivos que incluyen un
computador programable y cuyo funcionamiento depende de sistemas de mayor
tamaño: funcionamiento denominado “empotrado”.
Debido a la existencia de este tipo de dispositivos y en vista de su uso y
desarrollo en el futuro surge la necesidad de crear un sistema operativo que se adapte a
sistemas empotrados con diferentes funcionalidades por limitados que sean. Por eso,
Microsoft creó Windows CE, un sistema operativo flexible y adaptable a cualquier tipo
de dispositivo.
3
Idoia Longan, Laura Val, Pablo González
2.2. Desarrollo de Windows CE
Mientras se desarrollaba Windows CE
se le dió el nombre de Pegasus y junto a él se
estaba diseñando un nuevo dispositivo, que
tendría más tarde a Windows CE como
sistema operativo. A este nuevo dispositivo se
le llamó Handheld PC (HPC) o PC de bolsillo
y el proyecto de su desarrollo se denominó
Pulsar.
El equipo de Pulsar tuvo grandes
limitaciones de hardware, tenían que trabajar
Figura 1: Logo del primer prototipo de
con poca memoria, crear código muy
Windows CE
eficiente, garantizar una respuesta rápida del
sistema, utilizar procesadores limitados, etc. Todas estas restricciones son debidas al
tamaño de los dispositivos a los que se enfocan y al coste que han de tener éstos para
tener éxito comercialmente.
2.3. Breve resumen histórico
Windows CE 1
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 ejemplo
de Windows 95 que fue escrito basado en Windows 3.x. Windows CE 1.x presenta las
siguientes características:
•
•
•
Compatibilidad con Windows. Windows CE soporta el modelo de
programación Win32, sin embargo sólo soporta un subconjunto de todo el mundo
Win32. Al igual que Windows NT y Windows 9x, Windows CE realiza multitarea
con desalojo. El formato para los archivos ejecutables y librerías son los mismos que
los de Windows 9x y NT. Aunque Windows CE no puede ejecutar aplicaciones de
Windows de forma arbitraria (en otras palabras, cualquier aplicación Windows), es
relativamente fácil portar la mayoría de las aplicaciones a Windows CE.
Consume pocas cantidades de RAM. Todos los componentes de Windows CE
se pueden ejecutar en ROM, reduciendo la necesidad de RAM. NO se requiere flash
memory o una unidad de disco (aunque ambos son soportados).
Independiente del hardware del sistema. Windows CE trabaja en una variedad
de microprocesadores de 32 bits y no requiere una arquitectura de hardware
particular.
4
Idoia Longan, Laura Val, Pablo González
Windows CE 2
A mediados de 1997 se comenzó a distribuir una versión beta de Windows CE
2.0, que en realidad mantiene la misma estructura de componentes que Windows CE
1.x, sin embargo presenta avances importantes:
•
•
•
•
•
•
•
•
Soporte para los procesadores Intel y AMD.
La serie 82x de los procesadores PowerPC de Motorola.
Pantalla con colores de hasta 24 bits.
Conexiones LAN mediante el protocolo NDIS.
Subconjunto de ActiveX.
Java Virtual Machine.
Visual Basic Script.
Subconjunto de MFC para Windows CE.
Figura 2: Escritorio de Windows CE 2.0
La figura superior muestra a Windows CE 2.0, y como puede verse soporta
colores, algo que Windows CE 1.x no hacia.
En la versión 2.01 se agrega soporte para FAT32, fast IRDA, USB y poder
imprimir.
Windows CE 3
En abril del año 2000 nace Windows CE
3, provocando un sustancial cambio en la
dirección del equipo de desarrollo Windows
Mobile. Con el lanzamiento de este producto
Microsoft tomó la decisión de competir con el
bien conocido y establecido Palm-OS basado en
PDAs. Esta decisión evolucionó la interfaz de
Figura 3: Versión Windows CE 3.0
usuario de las PDAs que comenzaron a llamarse
utilizada para HPC.
Pocket-PC.
Esta versión mejora la compatibilidad de Windows, dando soporte en tiempo
real a procesos complejos. Ofrece nuevos servicios kernel (del núcleo), como soporte
para interrupciones jerarquizadas y mejora en la respuesta de threads haciendo que el
sistema responda adecuadamente ante eventos e interrupciones. Estas características en
tiempo real hacen al CE 3.0 ideal para usos industriales tales como robótica,
dispositivos de prueba y medida y dispositivos lógicos programables.
5
Idoia Longan, Laura Val, Pablo González
Con mayor capacidad de almacenaje y de uso de archivos, comunicaciones entre
procesos, y soporte de red, Windows CE 3.0 opera fácilmente en entornos de escritorio
basados en Microsoft Windows NT® y Microsoft Windows 2000.
Windows CE 4
Su primera aparición fue en marzo del año 2002, pero no fue hasta junio del
2003 que quedo completamente implantado, gracias al surgimiento de Windows Mobile
2003 (Pocket PC 2003).
Windows CE se mostró robusto, multi-funcional y capaz de trabajar en
diferentes plataformas. Por estas razones quedo claro que Windows CE estaba aquí para
quedarse.
Microsoft en menos de doce meses logró incorporar a esta versión dos versiones
menores de Platform Builder, de esta manera surgieron las versiones de Windows CE
4.1 y 4.2. Sin embargo el problema en estas versiones fue que realmente el sistema
operativo no se pudo adaptar a todos los dispositivos empotrados, esto es porque las
imágenes que guarda el sistema son pensadas para programadores y no para usuarios
finales que necesitan de un diseño ergonómico.
3. Objetivos del sistema operativo
3.1. Sistemas a los que se dirige
Anteriormente hemos mencionado los dos tipos de sistemas a los que se dirige
Windows CE: sistemas empotrados y organizadores personales.
Por un lado, los sistemas empotrados han de formar parte de un sistema mayor e
interactuar con él. Ésta interacción podría ser necesaria en tiempo real (imaginemos, por
ejemplo, un sistema empotrado que gestione los movimientos de un robot industrial).
Además, este tipo de sistemas han de poderse adaptar bien al entorno en que se integran,
que puede llegar a ser muy diverso (hemos comentado el caso del robot industrial que
no necesitaría tener una pantalla de calidad, pero otros casos pueden requerir, por
ejemplo, de una buena presentación gráfica en una pantalla pequeña o una entrada de
datos por reconocimiento de voz, etc.). Esto muestra la gran cantidad de sistemas
empotrados y dedicados a los que Windows CE debe dar servicio.
También hemos hablado de organizadores personales que hoy en día se han
convertido en un elemento cotidiano, por lo que pretenden concentrar en un único
aparato muchas de las actividades de los usuarios y Windows CE ha de ser capaz de
gestionarlo. Para empezar, como herramienta de organización, deberá tener la función
de agenda, dietario, calendario, etc., además puede ser útil para guardar documentos,
trabajar con hojas de cálculo, editores de texto, redactar y enviar correo electrónico, etc.
Además, debido a lo cotidiano actualmente de los elementos multimedia, debería
incorporar sistemas de visualización de video, reproducción y grabación de sonido,
cámara fotográfica, GPS, etc.
Como ejemplo de estos dispositivos vemos a continuación:
6
Idoia Longan, Laura Val, Pablo González
Handheld-PC
Un handheld-PC 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 ratón, 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 minitarjeta.
La configuración de la memoria física es muy
Figura 4: Handheld-PC
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. 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 versión 1.0 es de cerca
de 500 KB (la versión 5.0 necesita 350KB). Las aplicaciones no requieren demasiada
cantidad de memoria, 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 tienen unidades de disco flexibles, ni discos duros, sin embargo se
soporta SRAM y Tarjetas de PC Flash ATRA en dispositivos con slots PC Card.
Pocket-PC
Windows CE también funciona con otros
dispositivos
denominados
PDA(Personal
Digital
Assistant), que son más pequeños que los HPC y que
carecen de teclado, reemplazado por un reconocimiento
de un sistema de tacto y un panel de entrada que aparece
en pantalla.
Figura 5: Primer Pocket-PC de
Apple
PocketPC, igual que HPC, también contiene una memoria RAM y otra ROM. La
ROM aquí siempre será una memoria flash aunque puede ser de 2 tipos:
1) NOR, pequeña, con una capacidad de entre 1 y 32 MB, corta vida, lenta a la
hora de borrar y escribir y cara; aunque, por otro lado, soporta una tecnología
llamada XIP (Execute in Place), que permite ejecutar el código binario de la
ROM directamente, sin necesidad de copiarlo primero en la RAM.
7
Idoia Longan, Laura Val, Pablo González
2) NAND, de mayor capacidad (16 MB - 512 MB o más), mayor vida, barata, más
rápida al borrar y escribir pero que necesita ejecutar desde la RAM.
Hay muchos tipos de memoria RAM dependiendo de ciertos parámetros, p.ej.,
podemos encontrar memorias estáticas (SRAM) y dinámicas (DRAM). Las diferencia
principal es que la SRAM guarda los datos mientras esté encendida, es más rápida y
sofisticada y, por tanto, más cara.
La forma en que utilizan dichas memorias es similar a como lo hacen los HCPs.
3.2. Objetivos y limitaciones
Windows CE está condicionado por una serie de limitaciones propias de los
sistemas a los que se destina.
•
El sistema operativo tendrá que ser flexible y adaptable en cuanto a sus funciones:
cada uno de los sistemas empotrados tiene una función propia diferente de los
demás y una tarea muy específica
Por eso, Windows CE es un sistema operativo modular que permite que cada
fabricante pueda seleccionar las partes del sistema operativo que necesita para su
dispositivo y pueda compilarlas de forma que sólo se incorpore aquello que sea
necesario, optimizando el funcionamiento y reduciendo los costes de fabricación del
cliente, puesto que estará limitando al máximo las necesidades de memoria y
componentes de su dispositivo.
•
Flexible en cuanto a los recursos: de un sistema a otro los recursos de los que se
disponen pueden variar mucho. Podemos encontrarnos con un dispositivo sin
teclado, o sin pantalla, teniendo que ser capaz de trabajar con los recursos mínimos,
limitados por los dispositivos de entrada/salida.
Bajo coste económico y pequeño tamaño: en el caso de los organizadores
personales es imprescindible para que tenga éxito. Conlleva la minimización del
número de recursos internos necesarios y limitación de memoria de la que dispone
ya que tiene un coste relativamente alto y ocupa espacio.
Ha de ser capaz de trabajar con diferentes procesadores (todos de 32 bits): debe ser
un sistema adaptable a diferentes configuraciones.
Ha de ser capaz de interactuar con otras máquinas: las comunicaciones son un
elemento importante del sistema, se deben incorporar todos los sistemas y
protocolos habituales.
•
•
•
4. Características y arquitectura
Esta versión recibe el nombre de Macallan y
fue anunciada a principios del año 2003. Será la
versión sucesora del Windows CE 4.2. Esta diseñada,
desde el principio, para el mercado de los sistemas
empotrados. Windows CE 5.0 combina un avanzado
sistema operativo empotrado, que trabaja en tiempo
real, con poderosas herramientas
para crear
rápidamente los dispositivos empotrados del futuro.
Contiene características que cualquier programador
necesita para desarrollar e implementar dispositivos
Figura 6: Windows CE 5.0
con Platform Builder
8
Idoia Longan, Laura Val, Pablo González
hechos a la medida de la aplicación para la cual serán utilizados, esto incluye también
dispositivos como los Pocket PCs y Smartphones.
Las herramientas en Windows CE 5.0 están optimizadas para la próxima
generación de sistemas empotrados, que necesitan poder comunicarse de manera eficaz
a las redes y tener sólidos protocolos de comunicaciones, un núcleo (kernel) que trabaja
en tiempo real, contenidos multimedia y capacidades de acceso a Internet.
Sus características y su arquitectura se ven desarrolladas en el siguiente
apartado.
4.1 Características
Las principales características de la nueva versión serán un entorno de desarrollo
integrado, que permite a los desarrolladores trabajar en un entorno gráfico y utilizar la
interfaz de línea de comandos desde la misma herramienta; y un soporte de hardware
más amplio, con más de 50 controladores que facilitarán la vida a los desarrolladores.
También se han tenido en cuenta en esta versión la seguridad y fiabilidad, con
todos los parámetros de sus componentes establecidos con la máxima seguridad por
omisión, según la compañía; así como la realización de informes de errores, que
permiten a los fabricantes de dispositivos que se conectan a Internet conseguir informes
de los problemas que tienen los usuarios con sus productos.
Para soportar dispositivos más centrados en el apartado multimedia, Microsoft
ha incluido en Windows CE 5.0 soporte para Direct3D, el modelo de programación y
gráficos basado en DirectX que forma parte del sistema operativo Windows de
escritorio. Esta tecnología será útil para nuevos dispositivos como centros multimedia
portátiles (Portable Media Centers), un nuevo tipo de productos basados en Windows
CE cuyo lanzamiento esta previsto para el año que viene.
Aplicaciones
Para realizar aplicaciones para Windows CE, Microsoft ofrece una gran familia
de lenguajes de programación, entre ellos:
• Visual Studio .Net: utiliza todas las características del Compact Framework .Net que
funciona con standards públicos de Internet para permitir la integración con
aplicaciones existentes y nuevas capaces de ejecutarse en cualquier plataforma.
• Embedded Visual C++: plataforma IDE que brinda un nuevo nivel de productividad
para Windows CE, permitiendo un desarrollo de aplicaciones sin comprometer la
flexibilidad, el rendimiento o el control.
Drivers
Un aspecto clave del diseño modular de Windows CE es que permite que tanto
diseñadores de hardware (IHVs, independent hardware vendors) como de software
(ISVs, independent software vendors) implementen drivers que soporten su propio
hardware sin necesidad de soporte por parte de Microsoft.
En particular, Windows CE provee la infraestructura necesaria para que un IHV
o ISV pueda desarrollar drivers para los siguientes dispositivos:
• de almacenamiento,
• multimedia,
• de red (NDIS, 10/100 Ethernet, Bluetooth, inalámbricas),
9
Idoia Longan, Laura Val, Pablo González
• que necesiten puertos serie o paralelo,
• que utilicen Smart Cards,
• o de expansión vía PCMCIA, Compact Flash, USB y IEEE 1394.
Todos estos drivers forman parte de librerías dinámicas (DLLs) y utilizan las
APIs standard de Windows CE en su implementación (basadas en Win32).
BSP-Board Support Packages
Una característica importante de Windows CE es el soporte que brinda el
paquete de soporte de tablero (BSP, Board Support Packages). Un BSP es el software
que implementa los drivers del dispositivo en ejecución para un tablero estándar de
desarrollo (SDB, Standard Development Board). Un BSP contiene archivos de fuente,
archivos binarios, o ambos. Se puede utilizar un BSP para implementar rápidamente un
sistema operativo en un SDB y evaluar sus características. La versión 5.0 contará aún
con más BSPs que las versiones anteriores. Esto, junto con las mejoras en el kernel,
permite un ciclo de despliegue del sistema operativo más corto.
Procesadores soportados
Windows CE 5.0 soporta estos cuatro procesadores de 32 bits:
•
•
•
•
ARM,
MIPS,
SuperH,
x86.
Se puede ejecutar sobre distintas arquitecturas de procesadores Real-time
Support. Esta característica significa que el sistema tiene capacidad para responder a
eventos externos en un periodo de tiempo relativamente corto sin bloquearse y dándoles
la prioridad adecuada.
Funciones USB
Para poder imprimir a través del puerto USB, esta versión instala un driver PCL
como driver de impresión por defecto. También permite la utilización de USB 2.0
gracias a la instalación de drivers de bus que permiten cargar los drivers de cliente. Otra
característica importante es que esta versión añade un driver para posibilitar el
almacenamiento de datos en USB de la misma forma que sucede en versiones de
escritorio.
Requisitos para trabajar con Windows CE 5.0
• Procesador Pentium II de 266-MHz o posteriores; se recomienda un procesador de
500-MHz
• Microsoft Windows 2000 Professional con Service Pack 4 o Windows XP
Professional con SP1
• Microsoft .NET Framework, versión 1.1
• 128 MB de RAM; 192 MB de RAM son requeridos para poder ejecutar el emulador
10
Idoia Longan, Laura Val, Pablo González
• 1.7 GB de espacio en disco duro para una típica instalación con un solo
microprocesador; aproximadamente 17 GB para instalar el producto entero,
incluyendo el Platform Builder
• CD-ROM o DVD-ROM drive
• Puerto paralelo bidireccional para cargar una imagen del sistema operativo cuando
no se usa una conexión Ethernet.
4.2. Arquitectura de Windows CE
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 pueda 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. La siguiente figura muestra los elementos de la arquitectura de
Windows CE.
Applications
Embedded Shell
Remote
Connectivity
Windows CE Shell Services
WIN32 APIs
COREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPI
Kernel
Library
GWES
Device
Manager
File
Manager
OAL
Bootloader
Drivers
Device
drivers
File drivers
IrDA
TCP/IP
OEM Hardware
Figura 7: Diseño esquemático de la arquitectura de Windows CE
4.2.1 OAL (OEM Adaptation Layer)
El OAL (OEM Adaptation Layer, es decir, la interfaz entre Windows CE y el
aparato físico) permite que los fabricantes programen sus propias funciones de control
de hardware (drivers) adaptándose a la interfaz que se les proporciona, que incluye
rutinas de servicio a interrupciones e interfaces para funcionalidades específicas del
hardware como puede ser la alimentación, permitiendo que el sistema operativo se
ejecute en cualquier configuración de hardware o características como el "encendido
instantáneo" que permiten que los dispositivos Windows CE sean apagados y luego
encendidos instantáneamente si el dispositivo tiene RAM no volátil (respaldada con
11
Idoia Longan, Laura Val, Pablo González
baterías). De esta forma, un fabricante no ha de tener complicaciones a la hora de hacer
que su dispositivo pueda funcionar en Windows CE.
Windows CE 5.0 incluye una OAL con “calidad de producción”. Esto significa
que se ha mejorado la manipulación de componentes mediante bibliotecas de código,
estructuras de directorios para reutilizar código, archivos centralizados de
configuración, y una arquitectura consistente a través de distintas familias de
procesadores y plataformas de hardware.
Figura8. En esta figura se observa como Windows CE ofrece una capa (OAL) para la
adaptación de los dispositivos. El fabricante es el encargado de implementar las funciones
correspondientes al nivel OAL.
4.2.2 Controladores (drivers) de dispositivos
Windows CE trabaja con dos tipos de drivers, los nativos (incorporados en el
sistema operativo para el hardware que está siempre presente en el dispositivo como el
teclado en un HPC) y los que son instalables (proporcionados por los fabricantes e
instalables en tiempo de ejecución para periféricos que pueden agregarse). Permitiendo
así que los fabricantes creen sus controladores de una forma bastante directa a través de
las interfaces disponibles.
Para todos los drivers de dispositivos soportados, Windows CE tiene un
conjunto bien definido de DDI o Device Driver Interfaces (Interfaces del Driver del
Dispositivo) para los cuales los diseñadores escriben.
Windows CE 5.0 facilita las infraestructuras necesarias para que los fabricantes
puedan desarrollar los drivers de los dispositivos de las siguientes categorías:
• Multimedia devices (display/graphics, audio, AV/C, printer, and Direct X-enabled)
• Almacenamiento(storage device)
• Networking peripherals (NDIS, 10/100 Ethernet, Bluetooth, wireless)
• Input devices
• Serial and parallel devices
• Smart card peripherals
• Expansion peripherals via PCMCIA, Compact Flash, USB, and IEEE 1394 busses
Windows CE directamente soporta varios tipos de dispositivos, tales como
teclados, ratón, paneles de tacto, puertos seriales, módems, pantallas, slots de PC Card,
12
Idoia Longan, Laura Val, Pablo González
procesadores de audio, parlantes, puertos paralelos, disco ATA o unidades de "flash
card".
4.2.3 APIs
Windows CE exporta un subconjunto de Win32 API, a lo que se debe gran parte
del éxito comercial de Windows CE ya que la API de Win32 ya era conocida por la
mayoría de desarrolladores, facilitando así tanto la creación de aplicaciones para el
nuevo sistema como la migración de aplicaciones existentes de otros sistemas Microsoft
a Windows CE.
Un dispositivo con Windows CE ha de tener conectividad con otros sistemas
Windows (ordenadores personales de sobremesa), con Internet y con otros dispositivos
Windows CE. Para ello Windows CE utiliza como protocolo principal el TCP/IP,
mejorado en este caso para la comunicación sin cable (wireless).
Junto con los protocolos de comunicaciones, Windows CE provee varias de las
APIs familiares para comunicaciones de Windows, incluyendo Windows sockets,
comunicación por puerto serie, telefonía, WinINet (FTP y HTTP), LAN (NDIS), entre
otros.
También se dispone de una API propia de acceso remoto para poder trabajar con
un PC. Esta API de sincronización se denomina ActiveSync y su arquitectura es abierta
para que cualquiera pueda crear su propio sistema de sincronización personalizado.
4.2.4 Shell
La shell provee a un usuario de la interfaz de objetos necesaria para utilizar las
aplicaciones del sistema operativo Windows CE en un dispositivo portátil. Dichos
objetos pueden ser reales, como ficheros y carpetas; virtuales, como la papelera de
reciclaje; o pueden ser objetos remotos a los que se accede a través de una red.
Windows CE proporciona el código de fuente para la shell. El usuario puede
modificar este código para crear sus propias shells.
La shell de Windows CE consiste en una serie de módulos y componentes,
destinados cada uno a una función específica de la shell.
4.2.5 Kernel
El kernel es la parte principal del sistema operativo ya que es la que se encarga
de planificar y sincronizar las tareas, procesar las excepciones e interrupciones, cargar
las aplicaciones y gestionar la memoria virtual.
Al igual que Windows NT y Windows 9x, Windows CE presenta un sistema
multitarea con desalojo basado en prioridad, también provee una rica variedad de
primitivas de sincronización, incluyendo semáforos, mutex y eventos.
El Kernel de Windows soporta la ejecución de programas en ROM o RAM.
También implementa paginación bajo demanda para las aplicaciones que se almacenan
comprimidas y/o se almacenan en un medio que soporta ejecución en el lugar (como lo
es para RAM o ROM). El kernel tiene una rutina de bajo nivel de servicios de
interrupción y baja latencia de hilo (a los hilos se les puede asignar la CPU y hace
13
Idoia Longan, Laura Val, Pablo González
cambio de contexto en menos de 100 microsegundos en un HPC a 33 MHz). Esto
permite que Windows CE sea utilizado en muchos tipos de sistemas de tiempo real.
Windows CE utiliza el mismo sistema de procesos y threads utilizado por Windows NT
y que se explican a continuación. Ya hemos comentado que se trata de un sistema
operativo multitarea y que para planificar la ejecución de las tareas dispone de un
sistema de prioridades y un algoritmo que controla su planificación.
4.2.6. Threads y procesos
Un proceso es la representación de una aplicación que se está ejecutando,
mientras que los threads son los diferentes flujos (o tareas), que se ejecutan dentro de un
proceso. Es decir, tendremos un proceso por aplicación, pero podremos tener varios
threads por proceso. Esto puede llegar a ser muy útil en determinados casos; en vez de
ejecutar tantas veces una aplicación como tareas queramos hacer, creando así varios
procesos (y consumiendo los recursos correspondientes), podemos crear 1 thread para
cada tarea, ejecutando una única vez la aplicación y ahorrándonos los recursos
(memoria) que consume un proceso.
Cuando decimos que Windows CE es un sistema operativo multithread, estamos
diciendo que puede ejecutar varios threads de un mismo proceso simultáneamente.
Hasta hace poco, la mayoría de sistemas sólo podían ejecutar un thread por
proceso, forzando al resto de tareas a esperar a que ese thread acabase para poder
realizar su trabajo. Con Windows CE esto no es así, si un proceso tiene varias tareas
independientes entre sí y éstas tienen la misma prioridad, se ejecutan simultáneamente
repartiendo el tiempo de procesador.
Cuando se ejecuta una aplicación se está creando un proceso. Dicho proceso
dividirá sus funciones en tareas (como mínimo una, que se crea a la vez que el proceso),
representadas para el sistema operativo en forma de threads. El proceso es quien
gestiona los threads que de él dependen y la interacción entre ellos.
4.3. Arquitectura de Memoria de Windows CE
Se ha dicho en la sección anterior que Windows CE soporta multitarea y
multihilos con prioridad de forma similar a como lo hacen Windows NT y Windows 9x.
Sin embargo, al momento de administrar memoria las cosas cambian radicalmente.
Windows CE oculta al programador la administración de memoria física del
dispositivo y mantiene la idea de memoria virtual. El gran cambio es que Windows CE
no provee 4 GB de memoria virtual a cada nuevo proceso que arranca. Windows CE al
momento de partir crea un espacio de direcciones virtuales de 4 GB pero que es único
para todos los procesos.
El objetivo de estas direcciones virtuales es hacer transparente para el
desarrollador cualquier aspecto de la memoria física del dispositivo. El tamaño de este
espacio de direcciones viene determinado por los procesadores que utilizarán
Windows CE, que al ser de 32 bits, permiten trabajar con 232 direcciones (4 Gbytes).
Para gestionar su uso, se divide dicho espacio en dos bloques, destinando los 2 primeros
GB de direcciones a la memoria virtual usada por los procesos y el resto al
direccionamiento de memoria física.
Una parte de los 2 primeros GB se divide a su vez en 33 bloques (slots) de 32
MB, cada uno destinado a un proceso. De esta manera asignamos un espacio de
direcciones diferente a cada proceso y conseguimos así que no se produzcan
interferencias entre procesos.
14
Idoia Longan, Laura Val, Pablo González
Al igual que en Windows NT y Windows 9x la memoria sigue siendo asignada
por páginas. Para ello se usa un sistema de paginación con TLB (Translation Look-aside
Buffer) virtual. En Windows NT el tamaño de la página depende del procesador, en
Windows CE también y va desde 1 KB hasta 4 KB.
Se puede pensar que tener un espacio de direcciones común entre todos los
procesos puede que hagan a Windows CE un sistema inestable sin embargo esa
posibilidad se elimina al momento en que Windows CE implementa protección no a
nivel de espacio de direcciones sino que a través de protección de páginas.
5. Tecnologías
5.1. Tecnología de emulación
La tecnología de emulación del Windows CE simula el comportamiento del
hardware que soporta esta plataforma, permitiendo a los programadores crear, referirse,
y probar nuevas y existentes plataformas en las que se basa Windows CE sin hardware
adicional. Usando la última tecnología de emulación en la versión 5.0, los
programadores pueden probar aplicaciones en paralelo a las plataformas en el mismo
ambiente de emulación, reduciendo el tiempo y por lo tanto el coste total.
Estas tecnologías de emulación soportan los siguientes tipos de hardware:
• Puerto paralelo. Provee un puerto paralelo que se puede mapear directamente a un
puerto LPT
• Puerto serie. Provee dos puertos serie que se pueden mapear directamente a puertos
COM.
• Ethernet. Permite la utilización de una tarjeta Ethernet a través del protocolo IP
• Pantalla. Permite especificar el tamaño de la pantalla a utilizar, desde 80 x 64
píxeles hasta 1024 x 768 píxeles. Se puede especificar una resolución de 8, 16 o 32
bits por píxel.
• Teclado y ratón.
• Audio. Provee soporte básico de audio, incluyendo líneas de entrada y salida y
micrófono.
5.2. Platform Builder
El Platform Builder de Microsoft genera un Ambiente Integrado de Desarrollo
(IDE) para realizar diseños empotrados a medida, basados en el sistema operativo
Windows CE.
Platform Builder para Windows CE 5.0 viene con todas las herramientas de
desarrollo necesarias para diseñar, crear, construir y para probar una plataforma basada
en Windows CE. El IDE proporciona un solo espacio de trabajo integrado donde se
puede trabajar en diseños y proyectos.
Con este programa seremos capaces de desarrollar un sistema operativo a
medida de nuestra aplicación. Para poder realizar esto necesitamos implementar un
paquete de soporte de tablero (BSP, sección 4.1.1.) y un cargador de arranque concreto
de nuestro dispositivo. Se puede utilizar el Platform Builder para elegir una plantilla de
diseño, para crear un diseño de sistema operativo, para construir la imagen de arranque
y para descargar esta imagen a nuestro dispositivo.
5.3. Trabajo en tiempo real
15
Idoia Longan, Laura Val, Pablo González
El funcionamiento en tiempo real es esencial para las respuestas críticas que se
requieren en sistemas empotrados de alto rendimiento. Hay muchas definiciones del
trabajo en tiempo real. En el contexto de la familia de sistemas operativos empotrados
de Windows, utilizaremos la definición que fue adoptada por el Control de Arquitectura
Abierto y Modular (OMAC): un sistema en tiempo real “duro” es un sistema que
fallaría si sus requisitos de sincronización no son resueltos; un sistema en tiempo real
“suave” puede tolerar variaciones significativas en la entrega de servicios del sistema
operativo como interrupciones o contadores de tiempo. El Windows CE es un sistema
operativo en tiempo real duro.
Debido a ser un sistema operativo en tiempo real duro, el Windows CE provee
de importantes tecnologías para el desarrollo en tiempo real de las aplicaciones,
incluyendo:
• 256 niveles de prioridad de threads. Proporciona mayor flexibilidad en controlar la
programación de threads dentro de un sistema empotrado.
• Interrupciones jerarquizadas. Permite que las interrupciones de alto nivel de
prioridad se ejecuten inmediatamente, para no tener que esperar la finalización de
una interrupción de prioridad baja. El núcleo (kernel) puede jerarquizar tantas
interrupciones según la capacidad del CPU.
• Inversión de la prioridad. Se refiere a una situación en la cual se retrasa la
ejecución de un thread de prioridad de alto nivel, porque otra aplicación esta
utilizando los mismos recursos que este thread. Para corregir esta situación y liberar
el thread de alta prioridad, Windows CE permite que el thread de baja prioridad
herede el thread más crítico y funcione hasta que libere su uso del recurso.
6. Aplicaciones
Windows CE 5.0 es un sistema operativo modular formado por una serie de
componentes (cada una de ellas es un archivo .LIB), esto permite que el SO se pueda
usar sobre infinidad de dispositivos, desde lavadoras o DVDs hasta Smarphones o
PDAs, ya que dependiendo del hardware puedes elegir las características que sean
necesarias. Además te permite empezar el sistema sin necesidad de tener montado el
hardware con lo que se pueden conseguir ciclos de producción más efectivos. Las BSPs
y Device drivers te permiten construir el software necesario para que funcione sobre un
hardware determinado. Como ya hemos dicho se usa en dispositivos tales como
decodificadores de televisión, routers inalámbricos, monitores sin cables, juegos,
impresoras multifuncionales, entre otros. Todas estas aplicaciones dieron paso a muchas
más y abrieron todo un mundo nuevo de posibilidades. Para poder exprimirlo al
máximo, Microsoft, partiendo del SO Windows CE, desarrolló otros similares como el
Windows Mobile, destinado a móviles inteligentes y de última generación, y el
Windows Automotive, con funciones específicas para coches.
A continuación se describe las funcionalidades del sistema operativo que están
disponibles para el usuario final:
ActiveSync:
Esta tecnología proporciona la ayuda para sincronizar datos entre una computadora de
escritorio basado en Windows y los dispositivos de Microsoft basados en Windows CE.
File viewers:
Esta tecnología proporciona una manera de leer archivos comunes de Microsoft Office
como los archivos PDF.
Remote Desktop Protocol:
16
Idoia Longan, Laura Val, Pablo González
Esta tecnología permite a usuarios conectar remotamente con una computadora de
escritorio que funciona con Windows XP profesional, o a un servidor que funciona con
Microsoft Windows NT Server 4.0, Terminal Server Edition o posterior.
Windows Messenger:
Esta tecnología combina voz y texto en tiempo real con capacidad de transferencia de
archivos.
User Help:
Esta tecnología le permite incluir archivos de la ayuda al usuario en la shell.
6.1. WINDOWS MOBILE
A partir del sistema WCE, surge el Windows Mobile,
una plataforma flexible e innovadora para aplicaciones
basadas en Pocket-PC y Smartphones. Entre sus características
destacan que es una plataforma de una potente capacidad,
reduce el tiempo y coste de desarrollo, incrementa las
oportunidades del mercado y tiene acceso a fuentes de
desarrollo y ayuda.
Este sistema se aplica en teléfonos móviles
Figura 9: Windows Mobile
inteligentes
y de última generación y PDAs con teléfono
2003 incorporado en la
integrado.
Soportan
tanto
versión CE 4.0
pantallas de cristal líquido como
TFT, pueden sincronizarse con otros ordenadores y utilizar
programas como el pocket Excel, pocket Word, pocket
Windows media player, etc., es decir, tienen su propia
versión de los programas más habituales de Windows para
navegar por Internet, crear documentos o reproducir música.
Figura 10: Teléfonos y PDAs
con WMobile
6.2. WINDOWS AUTOMOTIVE
Basado en el sistema operativo Windows CE 5.0,
Microsoft Windows Automotive 5.0 es una plataforma
rápida, útil y avanzada que aúna toda la tecnología actual y
la industria del automóvil para integrarla en los vehículos.
Este software dota a la industria automovilística de
una plataforma capaz de generar soluciones end-to-end en
un rango que va desde sistemas de navegación con
gráficos en 3 dimensiones hasta Figura 11: Logo de Windows
funciones sencillas como kits Automotive
de manos libres para el teléfono móvil.
Windows Automotive puede ser utilizado para
multitud de funciones como pueden ser: sistemas de
navegación, sistemas de entretenimiento, sistemas de
información, dispositivos multifunción o dispositivos
sensoriales en vehículos.
Figura 12: Windows
Automotive en un coche
17
Idoia Longan, Laura Val, Pablo González
7. Servicios de red y comunicaciones.
Micosoft Windows CE proporciona a los dispositivos la capacidad de conectarse
y comunicar con otros dispositivos y con la gente sobre redes sin hilos o cableadas. La
siguiente lista muestra las tareas que los drivers, protocolos e interfaces de
programación (API’s) de Windows CE permiten:
-OEM: se denominan así los fabricantes que pueden crear dispositivos (networkconnected devices) como PDA’s, Smartphones, cámaras digitales o gateways.
-Los vendedores independientes del software (ISVs) y las empresas pueden crear
aplicaciones y servicios usando APIs tales como Extensible Markup Language (XML),
SOAP, Winsock, Message Queuing (MSMQ) y Media Sense.
-Los vendedores de hardware independientes (IHVs) pueden crear drivers de red usando
la Network Driver Interface Specification (NDIS) 5.1 y las herramientas de prueba de
NDIS - por ejemplo 802.11, Bluetooth, GPRS, CDMA, y Ethernet.
Windows CE también incluye características inalámbricas tales como Bluetooth,
802.11 (802.1x, protocolo extensible de autentificación y la configuración automática
802.11), y Media Sense; características de servidor como características de acceso
remoto (RAS)/ Point-to-Point Tunneling Protocol (PPTP) y File Transfer Protocol
(FTP) y servicios y API’s como RTC Client API, Winsock 2.2, y Object Exchange
Protocol (OBEX).
La siguiente ilustración muestra la arquitectura de red y comunicaciones de
Windows CE y continuación se describen sus características.
18
Idoia Longan, Laura Val, Pablo González
Figura 13. En la figura se muestran los componentes de los sistemas de comunicaciones de Windows CE
-802.1X Authentication: IEEE 802.1x es un estándar que proporciona
autentificado a redes 802.11 sin hilos y a redes de Ethernet cableadas.
acceso
-Bluetooth: Tecnología sin hilos de corto alcance que permite la comunicación de datos
entre dispositivos. También proporciona la capacidad de usar un teléfono móvil
Bluetooth como módem, intercambiando información con otros dispositivos Bluetooth,
y proporcionando el acceso de red.
-Extensible Authentication Protocol: EAE es extensible permitiendo OEMs añadir
esquemas de autentificación adicionales.
-File Server: permite a los usuarios tener acceso a archivos y a otros recursos de un
servidor sobre una red usando TCP/IP.
-FTP Server: se usa para transferir archivos a y desde sistemas informáticos remotos
sobre una red usando TCP/IP.
-Infrarrojos: Muchos dispositivos basados en Microsoft Windows CE tienen un puerto
infrarrojo (IrDA). IrDA, se trata del protocolo estándar de comunicaciones por
infrarrojos más extendido actualmente. Su implementación en Windows CE no sólo
permite enviar secuencias de datos, sino que también se adapta al estándar NDIS 4.0
(para trabajar con redes de área local –LANs-).
19
Idoia Longan, Laura Val, Pablo González
-Internet connection sharing: colección de tecnologías que trabajan juntas para permitir
a múltiples dispositivos en una red privada compartir una sola conexión del Internet.
-L2TP/IPSec: permite que los usuarios tengan acceso a una red privada mediante un
túnel a través de una red pública o usando una conexión privada virtual de la red (VPN).
L2TP utiliza los mecanismos de autentificación y de compresión del Point-to-Point
Protocol (PPP). L2TP confía en el protocolo de seguridad de IP (IPSec) para cifrar
frames del PPP.
-Wireless LAN 802.11
- Network User Interface(NetUI): Permite a usuarios configurar conexiones de red tales
como una red de marcado manual (módems), conexiones directas (tales como serial y/o
USB) así como conexiones LAN (tales como 802.11). Además, la red UI permite
descubrimiento y la vinculación de hardware Bluetooth.
-Network utilities: Utilidades para localizar problemas de la red (IpConfig, Route,
Ping).
-Object Exchange Protocol (OBEX): Protocolo binario eficiente y compacto que
permite a una amplia gama de dispositivos intercambiar datos espontáneamente de una
manera simple y eficiente. Este protocolo trabaja con Bluetooth e IrDA.
-PPTP: Permite una conexión cifrada usando una infraestructura de seguridad tal que un
usuario puede comunicar o intercambiar datos con otro dispositivo IP-CONECTADO o
red remoto.
-Print Server: El print server permite a clientes tener acceso a las impresoras de un
servidor sobre una red usando TCP/IP.
-RAS Server/PPTP Server (Incoming): RAS es un sistema utilizado para gestionar la
conexión entre dispositivos cliente y servidor remotos, permitiendo su sincronización.
Además, RAS soporta la conexión mediante diferentes protocolos, tanto de acceso
remoto como de LAN (redes de área local).
-Real Time communications (RTC) Client API: permite servicios de mensajería
inmediatos, voz sobre IP (VoIP) comunicación con dispositivos SIP-permitidos, y
llamadas a teléfonos PSTN.
-Serial communications.
-Simple Network Management Protocol (SNMP): supervisa conexiones remotas a la
red.
-TCP/IP: TCP/IP es el protocolo más extendido para comunicaciones en red gracias
sobre todo a que es el protocolo utilizado en Internet. El núcleo de las comunicaciones
en Windows CE es también el protocolo TCP/IP, cuya implementación se ha diseñado
para hacerlo más eficiente teniendo en cuenta las posibilidades de conexión wireless.
-Telephony API (TAPI ):Para gestionar conexiones telefónicas el sistema operativo
incluye la API de telefonía (TAPI), que consiste en una serie de utilidades que permiten
realizar llamadas telefónicas, gestionar las conexiones por módem, interrumpir una
20
Idoia Longan, Laura Val, Pablo González
llamada, entre otras utilidades, independizando de los factores tecnológicos que lo
hagan posible.
También se incluye el servicio Unimodem, que da soporte a la mayoría de
módems disponibles actualmente, además de permitir la instalación de proveedores de
servicio diferentes a través de TAPI.
-Telnet Server: permite la administración remota a través de un cliente estándar del
telnet.
-Universal Plug and Play (UPnP): UPnP permite a un dispositivo ensamblar
dinámicamente una red y obtener un IP adress.
-Windows Sockets
8. Conclusiones y futuro del sistema.
Hemos visto como ha ido evolucionando el Windows CE desde que surge un
sistema operativo pequeño y sencillo no destinado a PC y como, poco a poco, va
evolucionando hacia un sistema mucho más complejo y desarrollado, en algunos casos,
más pequeño aún, con nuevas prestaciones y cada vez mayor autonomía.
El Windows CE y los dispositivos que lo incorporan, tales como teléfonos
móviles o sistemas de posicionamiento por satélite, ya sabemos que han cosechado un
gran éxito y que cada día va a más, pero aparte de esto, el Windows CE ¿hacia dónde se
dirige?¿qué nuevos horizontes se plantea?.
De momento nada se sabe sobre una posible versión 6.0 de
este SO, en la actualidad todos los avances reales se centran
en aplicaciones como Windows Mobile o mejoría del
Windows CE 5.0 con la posibilidad del Chat on-line o de
poder ver DVDs, sin embargo estaremos a la espera de
novedades aunque de momento algunas sean tan curiosas
como ésta:
Ovation iX: una bomba de gas conectada a Internet que te
permite desde descargar y reproducir formato MP3 hasta
comprobar el estado del tráfico, pasando por ver anuncios en
su pantalla de 10,4”
Figura 14: Ovation iX
21
Idoia Longan, Laura Val, Pablo González
9. Bibliografía
Windows CE 5.0 msdn
http://msdn.microsoft.com/library/default.asp?url=/library/enus/wcemultimedia5/html/wce50congraphicstechnologies.asp
Windows CE 5.0 Home Page
http://msdn.microsoft.com/embedded/windowsce/default.aspx
Windows embedded Home Page
http://msdn.microsoft.com/embedded/
Breve historia de Windows CE
http://www.hpcfactor.com/support/windowsce/
Cómo crear una aplicación de .NET Compact Framework con Visual Studio .NET 2003
(Windows CE 5.0):
http://www.microsoft.com/spanish/msdn/articulos/archivo/140305/voices/compactfram
eworklab.asp
Podemos encontrar ejemplos de código para construir una shell en Platform Builder en
la siguiente página:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceshellui5/html/wce50grfshellsamples.asp
Tutoriales sobre Windows CE (en video):
http://msdn.microsoft.com/embedded/getstart/basics/tutorialsce/default.aspx
Información sobre Windows Automotive:
http://www.microsoft.com/windows/embedded/windowsautomotive/about.mspx
Información sobre Windows Mobile:
http://msdn.microsoft.com/mobility/windowsmobile/why/whydevelop/default.aspx
http://www.microsoft.com/windowsmobile/default.mspx
22
Descargar