Generell unterscheidet man zwischen sogenannter „proprietärer Software“ und „Open Source Software“. Bei Open Source Software hat der Entwickler einer Software entschieden, den Quellcode (englisch: Sourcecode) offenzulegen und dessen Vervielfältigung, Verwendung und sogar Bearbeitung in gewissen Rahmenbedingungen zu erlauben. Diese Rahmenbedingungen werden in einer meist mit dem Quellcode veröffentlichten „Lizenz“ zusammengefasst, die dem Verwender dieses Quellcodes wiederum z.B. die Pflicht auflegen können, auch vorgenommene Veränderungen und zwar oft unter derselben Lizenz zu veröffentlichen (sogenannter „Copyleft-Effekt“).