En los inicios del software, cuando los hackers originales empezaron a crear programas, todo era libre y compartido. Cada programador presentaba sus códigos al resto de la gente y todos podían mirarlo, modificarlo, presentar mejoras, etc.
Todo esto se consideraba muy natural; los programadores conformaban especies de comunidades y cada comunidad compartía también con el resto.
Pero alguien con ideas millonarias descubrió que manteniendo en secreto el código de algún programa podía ganar mucho dinero vendiéndolo a la gente que lo necesitara. Como el código permanecía en secreto, el programador que quisiera hacer un programa equivalente tenía que empezar de cero.
Eventualmente las compañías de software fueron contratando a todos los programadores competentes, ofreciéndoles enormes sueldos a cambio de conservar secreto el software que escribían.
Es así como este tipo de software restringe la libertad que el usuario tiene sobre el programa.
Lo cierto es que la misma idea de que el software tenga un dueño quien puede decidir qué hacer con él es lo nocivo de este asunto.
Richard Stallman imaginó un sistema compatible libre, conceptualizado bajo el nombre de "Software Libre" (Free Software), que sería un sistema compatible con Unix y fue bautizado GNU, que significa "GNU's Not Unix" (GNU no es Unix).
Stallman reunió más gente y con ellos creó la Fundación para el Software Libre.
La FSF trabajó en la implementación de GNU, que a principios de los noventa estaba completo, con excepción de kernel.
En ese momento Linus Torvalds tenía su kernel en fase de pruebas, y el conjunto GNU/Linux es lo que hoy en día todos conocemos.