En repetidas ocasiones se confunden este tipo de conceptos, principalmente porque se cree que es lo mismo y no es así. Un programa, software, aplicación o herramienta puede ser libre y gratuita. Otras pueden ser gratuitas pero no libres. A continuación hago la aclaración de la diferencia entre software libre y software gratis.
Software Libre
También llamado free software, significa que los usuarios tienen la libertad o autorización de ejecutar, copiar, distribuir, estudiar, modificar y mejorar el software, ya sea con o sin modificaciones, gratuitamente o mediante pago.

Es cuestión de libertad, no de precio. Para que se comprenda mejor la definición, piense en “libertad de expresión”. Se controla el programa y lo que éste hace.
Dichas libertades son esenciales y de gran importancia, no solo para el bien del usuario individual sino para la sociedad entera, porque promueven la solidaridad social: cooperar y compartir.
Un ejemplo de este tipo de software son algunas versiones de GNU/Linux: Dragora GNU/Linux-Libre, Dynebolic, gNewSense, Musix, Parabola GNU/Linux-libre, PureOS, Trisquel, Guix, Ututo S
El tema del Software Libre abarca un amplio número de conceptos los cuales puede leer en el sitio oficial de GNU
Software Gratis
Conocido también como freeware. Se define como el tipo de software que se distribuye sin costo y disponible para su uso, pero no se puede modificar o tiene restricciones para su copia o distribución y mantiene los derechos de autor. Es una variante del shareware, que es el tipo de software que se da a probar por 15 o 30 días y luego debes pagar por él para poder seguir usándolo.

Tampoco se tiene control sobre el programa y lo que hace, por lo que se dice que dicho programa es privativo o “no es libre”. Un programa que no es libre, controla a los usuarios, y el programador controla el programa.
Algunos ejemplos para este tipo de software: AVAST FREE Antivirus, TeamViewer, Acrobat Reader DC, entre otros. La mayoría de programas que se pueden instalar y utilizar sin tener que pagar por ellos.
Software Libre es Diferente a Código Abierto
El software de Código Abierto (Open Source) es un software que cualquier persona puede inspeccionar, modificar y mejorar. La filosofía del código abierto plantea las cuestiones en términos de cómo “mejorar” el software, en sentido meramente práctico.

El código abierto es una metodología de programación, el software libre es un movimiento social.
Una definición más clara sobre código abierto es que cuando los programadores pueden leer, modificar y redistribuir el código fuente de un programa, los usuarios lo adaptan a sus necesidades, corrigen sus errores con un tiempo de espera menor a la aplicada en el desarrollo de software convencional, dando como resultado la producción de un mejor software.
Entre todos los programas que son de código abierto, solo una fracción minúscula no es libre.

Algunos ejemplos de software de código abierto: Debian, Red Hat (Centos), Ubuntu, Libre Office, navegador Firefox, reproductor VLC Media Player, entre otros.
La diferencia entre software libre y software gratis radica en el código fuente, en cómo se escribió dicho software y lo que se puede o no hacer con él. Se debe tener en cuenta que cuando se habla de software, hay que hacer la distinción de que NO ES LO MISMO LIBRE QUE GRATIS, por lo que la gente se confunde. Tal vez en algunos idiomas no hay esa distinción, pero en Español sí.