viernes, julio 15, 2011

Barrelfish: Un Sistema Operativo de Microsoft para múltiples cores heterogéneos

A veces tengo la sensación de que las cosas pasan delante de mis ojos pero no las veo. El mundo avanza, y yo me peleo por seguir enterándome qué está pasando, y cuando creo que entiendo los movimientos tecnológicos, resulta que aparecen nuevas cosas, que llevan trabajándose durante años, y de repente cobran forma.

En el mundo de los sistemas operativos, mientras siguen predominando los Windows, se habla de Windows 8 por todas partes, Apple tiene a punto de caramelo a Mac OS X Lion y siguen utilizándose las múltiples distribuciones de Linux, tenemos otras alternativas que cubren otros huecos.

No hablo de los sistemas de teléfonos móviles como iOS, Windows Phone, Android o Symbian, ni de las alternativas en los sistemas operativos en la web, sino de otros que buscan cubrir algunos entornos más peculiares, y que empujan la investigación.

Me encantó descubrir ReactOS, que hoy en día nos da ya bastante juego en el mundo de la seguridad, o el proyecto del sistema operativo TORO, escrito en Pascal, y centrándonos en Microsoft, la idea de Syngularity también es bastante llamativa, al hacerlo con código manejado.

El otro día me sorprendió el anuncio de la liberación de otro sistema operativo creado en un proyecto de investigación de Microsoft Research, llamado BarrelFish, con un objetivo bastante concreto. Que se ejecute sobre sistemas multicore con hardware heterogéneo.

Tal vez al principio pueda parecer algo extraño la primera vez que se oye por pensar que pueda existir un sistema multicore que funcione con diferentes microprocesadores, pero desde hace bastante tiempo esto sucede con las tarjetas gráficas, por ejemplo, y la CPU principal. Sin embargo, en esos casos el funcionamiento es totalmente independiente y se conforman con un interfaz de comunicación entre ellos, sin haber una gestión coordinada de tareas, como se describe en la siguiente imagen:


Figura 1: Arquitectura SO multicore heterogéneo

Pensando en un futuro más cercano, en el que los equipos informáticos pueden estar formados por un Tablet que se enganché a un equipo más potente, como si fuera una dock station, puede hacer más que necesaria una integración mucho mayor a nivel del sistema operativo.

Además, viendo la patente que ha pedido Microsoft para tener teléfonos móviles con partes independientes que se conectan y desconectan, pero funcionan coordinados, hacen ver que en el futuro los sistemas operativos se verán obligados a funcionar con múltiples cores, y que estos se agreguen y se quiten dinámicamente.

Detrás de Barrelfish se encuentra el Grupo de Sistemas del centro ETH de Zurich, y han puesto disponible el código fuente y la documentación del mismo, junto con un paper que describe toda la arquitectura y otro con las pruebas de benchmarking realizadas con él, comparándolos con otros sistemas operativos multicore como HeliOS o Corey, para los más entendidos en hardware.

En la actualidad el sistema operativo funciona con microprocesadores x86-64 y ARM, o directamente con sistemas que utilizan multiprocesadores multicore con distintos roles en cada core, como son el micro de 48 cores de Intel (single-chip cloud computer) y Beehive del MIT o equipos con múltiples chips construidos con arquitecturas FPGA. Me encantan estos proyectos de investigación en tecnología.

Saludos Malignos!

3 comentarios:

kabracity dijo...

Me parece un proyecto muy interesante, el concepto de integración entre diferente hardware tiene mucho potencial. La cosa es que tendría que haber un estándar por detrás respaldándolo (quizás lo haya ya :) )

Jbyte dijo...

chevre

Winston Smith dijo...

Interesante pero abrumador. El coco no dá para tanto. Y cuando uno empieza a perder de vista esto y lo otro y no puede abarcarlo todo
mal asunto. Me saca de quicio.

Entradas populares