A confusão é que livre e grátis em inglês usam o mesmo termo, que é "free"... Por isso convém perceber que free software (software livre) é algo completamente diferente de freeware (software gratuito)..
Mas para que possas perceber melhor eu vou-te dar umas pequenas luzes das diferenças, depois na Wikipedia poderás aprofundar os teus conhecimentos.
O modelo de desenvolvimento/distribuição de software divide-se em dois grandes grupos.. O software proprietário e o software livre.
No software proprietário o autor do mesmo mantém todos os seus direitos sobre o mesmo. Ninguém pode copiar, modificar, ou sequer usar o software sem que haja uma permissão do autor.
O MSN Messenger por exemplo é um desses casos, porque para o usar temos que concordar com a EULA do produto que nos restringe completamente em algumas liberdades. Não podes vender copias do programa, não podes modifica-lo, etc.. etc..
Também existe software que não é livre e é open sorce, podem encontrar aqui vários exemplos:
http://www.fsf.org/licensing/licenses/index_html#NonFreeSoftwareLicense ...
Depois existe o software livre, que por definição implica que também é open source. Para ser software livre há 4 liberdades fundamentais que a licença desse software tem que respeitar:
- A liberdade para executar o programa, para qualquer propósito (liberdade nº 0);
- A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades (liberdade nº 1). Acesso ao código-fonte é um pré-requisito para esta liberdade;
- A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo (liberdade nº 2);
- A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie (liberdade nº 3). Acesso ao código-fonte é um pré-requisito para esta liberdade;
Assim, no caso do software livre tens exemplos como o do Firefox, em que o codigo é conhecido, e qualquer um pode contribuir, fazer versões modificadas (como o IceWeasel, Swiftfox, etc..) e só para teres uma ideia apesar de haver imensos programadores a trabalhar para a Mozilla foundation e o Google ter um departamento que apenas programa para o Firefox, mais de 25% do código, dos bug fixes e dos paches da versão 2.0 foi contribuido por programadores independentes.. Ou seja, pessoas que não gostavam de algo, escreveram o código de uma forma melhor e isso beneficiou todos..
Depois, como é óbvio é preciso uma licença, caso contrario haveria aproveitamentos ilícitos e em pouco tempo o software deixaria de ser livre.. Assim, apesar de em alguns casos libertarem código sob domínio publico, o normal é protegerem a liberdade usando as leis do copyright.. E assim usa-se uma licença como a GPL, MPL, BSD, etc.. etc..