Trabajo Windows CE 6

download Trabajo Windows CE 6

of 31

Transcript of Trabajo Windows CE 6

ARQUITECTURA DE WINDOWS CE 6.0

Cristian Monjo, Lluc Febrer y Guillem Sans

NDICE

0.NDICE

1. INTRODUCCIN 1.1. Qu es Windows CE 6.0?.............................................................................................pg3 1.2. Caractersticas.pg3 1.3. A qu dispositivos est destinado?...............................................................................pg6

2. ARQUITECTURA WINDOWS CE 6.0..pg9

3. SISTEMA DE ARCHIVOSpg17

4. DRIVERS DE DISPOSTIVOS..pg19

5. ADMINISTRACIN DE ENERGA..pg21

6. SEGURIDAD...pg23

7.ADMINISTRACIN DE REDES...pg25

8. DESARROLLO DE LA ISO DEL SISTEMA OPERATIVO WINDOWS CE 6.0pg27

9. CONCLUSIN....pg30

10. REFERENCIAS....pg29

1. INTRODUCCIN. 1.1. Qu es Windows CE 6.0?Windows CE 6.0 fue lanzado el 1 de noviembre del 2006 y es la evolucin de Windows CE 5.2 tambin conocido por su versin comercial Windows Mobile 6. Windows CE es la base de la familia de sistemas operativos destinados a satisfacer las necesidades de los usuarios de dispositivos informticos pequeos y mviles, tpicamente alimentados por bateras y con un uso unipersonal, llamados dispositivos empotrados y que suelen ser PDAs, Pocket PC y Smartphones Por los dispositivos a los que va enfocado Windows CE 6.0, y las funcionalidades de estos, no se trata de un Sistema Operativo como los que habamos visto hasta ahora, donde se exigan unos requisitos tcnicos mnimos y a partir de ah, podamos tener un equipo con mejores o peores prestaciones, pero siempre con las mismas funcionalidades. Ya que todos los dispositivos tenan una arquitectura de hardware idntica. Windows CE deber correr en dispositivos muy distintos entre ellos. Des del punto de vista de hardware como de software, pues algunos servirn para controlar un horno de microondas o un cepillo de dientes. Mientras que otros, sern prcticamente ordenadores personales, pero de reducidas prestaciones y con una interfaz simplificada. Los hallaremos con pantallas de todos los tamaos y colores, e incluso tctiles, algunos con botones, otros con teclados, algunos se tendrn que poder atar a una mueca y otros debern viajar por el espacio Por estos y otros motivos que iremos viendo a lo largo de este documento, Windows CE 6.0, es un sistema operativo con una arquitectura modular y una gran compatibilidad con el hardware que hay en el mercado. Algo que consigue gracias al sistema de drivers ofrecido, as como sus capacidades multiprocesador y soporte para 64bits. Windows CE 6.0, tambin deber tener un ncleo muy robusto y potente, sobretodo administrando la memoria y manejando los procesos e hilos de ejecucin utilizando prioridades, para as poder trabajar en tiempo real, un requisito que para algunos dispositivos empotrados es completamente indispensable, como por ejemplo un sistema de frenado automtico para un automvil. Por otro lado, Windows CE 6.0, al trabajar sobre dispositivos mviles que normalmente se alimentarn por batera, deber administrar bien la energa para ofrecer una buena autonoma a la vez que proporciona una buena conectividad y una correcta administracin de redes. Finalmente, para que Windows CE 6.0 tenga xito, es muy importante facilitar el desarrollo tanto del propio sistema operativo como de las aplicaciones de este, o al menos esto parece pensar la gente de Microsoft, que ofrece facilidades nunca vistas con este objetivo.

1.2. Caractersticas MultiprocesadorComo en anteriores versiones de Windows CE, WCE 6 soporta una gran variedad de procesadores para ser implementado en el mximo nmero de dispositivos que pueda haber, haya o habr en el mercado: soporta ARM, X86, PowerPC, MIPS, Xscale y Renesas SuperH. Que como podemos ver en la figura 1, en el ao 2002 representaban un total del 65% de las ventas de procesadores a nivel mundial.

Figura1:Datosdeventasen%deprocesadoresdel2002

Tambin debemos tener en cuenta que es normal encontrarnos con dispositivos empotrados que disponen de ms de un procesador y que adems no suelen ser iguales, al contrario de lo que pasa con los PCs, donde es frecuente el uso de multiprocesador (o multincleo), pero donde siempre son copias idnticas los unos de los otros.

Sistema operativo en tiempo realUn sistema operativo en tiempo real tiene que generar respuestas a las entradas externas en un tiempo acotado y suficientemente corto para garantizar el correcto funcionamiento del sistema. Si no fuera as, en la mayora de los casos, el dispositivo no servira para nada, y podra llegar a tener consecuencias fatales para segn qu sistemas, como por ejemplo en el radiocontrol de una sonda espacial o en un dispositivo quirrgico. Para conseguir este objetivo, el sistema operativo debe estar diseado especficamente para ello. Microsoft intent desarrollar su primer sistema operativo en tiempo real a partir de otros que no lo eran, como Windows NT y Windows 3.1. Estos intentos, denominados Winpad y Pulsar fracasaron ya que, o bien no proporcionaban los tiempos de respuesta necesarios, o lo hacan a un precio demasiado alto. Se pueden clasificar los sistemas en tiempo real como suaves o como duros: Soft real time systems / Hard Real Time systems. Consideraremos suaves aquellos sistemas, donde las tareas crticas reciben una prioridad ms alta que las dems y donde normalmente se obtiene el tiempo de respuesta necesario. Como por ejemplo controlando un aparato multimedia, donde no pasa nada si perdemos un frame o una slaba en una pelcula. Consideraremos duros, aquellos sistemas en tiempo real donde la respuesta a una tarea prioritaria se ha de dar en un tiempo determinado o en caso contrario causar un fallo en el sistema. Por ejemplo, en el sistema de control de un vehculo, donde si el tiempo de respuesta es demasiado grande podemos colisionar contra otro objeto. En todo caso Windows CE 6.0 es un sistema operativo en tiempo real duro y puede satisfacer las necesidades de las implementaciones ms exigentes en este aspecto.

Arquitectura modularAdems de las anteriores caractersticas, Windows CE 6.0 est desarrollado como un conjunto de mdulos independientes, como si fueran las piezas de una especie de LEGO que nos permiten implementarlo en cualquier tipo de dispositivo, llegando hasta el punto de la incredulidad o incluso de poner en duda la necesidad de dicha implementacin. En todo caso, la arquitectura de Windows CE 6.0 permite meterlo en prcticamente cualquier cosa que se nos ocurra y le ofrece al fabricante que elija implantar este sistema operativo en su dispositivo empotrado, el placer de personalizarlo a su gusto y riesgo, ya que Microsoft solo garantiza un nmero limitado de versiones probadas, que coinciden con las diferentes versiones comerciales del sistema operativo Windows CE 6.0 y que an no han salido al mercado. An as, la limitacin es nula, pues adems de ofrecer una plataforma de desarrollo del sistema operativo y un entorno de programacin para desarrollar las aplicaciones para Windows CE 6.0, como novedad, en la ltima versin de Windows CE 6.0 Microsoft ofrece una licencia shared code que proporciona a su propietario el cdigo fuente del sistema operativo. De momento Microsoft ha alcanzado acuerdos comerciales con las siguientes compaas para que monten Windows CE 6.0 en sus dispositivos: AT&T, Chunghwa Telecom, Dopod International Corp., Orange, HP, HTC, iMate, LG Electronics, Motorola Inc., Palm Inc., Samsung, en Sprint, Telefnica, Toshiba, Verizon Wireless y Vodafone.

Peso del sistema operativoWindows CE 6.0 tiene un peso mnimo de 540K y puede alcanzar un mximo de 40MB, dependiendo de los mdulos que elijamos en la versin del sistema operativo. Como los dispositivos empotrados no suelen llevar disco duro, Windows CE 6.0 se puede arrancar desde una memoria flash. Para que nos hagamos una idea, en su versin ms bsica (540K), Windows CE 6.0 incluye nicamente lo indispensable para su funcionamiento y est destinada a probar las capacidades de los dispositivos ms limitados, para luego aadir alguna funcionalidad especfica, ya que no incluye ningn elemento del catlogo de Windows CE 6.0 ni soporte para la pantalla. En su versin ms completa (40MB), Windows CE 6.0 ofrece una atractiva interfaz grfica as como una versin adaptada de office con soporte para sincronizacin con Exchange 2007, el reproductor Windows Media Player, mensajera instantnea y soporte para VoIP

1.3. A qu dispositivos est destinado?Windows CE 6.0 est destinado a solventar las necesidades de cualquier dispositivo empotrado. Desde un cepillo de dientes a los robots enviados por la NASA a Marte, pasando por cmaras de fotos, hardware, electrodomsticos, y por supuesto Smartphones y PDAs.

Sistema empotradoEntendemos por sistema empotrado la traduccin del ingls de Embedded System, que tambin podemos encontrar como sistema integrado, embedido o incrustado. En este artculo, nos referiremos a l como sistema empotrado. Un sistema empotrado, es un sistema informtico construido dentro de otro sistema, generalmente ms grande que este, con una funcin especfica que suele complementar a la del sistema en el que va empotrado. Un sistema empotrado tiene unos requisitos de memoria y procesador reducidos, a la vez que los dispositivos empotrados donde se instalan estos sistemas, tambin tienen sus capacidades reducidas respecto a otros de mayor tamao, como pueden ser ordenadores de sobremesa o supercomputadores. En cualquier caso, este es el taln de Aquiles para los programadores de aplicaciones para este tipo de dispositivos, ya que hacerlas correr con el hardware disponible no siempre es tarea fcil.

Ejemplos de dispositivos empotrados Para ms aclaracin adjuntamos en las figuras 2,3,4 y 5 ejemplos de dispositivos empotrados todos ellos funcionando bajo Windows CE. En la figura 2 podemos ver un dispensador de gasolina que funciona con Windows CE. Est conectado a la red de servidores de la gasolinera y dispone de funciones de mantenimiento automatizadas adems de publicidad programable.

Figura2:DispensadordegasolinaWCE En la figura 3 podemos ver un robot utilizado en automocin que utiliza Windows CE para su funcionamiento con un procesador X86.

Figura3:RobotautomocinWCE En la figura 4 podemos ver un dispositivo, en este caso un PDA de Acer, con una versin de Windows CE.

Figura4:PDAAcerconWindowsMobile

Y por ltimo en la figura 5 podemos ver la instalacin de una versin de Windows CE en un Fiat 500. Esta versin de Windows CE denominada automotive est destinada a hacer las funciones de manos libres y reproductor de msica a la vez que nos permite recibir y escuchar los mensajes que recibimos en el dispositivo mientras conducimos.

Figura5:WindowsMobileenFiat500

2. ARQUITECTURA DE WINDOWS CE 6.0Para desarrollar el primer Windows CE, Microsoft comenz desde cero, pues sus intentos anteriores de desarrollar un sistema operativo para dispositivos empotrados, basados en Windows NT y Windows 3.1 fueron poco menos que desastrosos. Aun as, el nuevo sistema operativo se bas en la API win32 para mayor comodidad de los desarrolladores, ya fuesen del nuevo sistema operativo o de las aplicaciones que correran sobre l. Pero aadiendo solo aquello estrictamente necesario, para optimizar el sistema y adaptarse a las limitaciones de memoria y procesado de los dispositivos empotrados. A pesar de que ha llovido mucho desde aquella primera versin de Windows CE, la premisa de ahorro y eficiencia contina siendo vigente y se ha ido mejorando la arquitectura para ceirse ms y ms a ella. En la figura 6 podemos ver la estructura que sigue la arquitectura de Windows CE 6.0. Observamos una gran separacin entre el espacio de usuario y el espacio del Kernel, que es el ncleo del sistema operativo. Del espacio de usuario, forman parte las aplicaciones que estn por encima de la Shell del sistema operativo, los servicios ofrecidos por el sistema y los drivers en modo usuario. Por debajo de estos ltimos tenemos los CoreDLL, winsock, commctrl, wininet y commdlg. Que nos resultaran familiares por su semejanza con los componentes de la arquitectura de Windows de escritorio. El espacio del Kernel, abarca los siguientes componentes: Kernel.DLL, sistema de archivos, GWES, redes, device.DLL, drivers, kcore.DLL, oal.DLL, bootloader y hardware. Que en el siguiente apartado veremos con ms detalle.

Figura6:ArquitecturaWindowsCE6.0

KernelEl Kernel es la parte principal del sistema operativo y se ocupa de la gestin de los procesos, hilos de ejecucin y la administracin de la memoria, as como de proporcionar los drivers de los componentes ms bsicos. En la figura 7 podemos ver un pequeo desglose de su arquitectura subdividida por las interfaces DLL y de procesado, que controlan las llamadas de las funciones y gestionan los traps que se comunican con el Kernel , respectivamente. Y una descripcin de las libreras ms importantes.

Figura7:ArquitecturadelKerneldeWindowsCE6.0

FileSys.DLL: Da soporte al sistema de archivos y se comunica con los drivers del sistema. GWES.DLL: Es el subsistema encargado de los grficos, ventanas y eventos. Device.DLL: Drivers para los dispositivos.

KCCOREDLL.DLL: Las llamadas de las APIs utilizan esta DLL para comunicarse con los servicios del Kernel como podemos ver en la figura 8. Adems tambin hay DLL especficos para los servicios de red. Windows CE 6.0 utiliza un 10% de las APIs de Windows de escritorio. Lo que en la prctica significa que podemos recompilar las aplicaciones para Windows CE e instalarlas en un ordenador con Windows de escritorio sin problemas, pero que al revs, habra que cruzar los dedos y tener mucha suerte para que funcionara.

Figura8:LlamadasalsistemaenWindowsCE6.0

Administracin de la memoria virtual en Windows CE 6.0 La cantidad de memoria virtual se mantiene igual que en las anteriores versiones de Windows CE. Disponemos de un espacio de memoria virtual de 32 bits 4GB, distribuidos en 2 bloques de 2GB cada uno. Y en los que, como bien sabemos, se almacena el Kernel del SO, cdigo y datos de las aplicaciones y objetos como el sistema de archivos o el registro. El primer bloque de 2GB, es para el direccionamiento de usuario y a su vez se reparte en 4 grandes bloques como podemos ver en la figura 9. Los primeros 256MB - menos el primer MB que hace de separacin entre los dos bloques de 2GB - denominados Shared System Heap ( Pila compartida del sistema) otorgan permisos de escritura y lectura para los componentes del SO ( Kernel y servidores del Kernel ) mientras que slo permiten la lectura por parte de los procesos de usuario. Se trata de una optimizacin del sistema que permite a un proceso obtener datos de un servidor del Kernel sin tener que hacerle una llamada directa y as se puede compartir este espacio entre el Kernel y el proceso activo. Los segundos 256 MB denominados RAM Backed Mapfiles, estn mapeados en un lugar fijo, para garantizar la compatibilidad con aplicaciones que utilizan RAM- backed map files para las comunicaciones cruzadas entre procesos, donde varios procesos mapean vistas de la misma direccin de la memoria virtual.

El tercer bloque, denominado Shared User DLLs contiene todos los DLLs del sistema: Entremezclando el cdigo y los datos. Se utiliza el mismo mapeo para todos los procesos, as que si cargamos el mismo DLL en mltiples procesos, estos, accedern a la misma direccin de memoria. Las pginas de datos son nicas para cada proceso, mientras que las pginas de cdigo son compartidas por los procesos. Por ltimo, tenemos un bloque final denominado Process space de 1 GB de tamao que coincide con el tamao mximo por proceso, que contiene el cdigo y los datos ejecutables.

Figura9:Distribucindelamemoriavirtualdeusuario.

El segundo gran bloque de 2GB es para el direccionamiento del Kernel de Windows CE. Su distribucin es algo ms compleja que el primer bloque tal como se puede observar en la figura 10. En primer lugar tenemos la System Trap Area que contiene la Mquina virtual especfica de la CPU y la pgina de datos del Kernel. A continuacin, el espacio de memoria virtual propio del Kernel que est dividido en 2 bloques de 256MB. El primero de ellos dependiente del soporte por parte de la CPU que en algunos casos puede desactivarlo, por ejemplo con las CPUs SHx. En todo caso el espacio de memoria virtual del Kernel es compartido por todos los servicios y drivers que estn cargados en l. Seguidamente, tenemos un pequeo bloque de 128MB para almacenar objetos, este almacenamiento est destinado al sistema de archivos de la memoria RAM y registro basado en RAM. Despus hay otro bloque de 128MB donde estn los XIP DLLs del Kernel para el mismo Kernel y los servidores y drivers que tenga cargados. Los XIP DLL son aquellos propios de las aplicaciones y se cargan al ejecutarse estas. Para acabar el ltimo GB est destinado al mapeo esttico de la memoria fsica, contiene 2 bloques de 512Mb el primero de los cuales es no cach, lo que significa que no pasa a travs del cach de la CPU para acceder a la memoria fsica y el ltimo est cacheado, con lo que accede directamente a la memoria fsica a travs de la cach de la CPU.

Figura10:DistribucindelamemoriavirtualdelKernel.

Unaconfiguracintpicadeundispositivoempotradopuedetenerlaconfiguracindelejemplodela figura11.Dondepodemosverunmapeotpicodememoriavirtualamemoriafsica.

Figura11:MapeodelamemoriaVirtualalafsicaen1dispositivocon32MBFlashROMy64MBRAM.

Procesos e hilos de ejecucin El sistema de gestin de procesos e hilos de ejecucin de Windows CE 6.0, se ha ido heredando de padres a hijos dentro de la familia de Windows CE y es originario de Windows NT. As que su principal caracterstica es la de permitir a un proceso, la ejecucin de ms de un hilo de ejecucin al mismo tiempo, ahorrando as memoria del sistema. Afortunadamente no todo es de los tiempos de Windows NT y esta versin de Windows CE, proporciona 2 GB de memoria virtual por proceso, hasta un mximo de 32000 procesos y un nmero mximo de hilos de ejecucin, que depender de la memoria fsica instalada en el sistema.

Figura12:Diagramadeestadosdeunhilodeejecucin.

Para aquellos que no estn familiarizados con los hilos de ejecucin, la figura 12 es un buen ejemplo de su funcionamiento, donde se puede ver la transicin entre los diferentes estados: running (en ejecucin), suspended (en la CPU esperando a ser ejecutado), sleeping (bloqueado durante un periodo de tiempo determinado), blocked ( bloqueado a la espera de algn recurso) o terminatted (Ejecucin finalizada). Para controlar estos estados y ofrecer el preciado tiempo de respuesta acotado que nos permite decir que Windows CE es un sistema operativo Hard Real Time. Windows CE 6.0 tiene una programacin preemtiva para los procesos e hilos de ejecucin que permite jugar con 256 niveles de prioridad, que van del 0 al 255 y donde el 0 es el ms prioritario y se ejecutar hasta terminar por completo. El resto de niveles, implicaran a los procesos tener que competir para ser ejecutados, ya que cada prioridad por encima de 0 tiene asignado un tiempo de ejecucin limitado y variable de entre 1ms i 100ms, y en caso de empate entre prioridades, se desempata aleatoriamente a favor de uno de los procesos. Las prioridades del 0 al 96 estn reservadas para drivers en tiempo real alto, muy exigentes. Del 97 al 152 para los drivers por defecto de dispositivos basados en Windows CE. Del 153 al 247 para drivers en tiempo real bajo (poco exigentes ). Y del 248 al 255 para prioridades que no requieran tiempo real. En la figura 13 podemos ver un ejemplo donde tenemos 3 hilos de ejecucin: thread 1 prioridad 0 y thread 2 y 3 misma prioridad y se puede ver el comportamiento del sistema ante este escenario.

Figura13:Ejemplodelaprioridadentrehilosdeejecucin. Seguramente, ms de uno se haya percatado que por muchos niveles de prioridad y tiempos de ejecucin variables que implemente Windows CE 6.0, se puede dar el caso, que un hilo de ejecucin con menor prioridad, bloquee un recurso que necesita uno de mayor prioridad, de forma que se invertira la prioridad asignada a estos hilos originalmente. Para solucionar este problema, Windows CE 6.0 permite al hilo de ejecucin con menor prioridad, heredar la prioridad del de mayor prioridad hasta que libere el recurso bloqueado. Adems, el programador de hilos de ejecucin, puede cambiar su programacin para adaptar el resto de hilos de ejecucin al nuevo escenario resultante y as evitar una indeseable inversin de prioridad. En la figura 14 podemos ver un ejemplo donde el hilo de ejecucin con menor prioridad (thread 3) est bloqueando un recurso que necesita el hilo de ejecucin de mayor prioridad (thread1) y como se comporta Windows CE 6.0 ante este contratiempo.

Figura14:Ejemplodecomportamientoencasodeinversindeprioridad.

Para que la comunicacin entre procesos sea tan completa como lo es la gestin de prioridades, Windows CE soporta tanto el modelo de memoria compartida como el de paso por mensajes, pudindose compartir pilas en la memoria entre varios procesos. Tambin hay mapeo de los archivos en memoria y se pueden usar punteros para acceder directamente a ella. Windows CE 6.0 utiliza MSMQ (Microsoft Message Queing) para las comunicaciones entre diferentes servicios, que es un componente de Windows que permite enviar y recibir mensajes entre aplicaciones o servicios. Y por si hay que poner un poco de orden, para la gestin de interrupciones el Kernel dispone del Interrupt Service Handler (ISH) que es el encargado de decidir que ISR llamar en cada momento. El uso de Interrups Service Routine (ISR) junto con los Interrup Service Thread (IST) permite administrar las tareas de forma ptima y acotar la latencia de las interrupciones como se puede ver en la figura 15. Donde el ISR manipula las tareas bsicas de interrupcin iniciando las IST y esperando de nuevo nuevas ISR independientemente de la IST llamada.

Figura15:ManejodeISRyISTporpartedelISHdelKerneldeWindowsCE.

3. SISTEMA DE ARCHIVOS.FileSys.DLL proporciona soporte al sistema de archivos y se comunica con los drivers del sistema de archivos (FSD). Windows CE 6.0 soporta 2 tipos de sistemas de archivos, los controlados por el FSD o los Sistemas de archivos registrados. Junto con Windows CE se proporcionan FSDs para varios sistemas de archivos tal como podemos ver en la figura 16: Catlogo del sistema de archivos y manipulacin del almacenamiento.

ITEM DEL CATALOGO Compression

DESCRIPCIN Es una API que comprime los datos en el sistema de archivos de la RAM y la ROM. Una API que proporciona soporte para bases de datos. Caracterstica que permite identificar los cambios ocurridos en una base de datos o el sistema de archivos e la RAM para replicarlos en la mquina de escritorio. Utiliza 4 bits por objeto para sincronizar los datos. Driver del sistema de archivos capaz de leer en la RAM y ROM. Driver del sistema de archivos que slo permite leer en la memoria ROM. Sistema de registro que almacena datos dentro de ficheros que se pueden guardar en cualquier sistema de archivos. Sistema que almacena todos los datos del registro en el object store. Es responsable de todos los tems de almacenamiento externo como sistemas de archivos, filtros de sistemas de archivos y particionamiento. Permite cargar una parte de la imagen de un sistema operativo en la RAM para su ejecucin. Driver del sistema de archivos que permite CDFS, UDFS y que lee DVD y CD. Es un API proporciona funcionalidades avanzadas como acceso para mltiples usuarios, ordenes mltiples y propiedades clave. Driver del sistema de archivos que da soporte para el sistema de archivos FAT.

Database Support

Bit-Based

RAM & ROM FileSystem

ROM- only FileSystem

Hive-Based Registry

RAM-based Registry

Storage Manager

Binary Rom Image FileSystem

CD/UDFS File System

EDB Database Engine

FAT FileSystem

Extended FAT File System Partition Driver

Driver del sistema de archivos para ExtFAT. Un driver que interpreta las particiones en un dispositivo de almacenamiento. Aplicacin del panel de control que permite al usuario manipular dispositivos de almacenamiento. Se asegura de que el direccionamiento de la tabla FAT no es corrompido a causa de una falta de energa. API que nos proporciona autenticacin para el dispositivo de forma que no pueda ser usado por usuarios no autorizados. Funcionalidad que da soporte para el RDFS. Construye el DLL para dispositivos sin interfaz grfica.

Storage Manager Control Panel Applet

Transaction Safe FAT

System Password

Release Directory File System Silent FATFS UI

Figura16:Catlogodelsistemadearchivosymanipulacindelalmacenamiento Tal como se puede ver en el catlogo Windows CE 6.0 proporciona soporte para los distintos soportes fsicos que podemos encontrar en el mercado, como discos magnticos, tarjetas de memoria, DVD, CD y por supuesto memoria RAM y ROM.

4. DRIVERS DE DISPOSITIVOSLa gran variedad de hardware sobre el que funcionar Windows CE 6.0 requiere de algo ms que los drivers que incluye, que no son pocos, junto con interfaces especficos para flujos de datos y drivers de muestra como base para los desarrolladores. Por lo que Windows CE 6.0 adems acepta tanto drivers por capas ( MDD y PDD) como monolticos. MDD significa Model Device Driver. Estos drivers, se basan en modelos, pues contienen un cdigo que es comn para todos los drivers de un determinado tipo. Llaman a funciones PDD para acceder al hardware, conectndose a la capa PDD para definir las funciones DDSI (Device Driver Service Providor interface), que el MDD espera llamar de la capa PDD. Los MDD tambin proporciona al SO las funciones DDI ( Device Driver Interface) y pueden conectarse con mltiples PDDs sin requerir cambios en la mayora de los casos, pues en caso de no ser as tendramos problemas para migrarlos a futuras versiones. Los MDDs pueden contener cualquier IST. PDD significa Platform Dependent Driver. El cdigo es especfico para una plataforma concreta. As que dependiendo de la plataforma de hardware, debern ser modificados. Estn especficamente diseados para trabajar con implementaciones de los MDDs. Al contrario que los drivers monolticos exponen las funciones DDSI que llama el MDD. Los Drivers monolticos son una combinacin de MDD y PDD en un solo driver. Ahora que ya sabemos cmo es cada tipo de driver debemos aprender a utilizarlos convenientemente. Usando drivers por capas slo tendremos que modificar el PDD, pero un driver por capas aade sobrecarga a las llamadas del sistema, porque los MDD tienen que realizar llamadas a los PDD. Por su lado, drivers monolticos optimizan el rendimiento, ya que al estar todos en uno no se tienen que realizar llamadas entre ellos. As que, adems de ser ms simples, tambin son ms eficientes. Pero como contrapartida los drivers monolticos son ms difciles de migrar a futuras versiones de Windows CE, porqu este sistema operativo utiliza en su mayor parte drivers divididos en MDD y PDD. En todo caso ya sea usando drivers monolticos o por capas podemos basar la implementacin en el cdigo fuente de los drivers de muestra que se incluyen en Windows CE que en alguna ocasin nos ahorrar un buen trabajo. El Device Manager, hace el papel de director de orquestra, es el componente responsable de manipular los drivers de dispositivos y sus interfaces, decidiendo en todo momento qu drivers cargar y utilizando el registro del SO para encontrarlos. El Device Manager de Windows CE 6.0 tiene la misma configuracin bsica que el de Windows de escritorio, pero con un espacio mucho ms limitado que debe tenerse muy en cuenta a la hora de aadir entradas. Sus componentes son: Devcore: funcionalidad del ncleo de Device Drivers. Iorm: Proporciona la funcionalidad de entrada/salida y por lo tanto es un componente obligatorio que no nos podemos ahorrar. Pmif y nopmif: Proporciona la interfaz para los puntos de entrada de los DLLs

Adems del Device manager tambin cargan drivers el FIle System y el GWES. Finalmente, si no hemos tenido suficiente con los drivers expuestos hasta ahora, tambin existe el User Mode Driver que nos permite cargar un driver intermedio en modo usuario. Estos drivers no pueden acceder directamente al hardware pero pueden dar ms estabilidad en algunos tipos de driver. Adems, hay un reflector en el Kernel que permite que un driver en modo usuario trabaje como si fuera en modo Kernel. En la figura 17 tenemos un pequeo esquema del funcionamiento de los drivers en Windows CE 6.0.

Figura17:FuncionamientodelosdriversenWindowsCE6.0.

5. ADMINISTRACIN DE ENERGA.La administracin de energa es un punto crtico para los sistemas que se alimentan por batera. En el caso de los dispositivos empotrados, la mayora o al menos, los ms vendidos como telfonos y agendas utilizan este sistema de alimentacin. Este concepto, que apareci con los primeros ordenadores porttiles, parece condenado a la vida eterna, ya que por mucho que aumenta la tecnologa y la capacidad de las bateras, parece que el consumo de los equipos electrnicos lo hace incluso ms rpido. Para ofrecer la mxima autonoma, podemos ver en la figura 18 que Windows CE 6.0 utiliza un complejo sistema de administracin de energa que controla el dispositivo en todo momento y que deberemos configurar con cuidado si no queremos que los usuarios acostumbrados a las mquinas de sobremesa que siempre estn consumiendo y rindiendo al 100% lo encuentren demasiado incmodo.

Figura18:Estadosdeconsumoytransiciones.

Power-on reset: Al reiniciar un dispositivo que previamente estaba encendido el sistema limpia la memoria RAM e inicializa el sistema de archivos. Cold boot: Arranque en fro. Arranque del sistema cuando este est apagado. Warm boot: Despus de arrancar el sistema este limpia la memoria RAM. On-To-Idle: Transicin des de un estado de uso intensivo del procesador a uno de bajo consumo. Idle-to on: Paso de bajo consumo a alto consumo. El contrario que el anterior.

On-to suspend: Transicin a un estado en el que el procesador est apagado. Se llama a la funcin power_down del device manager. Suspend to on: Transicin des de un estado en el que el procesador est apagado a uno de alto consumo. Se llama a la funcin power_on del Device manager. On-To critical off: Transicin cuando se detecta un nivel crticamente bajo de la batera.

Para ms aclaracin, en la figura 19 podemos ver la arquitectura del sistema de administracin de energa. La DLL encargada de la administracin de la energa controla la cola de notificacin y los drivers, adems de intercomunicarse con las APIs de administracin de energa que recogen la informacin de las aplicaciones y los drivers a travs de sus respectivas APIs.

Figura19:ArquitecturadelsistemadeadministracindeenergadeWindowsCE6.0

6. SEGURIDAD.Como todos sabemos, estamos en la era de Internet, y en consecuencia en la era de la seguridad informtica, ya que adems de todo lo bueno de Internet, al contrario de lo que pasa con las personas, los virus y otros ataques viajan a travs de la red de redes a la velocidad de la luz, no duermen nunca y no conocen ni fronteras ni leyes. Por lo que la seguridad ha pasado en pocos aos a ser algo anecdtico a ser uno de los pilares de cualquier sistema operativo que se considere mnimamente serio. El mdulo de seguridad de Windows CE 6.0 controla el acceso al dispositivo, lo protege de procesos e hilos de ejecucin no autorizados, proporciona almacenamiento seguro de datos y del sistema de archivos y securiza las conexiones de red e Internet. Para ello utiliza 4 herramientas bsicas: Autenticacin, autorizacin, encriptacin y repudio. Esta arquitectura, permite securizar los datos y comunicaciones de la red de una empresa sin alterarla ni aadir ningn hardware adicional, aunque por supuesto un antivirus est ms que recomendado. En la figura 20 podemos ver la arquitectura detallada del mdulo de seguridad. Las aplicaciones interactuan con el sistema operativo Windows CE 6.0 a travs de Winsock, que diferencia entre las conexiones seguras y las no seguras, Wininet que utiliza tanto portocols seguros como no seguros, la DLL de seguridad, la API de criptografia y la API de almacenamiento protegido. De esta forma es establece una especie de filtro entre la aplicacin y el ncleo del sistema operativo protegindolo en todo momento.

Figura20:Arquitecturadelmdulodeseguridad.

CaractersticasTeniendo en cuenta que la mayora de dispositivos que implementarn Windows CE son Smarthphones y PDAs, uno de los principales riesgos es perder el dispositivo y por ende el acceso por parte de un tercero a la informacin contenida en el mismo. Aunque la mayora soamos con un sistema que adems de recuperar los datos que tengamos en el dispositivo desintegre buena parte la fisionoma del usuario no autorizado, Windows CE 6.0 se limita a implementar una contrasea fuerte para evitar este tipo de accesos no deseados. Adems, si se repiten muchos logins incorrectos el dispositivo nos hace esperar un tiempo de back-off cada vez ms largo, e incluso se puede llegar al punto de borrar completamente los datos del dispositivo remotamente. Tambin se encriptan los datos de la tarjeta de memoria en caso de existir esta. Custom Local Authentication Subsystem (LAS) y Local Authentication Plug-in (LAP) nos permiten autenticacin va hardware o software de otros fabricantes. Otro punto importante es garantizar la seguridad de los datos mientras transmitimos la informacin. Para las comunicaciones entre el dispositivo y el servidor de correo se utiliza SSL con cifrados de 128 y 256 bits. Tambin soporta information rights management protection for email. Y los protocolos de cifrado disponibles estn certificados por el estndar federal de los EE.UU (FIPS) y son: AES, DES, 3DES, SHA-1, RSA. Este sistema sera el equivalente a un furgn de Prosegur lleno de pistoleros, que la verdad es que para un usuario sin licencia para matar debera ser ms que suficiente. Para el acceso no autorizado a la red local, se utiliza un cliente de autenticacin flexible: SSL TLS, Exchange ActiveSync, Certificate-based, RSA SecurID-protected. Adems existen polticas de seguridad para controlar el acceso por aire al dispositivo que permiten por ejemplo bloquear el Bluetooth discovery mode. Las polticas de acceso tambin controlan las aplicaciones que ejecutamos en el dispositivo ya sea por certificados , tamao o por criterio del usuario o directamente prohibiendo ciertos archivos por su procedencia. Lo que supone un sistema de aduanas de lo ms habitual hoy en da. En el tema de los virus, Office Mobile no soporta macros de forma que los virus no pueden utilizarlos para daar el dispositivo. Adems de tener un estricto control de la ejecucin de aplicaciones y descarga de archivos adjuntos trabajando con certificados. En este aspecto, Windows CE 6.0 se enfrenta a una leyenda urbana, que insina que para ser el hombre ms rico del mundo, Bill Gates tuvo que vender la seguridad de sus sistemas operativos Windows al diablo, condenndolos a ser el objetivo numero 1 de todos los hackers, crackers y similares

RecomendacionesComo es habitual Microsoft hace una serie de recomendaciones para garantizar la seguridad del sistema: Usar autenticacin mutua, no almacenar credenciales ni contraseas en el dispositivo y en su lugar utilizar smart cards para ello. Utilizar la autenticacin pass through y por supuesto un protocolo de autenticacin fuerte y no contraseas en texto plano.

7. ADMINISTRACIN DE REDES.De bien poco nos servira un Smartphone si no pudiramos descargar el correo, o una PDA si no la pudiramos sincronizar con nuestra antena GPS. En general, los dispositivos empotrados son dispositivos pequeos de capacidades limitadas, por lo que es habitual encontrarnos con que se tienen que comunicar, adems de con el dispositivo al que van empotrados, a algn servidor o en el caso de dispositivos de uso personal, a Internet para sincronizar con las aplicaciones de escritorio y comunicarse con un PC de sobremesa. Windows CE 6.0 incluye una suite completa del protocolo TCP/IP para garantizar la comunicacin con Internet y redes inhalmbricas, junto con los programas habituales para su administracin y gestin como son ping, ipconfig, netstat, tracert, ping route, ipv6). Paralelamente podemos establecer comunicaciones a travs de IR, de muy corto alcanze. O incluso conectar con redes token ring aparte de Ethernet. Adems, ofrece soporte para las APIs Winsock (las aplicaciones acceden a la pila TCP/IP a travs de esta API) , WinInet ( manipula todas las comunicaciones entre las aplicaciones y WinSock), NetBios (interfaz para acceder a servicios de red) y WinHTTP ( interfaz de alto nivel para el protocolo http 1.1). Finalmente como interfaces fsicas disponemos de red, FIR, puerto serie y puerto IR. En cuanto a servicios, dispone de cliente DHCP y DNS. Y ofrece DNS extended WQuerying and update, que nos permite mantener actualizado el nombre de nuestro dispositivo en un servidor DNS. Tambin soporta Dial-up con RAS (Remote Access service) y PPP ( point to point protocol). Puede conectar con una impresora de red e incluye un agente SNMP para su gestin remota y monitorizacin. Y por supuesto soporte para WAN. En la figura 21 podemos ver la arquitectura de red y TCP/IP de Windows CE 6.0 con una cmoda separacin por capas que nos permite ver de qu forma establece las comunicaciones el sistema operativo.

Figura21:ArquitecturaderedesdeWindowsCE6.0.

8. DESARROLLO DE LA ISO DE WINDOWS CE 6.0

Como ya hemos comentado antes, una de las ventajas de Windows CE 6.0 es que podemos crear nuestra versin personalizada a partir de los componentes independientes que forman el sistema operativo. Platform Builder Tools es la herramienta ofrecida por Microsoft para construir nuestro propio Kernel de Windows CE. Esta herramienta se integra en el entorno de desarrollo Visual Studio 2005 o 2008. Se puede hacer tanto por interfaz grfica (GUI) como por comandos (CLI). Adems, dispondremos del cdigo fuente del SO para poder realizar modificaciones directamente sobre l. Una vez desarrollado el Kernel, este, se puede debugar con el emulador que ofrece el Platform Builder o descargar directamente en el dispositivo y ser probado in situ. Platform Builder tambin nos permite cargar BSPs y drivers y finalmente crear el SDK de nuestra configuracin personalizada para pasarlo a los desarrolladores para que puedan desarrollar el software sin tener que conocer nuestros drivers a fondo y las primitivas del SO. El emulador nos permite incrementar nuestra productividad y reducir el tiempo de desarrollo del la ISO del SO pues si tuviramos que probar cada modificacin el dispositivo final perderamos mucho tiempo con esta tarea. En la figura 22 podemos ver los pasos a seguir para desarrollar el Kernel. Primero deberemos elegir una plantilla de diseo, que modificaremos para obtener nuestro propio diseo de SO, seleccionando o deseleccionando los componentes que configuraremos posteriormente y finalmente pasaremos al constructor que nos dar la imagen para descargar en el dispositivo empotrado. En la figura 22 vemos el algoritmo que sigue Platform Builder para construir la imagen del SO: Este proceso est dividido en 4 fases, fase de compilacin, fase de generacin del sistema, fase de construccin de la copia de lanzamiento y finalmente la fase de creacin de la ISO descargable.

Figura22:PasosparacrearunaimagendeWindowsCE6.0.

Por si esto no fuera suficiente Microsoft nos ofrece tutoriales virtuales guiados paso a paso para desarrollar la ISO de Windows CE 6.0. Los conocimientos necesarios para realizarlos son prcticamentenulosdeformaquecualquieraindependientementedesunivelcomoprogramador pueda iniciarse en esta plataforma. A continuacin podemos ver algunas capturas del funcionamientodePlatformbuilderenunodeestostutoriales.Enlafigura23vemosunesquema delsistemadeconstruccindelsistemaoperativo.Enlafigura24podemosverVisualStudio2005 ejecutandoPlatformbuilderparadesarrollarunaISOdelsistemaoperativoWindowsCE6.0.Yenla figura25vemoselPlatformBuildercargadoenellaboratoriovirtualdeMicrosoft.

Figura23:SistemadeconstruccinISOWindowsCE.

El objetivo de los distintos archivos de construccin, es poder controlar esta construccin en todo momento.DefinenquecdigoestenelKernel,dondesecargaestecdigoenlamemoriaeinstala elregistro,sistemadearchivosydatoseneldispositivoporprimeravez. Hay4tiposdearchivoenelcdigofuente:Archivosdedirectorios,quenosindicansubdirectorios adicionales donde se encuentra el cdigo fuente; archivo Makefile que contiene las variables necesarias para compilar y enlazar el cdigo fuente; Definicin modular, que define una librera ejecutableodeenlacedinmico.Ylosarchivosfuentequecontienenlasmacrovariablesnecesarias paraconstruirelcdigofuente(includesylibreras).

Figura24:VisualStudio2007ejecutandoPlatformbuilderparadesarrollarunaISOdelsistemaoperativo WindowsCE6.0.

Figura25:PlatformBuildercargadoeneltutorialdeMicrosoft.

9. CONCLUSIN.A lo largo de este artculo hemos visto con detalle las caractersticas de la ltima versin del sistema operativo Windows CE, la 6.0. Microsoft ha demostrado estar a la altura y nos ofrece un producto depurado que ha corregido las deficiencias que podra tener hasta el momento y que ofrece mejoras importantes que, seguro, el desarrollador sabr valorar. Mantiene su arquitectura modular y soporte para mltiples tipos de procesador, que nos permite adaptarla una variedad de dispositivos, que seguramente no imaginaramos que puedan estar funcionando bajo Windows. Gracias al complejo sistema de gestin de procesos e hilos de ejecucin, ofrece un tiempo de respuesta que lo convierte en un sistema operativo en tiempo real duro, lo que significa que puede satisfacer las necesidades de hasta las aplicaciones ms exigentes en este aspecto. Y todo esto con un peso en memoria muy flexible, pero que sobretodo tiene la cualidad de poder ser muy pequeo. Se han mejorado sustancialmente aspectos importantes de la arquitectura del sistema operativo como la administracin de la memoria virtual que ha visto muy ampliada su capacidad, para satisfacer los requerimientos de las aplicaciones de ltima generacin. Hemos visto los tipos de sistema de archivos que utiliza y su catlogo completo, hacindonos a la idea de hasta dnde puede llegar este sistema operativo. En cuanto a drivers sabemos los tipos de drivers que podemos utilizar y su esquema funcionamiento. Tambin hemos podido examinar el funcionamiento del sistema de administracin de energa, percatndonos de que la administracin de la energa ha recibido la atencin que se merece, y que se tiene muy en cuenta que estos dispositivos se alimentarn mayormente de bateras de capacidad limitada. La interconexin est completamente al da para garantizar que ningn dispositivo que corra Windows CE 6.0 se sienta apartado de los dems, ofreciendo todas las conexiones inalmbricas disponibles en el mercado y el soporte para los protocolos de red necesarios para sacarles provecho. Por ltimo hemos destinado una parte de este artculo a la plataforma de desarrollo de Windows CE 6.0 que nos permite construir un sistema operativo completamente personalizado, que ha mostrado unas facilidades y herramientas muy competitivas destinadas a atraer la atencin de los desarrolladores de todos los niveles. Finalmente podemos decir que Windows CE 6.0 es un buen producto y que no parece ser que Microsoft se vaya a echar atrs en su conquista del mercado de los dispositivos empotrados y pronto veremos la versin comercial de este sistema operativo en nuestros dispositivos personales. Esperemos que a la hora de la verdad demuestre lo que parece ser y cumpla con las expectativas.

NOTA: Conviene no confundir Windows CE 6, con Windows Mobile 6 que en realidad est basado en Windows CE 5.2.

10. REFERENCIAS.Webs y documentacin de referencia. http://www.tecnologiahechapalabra.com/datos/soluciones/tecnologias/articulo.asp?i=1252 ( http://blogs.msdn.com/jasonlan/archive/2007/03/18/windows-mobile-5-0-vs-windows-mobile-6comparison-document.aspx http://gizmodo.com/gadgets/cellphones/windows-mobile-5-vs-6-compared-table-style-245389.php ( http://www.esmiblog.com/index.php/2007/02/08/xda-orbit-con-windows-mobile-5-vs-iphone/ (WM5 vs http://josemarq.wordpress.com/2007/07/17/analizando-el-windows-mobile-6-version-smartphone-enel-htc-s710/ http://www.celularis.com/software/windows-mobile-6-1.php http://gospel.endorasoft.es/windows-mobile/seguridad-windows-mobile/ejecucion-aplicaciones.html http://www.microsoft.com/spain/prensa/noticias/octubre_07/n19.mspx http://www.microsoft.com/technet/solutionaccelerators/mobile/maintain/SecEntMessaging/8c6f92f4102d-4b51-be3f-0938f6f26927.mspx?mfr=true http://www.microsoft.com/technet/solutionaccelerators/mobile/deploy/deployexchange2007/b59a6880 -ce6c-46dc-b427-f0f8b9dc3ff6.mspx?mfr=true http://www.cio.com/article/28692/Microsoft_Windows_Mobile_A_First_Look http://www.fortunecity.com/skyscraper/fatbit/607/wince/wince.html http://www.atc.us.es/asignaturas/astr/DetallesTemario.html#_Toc178391146 www.Microsoft.com Documentacin asignatura PSEM (EPSC).