FSFLA: «Recupera tu libertad, con Linux-2.6.33-libre»

alt

Linux no ha sido Software Libre desde 1996, cuando el Sr. Torvalds
aceptó las primeras piezas de Software no-Libre en la distribución de
Linux que ha publicado desde 1991. A través de estos años, mientras
ese kernel creció por un factor de 14, la cantidad de firmware no-Libre
requerido por los drivers de Linux creció por un alarmante factor de
83. Nosotros, los usuarios de Software Libre, necesitamos unir fuerzas
para revertir esta amenaza, y parte de la solución es Linux-libre,
cuya versión 2.6.33-libre fue recientemente publicada por FSFLA,
trayendo consigo libertad, mejoras mayores y planes para el futuro.


Historia

Todo el firmware en Linux-1.3.0 era Software
Libre. La poca relevancia que el sistema operativo GNU/Linux tenía el
1995 era suficiente para que algunos distribuidores de hardware
revelasen los detalles de su hardware, o incluso ofreciesen todo el
software necesario para hacerlo funcionar bajo términos que respetan
las libertades esenciales de los usuarios. Ellos sabían que Linux, que
ya estaba bajo la licencia GNU GPLv2, no tendría drivers para sus
componentes de otra manera.

En el año que siguió, el Sr.
Torvalds cambió su política, y empezó a aceptar en Linux firmware que
sólo estuviera en formato binario. Por esta decisión, GNU/Linux dejó
de ser un incentivo para que los distribuidores de hardware respetaran
las libertades esenciales. Desde que los desarrolladores de Linux
rindieron las defensas provistas por la GPL, casi todos los
distribuidores decidieron mantener para sí el control sobre las siempre
crecientes computadoras que pasaban por periféricos.

Algunos
143KB de código objeto disfrazados como código fuente estaban
presentes en el tarball comprimido de 4.7MB de Linux-2.0, publicado en
junio de 1996. Algunos 6 años más tarde, había 1.3MB de firmware
no-Libre escondiéndose en el tarball comprimido de 26MB de
Linux-2.4.19. En Linux-2.6.33, todas estas piezas y otras más, sumando
arriba de 2MB, están en un subdirectorio creado algunos 2 años atrás
para ubicar firmware en Linux. Otros 650KB aún disfrazados como
fuentes fueron recientemente agregados al subdirectorio “staging”, y
otros 9.2MB (duplicados removidos) viven en un archivo separado, creado
para futuramente remplazar el subdirectorio de firmware en Linux.

Perspectiva

La pieza unitaria más grande de
firmware no-Libre en el repositorio linux-firmware pesa hoy día 1.25MB.
En los 1980s, la mitad de esos bytes eran considerados memoria
suficiente para cualquier aplicación en una computadora personal. Fue
entonces cuando Richard Stallman comenzó a trabajar en GNU, cuando
sistemas operativos eran más pequeños que eso. El se dió cuenta que
los usuarios deberían tener derecho a las cuatro libertades esenciales
sobre todo el software que ejecutan en sus computadoras, aún cuando
ellas eran lejanamente menos poderosas que los periféricos actuales.

Hemos logrado eso, un sistema operativo Libre para propósito general
en computadoras personales, pero duró únicamente por algunos años. El
kernel que proveió la pieza que faltaba en el sistema operativo GNU ya
no ha sido Software Libre por más de una década, y solicita a los
usuarios a instalar un creciente número de programas no-Libres que no
están incluidos en él.

Progreso

Damos la bienvenida, aplaudimos y agradecemos a los varios y recientes
esfuerzos que resultaron en firmware Libre para varios dispositivos:
Atheros contribuyó firmware Libre para sus tarjetas de red inalámbricas
ar5k y ar9k; expertos en ingeniería inversa desarrollaron firmware
Libre para algunas de las tarjetas de red inalámbrica b43 de Broadcom;
otros desarrollaron el driver Libre nouveau para tarjetas de video
nVidia, y, más recientemente, completaron la tarea con firmware Libre
para ellas, desafortunadamente un poco tarde para que las últimas
piezas estuvieran en Linux-2.6.33.

Sin embargo, justo como
RMS, nos dimos cuenta que desarrollar Software Libre no es suficiente
para establecer la libertad para los usuarios de GNU/Linux. También
necesitamos enseñarles a valorar su libertad, y a reconocer y rechazar
el Software no-Libre. De otra forma productos que requieran que
usuarios rindan sus libertades seguirían teniendo compradores
interesados.

Algunos años atrás, la comunidad de Software
Libre se dió cuenta que Linux no era más Software Libre, y empezó
varios esfuerzos para arreglar este problema. Uno de ellos, nacido sin
nombre en gNewSense, fue nombrado Linux-libre en BLAG. Desde que
tomamos responsabilidad por ello, adicionalmente de remover componentes
no-Libres de Linux, remplazamos las solicitudes de firmware no-Libre
con mensajes que informan a los usuarios que el hardware en cuestión es
una trampa.

Nuestra esperanza es que más usuarios usarán
esta versión Libre de Linux, presente en varias distribuciones
GNU/Linux-libre, para descubrir acerca de los componentes de hardware
que no respetan su libertad, después decir a los vendedores qué tan
infelices están, y usar su libertad y poder de elección para apoyar
vendedores que sí respetan a sus clientes.

Grandes negocios,
gobiernos o grandes cantidades de usuarios trabajando juntos,
aplicando una pequeña presión en el lugar correcto de los bolsillos de
los distribuidores, frecuentemente puede hacerlos cambiar de parecer y
voluntariamente respetar la libertad de sus clientes. Fallando en eso,
aún podemos ayudar, participando en o brindando fondos para esfuerzos
de ingeniería inversa. Distribuidores que voluntariamente respetan
nuestra libertad merecen más aprecio, pero un producto que funciona en
libertad, a pesar de los esfuerzos de su distribuidor, es mucho mejor
que nada.

Qué hay de nuevo en Linux-2.6.33-libre

No mantenemos los fuentes de Linux-libre directamente. En
lugar, mantenemos scripts de “deblobbing” que limpian los “fuentes” de
Linux, así produciendo fuentes de Linux-libre. El mayor avance en esta
generación de Linux-libre, la cuarta desde que nos vimos involucrados,
consistió en hacer los scripts de deblobbing más eficientes.

Luego de acumular miles de patrones para reconocer blobs, secuencias
que parecen blobs pero no lo son, solicitudes de firmware no-Libre
externo a Linux, y documentación que induce a los usuarios a
instalarlo, ejecutar el script GNU sed generado para buscar y quitar
blobs se volvió demasiado costoso para muchos usuarios: en versiones
recientes de Linux-libre, GNU sed toma unos 15 segundos y más de 2GB de
RAM para compilar todos los patrones en el script.

La
solución fue el reescribir el script principal en un lenguaje script de
alto nivel. GNU awk redujo el tiempo de inicio a acerca de 3
segundos, y los requisitos de memoria bajaron aproximadamente en un
orden de magnitud, pero 3 segundos multiplicados por los 260 archivos
que se limpian con este script para formar Linux-2.6.33-libre es mucha
pérdida de tiempo. Python y PERL compilan nuestra enorme colección de
patrones en décimas de segundo, mientras reduce el uso de memoria por
aproximadamente otro orden de magnitud. Sin embargo, límites internos
en el algoritmo de busca de patrones en PERL producen resultados
incorrectos en deblob-check, así que usarlo con PERL no es recomendado
por ahora.

Para limpieza de deblob-main de pequeños archivos
en Linux, se verificó que Python fue el más rápido, razón por la cual
ahora lo usamos por defecto. Para verificar que un tarball grande está
limpio, el tiempo de ejecución de Python y PERL salta a más de 90
minutos, arriba de los 5 minutos con GNU awk y de tan poco como los 3
minutos con GNU sed. GNU awk viene adelante cuando se listan todos los
blobs en un tarball de Linux, ahora con una característica largamente
deseada: imprime, delante de cada blob, el nombre del archivo dentro
de un tarball que lo contiene.

Futuras publicaciones pueden
ser más inteligentes en elegir el componente más adecuado dependiendo
de la tarea y las entradas. Por ahora, los usuarios de deblob-check
deben de estar avisados de las nuevos parámetros: –use-python,
–use-awk, –use-perl, y –use-sed, y las variables del ambiente
correspondientes PYTHON, AWK, PERL, y SED.

El bajo uso de
memoria y requisito de CPU para revisar y limpiar archivos individuales
significa que es nuevamente posiblemente limpiar directorios de Linux a
la hora de compilar, lo cual un número de usuarios consideran valioso.

En los siguientes días, publicaremos Linux-libre, 4ta
generación, también para versiones previas de Linux, arreglando algunos
errores de deblobbing en controladores en “staging”, y corrigiendo
algunas más ocurrencias de nombres de blobs no-Libres en la
documentación y mensajes de error.

Solicitud de
comentarios

Un número de nuestros usuarios han
expresado insatisfacción legítima con una consecuencia del método que
hemos usado para detener al kernel de inducir a los usuarios a instalar
firmware no-Libre. No es nuestro objetivo el prevenir que los
usuarios puedan cargar o ejecutar firmware no-Libre, pero la única
manera que pensamos de evitar inducir usuarios de ejecutar firmware
no-Libre tiene el efecto secundario de hacer imposible el usar
cualquier firmware no-Libre con sólo instalarlo.

En Linux,
varios drivers llaman request_firmware con un nombre de blob. Esta
solicitud es registrada, incluido el nombre del blob, y pasada a un
programa en nivel usuario, que debe localizar un archivo de firmware
con ese nombre y subirlo al kernel. Dados los registros, en adición al
comportamiento existente y potencial del programa en nivel usuario,
esto equivale a Linux decir al usuario que instale un programa no-Libre
específico, lo cual no es aceptable.

Publicaciones de
Linux-libre desde la generación 2 remplazan el nombre del blob con un
nombre que el cargador de firmware probablemente no encontrará, y que
puede ser reconocido para informar a los usuarios acerca de la falta de
firmware Libre para algún componente de hardware en el sistema.
También rechazamos cualquier respuesta que el cargador de firmware
produce para dichas solicitudes, para minimizar el riesgo de
coincidencias accidentales y daño de hardware.

Razonamos que
cualquiera determinado a usar el firmware aún podría compilar un
módulo, o un kernel completo, que haga la solicitud y use la respuesta.
Esta posibilidad fue considerada muy incómoda por algunos.

Recientemente se nos ocurrió otra forma de alcanzar la meta de detener
al kernel de invitar a los usuarios a caer en la trampa del Software
no-Libre: donde Linux solicita archivos conocidos como no-Libres,
podríamos anonimizar el nombre del blob con un hash unidireccional de
su nombre y un identificador de la compilación y/o de la sesión del
kernel, y hacer la solicitud por un archivo nombrado con el hash
calculado.

Dada una implementación adecuada del cargador de
firmware en nivel usuario, cualquier pieza del firmware que el usuario
eligió instalar aún seguiría siendo localizada inmediatamente y hecha
disponible para el kernel. Sin embargo, por causa de la naturaleza
unidireccional del hash, una solicitud por firmware que no esté
instalado no induciría a su instalación: el código de hash no los
identificará inmediatamente. Así, si el usuario insiste en instalar el
firmware, Linux-libre podrá usarlo, pero es muy poco probable que
alguien instale el firmware por influencia de Linux-libre.

Únetenos en linux-li…@fsfla.org y déjanos saber tus sugerencias,
otras formas de apoyar este tema, o tu opinión acerca de este plan y si
crees que pueda ser aceptado en la versión “río arriba”.
¡Retroalimentación y ayuda son bienvenidas!

Entre tanto, ¡Sé
Libre! con Linux-2.6.33-libre, y ayúdanos a revertir la creciente
dependencia de Linux en firmware no-Libre.

Acerca de
Linux-libre

Linux-libre es un proyecto mantenido por
FSFLA, que publica versiones limpias de Linux, adecuadas para uso en
distribuciones que cumplen las Guías para Distribuciones de Software
Libre publicadas por el proyecto GNU, y por usuarios que quieren correr
versiones Libres de Linux en sus sistemas GNU. El proyecto ofrece
scripts de limpiar, fuentes Libres, binarios para algunas
distribuciones de GNU/Linux-libre, binarios Libres para reemplazar con
cambios mínimos los kernels de distribuciones no-Libres de GNU/Linux:
Freed-ebian y Freed-ora, y artes gráficas con GNU y la mascota de
Linux-libre: Freedo, el pingüino de color azul claro, limpio, Libre y
amistoso con el usuario. Visita nuestro sitio y ¡Sé Libre!
http://linux-libre.fsfla.org/ http://www.gnu.org/distros/


Acerca de FSFLA

La Fundación Software Libre América
Latina se ha sumado desde el 2005 a la red internacional de FSFs,
anteriormente formada por las Free Software Foundations de los Estados
Unidos, de Europa y de la India. Esas organizaciones hermanas actúan en
sus respectivas áreas geográficas con el sentido de promover los
mismos ideales de Software Libre y defender las mismas Libertades para
usuarios y desarrolladores de software, trabajando localmente, pero
cooperando globalmente.

http://www.fsfla.org/

Anuncio: FSFLA

Tomado de SomosLibres.org

¿Te resultó interesante? Compártelo ...



GUTL

Publicado por GUTL

Forma parte de GUTL desde el 6 diciembre, 2011.