Fecha
Autor
Javier Castillo Villar (Investigador del Grupo de Diseño HwSw de la URJC)

Hardware de código abierto: ¿Una alternativa para las empresas?

Cada día, el mercado demanda dispositivos electrónicos más complejos. Al igual que en los grandes proyectos del mundo software, el diseño de estos dispositivos sería inabordable sin la reutilización de código. Esto ha hecho aparecer multitud de compañías que ofrecen sus servicios de diseño y venden su código a otras para que éstas las integren en sus productos. En contraposición, los modelos de diseño basados en los ideales del movimiento del código abierto han hecho su aparición en el mercado, desatando un debate acerca de su viabilidad. Esta nota pretende arrojar un poco de luz sobre el grado de madurez de estos diseños y las posibilidades que abre su uso a las empresas del sector.
Hace varios años nadie, salvo los muy entendidos, conocía el concepto de software libre y nadie se planteaba la posibilidad de utilizarlo en su empresa. La gente tenía la idea de que este tipo de software era algo extraño, que utilizaban unos pocos entusiastas encerrados en los laboratorios de su universidad. La mayoría de los que habían tenido contacto con él, decían que era inusable y de baja calidad. Probablemente tenían razón, pero en la actualidad, con la perspectiva que dan los años, podemos ver cómo ha evolucionado y se ha convertido en una alternativa factible al software propietario.

La historia tiende a repetirse y, de nuevo, son un pequeño número de iniciados encerrados en sus laboratorios los que se dedican a desarrollar e integrar sistemas basados en hardware de código abierto. La pregunta es, ¿puede que ocurra lo mismo y que dentro de X años veamos productos comerciales basados en este tipo de hardware? De momento dejaremos X como una incógnita que despejaremos más tarde.

¿QUE ES EL HARDWARE DE CODIGO ABIERTO?

La primera pregunta a responder es qué se entiende por hardware de código abierto. Basándose en la definición de software abierto, Gregory M. Pomerantz [1] propone que un diseño hardware es de código abierto si su código HDL (Hardware Description Language) se distribuye con una licencia tal que:

- Dé permiso para distribuir, gratuitamente, el código fuente y cualquier dispositivo hardware basado en él.
- Dé permiso para modificarlo y distribuir los cambios bajo la misma licencia.

Esta definición se ciñe a hardware diseñado utilizando un HDL como Verilog o VHDL. Sin embargo, el hardware abarca otras ramificaciones que el software no contempla. Una definición más amplia es la que ofrece OpenCollector [2] que lo define como aquel que cumple las siguientes características:

- El interfaz del hardware es público, con lo cual el hardware puede ser usado libremente.
- El diseño del hardware es público, con lo cual otros pueden implementarlo y aprender de él.
- Las herramientas utilizadas para crear el diseño son libres, por lo tanto otros pueden utilizar y mejorar el diseño.

Esta definición se puede aplicar a distintos tipos de hardware, no sólo al descrito en un HDL, por ejemplo a una PCB (Printed Circuit Board) con componentes discretos siempre y cuando se distribuya bajo esos términos.

No obstante las verdaderas ventajas del hardware de código abierto surgen cuando se utiliza siguiendo un modelo de desarrollo similar al del software del mismo nombre, esto es, cuando hablamos de código fuente que es distribuido bajo una licencia similar (o igual) a la GPL (General Public License).

¿CUALES SON LOS OBJETIVOS?

OpenCores [3] es al hardware libre lo que la FSF (Free Software Foundation) es al software. Cuando Richard Stallman la fundó, su objetivo era crear un sistema operativo completo basado en software de código abierto. Cuando se fundó OpenCores su objetivo era "diseñar y publicar diseños bajo una licencia para hardware basada en la LGPL (Lesser GPL) del software".

Sucesivas propuestas [4], [5] han planteado una hoja de ruta para el hardware de código abierto cuyo objetivo a medio plazo es disponer de placas de desarrollo basadas en diseños de código abierto, así como de herramientas gratuitas. Los diseños se descargarán de Internet y se programarán en las placas casi sin esfuerzo, del mismo modo que alguien se descarga un programa libre de Internet, lo compila y ejecuta en su ordenador.

A largo plazo, el objetivo es más ambicioso. En ese momento, los diseños serán tan grandes que no cabrán en los dispositivos programables actuales. La reconfigurabilidad será un elemento imprescindible. Las fronteras entre el hardware y el software se harán cada vez más difusas. El deseo, casi utópico, es lograr correr un kernel Linux hardware basándose en las posibilidades que nos ofrece la reconfigurabilidad.

ESTADO ACTUAL

Si utilizamos la definición de hardware abierto dada por OpenCollector, actualmente no existe hardware de código abierto por una razón: no existen herramientas de diseño libre que cubran todas las etapas de un diseño hardware. Es más, no es previsible que a medio plazo las haya, o al menos que las haya de una calidad suficiente como para ser utilizadas. Ahora bien, si restringimos la definición a la primera que se dio, existen en la red multitud de diseños libres con una calidad más que suficiente para ser utilizados en aplicaciones reales. OpenCores es el principal distribuidor de diseños de este tipo y a día de hoy distribuye más de cien desde su página web. La mayoría han sido probados en placa e incluso algunos han sido llevados a ASIC por empresas del sector.

Anteriormente se planteó la pregunta ¿puede que ocurra lo mismo que con el software libre y que dentro de X años veamos productos comerciales basados en este tipo de hardware? Como vemos, la respuesta es que ya existe y es previsible que en el futuro este mercado crezca.

VENTAJAS E INCONVENIENTES

Cada día aparecen estudios que "demuestran" que el software libre es mejor que el propietario y viceversa. Las descalificaciones entre ambos mundos son constantes y no hacen más que constatar un hecho: los dos tienen la calidad suficiente como para ser una alternativa para el usuario.
Cuando hablamos de hardware de código abierto ocurre lo mismo: existen adalides del modelo abierto y defensores a ultranza del modelo propietario. Al igual que en software, cada uno tiene parte de razón, pero, lo que está claro, es que a día de hoy, ambos tienen la calidad suficiente para ser utilizados. No es objeto de esta nota descalificar un modelo frente a otro. Simplemente, intentaremos dar una visión de cuales son las principales ventajas e inconvenientes [6] del enfoque abierto.

Aparte de la gratuidad, una de las principales ventajas del hardware de código abierto sobre los diseños propietarios es que existe una comunidad de desarrolladores que mejoran constantemente el diseño y, además, dan soporte a través de foros o listas de correo. Otra gran ventaja es la de poder participar activamente en el desarrollo y proponer y aportar mejoras al diseño, además de poder participar en las decisiones de hacia donde se dirige un proyecto.

Pero, evidentemente, también hay inconvenientes. El principal es la falta de documentación de los proyectos. A nadie le gusta escribir largos manuales de funcionamiento, y menos si no le pagan por hacerlo. Otro problema menos habitual, pero que a veces se da, es la pobre verificación de los diseños que hace que antes de utilizarlo deban ser verificados por uno mismo.

EL MOVIMIENTO DEL HARDWARE LIBRE EN ESPAÑA

El movimiento del hardware libre está dando sus primeros pasos en todo el mundo, y España no es una excepción. Microbótica [7] posee un proyecto de hardware libre, donde ofrece esquemas de robots para su construcción, además de otros diseños. Algunas universidades por todo el país están fijando sus ojos en este movimiento y tienen líneas de investigación abiertas sobre hardware de código abierto, siendo el Grupo de Diseño HwSw de la Universidad Rey Juan Carlos [8] uno de los pioneros en este campo en España. Sus componentes colaboran habitualmente en el proyecto OpenCores. Mención aparte merece OpenSoCDesign [9], empresa española de reciente creación, que ofrece servicios de integración de diseños de hardware abierto, procesos de verificación externa y consultoría tecnológica para empresas del sector.

CONCLUSIÓN

A día de hoy los diseños hardware de código abierto son una realidad palpable. Cualquiera puede descargarlos de la red y utilizarlos en sus diseños. Los componentes típicos de un sistema tales como un controlador USB, un microprocesador, un controlador de red, etc., tienen su alternativa en código abierto y son ya utilizados por empresas en productos comerciales, lo cual da una idea de su calidad.



---------------------------------------------
Referencias:

[1] "Bussines Models for Open Source Hardware Design", Gregory M. Pomerantz
[2] "How can hardware can be open?", http://opencollector.org/Whyfree/open_hardware.html
[3] OpenCores, https://opencores.org/
[4] "Open hardware design trend", Jamil Khatib
[5] "An introduction to Open Source Hardware Development", Mohamed A. Salem
[6] "Platform based on Open-Source Cores for Industrial Applications", DATE 2004
[7] Microbótica, http://www.microbotica.com
[8] Grupo de Diseño HwSw URJC, http://www.escet.urjc.es/~jmartine
[9] OpenSoC, http://www.opensocdesign.com

Añadir nuevo comentario

El contenido de este campo se mantiene privado y no se mostrará públicamente.
Para el envío de comentarios, Ud. deberá rellenar todos los campos solicitados. Así mismo, le informamos que su nombre aparecerá publicado junto con su comentario, por lo que en caso que no quiera que se publique, le sugerimos introduzca un alias.

Normas de uso:

  • Las opiniones vertidas serán responsabilidad de su autor y en ningún caso de www.madrimasd.org,
  • No se admitirán comentarios contrarios a las leyes españolas o buen uso.
  • El administrador podrá eliminar comentarios no apropiados, intentando respetar siempre el derecho a la libertad de expresión.
CAPTCHA
Enter the characters shown in the image.
Esta pregunta es para probar si usted es un visitante humano o no y para evitar envíos automáticos de spam.