En este articulo intentaremos explicar brevemente cómo es posible migrar un sistema operativo WP7 a un hardware como Nokia y porqué tendría sentido tener uno antes de fin de año, desde un punto de vista técnico.
WP7 está montado sobre Windows CE 6.0 R3 el cual es altamente modular, diseñado como un sistema operativo en tiempo real, y con un historial en el mercado de 14 años, como se aprecia en la siguiente línea de tiempos.
.jpg)
Las características principales de Windows CE 6.x son:
- Micronúcleo, en las versiones más compactas sólo ocupa 340 kilobytes.
- Multitarea con prioridades (preemptive multitasking), 32.768 procesos concurrentes (máx.) que pueden direccionar 2GB de memoria cada uno.
- Mayor velocidad en operaciones I/O (filesystem, gráficos, sistema de ventanas y eventos de servidor) ya que fueron movidos al núcleo del sistema operativo al convertirlos de .EXE a .DLLs
- Código binario compatible con Intel i386, ARM, Super-Hitachi SH4 y MIPS.
- Nuevos componentes de Cellcore, el conjunto de clases que sirven a la conexión y servicios de telefonía celular. Entre ellos podemos mencionar que se ha renovado la interfaz de capa de radio (RIL, Radio Interface Layer), que comunica el sistema CellCore con el software del sistema operativo. Entre otros servicios, existe el del manejador de la tarjeta inalámbrica celular (radio interface).
- Es el único producto de Microsoft que se provee con gran parte del código fuente para que el cliente lo pruebe y lo modifique, sin necesidad de notificar al poseedor de la propiedad. Esto era necesario por la naturaleza de la aplicaciones embebidas y de movilidad.
- Soporte de Microsoft Silverlight, Internet Explorer con compatibilidad para FlashLite 3.1, reproductor de medios digitales como componente Windows Media Player 7.x OCX
- Soporte táctil y gestural.
- Amplia conectividad USB, LAN cableada, WiFi, GPRS, Bluetooth, a través de la biblioteca Connection Manager, con notificación automática de eventos de estado.
- Visores integrados de Office y PDF.
- Soporte del protocolo Remote Desktop Protocol para cliente de escritorio remoto.
- Sistema operativo en tiempo real:
- Interrupciones anidadas, es decir, mientras se está procesando un determinado método de servicio de interrupción, puede atenderse otra interrupción.
- Quantums por subproceso: es el tiempo máximo que el procesador estará atendiendo a un subproceso (thread) de un proceso. En Windows de escritorio, este quantum es igual a 10 milisegundos, en un sistema con recursos restringidos, debe ser mayor ya que un tiempo corto impediría que se ejecute eficazmente una tarea. En Windows CE se puede ajustar el quantum de cada thread de una aplicación de forma independiente, el defecto es 100 milisegundos. Esto le da una extraordinaria flexibilidad al momento de optimizar el rendimiento de determinadas tareas dentro de una misma aplicación.
- 256 niveles de prioridad de subprocesos, esto es 8 (ocho) veces más granularidad que el núcleo de los sistemas operativos basados en NT. Este es uno de los rasgos distintivos de los sistemas operativos en tiempo real.
- RTOS certificado: se ha validado independientemente que Windows CE es un sistema de tiempo real.
- Controladores de dispositivos con calidad de producción. Esto significa que estos manejadores (piezas de software) funcionan sin modificación sobre los buses para los cuales fueron diseñados, reduciendo la cantidad de personalización necesaria. Si estos drivers están conformados de esta forma en particular (quality-production), se ven como disponibles en el catálogo de la IDE de Platform Builder, la herramienta para construir un sistema operativo.
- Con Windows CE se introduce un modelo de desarrollo que se denomina “manejador agnóstico de bus”, el cual permite que un manejador de dispositivo (driver) ejecute sobre distintos buses, como por ejemplo, PCI, CardBus PCI-16 bits o CardBus PCI-32 bits, o incluso un bus propietario. Esto se utiliza cuando se prevé utilizar una variedad de buses y se necesita que el manejador de dispositivo funcione en todos ellos con el mínimo esfuerzo de migración. Una parte sigue siendo propietaria, denominada “manejador de bus padre” (parent bus driver) que solo contiene información privativa de necesidades de potencia y configuración de un determinado bus, mientras que la gran mayoría de la “inteligencia” está en el manejador agnóstico de bus.
- Se dispone de una herramienta unificada denominada Platform Builder, que dispone de varios asistentes para construir imágenes de sistemas operativos embebidos y móviles. Esencialmente, maneja un catálogo de componentes, los cuales se integran, modifican y verifican dentro de la herramienta, para terminar con una imagen terminada del sistema operativo, listo para ser “quemada” en un ROM de nuestro dispositivo. Por ejemplo, para armar el “esqueleto” de un sistema operativo, se debe utilizar el asistente correspondiente, que se encarga de generar un proyecto el cual luego podremos modificar, etc.
Con esto, Microsoft ha intentado facilitar al máximo la construcción de un sistema operativo embebido o para dispositivos, y es desde este punto de vista que el desarrollo de un OS para un dispositivo nuevo, o plataforma nueva, como la de los smartphones Nokia, pasa también por este proceso relativamente directo.
En el caso de la plataforma smartphone de Nokia, el sistema operativo debe portarse, efectivamente, al perfil de hardware de estos dispositivos. sin embargo, al estar basados en ARM (como casi todos los modernos teléfonos de hoy en día), este proceso no sería tan complicado. Suponiendo que se desee correr Windows Phone 7 en, digamos, el Nokia N8, habría que desarrollar los manejadores de dispositivos de los periféricos que este hardware soporta, sobre todo la parte de pantalla y cámara, la brújula, el sensor de proximidad, etc. Por otro lado, para correr los juegos y demás aplicaciones, debemos recordar la estructura interna del sistema operativo.
En la figura de la izquierda, se aprecia que la plataforma de este hipotético N8 estaría circunscripta a la parte inferior del diagrama, donde se aplicaría el código nativo de Silverlight o XNA.
Para correr cualquier aplicación WP7, sin embargo, tenemos la ventaja de la máquina virtual, con lo cual, todo pasa por confeccionar una capa de abstracción de plataforma, (PAL) la cual esencialmente es una capa de software que aísla las particularidades del hardware subyacente del software de aplicación administrado. Si la nueva alianza MS-Nokia logra desarrollar la PAL para estos dispositivos, la posibilidad de correr aplicaciones Silverlight y XNA se volvería una realidad. Como es una capa de software, cualquier modificación en .NET CF 3.7 (que aloja los procesos Silverlight y XNA) no tendría tanto impacto en la medida que se respete los lineamientos de la PAL.
Recordemos que en la PAL, existen los siguientes servicios básicos:
- Redes
- Gestión de memoria
- Cadenas
- Registro de Windows
- Punto Flotante
- Seguridad
- Gestión de multihilos (multithreading)
- Modulos
- Archivo
- Localización (internacionalización)
Se indican como bloques funcionales los de String y los de Float porque éstos dependerán de cómo se implementen estas cosas en el procesador y sistema operativo. Nótese que la PAL hace coincidir un sistema operativo determinado (por ejemplo, WP7) con un procesador deterimnado (por ejemplo, ARM). Para hacer correr las aplicaciones en un hipotético Nokia N8 para Windows 7 Phone, la PAL estaria programada para dicho perfil de hardware.
Es por esta alta modularidad que se puede portar con cierta facilidad Windows Phone 7 al perfil de smartphone de los teléfonos Nokia de alta gama. Un escollo importante que podría comprometer esta celeridad, es la existencia de chips que contienen aceleradores de video, como el NVIDIA Tegra, que posee una GPU GeForce de bajisimo consumo y 8 núcleos de procesamiento. Como Silverlight y XNA hacen un uso extensivo de DirectX para su funcionamiento en WP7, esta nueva generación de chips (dual core, con tarjeta de video integrada) podrían exigir una cuidadosa escritura del código de manejo y configuración de la parte gráfica.
Stephen Elop anunció que antes de fin de año debería haber ya en la calle el primer teléfono Nokia en la calle. Merced al gran trabajo que se tiene ya realizado en Windows CE 6.0R3, esta tarea no parece imposible.


0 comentarios:
Publicar un comentario en la entrada