Existen dos tipos principales de software: libre y propietario. El software libre se caracteriza por otorgar a los usuarios cuatro libertades fundamentales: hacer y destruir copias exactas, ejecutar el programa libremente, modificar y distribuir versiones alteradas, y estudiar y cambiar el código fuente.