¿Cuál es la diferencia entre código abierto, software libre, freeware y dominio público?

Código abierto explicado en lenguaje sencillo.

El código abierto y el software libre tienen que ver con derechos: usar, estudiar, compartir y adaptar. El software gratuito generalmente significa simplemente que algo es de uso gratuito.

Dominio público significa que ya no existe ninguna restricción de derechos de autor, o que el titular de los derechos ha renunciado a ella en la medida de lo legalmente posible. Eso es diferente del código abierto.