Tiek bendroji, tiek nemokama programinė įranga yra terminai, naudojami programinei įrangai, kurią galima atsisiųsti iš interneto, apibūdinti. Pagrindinis skirtumas tarp jų kyla dėl to, ar programinę įrangą atsisiunčiantis asmuo tam tikru metu turi už ją sumokėti. Nemokama programinė įranga yra tik tai – nemokama programinė įranga, o bendroji programinė įranga reiškia, kad galiausiai reikės mokėti.
Kai kas nors atsisiunčia nemokamą programinę įrangą, jis arba ji paprastai gauna programinę įrangą nemokėdamas už ją. Atsisiunčiant kai kurias nemokamas programas, taikomas papildomas mokestis; Šis mokestis gali būti auka arba nemokamas programos atnaujinimas į visą programos versiją. Nors ši programinė įranga yra nemokama, jai vis tiek taikomos licencijos sąlygos, siekiant apsaugoti programinės įrangos kūrėjų intelektines teises.
Shareware yra programinė įranga, kuri suteikiama nemokamam bandomajam laikotarpiui, kol vartotojas turi už ją sumokėti. Tai leidžia vartotojams išbandyti programinę įrangą prieš įsipareigodami įsigyti pirkimo kainą. Paprastai nemokama bandomoji versija yra skirta tam tikram laikui ir nėra įpareigojimo pirkti programinę įrangą pasibaigus tam laikui. Shareware programinės įrangos produktai taip pat gali turėti ribotas funkcijas, panašias į nemokamą programinę įrangą.
Shareware ir freeware failams gali būti taikoma daug skirtingų apribojimų. Kai kurie iš dažniausiai pasitaikančių yra vandens ženklai ant vaizdų, reklama visoje programoje, ekranai, primenantys įsigyti visą programą, laiko bandymai ir taupymo apribojimai. Programinės įrangos kūrėjai gali pasirinkti, ar į savo failus įtraukti tiek daug arba tiek mažai apribojimų.
Yra daug skirtingų tipų failų, kuriuos galima atsisiųsti kaip bendrinamą ir nemokamą programinę įrangą. Beveik visų tipų programinę įrangą galima atsisiųsti vienu iš šių formatų, jei ne abu. Žaidimų bandomoji versija yra įprasta dalijimosi programinės įrangos versija, leidžianti žaidėjams tam tikrą laiką išbandyti žaidimus, kad nustatytų, ar jiems patinka žaidimas.
Pagrindinė priežastis, kodėl kuriamos nemokamos ir dalijimosi programinės įrangos versijos, yra ta, kad žmonės labiau linkę išbandyti tai, kas nemokama. Kai kurie kūrėjai kuria „supaprastintas“ savo programų versijas, kurios leidžia vartotojams išbandyti programinę įrangą reklamuojant pilną versiją. Vienas iš pagrindinių abiejų šių tipų programinės įrangos privalumų programinės įrangos kūrėjams yra tai, kad jų produktai pasiekia daug platesnę auditoriją.
Vieno tipo nemokama programinė įranga taip pat pateikia programinės įrangos šaltinio kodą. Atvirojo kodo programinė įranga leidžia kitiems programuotojams ir kūrėjams keisti kodą, kaip nori. Skirtumas tarp atvirojo kodo ir bendro naudojimo bei nemokamos programinės įrangos yra tas, kad ji ne tik visada nemokama, bet ir turi labai nedaug naudojimo apribojimų.