El software libre es una pieza central de la tecnología aunque no seamos conscientes de dónde está. Está presente en computadoras, teléfonos, servidores, empresas y servicios en línea que usamos a diario. Hoy cualquier sistema es demasiado complejo para ser gestionado por un solo software y por eso, por debajo, cualquier servicio usa decenas o cientos de software de diferentes proveedores y eso es posible gracias al software libre, porque no todo el software ofrece las mismas posibilidades de uso, modificación y distribución.
El software libre es un modelo que prioriza el control del usuario sobre los programas que utiliza, lo cual le permite usarlos para brindar un servicio para uso interno o para sus clientes. Sin embargo, no se trata de un tema solamente de costo de licencias, sino especialmente de las libertades y derechos asociados al software.
¿Qué es el software libre?
Muchos creen que el software libre solo significa que es gratuito; sin embargo, es mucho más profundo. Se basa en las libertades que concede a quienes lo utilizan. El software libre es un modelo que permite a los usuarios ejecutar, estudiar, modificar y redistribuir un programa según las condiciones de su licencia.
Las licencias de software libre determinan legalmente qué puede hacerse con el programa y con sus versiones modificadas. Garantizan la libertad, especialmente la posibilidad de analizar y modificar el software, y para eso es necesario acceder a su código fuente.
La computación moderna tuvo su origen en proyectos militares, pero buena parte de su desarrollo posterior tuvo lugar en universidades, donde compartir conocimientos y programas era una práctica habitual. Sin embargo, todavía no existían reglas ni licencias que protegieran esa forma de trabajar. El software libre, tal como lo entendemos hoy, apareció en la década de 1980, impulsado principalmente por Richard Stallman, creador del Proyecto GNU y uno de los fundadores de la Free Software Foundation.
Mientras que en el software propietario, quien tiene los derechos mantiene el control sobre las copias, las modificaciones y la redistribución. En el software libre, en cambio, esas libertades pasan al usuario. Esto no significa que todo software propietario sea de pago: puede ser gratuito y seguir siendo propietario. La diferencia es que normalmente no da acceso al código fuente ni permiso para modificarlo o compartirlo. Incluso si el código está disponible para leerlo, eso no implica que se pueda hacer con él lo que uno quiera.
Su importancia
El software libre ofrece una mayor independencia tecnológica al usuario, ya que permite a los usuarios comprender, modificar y adaptar las herramientas que utilizan según sus necesidades, sin la obligación de ser ellos quienes se ajusten al software. El acceso al código fuente también aporta transparencia, facilita auditorías y permite detectar errores o comportamientos no deseados como recolección de datos o telemetría.
Para empresas, instituciones educativas y organismos públicos, puede reducir la dependencia de un único proveedor. Esto ayuda a evitar lo que se llama una situación de vendor lock-in, donde cambiar de tecnología resulta difícil por formatos propietarios, incompatibilidades o restricciones técnicas. Además, la posibilidad de modificar el software permite adaptarlo a necesidades propias sin depender exclusivamente de su desarrollador original.
Dada la complejidad del software actual, el software libre permite a los desarrolladores partir de una base ya probada y concentrarse en desarrollar las partes que más les interesan. Por ejemplo, Android utiliza el kernel de Linux como base, lo que permite a sus desarrolladores aprovechar componentes sólidos, maduros y altamente probados, para centrarse en las capas y funciones específicas del sistema operativo móvil.
Aun así, el software libre no es necesariamente más seguro. La disponibilidad del código facilita su revisión, sí, pero la seguridad también depende del mantenimiento, las actualizaciones y la calidad del desarrollo a lo largo del tiempo. Además, muchos proyectos de software libre se construyen sobre otras bibliotecas, componentes o herramientas que también evolucionan y pueden dejar de mantenerse o introducir vulnerabilidades. Por eso, la seguridad de un proyecto no depende únicamente de su propio código, sino también del estado y la seguridad de las tecnologías de las que depende.
Las cuatro libertades del software libre
El software libre se basa en cuatro libertades que se consideran fundamentales y que fueron establecidas por la Free Software Foundation. En ellas se determina qué puede hacer un usuario con un programa, aunque también se determinan obligaciones para el usuario.
- La Libertad 0 permite ejecutar el programa con cualquier propósito.
- La Libertad 1 permite estudiar cómo funciona y modificarlo para adaptarlo a necesidades concretas, para lo cual es indispensable disponer del código fuente.
- La Libertad 2 permite redistribuir copias del programa.
- La Libertad 3 permite distribuir versiones modificadas para que otros usuarios también puedan beneficiarse de esos cambios.
Estas libertades no implican que el usuario pueda ignorar la licencia: por eso algunas licencias pueden exigir que las versiones modificadas se distribuyan bajo la misma licencia, que se mantengan determinados avisos de autoría o que se proporcione el código fuente cuando se redistribuye el programa. Es decir que un desarrollador no puede tomar software libre, modificarlo y revenderlo cerrado sin ofrecer también esos cambios de la misma manera que él los obtuvo.
La numeración comienza en 0 por una decisión relacionada con el orden en que fueron establecidas. La regla 0 fue la última en incorporarse, pero se consideró la más importante y debía ir al principio. Así que jugando con el concepto de arrays en programación que arrancan en cero, se usó también el cero con las libertades establecidas para no mover las demás reglas que ya tenían su número asociado.
Para que un programa sea considerado software libre debe respetar las cuatro libertades fundamentales. Si alguna de ellas no está garantizada, deja de ajustarse a la definición de software libre establecida por la Free Software Foundation.
Software libre no significa software gratuito
Una de las creencias equivocadas más frecuentes alrededor del software libre proviene del término inglés free software, ya que la palabra free puede interpretarse tanto como libre como gratuito. Sin embargo, realmente hace referencia a las libertades que la licencia brinda y no al precio del software.
Por eso, un software libre puede distribuirse sin costo, pero también puede venderse legalmente. El hecho de pagar por él no elimina las libertades asociadas a su licencia. Una empresa puede cobrar por ofrecer servicios relacionados, como soporte técnico, consultoría, implementación, mantenimiento, alojamiento o desarrollo de funciones personalizadas. Uno de los casos más antiguos y exitosos es Red Hat, la distribución de Linux orientada a empresas.
También existen casos donde ocurre lo contrario. Son programas gratuitos que no son software libre porque, aunque puedan utilizarse sin pagar, no permiten acceder al código fuente, ni modificarlo, y mucho menos redistribuirlo. A este tipo de software se le conoce como freeware y, a pesar de ser gratuito, puede seguir siendo completamente propietario y cerrado. En resumen, solo debemos tener presente que precio y libertad son dos cosas distintas y deben considerarse por separado.
Software libre vs. código abierto
Software libre y código abierto suelen ofrecer libertades similares, como acceder al código fuente, modificarlo y redistribuirlo. La diferencia principal está en que el software libre pone el foco en las libertades y derechos de los usuarios, mientras que el código abierto se enfoca en ventajas como la colaboración, la eficiencia y la revisión pública del código.
El término open source se hizo popular a finales de los años 90 con el impulso de la Open Source Initiative. Aun así, ambos conceptos tienen puntos en común y muchas licencias similares, como GNU GPL, MIT o Apache, son aceptadas en los dos ámbitos.
Lo más importante en cualquier caso: poder ver el código no es suficiente para ser software libre. Para que un programa sea considerado software libre o de código abierto, su licencia debe permitir expresamente su uso, modificación y redistribución.
Ejemplos populares
GNU/Linux es uno de los ejemplos más conocidos y exitosos de software libre. No se trata de un único sistema operativo, sino de una familia de distribuciones que combinan el kernel Linux con diferentes herramientas, entornos y aplicaciones. Proyectos como Debian, Ubuntu y Fedora muestran cómo una misma base de software puede adaptarse a objetivos muy distintos, desde computadoras personales hasta servidores y entornos profesionales.
También existen numerosos ejemplos entre las aplicaciones de uso diario, como Mozilla Firefox, un navegador cuyo código fuente está disponible públicamente, mientras que LibreOffice ofrece herramientas para crear documentos, hojas de cálculo y presentaciones. GIMP está orientado a la edición de imágenes y VLC Media Player permite reproducir una gran variedad de formatos multimedia en diferentes sistemas operativos.
Conclusión
El software libre no es simplemente una alternativa al software propietario ni una forma de conseguir programas sin pagar. Es un modelo que define de qué libertades puede hacer uso el usuario sobre las herramientas que utiliza y hasta qué punto puede estudiarlas, modificarlas y compartirlas.
Su existencia se vuelve todavía más importante en un mundo donde prácticamente ningún sistema complejo se desarrolla desde cero. Los desarrolladores de empresas, gobiernos y universidades construyen nuevas soluciones sobre proyectos existentes y una parte inmensa de la infraestructura global depende de software libre.