Hola!
On 03/01/18 14:45, 1138-4EB wrote:
> Buenas Salvador,
>
> En primer lugar, muchas gracias por animarte a profundizar en el
> debate. Sea de acuerdo, o en desacuerdo, es muy de agradecer la
> participación de diferentes integrantes de la comunidad.
>
> Con respecto a "mi punto", tengo la sensación de que no lo he
> expresado correctamente, o no se ha entendido como yo experaba. Lo
> digo, porque estoy de acuerdo contigo prácticamente en todo, y en un
> contexto informal pasaría de largo. Pero veo que no se ha respondido a
> la clave de mi planteamiento:
>
> *Si me encuentro un CD con el código fuente de Windows 10 o macOS en
> la calle y lo cuelgo en internet, ¿es software libre? Si es otro
> usuario el que se lo encuentra y yo sólo hago uso de ello ¿es software
> libre?*
>
> Parafraseándote, Salvador, una copia del código fuente de Windows
> disponible en internet no concede las 4 libertades del software libre,
> todavía. Pero si algunas muy importantes. El hecho de conocer detalles
> de la arquitectura interna le da al usuario libertades. Por lo tanto,
> podemos decir que esa versión de Windows es software libre, aunque no
> sea del todo riguroso.
>
> [NOTA] A visitantes casuales que lean en diagonal: el párrafo anterior
> es un mero recurso literario; cuidado con interpretarlo literalmente.
>
Entiendo el punto, pero creo que no es comparable.
Tratando de seguir tu ejemplo: lo que hizo Clifford es más parecido a lo
que hace el proyecto Wine.
No se exactamente cuánta es la información disponible, pero
evidentemente no es la suficiente como para completar el ciclo de diseño
con software libre. Y entiendo que Yosys se usó primero en conjunto con
las herramientas de Xilinx (hoy también soporta FPGAs de Intel/ALTERA,
Achronix, eASIC, GOWIN y Dialog), sin embargo sólo con las iCE40 es que
se logró cerrar el ciclo.
De hecho entiendo que Clifford y otros están tratando de lograrlo con la
línea 7 de Xilinx. El día que lo logren me imagino que el proyecto
FPGAWars las añadirá a la lista de "FPGAs Libres".
Puede que sea más o menos arbitrario este criterio, pero la verdad es
que no me molesta.
> > Estoy de acuerdo que lo ideal sería que dispusiéramos de FPGAs cuyo
> diseño estuviera disponible, pero eso no invalida el uso del término. Es
> lo que hoy día existe.
>
> Esto me recuerda mucho a la escalada: las escuelas de deportiva y
> artificial. La deportiva consiste en no alterar la pared que tratas de
> superar, evitando incrustar objetos que te ayuden en la progresión. La
> premisa es que, aunque hoy en día no conozcamos a nadie capaz de
> superar el reto, no somos nadie para "estropear" una pared a futuras
> generaciones más hábiles. La artificial consiste en llegar a la cima,
> independientemente de los recursos que se utilicen y cuántos agujeros,
> tornillos y escalas se pongan en la pared.
>
> En otras palabras, me parece corto de miras "condenar" un término sólo
> porque ahora no conocemos a nadie con capacidad económica suficiente.
> Porque ya existen FPGAs cuyo diseño esta disponible. No es un
> supuesto, ni una situación futura.
>
> NOTA: con "corto de miras" me refiero a "visión a corto plazo". No hay
> ningún ánimo de referencia a la capacidad cognitiva de nadie.
A mi también me parecería muy mal "condenar" el término, pero no veo que
nadie lo esté condenando.
Ojo, cada vez que veo un sitio que dice "Este proyecto es hardware
libre" y no puedo encontrar el esquemático, o el PCB, o simplemente el
PCB no puede modificarse, o está hecho con herramientas propietarias ...
me enojo bastante. Sin embargo entiendo que es así, y no le digo nada al
que usa el término de esa manera.
Por otro lado hay que entender que es cuestión de depuración, el tiempo
va decantando las cosas, en la medida en que hay cosas "más libres" las
"menos libres" quedan mal paradas, simplemente por comparación.
El día que se junten N personas y manden a fabricar una FPGA
verdaderamente libre (y la misma pruebe ser útil, no sirve de nada si
consume 100 veces más, o no tiene capacidad para nada útil, o cuesta 10
veces más), y esas FPGAs se puedan conseguir ... pues bien, pasarán
naturalmente a fijar un nuevo estándar.
>
> > Por otro lado hoy por hoy no ayudaría mucho
> disponer de esa información, ya que fabricar un chip de 40 nm (como lo
> es la iCE40) es muy costoso y sólo unas pocas empresas en el mundo
> pueden hacerlo. En el futuro esto irá cambiando y las "FPGAs libres"
> serán más parecidas al "Software Libre".
>
> En caso de disponer del diseño HDL de la arquitectura de la familia
> ICE40, no es necesario fabricarlo en 40nm. La tecnología de
> fabricación es independiente del diseño lógico. Sigue siendo muy
> costoso, y al alcance de un conjunto reducido de agentes, pero permite
> cambiar "sólo unas pocas empresas" por "un grupo de universidades que
> pongan escote". Esto no es una invención mía. Europractice ofrece
> justamente este servicio. Desconozco si al otro lado del charco tenéis
> algún proyecto similar.
Si, MOSIS nos ofrece servicios, e incluso tenemos un par de corridas
"gratis".
Hay dos puntos que destacar acá:
1) No toda la iCE40 puede describirse en términos de HDL. Buena parte de
los PLLs y sistemas de alimentación son analógicos, ni hablar de los
IOBs. A Intel le llevó años deshacerse de muchas de las cosas analógicas
de sus CPUs, y entiendo que aún siguen cargando con unas cuantas. Esas
partes analógicas son extremadamente dependientes de la tecnología de
fabricación. No por nada la parte analógica de un USB (que son unos
drivers simplemente) sale unas 4 veces más cara que la parte lógica (que
son decenas de bloques HDL) [hablo del costo de licenciamiento].
2) La performance de una "iCE150" o "iCE180" dudo que fuera interesante
más que para algunas pocas aplicaciones. Muy lindas para enseñar, pero
poco usables en la práctica.
>
> > En menor medida algo así pasó con el hardware libre. Proyectos como el
> Arduino liberaban la información de diseño, pero usando EDA tools que no
> eran libres (Eagle en el caso de Arduino). Hoy día sigue sucediendo,
> pero muchos proyectos migraron a KiCad, que es software libre.
>
> El hecho de utilizar herramientas EDA no libres es normalmente
> independiente de la licencia de distribución del producto.
De acuerdo
> Que los esquemáticos de Arduino se elaboren con Eagle o KiCad no tiene
> ningún efecto sobre los PDFs que yo me descargo o las fuentes en
> formatos no estandarizados. Lo mismo sucede con Icezum, que no es más
> libre por tener los esquemas hechos en KiCad, con respecto a cuando
> sólo estaban disponibles en Altium.
No estoy de acuerdo.
Una de las libertades importantes que me da el "hardware libre" es la de
poder modificarlo. Si para modificarlo tengo que volver a hacer el PCB
... la verdad que para eso sería como sacarle una foto (o radiografía) ...
Nuevamente es una cuestión de "grados de libertad". Y por eso más arriba
digo que me enojo cuando se usa Altium para un "hardware libre".
Pero de nuevo: a mi entender "hardware libre" con información de diseño
editable con "software propietario" es *menos* libre que hardware libre"
con información de diseño editable con "software libre", sin embargo no
me pongo a criticar esos proyectos ;-)
>
> Personalmente me parece infinitamente mejor tener las fuentes en KiCad
> que en cualquier otro formato propietario. Pero no quiero mezclar tres
> cuestiones claramente diferenciadas:
>
> - La licencia/condiciones de uso del software que utilizo para crear
> un producto.
> - La licencia/condiciones de uso del producto hardware que he creado.
> - La limitaciones inherentes al uso de formatos de archivo no
> estandarizados.
>
> En otras palabras, yo puedo utilizar Microsoft Word XP para crear la
> documentación libre (CC-by-sa) de un producto. Es más incómodo si lo
> distribuyo en formato DOC que en formato ODT. Incómodo, no menos
> libre, ya que puedo utilizar OpenOffice/LibreOffice, aunque el formato
> sea DOC.
Asumiendo que al cargarlo con el Libre/OpenOffice no pierdo nada ...
Y con un PCB es muchísimo peor. El caso de la documentación quizás sea
el de menor impacto, pero imaginate que te paso los fuentes del gcc ...
impresos ... y te digo "sos libre de modificarlo" ... :-))) o peor,
escritos a mano alzada ;-)))
No es lo mismo, pero de nuevo, no creo que por eso se "condene" el
término cuando se hacen estas cosas.
De nuevo es un tema de decantación, Olimex ya migró a KiCad, por dar un
ejemplo.
>
> > Otro ejemplo de cómo las FPGAs Libres agregan libertades: Es cierto que
> en un Arduino, los del proyecto original basados en los chips ATmega, es
> necesario comprar una CPU. Dicha CPU no es libre, no es gratis, no hay
> información de cómo está hecha, no podemos replicarla.
>
> Vuelvo a parafrasearte, y digo que es necesario comprar una FPGA.
> Dichas FPGAs (que denomináis libres) no son libres, ni son gratis, ni
> hay información (oficial) de cómo están hechas, ni podemos replicarlas.
>
> He de admitir que aquí puedo estar metiendo la pata, porque no estoy
> seguro del estado de las patentes. Si todas las patentes que afectan a
> la familia ICE40 de Lattice han expirado ya, entonces estamos hablando
> de "FPGAs de dominio público", por definición. Son "todavía más libres
> que las FPGAs libres", porque no hay titular que pueda reivindicar
> nada. En este caso, solicitaría que dejarais de usar el término libre,
> y lo sustituyerais por "de dominio público".
Las patentes no pueden haber expirado, SBT se fundó en 2005.
Nuevamente entiendo que tu error es aplicar lógica estricta a términos
difusos. Es como aplicar reglas matemáticas a legislación ... me
encantaría, pero no funciona. O si te gusta más este ejemplo: matemática
a filosofía.
Aplicando este tipo de lógica podríamos llegar a la conclusión de que no
existe hardware libre, ni siquiera software libre.
Estoy de acuerdo en que clarificar con más detalle el uso de los
términos es lo mejor.
¿Qué entiende la gente que escucha las charlas de ObiJuan?
http://rufianenlared.com/fpgas-libres/
Esta lleno de imprecisiones, pero al menos entendió cuál es la libertad
que obtiene.
Creo que buena parte del "problema" es que la forma de comunicación del
proyecto es difusa:
http://fpgawars.github.io/
Muchas imágenes y pocas definiciones. Por lo que es necesario navegar
más profundo, si lo hacemos creo que está explícito el tema:
http://obijuan.github.io/intro-fpga.html
"Las FPGAs son una tecnología muy cerrada, donde hay muy pocos
fabricantes y todo el software es privativo. Nadie conoce el formato de
los bitstreams"
"Sin embargo, Clifford Wolf, hizo Ingeniería inversa de las FPGAs iCE40
de Lattice y en Marzo del 2015 creó el PROYECTO ICESTORM y se liberó la
primera toolchain de herramientas que permiten pasar de Verilog al
bitstream usando sólo Herramientas libres"
Creo que con esto queda claro que significa "FPGA Libre" en el contexto
de "FPGAWars"
¿Qué otra aclaración sugerís que agreguen?
>
> Saludos, y gracias de nuevo por profundizar en el debate
Un placer.