Per poter disporre completamente di un software è essenziale conoscerne il funzionamento, senza lati nascosti; bisogna quindi che il testo del programma, o codice originario, sia leggibile (open source). In questo senso i due termini ``libero'' e ``open source'' sono spesso usati come sinonimi. La trasparenza del codice, tuttavia, è un requisito necessario ma non sufficiente per poter definire ``libero'' un software.
Secondo la definizione più accreditata, quella della Free Software Foundation[Fre(a),Fre(b)], è "libero" il software che permette a chiunque di:
Per una discussione di questo argomento, vedere il testo di D. Giacomini [Giacomini()] ed anche il documento della Commissione Governativa ([Commissione Governativa sull'Open Source(2003)]), che contiene anche utili definizioni di termini.