suo autore) garantiscono sempre almeno quattro libertà fondamentali:

  1. libertà di eseguire il programma per qualsiasi scopo
  2. libertà di studiare il programma e modificarlo
  3. libertà di ridistribuire copie del programma
  4. libertà di migliorare il programma e di distribuirne pubblicamente i miglioramenti

Tali libertà concesse hanno un prerequisito implicito: chi adopera il software deve avere accesso al suo relativo codice sorgente, ovvero alle istruzioni - formalizzate secondo un linguaggio di programmazione, leggibile ed interpretabile da chiunque abbia qualche competenza in materia - che determinano l'esatto comportamento del programma. Dunque il "software libero" è qualcosa di diverso dal "software gratuito" (o "freeware", in inglese): la disponibilità del suo codice sorgente è la discriminante fondamentale. In generale, ciò che non è "software libero", e non garantisce dunque le suddette libertà all'utente, è detto "software proprietario" (indipendentemente che sia gratuito o a pagamento). Il software proprietario è una scatola chiusa, e non è dato di sapere come funzione e cosa fa mentre è in esecuzione. Il software libero, essendo distribuito insieme al codice sorgente, può essere analizzato, revisionato, ma anche studiato e, alla bisogna, modificato. Il software proprietario spesso viene rilasciato con il divieto a ridistribuirlo: solo chi lo ha prodotto ha diritto di darlo ad altri, o meglio di concederne ad altri la licenza di utilizzarlo. Viceversa chi entra in possesso di software libero può sempre a sua volta ridistribuirlo, dietro pagamento oppure gratuitamente, nella versione originale oppure con le sue modifiche, legalmente e nel pieno rispetto della legge. Solo chi ha realizzato un software proprietario è in possesso del suo relativo codice sorgente, e può dunque modificarlo su richiesta (sempre che ne abbia l'intenzione, e fissando il prezzo che vuole essendo in posizione di monopolio assoluto). Un software libero invece può essere modificato da chiunque ne abbia le competenze, ed in mancanza di competenze ci si può rivolgere a chi offre il prezzo o le condizioni migliori per svolgere il lavoro. Le risorse investite in un software proprietario, per estenderlo o per estenderne la sua conoscenza, vanno ad esclusivo appannaggio del suo autore, che ne detiene tutti i diritti di uso e ridistribuzione. Ciò che viene investito in un software libero (in termini di correzioni, migliorie, segnalazioni, documentazione, plugin e moduli aggiuntivi...) va invece a beneficio di tutti coloro che lo usano. Tutti i prodotti software possono aver bisogno di assistenza, supporto e manutenzione, e questi servizi possono essere una spesa. Ma il software proprietario si acquista per licenza d'uso, la quale può essere revocata in modo arbitrario o avere una scadenza e deve dunque essere pagata più e più volte, solitamente a cadenza annuale, senza ottenerne alcun reale valore aggiunto.