Richard Stallman fundó el movimiento de software libre y definió cuatro libertades que debe tener un software para ser considerado libre: 1) libertad de ejecutar el programa como se desee, 2) libertad de estudiar y modificar el código fuente, 3) libertad de distribuir copias, 4) libertad de distribuir versiones modificadas. Un software es libre cuando respeta estas cuatro libertades de los usuarios y promueve la solidaridad de la comunidad de usuarios.