Richard Stallman quando trabalhava nos laboratórios de inteligência artificial do MIT, em 1971, fez parte de uma comunidade de programadores que distribuíam livremente seus códigos-fonte de programas.
O desenvolvimento do GNU começou por Stallman em 1984 com o objetivo de criar um "sistema operacional que seja completamente software livre" lançando as bases filosóficas do software livre , fornecendo a liberdade para os usuários executarem, copiarem, distribuírem, estudarem, modificarem e aperfeiçoarem o software.
Este sistema operacional GNU deveria ser compatível com o sistema operacional Unix, porém não deveria utilizar-se do código fonte deste. A partir de 1984, Stallman e vários programadores, que abraçaram a causa, vieram desenvolvendo as ferramentas principais para construir o Projeto GNU uma campanha para a liberdade dos usuários de software livre.
Visando preservar legalmente o status de liberdade de software, um sistema operacional, como, compilador de linguagem C, editores de texto, etc. Stallman, assistido por vários advogados, criou uma licença de uso de software denominada GNU GPL - (Licença Pública Geral GNU), ou simplesmente GPL. Assim, desenvolvedores que resolveram liberar seus códigos-fonte, puderam utilizar a licença GPL.
Em 1992 o sistema operacional já estava quase completo, mas restava o núcleo ( "kernel" ) do sistema operacional desenvolvidos para sistemas computacionais sendo computadores pessoais ou servidores. O grupo iniciado por Stallman vinha desenvolvendo um núcleo chamado Hurd. Porém, em 1992, um jovem finlandês chamado Linus Torvalds decidiu mudar a licença de seu núcleo para uma licença livre compatível com a GPL do GNU.[1] Este núcleo era capaz de usar todas as peças do sistema operacional GNU, o que permitiu que, pela primeira vez desde o fechamento do código do sistema operacional Unix fosse possível executar um sistema completo totalmente livre. Este núcleo ficou conhecido como Linux, contração de Linus e Unix.
O kernel Linux passou a ser distribuído com um conjunto de outros softwares, sendo que a maior parte dos softwares que vinha com as distribuições do Linux eram partes do sistema operacional GNU desenvolvido pela equipe de Stallman, quais compunham cerca de 28% das distribuições enquanto que o Linux representava cerca de 3% das distribuições,[2] o que levou o Projeto GNU a fazer um esforço educacional com respeito à nomenclatura destas distribuições, dizendo que por serem distribuições do sistema GNU que funcionam com kernel linux, não deveriam se chamarem apenas de Linux, sugerindo que se chamasse de GNU/Linux, com a intenção de clarificar de que Linux não é o sistema inteiro, e sim parte do sistema, o que gerou controvérsias que existem até aos dia de hoje.[3]
Ainda que Linus desistisse do projeto do Linux, o GNU/linux não acabaria. Juridicamente a GPL libera que o projeto seja mantido por outros, inclusive por outras instituições além da atual, denominada Kernel.Org - organização sem fins lucrativos que mantém o kernel atualmente, http://www.kernel.org - e que reúne vários voluntários e empresas patrocinadoras. Vários colaboradores são profissionais de empresas que cuidam das distribuições (Red Hat, Mandriva, etc) e de grande porte (IBM, HP, Sun, etc) e que têm negócios importantes que dependem do sucesso desse projeto. Assim, quando uma pessoa ou empresa deixa de atuar no kernel, outra pode livremente assumir o seu lugar.
Atualmente, um Sistema OperacionalGNU/Linux completo é uma coleção de software livre (e por vezes não-livre) criado por indivíduos, grupos e organizações de todo o mundo, incluindo o núcleo Linux. Companhias como a Red Hat, a Novell, e a Canonical, bem como projetos de comunidades como o Debian ou o Gentoo Linux, fornecem um sistema completo, pronto para instalação e uso. Patrick Volkerding também fornece uma distribuição Linux, o Slackware Linux.
As distribuições de GNU/Linux receberam popularidade como uma alternativa livre de um sistema operacional, principalmente para servidores. As diferentes distribuição tem o seu público e sua finalidade, sendo algumas usadas até para recuperação de sistemas danificados como o Parted Magic.
As principais diferenças entre as distribuições estão nos seus sistemas de pacotes e na sua biblioteca básica. Existe um projeto denominado LSB (Linux Standard Base) que proporciona uma maior padronização. Auxilia principalmente vendedores de software que não liberam para distribuição do código fonte, sem tirar características das distribuições. O sistemas de pacotes não é padronizado.
Outros projetos Wikimedia também contêm material sobre este tema: