1. Τι είναι λογισμικό ανοικτού κώδικα;

Η Πρωτοβουλία Ανοιχτού Κώδικα (OSI - Open Souce Initiative) καθορίζει τον ανοικτό κώδικα ως λογισμικό που παρέχει τα ακόλουθα δικαιώματα και υποχρεώσεις:

  1. Καμιά αμοιβή δικαιωμάτων εκμετάλλευσης ή άλλων δεν επιβάλεται στην αναδιανομή του ανοιχτού κώδικα.

  2. Διαθεσιμότητα του πηγαίου κώδικα.

  3. Δικαίωμα να δημιουργηθούν τροποποιήσεις και παράγωγες εργασίες.

  4. Μπορεί να απαιτείται οι τροποποιημένες εκδόσεις να διανέμονται ως η αρχική έκδοση συν οι τροποποιήσεις (διακριτά).

  5. Καμία διάκριση ενάντια σε πρόσωπα ή ομάδες.

  6. Καμία διάκριση ενάντια στα πεδία της προσπάθειας.

  7. Όλα τα δικαιώματα που χορηγούνται πρέπει να διατηρούνται στις αναδιανεμημένες εκδόσεις.

  8. Η άδεια εφαρμόζεται στο πρόγραμμα συνολικά, αλλά και σε κάθε ένα από τα συστατικά του.

  9. Η άδεια δεν πρέπει να περιορίζει άλλο λογισμικό, επιτρέποντας κατά συνέπεια την διανομή λογισμικού ανοικτού κώδικα και κλειστού κώδικα μαζί.

Αυτός ο ορισμός σαφώς αφήνει χώρο για μια μεγάλη ποικιλία αδειών, μερικές από τις οποίες θα εξετάσουμε σύντομα. Αν και το παρόν άρθρο πραγματεύεται τον ορισμό της Πρωτοβουλίας Ανοικτού Κώδικα (OSI), είναι σημαντικό να εξεταστεί επίσης ο ορισμός "Ελεύθερο Λογισμικό", γιατί συχνά οι όροι "Ελεύθερο Λογισμικό" και "Ανοικτός Κώδικας" συγχέονται. Ενώ είναι παρόμοιοι, έχουν αξιόλογες διαφορές.

Όταν μιλάμε για το "ελεύθερο λογισμικό", δεν μιλάμε για το δωρεάν freeware λογισμικό, δηλαδή λογισμικό που υπάρχει εξ ολοκλήρου διαθέσιμο δωρεάν στο ευρύ κοινό. Αντί αυτού, μιλάμε για το λογισμικό που έχει χορηγηθεί υπό την άδεια του Ιδρύματος Ελεύθερου Λογισμικού (FSF - Free Software Foundation) και της γενικής δημόσιας άδειας (General Public License) GNU.

Σύμφωνα με τον ορισμό του Ιδρύματος Ελεύθερου Λογισμικού:

"Το ελεύθερο λογισμικό πραγματεύεται την ελευθερία των χρηστών να το τρέξουν, να το αντιγράψουν, να το διανείμουν, να το μελετήσουν, να το αλλάξουν και να το βελτιώσουν. Ακριβέστερα, αναφέρεται σε τέσσερα είδη ελευθερίας για τους χρήστες του λογισμικού:

  1. Η ελευθερία να εκτελεστεί το πρόγραμμα, για οποιοδήποτε σκοπό (ελευθερία 0).

  2. Η ελευθερία να μελετηθεί το πώς λειτουργεί το πρόγραμμα και να προσαρμοστεί στις ανάγκες των χρηστών (ελευθερία 1). Η πρόσβαση στον πηγαίο κώδικα είναι μια προϋπόθεση για αυτό.

  3. Η ελευθερία να αναδιανεμηθούν αντίγραφα ώστε να ωφελούνται και οι γείτονές μας (ελευθερία 2).

  4. Η ελευθερία να βελτιωθεί το πρόγραμμα και να εκδοθούν οι τροποποιήσεις στο κοινό έτσι, ώστε ολόκληρη η κοινότητα να ωφελείται (ελευθερία 3). Η πρόσβαση στον πηγαίο κώδικα είναι μια προϋπόθεση για αυτό.

Ένα πρόγραμμα χαρακτηρίζεται ως ελεύθερο λογισμικό αν οι χρήστες έχουν όλες αυτές τις ελευθερίες."

Αντιπαραβάλλοντας τους ορισμούς του Ανοικτού κώδικα και του Ελεύθερου Λογισμικού, ανακαλύπτουμε ότι κάθε Ελεύθερο Λογισμικό είναι και Ανοικτού Κώδικα, αλλά όπως ορίζει το Ίδρυμα Ελέυθερου Λογισμικού, δεν χαρακτηρίζονται ως Ελεύθερο Λογισμικό όλα τα προγράμματα Ανοικτού Κώδικα. Η διαφορά προκύπτει κυρίως από την αποκαλούμενη συμβατότητα αδειών, αλλά σε μεγάλο βαθμό οι διαφορές είναι κυρίως φιλοσοφικές και μη ουσιαστικές.