הגדרת התוכנה החופשית על-פי ריצ'ארד מ. סטאלמן הינה:
החופש להריץ את התוכנה, לכל מטרה שהיא. (חירות 0)
החופש ללמוד איך תוכנה עובדת, ולשנות אותה
לצרכיכם (חירות 1). גישה לקוד המקור היא תנאי מקדים לכך.
החופש להפיץ עותקים בהפצה-חוזרת כדי
שתוכלו למשל לעזור לשכנים שלכם. (חירות 2)
החופש לשפר את התוכנה, ולשחרר את השיפורים שלהם לציבור,
כך שכל הקהילה תרויח (חירות 3). גישה לקוד-המקור היא תנאי מקדים לכך.
משמעות הדבר הוא שכמות מרבית של חופש ניתנת בידי המשתמש. זאת לעומת
תוכנות קנייניות בהן פעמים רבות למשתמש אין אפשרות להשתמש בתוכנה ללא
תשלום, ו/או הוא אינו יכול לתקן אותה אם יש בה פגם או להכניס
בה שיפורים.