Free and open source software (FOSS) är en term som används för fri programvara och programvara med öppen källkod då man vill vara noga med att inte ta ställning för någondera synvinkeln på programvaran. Termen free/libre/open-source software (FLOSS) används i samma betydelse, då man vill inkludera "libre", som används för att förtydliga att man avser fri och inte gratis (det engelskspråkiga "free" har båda betydelserna).

Fri programvara och programvara med öppen källkod definieras på sätt som nästan exakt sammanfaller, så att skillnaden är mindre än tolkningsmöjligheterna. Det finns alltså i praktiken inte någon teknisk eller juridisk skillnad mellan programvara som licenserats enligt endera modellen (enstaka datorprogram anses ändå uppfylla den senare men inte den förra definitionen). Däremot finns det en tydlig skillnad i bakomliggande ideologi.

Förespråkarna för fri programvara menar i allmänhet att programvara bör vara fri. Fri programvara ger användaren friheter och garantier som icke-fri programvara inte erbjuder, framförallt möjligheten att ta reda på exakt vad programmet gör och ändra (eller låta ändra) i programmet samt garantin att någon annan kan ta över underhållet av programvaran, till exempel om det ursprungliga programvaruföretaget blir uppköpt av en konkurrent.

Förespråkarna för öppen källkod betonar istället fördelarna för programvaruutvecklarna: eftersom användarna kan analysera källkoden kan de hitta fel och göra förbättringar som mer eller mindre direkt kan införlivas i existerande programkod, utan att utvecklarna på egen hand behöver ta reda på vad felen beror på eller hur förbättringarna kunde förverkligas. I synnerhet betatestningen blir därmed mycket effektivare. Förespråkarna för öppen källkod menar i allmänhet också att säkerhetshål säkrare uppmärksammas i tid än med sluten källkod.