Software livre é o software que concede liberdade ao usuário para executar, acessar e modificar o código fonte, e redistribuir cópias com ou sem modificações. Para que essas liberdades sejam possíveis, o acesso ao código-fonte é fundamental, permitindo que o usuário compreenda o funcionamento do programa e o adapte às suas necessidades. Sua definição está associada à Free Software Foundation em conjunto com o projeto GNU.. O conceito foi desenvolvido e difundido por Richard Stallman, fundador da FSF, software livre é qualquer programa de computador que pode ser usado, copiado, estudado, modificado e redistribuído sem nenhuma restrição. É permitido vender software livre, entretanto as mesmas liberdades são válidas para o comprador. Justamente ele defende que os usuários devem ter liberdade para usar, copiar, estudar, modificar e compartilhar software. É permitido vender software livre, desde que as mesmas liberdades sejam preservadas para os demais usuários.

Embora sejam frequentemente utilizados para se referir a programas semelhantes, os conceitos de software livre software de código aberto possuem diferenças principalmente em relação aos seus princípios e enfoques. A definição de software livre envolve aspectos filosóficos e políticos, já a definição de software de código aberto, estabelecida pela Open Source Initiative, tem uma visão mais pragmática. Assim, todo software livre é de código aberto, mas nem todo software de código aberto é um software livre.

Cabe ressaltar que software livre não significa necessariamente software gratuito. A palavra free, utilizada na expressão inglesa free software, refere-se à liberdade do usuário, e não ao preço do programa. Dessa forma, um software livre pode ser distribuído gratuitamente ou comercializado, desde que as liberdades garantidas por sua licença sejam respeitadas. Esta distinção é importante sobretudo para anglófonos, língua em que o termo usado é free software (free = livre ou grátis, em inglês). Há uma conhecida citação de Richard Stallman que exemplifica tal ideia de forma cômica, dizendo que o software é "livre" (free) como em "liberdade de expressão" (free speech), e não como em "cerveja grátis" (free beer).

O conceito de software livre é baseado nas chamadas quatro liberdades essenciais: a liberdade de executar o programa para qualquer propósito; a liberdade de estudar como o programa funciona e adaptá-lo às próprias necessidades; a liberdade de redistribuir cópias; e a liberdade de aperfeiçoar o programa e compartilhar essas melhorias com outras pessoas. Para que as liberdades de estudo e modificação sejam possíveis, o acesso ao código-fonte é um requisito fundamental. Essas liberdades permitem que usuários e desenvolvedores cooperem, compartilhem conhecimento e contribuam para o aprimoramento dos programas.

O movimento do software livre possui, portanto, uma dimensão não apenas técnica, mas também ética e social, ao defender a liberdade dos usuários de controlar, estudar, modificar e compartilhar os programas que utilizam. Essa perspectiva também favorece a colaboração entre desenvolvedores e usuários e permite que diferentes pessoas adaptem os softwares às suas necessidades. A liberdade proporcionada pelo acesso ao código-fonte diferencia esse modelo dos softwares proprietários, nos quais o uso, a modificação e a redistribuição podem estar sujeitos a restrições estabelecidas por seus detentores.

Definições thumbnail|direita|180px|Ilustração frequentemente usada como logo para o Projeto GNU. As duas principais organizações internacionais responsáveis pela proteção e promoção do software livre, a Free Software Foundation (FSF) e a Open Source Initiative (OSI), atuam para garantir que os termos Free Software e Open Source sejam utilizados de forma correta.

Definição de software livre da Free Software Foundation (FSF) A FSF considera um software livre quando atende a quatro tipos de liberdade para os usuários:

A liberdade de executar o programa para qualquer propósito; A liberdade de estudar o programa e adaptá-lo para as suas necessidades. A liberdade de redistribuir cópias do programa de modo que você possa ajudar ao seu próximo; A liberdade de modificar (aperfeiçoar) o programa e distribuir estas modificações, de modo que toda a comunidade se beneficie.

Lembrando que o acesso ao código-fonte é um pré-requisito para as liberdades 2 e 4, uma vez que não é possível estudar ou modificar o programa sem acessar o código-fonte.

Para que as quatro liberdades sejam satisfeitas, é necessário que o programa seja distribuído juntamente com o seu código-fonte e que não sejam colocadas restrições para que os usuários alterem e redistribuam esse código.

A liberdade de executar o programa significa que qualquer tipo de pessoa física ou jurídica pode utilizar o software em quantos computadores quiser, em qualquer tipo de sistema computacional, para qualquer tipo de trabalho ou atividade, sem nenhuma restrição imposta pelo fornecedor.

A liberdade de redistribuir o programa executável (em formato binário) necessariamente inclui a obrigatoriedade de disponibilizar seus códigos-fonte. Caso o software venha a ser modificado e o autor da modificação queira distribuí-lo, gratuitamente ou não, será também obrigatória a distribuição do código fonte das modificações, desde que elas venham a integrar o programa. Não é necessária a autorização do autor ou do distribuidor do software para que ele possa ser redistribuído, já que as licenças de software livre assim o permitem.

Definição de código aberto da Open Source Initiative (OSI) A OSI optou pelo termo Open Source para afastar-se do estigma filosófico e político do termo "software livre". A disponibilidade do código-fonte não é condição suficiente para que o software seja considerado de código aberto. É necessário satisfazer dez critérios, inspirados na Definição Debian de Software Livre:

Redistribuição livre: a licença não pode restringir nenhuma parte interessada em vender ou distribuir o software a terceiros. A licença não pode exigir royalties ou taxas dessas vendas; Código-fonte: o programa precisa obrigatoriamente incluir código-fonte e permitir a distribuição tanto do código-fonte quanto do programa já compilado; Trabalhos derivados: a licença deve permitir modificações e trabalhos derivados e deve permitir que estes sejam distribuídos sob os mesmos termos da licença do software original; Integridade do código-fonte do(a) autor(a): a licença pode proibir que se distribua o código-fonte original modificado desde que a licença permita a distribuição de patch files com a finalidade de modificar o programa em tempo de compilação; Não à discriminação contra pessoas ou grupos: a licença não pode discriminar contra pessoas ou grupos; Não à discriminação contra fins de utilização: a licença não pode restringir o uso do programa para um fim específico, como uso no comércio, ou em pesquisa genética, por exemplo; Distribuição de licença: Os direitos atribuídos ao programa através da licença são automaticamente aplicados a todas as pessoas para as quais o programa é redistribuído, sem a necessidade de definição ou aceitação de uma nova licença; A licença não pode ser específica para o produto: os direitos associados a um programa não dependem de uma distribuição em particular aquele programa está inserido. Se o programa é retirado de uma distribuição, os direitos garantidos por sua licença continuam valendo; A licença não deve contaminar outros softwares: a licença não pode colocar restrições em relação a outros programas que sejam distribuídos junto com o software em questão; A licença deve ser neutra em relação as tecnologias: nenhuma exigência da licença pode ser específica a uma determinada tecnologia ou estilo de interface.

Diferenças entre software livre e código aberto Em termos gerais, as definições de software livre e de código aberto descrevem um corpus muito semelhante de softwares. O conjunto de licenças aprovadas pela FSF e pela OSI é quase idêntico e, portanto, em termos pragmáticos, podemos considerar que o movimento pelo software livre e a iniciativa pelo código aberto se preocupam com o mesmo software. A diferença principal está no discurso e no público-alvo de cada iniciativa.

Os defensores do software livre (liderado pela FSF) argumentam que a liberdade é essencial não só do ponto de vista técnico do programa, mas também sob a ótica da moral e da ética. Ocupam-se de outros aspectos da liberdade (como as licenças de conteúdo) e se opõem ao software proprietário, afirmando que “o inimigo é o software privativo”. Em geral, adeptos da FSF não concordam com o termo código aberto e não usam esse termo.

Enquanto o movimento de software livre tem veios filosóficos e políticos, o movimento de código aberto (liderado pela OSI) se ocupa do aspecto pragmático, abstendo-se da postura filosófica do movimento da FSF e não opondo-se a existência de softwares proprietários. Visando fomentar a adoção do software de código aberto como uma solução viável para ambientes corporativos, a OSI elaborou sua licença, que inclui algumas restrições adicionais focadas no modelo corporativo e em negócios comerciais elaborados em torno do software.

Contudo, nem todo software de código aberto pode ser considerado um software livre. O simples fato do programa estar com seu código aberto, não garante nada sobre a sua distribuição, modificação e comercialização. Pode-se ter um programa com código aberto, mas, impossibilitado de modificações, contrariando o conceito de software livre.

Distinção entre software livre e software gratuito Software livre é um termo que designa programas de computador que oferecem aos usuários um conjunto de liberdades essenciais para controlar o software e como ele é utilizado. Essas liberdades, definidas pela Free Software Foundation, incluem:

A liberdade de executar o programa para qualquer propósito. A liberdade de estudar como o programa funciona e adaptá-lo às suas necessidades, o que requer acesso ao código-fonte.   A liberdade de redistribuir cópias do programa, permitindo a colaboração e o compartilhamento com outros usuários. A liberdade de modificar o programa e distribuir as versões alteradas, possibilitando melhorias e adaptações às necessidades específicas.

O software livre valoriza o senso de comunidade, onde usuários podem colaborar no desenvolvimento, compartilhamento e aprimoramento do software.

Exemplos comuns de software livre incluem o sistema operacional GNU/Linux e os softwares desenvolvidos pelo Projeto GNU.

Software Gratuito (Freeware)

É importante distinguir software livre de software gratuito (ou freeware). Enquanto o software gratuito está disponível sem custo financeiro, ele geralmente não oferece as mesmas liberdades. O código-fonte pode não ser acessível, impedindo a modificação e o estudo do programa, e podem existir restrições de uso. Mesmo sendo gratuito em termos de preço, pode haver outras formas de "custo", como anúncios ou coleta de dados, e a liberdade do usuário sobre o software é limitada.

O foco do software livre reside na liberdade do usuário de controlar o software, enquanto o software gratuito se concentra na ausência de custo financeiro, podendo não garantir as liberdades do software livre. Um software livre pode ser distribuído gratuitamente, mas um software gratuito nem sempre é livre.