En 1971, Richard Stallman a commencé à travailler au laboratoire d’intelligence artificielle du MIT et a ainsi rejoint une communauté de partage de logiciels existante dans laquelle le code source était librement partagé. Dans les années 1980, lorsque l’ordinateur pour lequel le logiciel partagé avait été développé a été arrêté et que ses programmes n’étaient plus utilisables, l’ordinateur a été remplacé et le logiciel propriétaire a pris la place du logiciel avec un code source librement disponible et modifiable. Face à cela, Stallman a décidé de construire une nouvelle communauté, en commençant par un système d’exploitation libre compatible avec Unix, mais pas Unix, d’où le nom autoréférentiel “GNU’s Not Unix”, désigné par l’acronyme GNU. Ce fut le début du projet GNU.
Stallman a quitté le MIT en 1984 pour commencer à développer des logiciels GNU. Une “liste de tâches” GNU a été développée pour s’assurer que tous les composants qui permettraient aux utilisateurs d’avoir un ensemble complet de logiciels ont été développés. Le développement de Linux par Linus Torvalds a fourni un noyau et a rendu le système d’exploitation GNU opérationnel, et le développement continu s’est concentré sur d’autres applications. Alors que la distribution devenait un problème, le concept de copyleft – par opposition au droit d’auteur – a été développé par le projet GNU, basé sur le mot inventé par Don Hopkins. De manière générique, une licence de logiciel copyleft prévoit que le logiciel est, et restera libre, dans la conception du projet GNU du terme.
En relation avec la licence de copyleft, Stallman a défini une signification particulière pour le logiciel libre, qui comprend quatre libertés, numérotées de 0 à 3, et elles peuvent être résumées comme suit. Freedom 0 accorde l’autorisation d’exécuter le programme sans limitation de finalité, c’est-à-dire que le logiciel n’a pas à être utilisé comme le développeur ou les développeurs l’ont prévu. La liberté 1 prescrit l’accès au code source et accorde à l’utilisateur la liberté de le modifier comme il le souhaite. La liberté 2 impose la liberté de continuer à distribuer des copies du logiciel original, et la liberté 3 promeut la liberté de distribuer des copies de logiciels modifiés par l’utilisateur. Bien qu’il ne s’agisse pas d’une liberté numérotée, le concept s’étend à l’exigence de manuels de logiciels libres.
Il est important de noter que la définition du projet GNU de gratuit ne signifie pas « sans que l’argent ne change de mains ». La licence GNU permet aux gens de facturer des frais de distribution pour la distribution du logiciel GNU d’autrui et de facturer le temps passé à développer des modifications. La définition du projet GNU de gratuit ne signifie pas non plus « non commercial ». Les produits créés et/ou modifiés sous les termes de la licence GNU peuvent être vendus dans le cadre d’une entreprise commerciale. Il est également important de distinguer le concept de logiciel libre GNU du logiciel open source, qui est une construction différente.