Il concetto di programma libero è un concetto molto complesso.
Innanzitutto dobbiamo fare riferimento al termine inglese free software dove la parola free significa sia libero che gratuito e, ovviamente, i significati sono utilizzati tutti e due.
Inoltre il concetto di programma libero oggi ingloba anche il il concetto di open source, cioè a sorgenti aperti, in quanto i programmi liberi normalmente sono forniti anche di codice sorgente indispensabile per potere fare modifiche.