Lai programma būtu brīvā programmatūra, tai jāizpildās sekojošiem četriem nosacījumiem (t.s. "brīvībām"):
Ja programmatūra atbilst šiem kritērijiem, programmas lietotājs to var droši izmantot, nebaidoties, ka pēc laika tā būs pieejama tikai par maksu (kā tas var būt ar bezmaksas bet nebrīvo programmatūru), ka to kāds varētu monopolizēt vai pārtraukt izlaist.
Terminu brīvā programmatūra (Free software) ieviesa Ričards Stallmans, cīnoties par programmatūras lietotāju tiesībām.
Dažkārt uz brīvās programmatūras bāzes nevar izveidot slēgtā koda jeb īpašniekprogrammatūru, kas ierobežo brīvās programmatūras izmantošanu komerciālos nolūkos.
Lai atvieglotu brīvās programmatūras komerciālu ražošanu un izmantošanu, dažkārt mēdz ierobežot 4. brīvību, vēl retāk arī 3. brīvību. Programmatūru ar šādiem ierobežojumiem sauc par atvērtā pirmkoda programmatūru.
Atvērtā koda programmatūrai katrs var pētīt tās kodu un to mainīt atbilstoši savām vajadzībām. Parasti šo programmatūru var brīvi izplatīt tālāk gan sākotnējā, gan mainītajā versijā, bet var būt minētie brīvību ierobežojumi. Piemēram: lai programmatūras autors nodrošinātu kvalitāti un garantijas, mainīto programmas versiju nevar izplatīt tālāk ar sākotnējo nosaukumu; vai arī prasība, ka programmatūru var komplektēt un izplatīt kopā tikai ar brīvo/atvērtā pirmkoda programmatūru. Atvērtā pirmkoda programmatūru var izmantot, lai uz tās bāzes veidotu slēgtā koda, nebrīvo jeb īpašniekprogrammatūru.
Jēdzienu atvērtā pirmkoda programmatūra (Open source) ieviesa Ēriks Reimonds un Tims Oreilijs, pielāgojot brīvās programmatūras idejas komerciālai izstrādei un lietošanai.
Vairāk par atvērtā koda licencēm skatīt šeit.
Gan brīvo, gan atvērtā koda programmu var izmantot jebkuros nolūkos, t.sk. komercijā un ieročos 4. Programmas, kuras var izmantot tikai nekomerciāliem vai nemilitāriem nolūkiem nav atvērtā koda programmas, jo ierobežo 1. brīvību — "Brīvi izmantot programmu jebkuriem nolūkiem".
Maldus par ierobežojumiem komerciālai izmantošanai izplata nezinoši programmu lietotāji, kas neatšķir bezmaksas slēgtā koda/nebrīvās programmas no atvērtā koda/brīvajām programmām.
Bieži vien slēgtā koda īpašniekprogrammatūru mārketinga nolūkos izplata bez maksas. Cenā atšķirības nav, tomēr ir cita būtiska atšķirība. Tā kā slēgta koda programmatūras pirmkods nav katram pieejams, jūs neesat pasargāti, no tā, ka:
Ričards Stallmans uzsver, ka programmas pirmkoda pieejamība nav pietiekama pilnīgi brīvai programmatūras lietošanai (un šeit viņam ir taisnība). 5
Ēriks Reimonds uzsver, ka brīvās programmatūras noteikumi neņem vērā programmatūras ražotāja intereses, un tas bremzē brīvās programmatūras attīstību (un šeit viņam ir taisnība).
Atklātais un atvērtais kods tīmeklī ilgu laiku ir pastāvējuši kā sinonīmi, lai arī "atvērtais kods" ir ticis lietots biežāk nekā "atklātais kods". LZA Terminu datubāzē atklātā pirmkoda programmatūra tika minēta kā pirmā iespēja, bet atvērtā pirmkoda programmatūra kā alternatīva iespēja.
Tomēr saskaņā ar 2009. gada 18. septembra lēmumu (prot. Nr. 336, teksts nav publiski pieejams), tomēr ir nolemts kā oficiālo terminu izmantot vārdkopu atvērtais kods, jeb precīzāk — atvērtā pirmkoda programmatūra.