2023/04/12

Open de todo

Estas son unas reflexiones a raiz de alguna conversación parcial en el grupo de cybercirujas, cosas que converso acaloradamente conmigo mismo. Por un lado comparto, por el otro registro para mí mismo dentro de unos años. No pretenden ser muy completas ni balanceadas, estoy apuntando más bien a open cores y open hardware y asumo que quien lea mayormente conoce el tema.


Empiezo con varias modalidades y áreas que irán creciendo:

  • Gratis
  • Free
  • Open/Libre
  • Pago

  • Software
  • Hardware

Hay mucho "open", que a veces se confunde con "free", el cuál por su significado en inglés se confunde "libre" con "gratis".

 

Gratis/Licenciado

 

Empecemos con "gratis", sabiendo que no hay (casi) nada gratis. Software gratis es el que uno no paga. ¿Son las herramientas  como Vivado, Keil, MCUxpresso gratis? Si, aunque nadie las llama "freeware". Yo las llamaría "licenciadas", o sea, no te cobran pero es igual a haberlas comprado, o sea, te las venden por $0.


No voy a ahondar en los aspectos en los cuales para los proveedores de estas herramientas les sacan provecho pese a ser $0, pero así rapidito podríamos mencionar que sirven para que la gente las use y sí pague por versiones más completas, librerías, servicios, cores y hardware real.

También existe el hardware gratuito, lo que pasa es que es muy muy escaso por su naturaleza no copiable sin costo.

Están las muestras gratis y los kits que se sortean o se reparten a ciertos proyectos, conozco algunos casos que comento para mostrar a quienes no conocen nada que si uno está atento, puede conseguir algo cada tanto. Hay poco link a artículos pues los tengo todos a medio hacer:


  • A los asistentes de un workshop reciente de diseño de sistema embebido les regalaron una Raspberry Pi RP2040.
  • A los asistentes de un tutorial de uso de ZYNQ con Python nos intentaron regalar unas PYNQ-Z2 pero los organizadores no sabían cómo funciona la aduana por acá y no hubo manera razonable de obtenerlos.
  • A los que llenamos una encuesta de ya ni recuerdo qué, nos regalaron una MiMXRT-1020 EVK (te lo debo).
  • A los que asistimos a un webinar de SRAM PUF de nos regalaron una STM32L4A6 (te lo debo).
  • A los que asistimos a una charla de microvisores, estoy por recibir una placa apropiada para probarlos (te lo debo).
  • Si tenés un proyecto Arduino que bastante gente use, pudiste haber recibido una placa Arduino UNO R4
  • Me han contado que muchos fabricantes te mandan unas muestritas pequeñas de componentes y que hace algunos años Argentina había sido banneada por que empresas locales pedían mediante muchas personas modo proxy para sus productos finales.


El nicho de las muestras gratuitas se extiende bastante, pero contar con ello para algo por fuera de pruebas e investigaciones, me parece que es como llevarse el shampú del hotel... no escala.

 

Libre/Open


Los pongo juntos pues son extremandamente parecidos, es algo con lo que podés hacer lo que quieras, podés ver el código fuente, ya sea un programa, un diseño de hardware o un core, modificarlo y luego según el detalle de la licencia específica (gpl, apache, lo que sea), redistribuirlo, venderlo.

Puede ser open:

  • Software
    • Sistema operativo
    • Programa
    • Herramienta
    • Librería
  • BIOS/Firmware
    • boot loader
  • Core
    • CPU
    • Controlador de memoria
    • Acelerador criptográfico
  • Hardware
    • Motherboard
    • Placa
      • de red
    • Módulo
      • Adaptador USB-Ethernet

La diferencia fundamental respeco a Gratis/Licenciado es que podés ver el código fuente, modificarlo, lo que sea dependiendo de la licencia específica.

Lo más correcto es llamarlos "Open Source XXX", que distingue claramente entre verle las tripas y tenerlo funcionando. Esto es tanto en hardware como en software, puede ser muy gratuito y open tener, pero ejecutar requiere hardware y electricidad (y otro montón de cosas que uno no presta atención como espacio, ventilación, seguridad, conectividad, limpieza) que no son gratis para nada.

Los modelos de Machine Learning pueden ser muy Open Source, pero entrenar uno te puede salir un ojo de la cara en hardware/tiempo/electricidad.

 

Todos contra todos

 

¿Algo pago puede ser open?

El primer ejemplo que me viene a la cabeza es todo lo del proyecto CIAA que es Open Source Hardware y Firmware, pero tenés que pagar las placas. La sutileza es que no tenés que pagar para usar, modificar o fabricar los diseños, sólo pagás el producto terminado o los componentes y el uso de herramientas y trabajo si vas a fabricarlo vos.


El hardware tiene al menos dos niveles, siendo "cores" lo que hay dentro de un chip y "hardware" lo que une los chips: 

El diseño del chip, lo que va ahí dentro, no voy a decir que cualquiera puede hacerlo, pero si voy a decir que fabricar ese diseño es infernalmente caro.

Open Source Core o Silicon es el diseño del chip, no su fabricación.

El de armar una placa que dependiendo de la tecnología es algo que uno mismo puede hacer o mandar a hacer por un precio relativamente accesible.

 Open Source Hardware es el diseño del hardware, no el hardware físico.

FPGA te permite instanciar en Hardware que puede ser Open Source o no (ciaa-fpga o iceStick respectivamente), Cores que pueden ser Open, como una CPU RISC-V en un SOC icicle en las anteriores () o no como un Microblaze (que es Gratis/Licenciado) en una placa de Xilinx (que no es ni Open ni nada).

Con una FPGA más poderosa, con una CPU RISC-V apropiada y otros cores adicionales como MMU, timers, controlador de interrupciones, podés ejecutar un Linux, que es Open Source Software.

Una placa del proyecto CIAA que utilice un SoC RISC-V o POWER para correr un Linux, sería el ejemplo más Open que puedo imaginar.


¿Es posible una computadora completamente Open Source? No sé, no creo, ¿qué pasa con la memoria? ¿con los componentes analógicos?

 

Una especie de resumen:


softwarebioscoreshardware
gratislinuxlibrebootopen cores
muestras
open/librelinuxlibrebootrisk-vel proyecto ciaa
licenciadovivado???los que vienen con vivado???
cerradowindowsami biosarmnxp
pagowindows y vivadoami biosarmnxp



Algunos links interesantes

 

https://libreboot.org/

https://lowrisc.org/open-silicon/

https://www.proyecto-ciaa.com.ar/







No hay comentarios:

Publicar un comentario