Qual é a diferença entre código aberto, software livre, freeware e domínio público?

Código aberto explicado em linguagem simples.

O software de código aberto e o software livre tratam de direitos: usar, estudar, compartilhar e adaptar. Freeware geralmente significa apenas que algo é de uso gratuito.

Domínio público significa que não há mais qualquer restrição de direitos autorais ou que o detentor dos direitos renunciou a ela na medida do legalmente possível. Isso é diferente do código aberto.