Ενέργειες

Ανοιχτός κώδικας

Η συλλογική βιβλιοθήκη γνώσης για το Linux στα Ελληνικά

Ως ανοιχτός κώδικας (open source) χαρακτηρίζεται ο κώδικας που επιτρέπει την πρόσβαση στην πηγαία μορφή του, καθώς και την τροποποίηση και την ελεύθερη αναδιανομή του. Τα παραγόμενα έργα διατίθενται υπό άδειες ανοιχτού κώδικα, οι οποίες, αρχικά, κάλυπταν το λογισμικό αλλά, πλέον, έχουν επεκταθεί στο υλισμικό και γενικότερα στο ανοιχτό περιεχόμενο.

Ιστορία

Ο όρος «ανοιχτός κώδικας» εμφανίστηκε τη δεκαετία του '90, όταν μια ομάδα συμμετεχόντων στο κίνημα ελεύθερου λογισμικού επιθυμούσε την αποσύνδεση από την πολιτική ατζέντα και την ιδεολογία που εμπεριέχεται στον όρο «ελεύθερο λογισμικό» (free software), όπως και την αποφυγή της αμφισημίας της λέξης «free». Η αρχική ανακοίνωση είχε την υποστήριξη του Linus Torvalds αλλά και του Richard Stallman, ο οποίος υιοθέτησε τον όρο αλλά άλλαξε γνώμη αργότερα.

Ενεργό ρόλο στη διάδοση του ανοιχτού κώδικα διαδραμάτισε ο προγραμματιστής Eric S. Raymond που πραγματοποίησε την πρώτη δημόσια έκκληση για την υιοθέτηση του όρου από την κοινότητα ελεύθερου λογισμικού[1] και αργότερα ίδρυσε την Πρωτοβουλία Ανοιχτού Κώδικα (OSI) μαζί με τον Bruce Perens.

Ορισμός

Για να αποφευχθούν οι παρερμηνείες, η Πρωτοβουλία Ανοιχτού Κώδικα παρέχει τον Ορισμό Ανοιχτού Κώδικα με υποσημειώσεις[2] στην επίσημη ιστοσελίδα της. Σύμφωνα με αυτόν, τα έργα ανοιχτού κώδικα πρέπει να πληρούν τους ακόλουθους όρους:

  1. Ελεύθερη Αναδιανομή. Η άδεια δεν περιορίζει τα μέρη να πωλούν ή να διανέμουν το λογισμικό ως στοιχείο μιας συνολικής διανομής λογισμικού που περιέχει προγράμματα από διάφορες πηγές. Η άδεια δεν απαιτεί δικαιώματα ή άλλα τέλη για την πώληση αυτή.
  2. Πηγαίος κώδικας. Το πρόγραμμα πρέπει να περιλαμβάνει τον πηγαίο κώδικα και πρέπει να επιτρέπει τη διανομή στον πηγαίο κώδικα καθώς και σε μεταγλωττισμένη μορφή. Σε περίπτωση που δε διανέμεται κάποια μορφή προϊόντος με τον πηγαίο κώδικα, πρέπει να υπάρχει ένας καλά δημοσιευμένος τρόπος για την απόκτηση του πηγαίου κώδικα για όχι περισσότερο από ένα λογικό κόστος αναπαραγωγής, κατά προτίμηση το κατέβασμα μέσω Διαδικτύου χωρίς χρέωση. Ο πηγαίος κώδικας πρέπει να είναι η προτιμώμενη μορφή στην οποία ένας προγραμματιστής θα τροποποιήσει το πρόγραμμα. Ο σκόπιμα συγκεχυμένος πηγαίος κώδικας δεν επιτρέπεται. Δεν επιτρέπονται ενδιάμεσες μορφές όπως το αποτέλεσμα ενός προ-επεξεργαστή ή ενός μεταφραστή.
  3. Παράγωγα Έργα. Η άδεια χρήσης πρέπει να επιτρέπει τροποποιήσεις και παραγόμενα έργα και πρέπει να επιτρέπει τη διανομή τους υπό τους ίδιους όρους με την άδεια του αρχικού λογισμικού.
  4. Ακεραιότητα του πηγαίου κώδικα του συγγραφέα. Η άδεια χρήσης μπορεί να περιορίσει τον πηγαίο κώδικα από τη διανομή με τροποποιημένη μορφή μόνο εάν η άδεια επιτρέπει τη διανομή των «αρχείων διόρθωσης» με τον πηγαίο κώδικα με σκοπό την τροποποίηση του προγράμματος κατά τον χρόνο δόμησης. Η άδεια χρήσης πρέπει να επιτρέπει ρητά τη διανομή λογισμικού που έχει κατασκευαστεί από τροποποιημένο πηγαίο κώδικα. Η άδεια χρήσης μπορεί να απαιτεί από παράγωγα έργα να φέρουν διαφορετικό όνομα ή αριθμό έκδοσης από το αρχικό λογισμικό.
  5. Καμία διάκριση εις βάρος προσώπων ή ομάδων. Η άδεια χρήσης δεν πρέπει να κάνει διακρίσεις εις βάρος προσώπων ή ομάδων προσώπων.
  6. Καμία διάκριση εις βάρος πεδίων δραστηριότητας. Η άδεια χρήσης δεν πρέπει να περιορίζει κανέναν από το να κάνει χρήση του προγράμματος σε ένα συγκεκριμένο πεδίο δραστηριότητας. Για παράδειγμα, δε μπορεί να περιορίσει το πρόγραμμα από τη χρήση σε μια επιχείρηση ή τη χρήση για γενετική έρευνα.
  7. Διανομή άδειας. Τα δικαιώματα που συνοδεύουν το πρόγραμμα πρέπει να ισχύουν για όλους εκείνους στους οποίους αναδιανέμεται το πρόγραμμα, χωρίς να απαιτείται η εκτέλεση πρόσθετης άδειας από τα εν λόγω μέρη.
  8. Η άδεια χρήσης δεν πρέπει να είναι συγκεκριμένη για ένα προϊόν. Τα δικαιώματα που σχετίζονται με το πρόγραμμα δεν πρέπει να εξαρτώνται από το γεγονός ότι το πρόγραμμα αποτελεί μέρος μιας συγκεκριμένης διανομής λογισμικού. Εάν το πρόγραμμα εξάγεται από αυτή τη διανομή και χρησιμοποιείται ή διανέμεται σύμφωνα με τους όρους της άδειας του προγράμματος, όλα τα μέρη στα οποία αναδιανέμεται το πρόγραμμα θα πρέπει να έχουν τα ίδια δικαιώματα με αυτά που χορηγούνται σε συνδυασμό με την αρχική διανομή του λογισμικού.
  9. Η άδεια χρήσης δεν πρέπει να περιορίζει άλλο λογισμικό. Η άδεια χρήσης δεν πρέπει να θέτει περιορισμούς σε άλλο λογισμικό που διανέμεται μαζί με το αδειοδοτημένο λογισμικό. Για παράδειγμα, η άδεια χρήσης δεν πρέπει να επιμένει ότι όλα τα άλλα προγράμματα που διανέμονται στο ίδιο μέσο πρέπει να είναι λογισμικό ανοιχτού κώδικα.
  10. Η άδεια χρήσης πρέπει να είναι τεχνολογικά ουδέτερη. Καμία διάταξη της άδειας χρήσης δε μπορεί να βασίζεται σε οποιαδήποτε μεμονωμένη τεχνολογία ή στυλ διεπαφής.

Άδειες χρήσης

Τα υποκείμενα σε άδειες χρήσης ανοιχτού κώδικα[3] διανέμονται, συνήθως, χωρίς χρέωση αλλά αυτό δεν είναι απαραίτητο. Μια άδεια χρήσης ανοιχτού κώδικα μπορεί να εισαγάγει περιορισμούς, όπως είναι η απαίτηση διανομής των παράγωγων έργων με τα ίδια δικαιώματα (copyleft). Κάθε άδεια χρήσης ανοιχτού κώδικα υποβάλλεται σε μια δημόσια διαδικασία αναθεώρησης[4] ώστε να εξασφαλίζεται ότι είναι συμβατή με τον Ορισμό Ανοιχτού Κώδικα.

Δημοφιλείς άδειες χρήσης ανοιχτού κώδικα

Οι άδειες χρήσης ανοιχτού κώδικα καλύπτουν ευρύ φάσμα υλοποιήσεων και συνοδεύουν διάφορες μορφές λογισμικού ή υλισμικού. Παρακάτω μπορείτε να δείτε μια λίστα με τις περισσότερο χρησιμοποιούμενες από αυτές:

  • Άδεια Apache 2.0 (Apache-2.0)
  • Άδεια BSD Τριών Διατάξεων (BSD-3-Clause)
  • Άδεια BSD Δύο Διατάξεων (BSD-2-Clause)
  • Γενική Άδεια Δημόσιας Χρήσης GNU (GPL)
  • Ελάσσων Γενική Άδεια Δημόσιας Χρήσης GNU (LGPL)
  • Άδεια MIT (MIT)
  • Δημόσια Άδεια Mozilla 2.0 (MPL-2.0)
  • Κοινή Άδεια Ανάπτυξης και Διανομής 1.0 (CDDL-1.0)
  • Δημόσια Άδεια Eclipse 2.0 (EPL-2.0)

Εννοιολογικές διαφορές

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

Επιπρόσθετα, λογισμικό που εμπίπτει στην κατηγορία του διαθέσιμου πηγαίου κώδικα (source-available) δεν είναι και ανοιχτού κώδικα παρά μόνο αν πληροί τα κριτήρια του Ορισμού Ανοιχτού Κώδικα.

Παραπομπές

  1. Eric S. Raymond (8 Φεβ. 1998), Goodbye, "free software"; hello, "open source", catb.org
  2. Open Source Initiative, The Open Source Definition (Annotated), opensource.org
  3. Open Source Initiative, Open Source Licenses by Category, opensource.org
  4. Open Source Initiative, The License Review Process, opensource.org