Un programa es software libre si otorga a los usuarios cuatro libertades esenciales: la libertad de ejecutar el programa para cualquier propósito, estudiar y modificar el código, redistribuir copias, y distribuir copias de versiones modificadas. De lo contrario, el programa no se considera software libre. El software libre ofrece ventajas como el escrutinio público que mejora la calidad y la independencia del proveedor, pero también puede presentar mayores costos de implementación e interoperabilidad.