miércoles, 24 de noviembre de 2010

News: ReactOS en microprocesadores ARM

stuffy

El proyecto ReactOS tiene varias versiones en desarrollo de su Sistema Operativo.Y aunque nos centramos en la versión para PC de ReactOS, también estamos desarrollando una versión para los microprocesadores ARM.

¿Quién no ha usado nunca una Nintendo DS, un Ipod o una Gameboy Advance ?Pues todos ellos hacen uso de microprocesadores ARM

En una escueta nota, el ARM-team nos ha mostrado un hardware ARM en el que han instalado ReactOS de manera satisfactoria.



Y es que una imagen vale más que 111101000|2 palabras.

(Edit: El dispositivo en cuestión es un Texas Instrument  OMAP34x-II Mobile Development Platform, que usa un micro ARM Cortex-A8. Gracias Heisspiter.)

 

 

 

  

 

 

 

 

Los procesadores ARM


En el mercado existen una gran variedad de microprocesadores, pero seguramente la arquitectura mas conocida sea la x86 en sus versiones de 32 o 64 bits, ya sean de AMD o de INTEL.

Sin embargo, con el auge de los smartphones, la arquitectura ARM ha ido cobrando importancia, ya que permite una gran potencia de cálculo con un consumo muy bajo de energía. Uno de los “buques insignias” de esta arquitectura es el SnapDragon, un micro desarrollado por Qualcomm, y que es el “corazón” de móviles como el Google Nexus One, la HTC HD2,o  la HTC Desire HD entre otros.

También usan un micro ARM los móviles: Iphone 4, Iphone 3Gs, Samsung Omnia HD, Samsung Omnia II, Samsung Wave, Motorola Droid X. O Tablets PCs como: Ipad, Archos 5, o el Nokia N900
Pero ya estaban entre nosotros desde mucho antes y es que, gracias a su bajo consumo, son perfectos para todo tipo de dispositivos móviles.
¿Quién no ha tenido entre sus manos una GameBoy Advance, o un “IPod”, o una Nintendo DS?.



Sistemas Operativos para microprocesadores ARM


En la actualidad varios Sistemas Operativos tienen versiones que son capaces de funcionar sobre un micro ARM, a destacar: AndroidOS, distribuciones Linux ( Chrome OS, Fedora, Gentoo, Ubuntu …), distribuciones BSD (FreeBSD, NetBSD), o Windows Mobile.


Y a esta lista se le sumará ,en breve, ReactOS, que gracias a sus bajos requisitos (la versión de ordenador solo necesita 42MB Ram) es un candidato ideal para estos dispositivos.




Portando ReactOS a la plataforma ARM


stuff0 Uno de los principales obstáculos para portar ReactOS a la plataforma ARM era el antiguo Memory Manager(MM). Nuestro antiguo Memory Manager era muy dependiente de la arquitectura x86, lo que imposibilitaba que pudiera funcionar sobre un micro ARM. Por ello, el ARM-team ha reescrito el Memory Manager , al que ha denominado ARM3(Another Rewrite of the Memory Manager), haciendo que ahora sea portable a cualquier arquitectura, solucionando decenas de bugs e incluyendo además nuevas características que han mejorado ostensiblemente la estabilidad del Sistema Operativo.


Hace apenas un par de semanas se concluyó la reescritura del MM, tras más de 12 meses, y la “desaparición” del ARM-team pronosticaba que algo se traían entre manos. Andaban liados intentando instalar una versión de ReactOS en un dispositivo ARM.
En esta captura se puede ver como no solo han conseguido instalar ReactOS en un dispositivo de desarrollo ARM, sino que además han sido capaces de arrancar ReactOS y de hacer funcionar el teclado.

Aún queda trabajo por delante pero el port de ReactOS a la arquitectura ARM  se siente mucho mas cerca.
La carrera ha comenzado…

10 comentarios:

  1. Ya se que fantasear es muy facil, pero ¿se podría instalar en una Nintendo DS?

    La verdad es que tengo una que uso practicamente para navegar y que me vendría bien poder utilizar para otras cosas.. :)

    ResponderEliminar
  2. gran noticia, por cierto saben donde puedo conseguir un emulador de power pc u como emular otros procesadores y ver si puedo compilar reactos ahi y sacar ejecutables para otras plataformas que no sean intel?, saludos.

    ResponderEliminar
  3. @Manuel

    No es tan sencillo.
    Aunque consigas un emulador PowerPC ReactOS no funcionaría en él. Por los mismos motivos por los que aún ReactOS no funciona en ARM.
    Al ser PPC y ARM distintas arquitecturas a x86 (la única versión que funciona hoy en día), es necesario cambiar la HAL, y parte del Kernel en dichas versiones.

    Una analogía rápida:
    Supongamos que un microprocesador x86 habla en Chino y el Sistema Operativo en "Castellano", entonces es necesario que la HAL (y parte del Kernel) traduzcan de Chino a Castellano.
    Si PPC habla en "Ruso" (por ser una arquitectura distinta), nuestro HAL no entenderá nada pues solo traduce de "Chino" a "Castellano". Será pues necesario crear una HAL2 que traduzca de "Ruso" a "Castellano". Y eso es lo que andan haciendo los de ARM (que ARM habla en "Polaco") creando una HAL que traduce de Polaco a Castellano.

    Por supuesto esto es solo para que lo comprendas, y no es rigurosamente cierto. :)

    ResponderEliminar
  4. @mcklaw

    Siendo un micro ARM (que lo es pues se trata del ARM946) teóricamente se podría ejecutar ReactOS en él .
    Pero hay que tener en cuenta tres factores.
    1) Se está desarrollando en una plataforma que usa un Cortex A8 por lo que habría que comprobar si se ejecutaría sin problemas en el ARM946, pues puede que se esté haciendo uso de instrucciones "más avanzadas"

    2)El rendimiento de ReactOS. Se está testeando sobre Cortex, que es un micro mucho mas potente.¿Cómo funcionaría sobre uno mucho menos potente?Aún no sabemos la fluidez con la que funciona en Cortex, asi pues es mucho aventurar que pasaría en el hermano pequeño.

    3)La NDS tiene 4 MB de RAM. Y salvo que se haga uso del slot de memoria expandible dudo mucho que con 4MB seamos capaces de cargar un explorer y menos una aplicación :).Pero el mundo ARM está lleno de sorpresas.

    ResponderEliminar
    Respuestas
    1. En mi opinión, en 4MB de RAM se podría ejecutar perfectamente un SO, solo recordar que Windows 3.x podía funcionar perfectamente en modo real con 1MB de RAM y en modo protegido con 2.

      Respecto al chip, yo probé esta versión de Windows en un emulador para Nintendo DS (DSx86) y no iba demasiado lento, salvo instaladores de programas, y salvo porque el emulador no soportaba una instrucción de una versión antigua del Office.

      Lo que quiero decir es que, aunque parezca imposible, podría no serlo, aunque posiblemente habría que hacer demasiados cambios.

      Eliminar
  5. Si no hay video no sucedió nunca. jejeejje Publiquen un video porfa, de paso que nos enteramos cuanto demora en arrancar ReactOS :D

    ResponderEliminar
  6. ok, entonces por el momento reactos no funciona en ppc, suponiendo que pronto se correguiera ese problema, tendrian que liberar una iso para esta plataforma, una para x86 y así sucesivamente?, o la misma iso seria valida para cada plataforma?, saludos.

    ResponderEliminar
  7. @manuel
    En principio sería una ISO para cada arquitectura :)
    No se puedd tener una ISO con tofo junto pues hay k compilarlo con un compilador ARM.
    La semana que viene habrá novedades :)

    ResponderEliminar
  8. @Victor: Muchas gracias por la explicación. A ver si consigue avanzar lo suficiente la implementación ARM y lo testeamos!! :D

    Entiendo que la implementación del HAL no debe ser tarea fácil, sólo por curiosidad ¿de cuánto código estamos hablando (no se, en líneas o en porcentaje respecto al resto)?

    ResponderEliminar
  9. @mcklaw
    Realmente no solo es la capa HAL la que hay que cambiar. Cuando se cambia a una arquitectura tan distinta como la Arm es necesario cambiar un par de componentes mas como es el kernel,el scheduler y el memory manager( aparte de la ya mencionada HAL)
    El memory manager ya ha sido reescrito para que sea compatible y funcional.
    El kernel esta en proceso de reescritura.
    Y la HAL parece funcionar.
    Veremos interesantes novedades la proxima semana.

    ResponderEliminar