Γιατί να χρησιμοποιήσετε την άδεια BSD για το λογισμικό σας

Bruce Montague

Αρχικός συγγραφέας 

<brucem@alumni.cse.ucsc.edu>

Γιώργος Κεραμίδας

Μετάφραση 

<keramida@FreeBSD.org>

Αναθεώρηση: 8def749c53

Νομική Σημείωση

2013-11-13 07:52:45 +0000 από Hiroki Sato.

[ HTML σε τμήματα / HTML σε ένα τμήμα ]

1. Εισαγωγή

Αυτό το άρθρο παρουσιάζει τα πλεονεκτήματα της άδειας BSD για λογισμικό και δεδομένα. Πιο συγκεκριμένα, αναφέρεται στα πλεονεκτήματα της άδειας BSD σε σχέση με την GPL. Ουσιαστικά είναι μια σύγκριση της άδειας BSD και της άδειας GPL, και μια εισαγωγή στις διαφορές τους.

2. Σύντομη Ιστορία του Ανοικτού Λογισμικού

Πολύ πριν χρησιμοποιηθεί για πρώτη φορά ο όρος «Open Source», οι προγραμματιστές είχαν αρχίσει να αναπτύσσουν το λογισμικό των υπολογιστών σε ομάδες και να ανταλλάσουν τα προγράμματα που έφτιαχναν εντελώς ελεύθερα. Στις αρχές της δεκαετίας του 1950 οι οργανισμοί όπως το SHARE και το DECUS έφτιαχναν ένα μεγάλο ποσοστό από το λογισμικό το οποίο προσέφεραν οι εταιρείες λογισμικού μαζί με το υλικό των υπολογιστών τους. Η κυριότερη πηγή εσόδων των εταιρειών ήταν το υλικό των υπολογιστών τους. Οτιδήποτε μείωνε το κόστος ανάπτυξης του λογισμικού ήταν παράγοντας που βελτίωνε τις πωλήσεις του υλικού κι έκανε τις εταιρείες αυτές πιο ανταγωνιστικές.

Αυτό όμως άλλαξε τη δεκαετία του 1960. Το 1965 η ADR ανέπτυξε το πρώτο εμπορικό προϊόν λογισμικού, το οποίο διένειμε ανεξάρτητα από μια εταιρεία υλικού. Η ADR συναγωνιζόταν ένα δωρεάν πακέτο λογισμικού της IBM, το οποίο είχαν φτιάξει αρχικά οι πελάτες της IBM. Η ADR πατεντάρισε το λογισμικό της το 1968. Για να εμποδίσουν την ελεύθερη διανομή του προγράμματός τους, το έδιναν με μια μορφή leasing. Οι πελάτες τους πλήρωναν μόνιμα για την χρήση του προγράμματος της ADR. Η ADR ήταν ο ιδιοκτήτης του προγράμματος, κι έλεγχε έτσι τη μεταπώληση και χρήση του προγράμματος.

Το 1969 το Υπουργείο Δικαιοσύνης των ΗΠΑ κατηγόρησε την IBM ότι καταστρέφει τις επιχειρήσεις διανέμοντας δωρεάν λογισμικό με το υλικό της IBM. Το αποτέλεσμα ήταν να σταματήσει τη διανομή λογισμικού με τους υπολογιστές της η IBM. Έτσι το λογισμικό έγινε ένα ξεχωριστό, ανεξάρτητο προϊόν από το υλικό.

Το 1968 η εταιρεία Informatics διέδωσε το πρώτο «killer application», συνεισφέροντας έτσι στην αποκρυστάλλωση της ιδέας του λογισμικού ως προϊόντος, της έννοιας της εταιρείας λογισμικού, και των πολύ ακριβών τιμών πώλησης του λογισμικού. Η Informatics έκανε γνωστή την ιδέα της άδειας λογισμικού, η οποία είναι πλέον εγγενές μέρος της βιομηχανίας λογισμικού, σύμφωνα με την οποία η ιδιοκτησία του λογισμικού δε μεταφέρεται ποτέ στον πελάτη.

3. Το Unix από την σκοπιά της άδειας BSD

Η αρχική υλοποίηση του Unix ανήκε στην εταιρεία AT&T. Η AT&T, λόγω των περιορισμών που είχε ως κρατικά ελεγχόμενο μονοπώλιο, δε μπορούσε να πουλήσει προϊόντα λογισμικού. Μπορούσε όμως να παρέχει λογισμικό σε ακαδημαϊκά ιδρύματα, στο κόστος του αποθηκευτικού μέσου.

Μετά από ένα συνέδριο για λειτουργικά συστήματα, στο οποίο παρουσιάστηκε το Unix, τα πανεπιστήμια υιοθέτησαν το Unix πολύ γρήγορα. Οι βασικοί λόγοι για τη δημοτικότητα του Unix ήταν ότι έτρεχε σε PDP-11, ένα πολύ φτηνό υπολογιστή 16-bit, και ότι ήταν γραμμένο σε μια γλώσσα υψηλού επιπέδου, η οποία ήταν εμφανώς καλή για προγραμματισμό συστημάτων. Οι υπολογιστές PDP-11 της DEC είχαν, ουσιαστικά, ένα ανοιχτό interface υλικού, σχεδιασμένο ακριβώς για να μπορούν οι πελάτες να γράψουν το δικό τους λειτουργικό σύστημα. Πολλοί λοιπόν έκαναν ακριβώς αυτό. Όπως έχει πει ο Ken Olsen, ιδρυτής της DEC: «Το λογισμικό έρχεται από τους ουρανούς, αν έχεις καλό υλικό».

Ο δημιουργός του UNIX, ο Ken Thompson, επέστρεψε στο πανεπιστήμιο του Μπέρκλεϋ στην Καλιφόρνια (University of California, Berkeley; UCB) το 1975, για να διδάξει γραμμή προς γραμμή πως δούλευε το Unix. Αυτό είχε ως αποτέλεσμα τη μετεξέλιξη του Unix στο σύστημα το οποίο έγινε γνωστό ως BSD (Berkeley Software Distribution). Το UCB μετέφερε το Unix σε 32-bit υπολογιστές, πρόσθεσε ένα υποσύστημα εικονικής μνήμης, και υλοποίησε την έκδοση του TCP/IP πάνω στην οποία βασίστηκε, πρακτικά, όλο το Internet. Το UCB παρείχε το BSD στο κόστος που χρειαζόταν το αποθηκευτικό μέσο για να μεταφερθεί, με μια άδεια που έγινε γνωστή ως «άδεια BSD». Όποιος ήθελε το BSD, αγόραζε μια άδεια για το Unix από την AT&T κι ύστερα παράγγελνε μια κασέτα με το BSD από το UCB.

Στα μέσα της δεκαετίας του 1980, μια αντικοινοπρακτική μήνυση της κυβέρνησης των ΗΠΑ εναντίον της AT&T, ανάγκασε την AT&T να αναδιοργανωθεί σε μικρότερες εταιρείες. Η AT&T είχε ακόμα την ιδιοκτησία του Unix, αλλά τώρα μπορούσε πλέον να το πουλήσει ως προϊόν. Οπότε, ξεκίνησε από την AT&T μια έντονη προσπάθεια για απαίτηση άδειας για το Unix, και οι περισσότερες εμπορικές εκδόσεις του Unix έγιναν «παράγωγα» του AT&T Unix.

Στις αρχές της δεκαετίας του 1990 η AT&T μήνυσε το UCB για παραβίαση της άδειας του Unix. Το UCB βρήκε ότι η AT&T είχε ενσωματώσει στα προϊόντα της, χωρίς να τις αγοράσει και χωρίς να αναφέρει την πηγή τους, πολλές από τις βελτιώσεις του BSD. Μια δικαστική διαμάχη μεταξύ της AT&T και του UCB ξεκίνησε, και κράτησε πολύ καιρό. Όσο ακόμη συνεχιζόταν η διαμάχη, ορισμένοι προγραμματιστές του UCB ξεκίνησαν την προσπάθεια να ξαναγράψουν από την αρχή οποιοδήποτε κομμάτι του AT&T Unix ήταν μέρος του BSD. Το αποτέλεσμα αυτής της προσπάθειας ήταν ένα σύστημα που λέγεται BSD 4.4-Lite. Ο χαρακτηρισμός «Lite» σημαίνει ότι δεν ήταν ένα ολοκληρωμένο σύστημα (έλειπαν 6 σημαντικά αρχεία της AT&T).

Λίγο αργότερα, στο περιοδικό Dr. Dobbs εμφανίστηκε μια μεγάλη σειρά από άρθρα για ένα παράγωγο του BSD προσαρμοσμένο σε συστήματα 386. Αυτή η έκδοση του Unix για PC περιείχε νέες εκδόσεις των 6 αρχείων που έλειπαν από το 4.4 BSD-Lite. Οι νέες εκδόσεις των 6 αρχείων είχαν άδεια BSD. Αυτό το σύστημα, το οποίο λεγόταν 386BSD, είχε φτιαχτεί από έναν πρώην προγραμματιστή του UCB: τον Ουίλιαμ Τζόλιτζ (William Jolitz). Στην αρχή, το 386BSD αποτέλεσε τη βάση όλων των σημερινών συστημάτων PC BSD.

Στα μέσα της δεκαετίας του 1990, η Novell αγόρασε τα δικαιώματα του Unix από την AT&T και έκανε μια (τότε μυστική ακόμα) συμφωνία να σταματήσει τη δικαστική διαμάχη. Λίγο μετά το UCB σταμάτησε να υποστηρίζει επίσημα το BSD.

4. Η Σημερινή Κατάσταση της Άδειας του FreeBSD και των Αδειών BSD

Η νέα άδεια τύπου BSD, με την οποία διανέμεται το FreeBSD τα τελευταία χρόνια, είναι ουσιαστικά μια δήλωση ότι μπορείτε να κάνετε ότι θέλετε με τον πηγαίο κώδικα του FreeBSD, αλλά δεν παρέχεται καμία εγγύηση γι' αυτόν και δε φέρει ευθύνη για προβλήματα με τον πηγαίο κώδικα κανείς από τους συγγραφείς του (βασικά, δε μπορείτε να κάνετε μήνυση σε κάποιον). Αυτή η νέα άδεια BSD έχει ως σκοπό να ενθαρρύνει την εμπορευματοποίηση του πηγαίου κώδικα. Οποιοδήποτε κομμάτι BSD κώδικα μπορεί να πωληθεί ή να ενσωματωθεί σε εμπορικά προϊόντα, χωρίς κανένα περιορισμό ή απαίτηση για διαθεσιμότητα του κώδικα ή κάποια άλλη προϋπόθεση σχετικά με τη μελλοντική συμπεριφορά σας.

Είναι σημαντικό να μη μπερδεύουμε την άδεια BSD με τις άδειες «public domain». Παρόλο που ένα αντικείμενο μα άδεια public domain είναι κι αυτό διαθέσιμο για οποιαδήποτε χρήση, τα αντικείμενα public domain δεν έχουν συγκεκριμένο ιδιοκτήτη.

5. Οι Απαρχές της Άδειας GPL

Τα τέλη της δεκαετίας του 1980 ήταν λίγο περίεργη περίοδος για το μέλλον του UNIX. Παρόλ' αυτά από τα μέσα της δεκαετίας του 1980 και τις αρχές της επόμενης δεκαετίας, του 1990, άρχισε να φέρνει αποτελέσματα η GPL - ένα άλλο έργο με σημαντικές επιπτώσεις στο θέμα των αδειών λογισμικού.

Ο Richard Stallman, ο προγραμματιστής που έφτιαξε το Emacs, ήταν μέλος της ομάδας του MIT όταν το εργαστήριο στο οποίο δούλευε άλλαξε, από συστήματα που είχαν αναπτυχθεί εσωτερικά στο ίδιο το εργαστήριο σε εμπορικά συστήματα. Ο Stallman ενοχλήθηκε όταν ανακάλυψε ότι δε μπορούσε να προσθέσει χαρακτηριστικά σε ένα εμπορικό σύστημα ή να βελτιώσει τα υπάρχοντα χαρακτηριστικά με νόμιμο τρόπο. (Πολλοί από τους παλιούς συνεργάτες του Stallman είχαν φύγει για να ιδρύσουν δύο εταιρείες βασισμένες σε λογισμικό το οποίο είχε αναπτυχθεί στο MIT και ήταν διαθέσιμο με άδεια από το MIT. Δεν είναι ξεκάθαρο όμως ποιός είχε πρόσβαση στον πηγαίο κώδικα του λογισμικού.) Με αφορμή αυτές τις εξελίξεις, ο Stallman εφηύρε μια άδεια λογισμικού ως εναλλακτική των εμπορικών αδειών: την άδεια GPL ή «GNU Public License». Ίδρυσε επίσης και ένα μη κερδοσκοπικό οργανισμό, τη Free Software Foundation (FSF), με σκοπό την ανάπτυξη ενός ολοκληρωμένου λειτουργικού συστήματος και όλου του σχετικού λογισμικού· ενός συστήματος που δε θα είχε κανέναν από τους περιορισμούς των εμπορικών αδειών λογισμικού. Αυτό το σύστημα λεγόταν GNU, ένα όνομα που σήμαινε «GNU is Not Unix».

Η άδεια GPL είχε σχεδιασθεί με σκοπό να είναι ο αντίποδας των συνηθισμένων εμπορικών αδειών λογισμικού. Έτσι απαιτούσε να διανέμονται με την ίδια άδεια, τη GPL, όλες οι αλλαγές ενός προγράμματος που ήδη διανέμεται με άδεια GPL (απαιτώντας να είναι διαθέσιμος ο πηγαίος κώδικας σε κάθε χρήστη). Επίσης απαιτούσε να διανέμεται με άδεια GPL κάθε πρόγραμμα που συνδεόταν με κώδικα GPL. Ο βασικός στόχος της GPL ήταν να εμποδίσει με κάθε τρόπο την εμπορευματοποίηση του πηγαίου κώδικα ενός προγράμματος. Όπως λέει και η τελευταία παράγραφος της GPL:

«Αυτή η Γενική Δημόσια Άδεια δεν επιτρέπει την ενσωμάτωση του προγράμματός σας σε εμπορικά προγράμματα.»[1]

Η άδεια GPL είναι μια ιδιαίτερα πολύπλοκη άδεια, οπότε ορισμένοι απλοί κανόνες που μπορεί να σας βοηθήσουν όταν έχετε να κάνετε με GPL κώδικα είναι οι εξής:

Μπορείτε να χρεώσετε όσο θέλετε για τη διανομή, την υποστήριξη, ή την τεκμηρίωση του λογισμικού, αλλά δε μπορείτε να πουλήσετε το ίδιο το πρόγραμμα.

Ένας απλός κανόνας είναι: αν χρειάζεται πηγαίος κώδικας με άδεια GPL για να μεταγλωττιστεί ένα πρόγραμμα, το πρόγραμμα πρέπει να διανέμεται με άδεια GPL. Η σύνδεση (linking) με μια στατική βιβλιοθήκη άδειας GPL απαιτεί και το υπόλοιπο πρόγραμμα να διανέμεται με άδεια GPL.

Αν υπάρχουν πατέντες που σχετίζονται με ένα πρόγραμμα άδειας GPL, τότε η άδεια GPL απαιτεί αυτές οι πατέντες να είναι διαθέσιμες για ελεύθεση χρήση από όλους.

Η απλή παράθεση προγραμμάτων στο ίδιο αποθηκευτικό μέσο, π.χ. η αποθήκευση στον ίδιο δίσκο, δεν επηρεάζεται από την άδεια GPL: στον ίδιο αποθηκευτικό δίσκο μπορεί να αποθηκεύονται προγράμματα με άδεια GPL και προγράμματα με άλλες άδειες λογισμικού.

Η έξοδος ενός προγράμματος δεν θεωρείται παράγωγο έργο. Για παράδειγμα, η έξοδος του μεταγλωττιστή gcc μπορεί να χρησιμοποιηθεί σε εμπορικά περιβάλλοντα, χωρίς κανένα νομικό πρόβλημα.

Αφού ο πυρήνας του Linux διανέμεται με άδεια GPL, οποιοσδήποτε κώδικας συνδέεται με στατικό τρόπο με τον πυρήνα του Linux πρέπει να διανέμεται κι αυτός με την ίδια άδεια. Αυτός ο περιορισμός μπορεί να αρθεί με δυναμική σύνδεση με τον πυρήνα του Linux (loadable kernel modules). Αυτό επιτρέπει σε εταιρείες να διανέμουν οδηγούς συσκευών σε εκτελέσιμη μορφή, αλλά έχει συχνά το μειονέκτημα ότι μπορεί να λειτουργήσει σωστά μόνο με συγκεκριμένες εκδόσεις του πυρήνα.

Λόγω της μεγάλης πολυπλοκότητας της άδειας GPL, σε πολλά μέρη του κόσμου αγνοεί ο κόσμος τις νομικές πολυπλοκότητες της GPL σε σχέση με το Linux και άλλα προϊόντα λογισμικού. Οι μακροχρόνιες επιδράσεις τις οποίες μπορεί να έχει αυτό δεν είναι πολύ ξεκάθαρες.

6. Οι Απαρχές του Linux και της LGPL

Όσο μαινόταν ο πόλεμος μεταξύ των εμπορικών Unix, άρχισε να αναπτύσσεται ο πυρήνας του Linux ως κλώνος του Unix για PC. Ο Linus Torvalds αποδίδει την ύπαρξη του Linux στη διαθεσιμότητα του GNU C compiler και των σχετικών GNU εργαλείων ανάπτυξης. Γι' αυτό διανέμει τον πυρήνα του Linux με άδεια GPL.

Θυμηθείτε ότι η GPL απαιτεί να διανέμεται με άδεια GPL κάθε πρόγραμμα που συνδέεται στατικά (static linking) με ένα πρόγραμμα που έχει ήδη άδεια GPL. Ο πηγαίος κώδικας για κάθε πρόγραμμα με άδεια GPL πρέπει να είναι διαθέσιμος σε κάθε χρήστη του προγράμματος. Αντίθετα, η δυναμική σύνδεση με κώδικα που έχει άδεια GPL δε θεωρείται παραβίαση της GPL. Η πίεση να διανέμονται ακόμα και εμπορικά προγράμματα με άδεια GPL άρχισε να αυξάνεται· ειδικά για προγράμματα που έπρεπε να συνδέονται με βιβλιοθήκες του συστήματος. Αυτό οδήγησε στη δημιουργία μιας διαφορετικής έκδοσης της άδειας GPL, με όνομα LGPL («Library GPL», η οποία πλέον λέγεται «Lesser GPL»). Η LGPL επιτρέπει τη σύνδεση εμπορικού κώδικα με τη GNU C library, τη glibc. Δε χρειάζεται να διαθέσετε τον πηγαίο κώδικα ενός προγράμματος αν αυτό συνδέεται δυναμικά με μια βιβλιοθήκη άδειας LGPL.

Αν ένα πρόγραμμα συνδέεται στατικά (static linking) με τη glibc, για παράδειγμα όπως γίνεται συχνά σε embedded συστήματα, δε γίνεται να κρατήσετε τον κώδικα της εφαρμογής με εμπορική άδεια· πρέπει ο πηγαίος κώδικας να διανέμεται κι αυτός με άδεια GPL. Για προγράμματα με στατική σύνδεση με GPL κώδικα, τόσο η GPL όσο και η LGPL απαιτούν ο κώδικας του προγράμματος να διανέμεται με την ίδια άδεια.

7. Οι Άδειες Ανοιχτού Λογισμικού και το Πρόβλημα του Ορφανού Κώδικα

Ένα από τα πιο σοβαρά προβλήματα του εμπορικού λογισμικού είναι το πρόβλημα του «ορφανού κώδικα». Αυτό εμφανίζεται όταν μια συγκεκριμένη εταιρεία αποτυγχάνει ή αλλάζει στρατηγική σχετικά με ένα προϊόν, προκαλώντας προβλήματα σε μια τεράστια πυραμίδα από εξαρτημένα συστήματα και εταιρείες για λόγους πέρα από τον έλεγχό τους. Δεκαετίες εμπειρίας έχουν δείξει ότι το προσωρινό μέγεθος ή η επιτυχία μιας εταιρείας δεν παρέχουν καμία εγγύηση σχετικά με τη διαθεσιμότητα του λογισμικού της εταιρείας. Καθώς αλλάζουν οι συνθήκες της αγοράς ή οι στρατηγικές των εταιρειών - πολλές φορές με πολύ γρήγορο ρυθμό - τα προγράμματα μπορεί να πάψουν να είναι διαθέσιμα για οποιοδήποτε λόγο.

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

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

8. Τι δε Μπορεί να Κάνει μια Άδεια Λογισμικού

Καμία άδεια λογισμικού δε μπορεί να εγγυηθεί τη μελλοντική διαθεσιμότητα ενός προγράμματος. Ο ιδιοκτήτης του copyright ενός προγράμματος μπορεί να αλλάξει τους όρους του copyright οποιαδήποτε στιγμή. Η κοινότητα του BSD θεωρεί ότι σε αυτή την περίπτωση ένα από τα άμεσα αποτελέσματα είναι η διάσπαση και η ανεξάρτητη ανάπτυξη του κώδικα.

Η GPL απαγορεύει ρητά την αλλαγή της άδειας. Παρόλ' αυτά υπάρχει τουλάχιστον μία περίπτωση που αυτό δεν έγινε: μια εταιρεία (η Mattel) αγόρασε ένα GPL copyright (cphack), ακύρωσε κάθε όρο του αρχικού copyright, πήγε στα δικαστήρια και κέρδισε τη δίκη [2]. Κατάφεραν, δηλαδή, με νόμιμο τρόπο, να ακυρώσουν το copyright για τη διανομή του συγκεκριμένου προγράμματος και όλων των παράγωγων έργων. Δεν είναι ξεκάθαρο αν κάτι τέτοιο θα μπορούσε να γίνει με ένα πολύ μεγαλύτερο ή πολύ πιο διαδεδομένο πρόγραμμα. Υπάρχουν επίσης αμφιβολίες σχετικά με το αν το αρχικό πρόγραμμα ήταν άδειας GPL.

Ένα άλλο παρόμοιο παράδειγμα είναι η εξαγορά της Cygnus από τη Red Hat. Η Cygnus ήταν μια εταιρεία μηχανικών, η οποία είχε αναλάβει την ανάπτυξη των εργαλείων μεταγλώττισης (compiler tools) της FSF. Η Cygnus μπορούσε να το κάνει αυτό επειδή είχε αναπτύξει ένα μοντέλο υποστήριξης των εργαλείων GNU: πουλούσαν τεχνική υποστήριξη για αυτά τα εργαλεία, οπότε μπορούσαν να συντηρούν μια ομάδα 50 προγραμματιστών και να ορίζουν την πορεία ανάπτυξης των εργαλείων, προσφέροντας την πλειοψηφία των αλλαγών που γίνονταν σε αυτά. Όπως έχει πει ο Donald Rosenberg: «Οι ομάδες που χρησιμοποιούν προϊόντα λογισμικού με άδεια GPL... ζουν με τη μόνιμη απειλή ότι κάποιος άλλος θα πάρει τα ηνία στο έργο επειδή έφτιαξε μια καλύτερη έκδοση του κώδικα ή απλά επειδή μπορεί να το κάνει πιο γρήγορα από τους αρχικούς προγραμματιστές»[3].

9. Πλεονεκτήματα και Μειονεκτήματα της Άδειας GPL

Ένας από τους πιο συνηθισμένους λόγους για να χρησιμοποιήσει κανείς την άδεια GPL είναι επειδή χρειάζεται να κάνει αλλαγές στον μεταγλωττιστή GCC ή να τον επεκτείνει. Αυτό είναι πολύ χρήσιμο όταν δουλεύει με καινούριους επεξεργαστές ή ειδικούς επεξεργαστές, σε περιβάλλοντα όπου κάθε κόστος λογισμικού μπορεί να θεωρηθεί περιττό κόστος, ή όταν είναι πολύ μικρή η πιθανότητα να χρησιμοποιηθεί από άλλους το αποτέλεσμα του καινούριου μεταγλωττιστή.

Η άδεια GPL είναι ελκυστική και για τις μικρές εταιρείες οι οποίες πωλούν CD-ROM σε ένα περιβάλλον όπου ισχύει ο κανόνας «αγόρασε φτηνά, πούλα ακριβότερα» και υπάρχουν ακόμη περιθώρια κέρδους. Είναι επίσης ελκυστική για εκείνες τις εταιρείες οι οποίες επιβιώνουν παρέχοντας διάφορες μορφές τεχνικής υποστήριξης ή τεκμηρίωσης για τα προϊόντα με άδεια GPL.

Ένα ακούσιο και λιγότερο τεκμηριωμένο αποτέλεσμα της GPL είναι η συμπάθεια που της δείχνουν οι μεγάλες εταιρείες, με σκοπό να υπονομεύσουν τις μικρότερες εταιρείες λογισμικού. Μερικές φορές η GPL μπορεί να ταιριάξει πολύ καλά με στρατηγικές μάρκετινγκ, και να χρησιμοποιηθεί με σκοπό τη μείωση του άμεσου οικονομικού κέρδους, συνεισφέροντας με το δικό της τρόπο σε μονοπωλιακές τακτικές.

Η άδεια GPL μπορεί να είναι πολύ σημαντικό πρόβλημα για όποιον θέλει να εμπορευματοποιήσει ένα έργο λογισμικού και να βγάλει κέρδος από αυτό. Για παράδειγμα, η GPL μπορεί να είναι εμπόδιο στα σχέδια ενός φοιτητή που σκέφτεται να ιδρύσει μια εταιρεία με βάση την ιδέα της έρευνάς του, ή μπορεί να είναι εμπόδιο στα σχέδια ενός εργαζόμενου που θέλει να συνεργαστεί με μια εταιρεία με βάση μια προσωπική του ιδέα.

Για όσους χρειάζεται να δουλεύουν με στατικά συνδεμένα προγράμματα και να συνδυάζουν κώδικα από πολλά μέρη ή κώδικα που είναι συμβατός με μια ποικιλία από πρότυπα, η GPL δεν είναι τόσο καλή επιλογή άδειας, επειδή απαγορεύει τη χρήση εμπορικών υλοποιήσεων αυτών των προτύπων. Έτσι η GPL μειώνει τον αριθμό των προγραμμάτων που μπορούν να αναπτυχθούν σε αυτά που χρησιμοποιούν μόνο τα πρότυπα GPL. Ο σκοπός της ίδιας της GPL είναι να μη μπορεί να φτιάξει κανείς εμπορικά προϊόντα με GPL κώδικα. (Αυτός ο περιορισμός δεν ισχύει για όλες τις εφαρμογές Linux, επειδή οι περισσότερες από αυτές δεν χρησιμοποιούν στατική σύνδεση με τον GPL κώδικα του Linux, αλλά βασίζονται σε ένα δυναμικό API.)

Η GPL προσπαθεί να πείσει τους προγραμματιστές να συνεισφέρουν σε ένα συνεχώς εξελισσόμενο σύνολο προγραμμάτων, με περιθώριο συναγωνισμού στη διανομή και την τεχνική υποστήριξη αυτών των προγραμμάτων. Αυτό δεν είναι ρεαλιστικό σενάριο όμως για πολλά καίρια συστήματα και πρότυπα, τα οποία μπορεί να είναι χρήσιμα σε μεγάλη ποικιλία συστημάτων και ταυτόχρονα να απαιτούν εμπορικές επεκτάσεις ή προσαρμογές ή ενσωμάτωση σε υπάρχοντα προγράμματα με legacy πρότυπα και υπάρχουσες άδειες, ασύμβατες με την άδεια GPL. Για παράδειγμα, τα real-time και τα embedded συστήματα χρησιμοποιούν στατική σύνδεση πολύ συχνά, οπότε η GPL και η LGPL αποτελούν σοβαρό πρόβλημα για εταιρείες οι οποίες δραστηριοποιούνται σε αυτό το χώρο.

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

Η GPL έχει σχεδιαστεί, βασικά, με σκοπό να εμποδίσει τα αποτελέσματα της έρευνας από το να κάνουν τη μετάβαση σε εμπορικά προϊόντα. Πολλές φορές αυτό θεωρείται ένα από τα τελευταία βήματα στην παραδοσιακή μεταφορά τεχνογνωσίας από το ερευνητικό στο εμπορικό στάδιο, και είναι συνήθως αρκετά δύσκολο σαν βήμα ακόμα και κάτω από τις καλύτερες συνθήκες. Η GPL έχει σχεδιαστεί έτσι που αυτό το βήμα να είναι πρακτικά αδύνατον να πραγματοποιηθεί.

10. Πλεονεκτήματα της Άδειας BSD

Η άδεια BSD είναι πολύ καλή επιλογή για ερευνητικά ή άλλα έργα, όταν αυτά έχουν μεγάλη διάρκεια και χρειάζονται ένα περιβάλλον ανάπτυξης το οποίο:

έχει πολύ μικρό ή μηδενικό κόστος

θα συνεχίσει να εξελίσσεται σε βάθος χρόνου

επιτρέπει σε οποιονδήποτε να συνεχίσει, ακόμη και να εμπορευματοποιήσει τα τελικά αποτελέσματα με πολύ μικρό κόστος και ελάχιστα νομικά προβλήματα

Αυτό το τελευταίο χαρακτηριστικό είναι πολύ συχνά εκείνο που παίζει τον πιο σημαντικό ρόλο. Κλασικό παράδειγμα είναι η επιλογή άδειας του Apache project:

«Αυτού του είδους η άδεια είναι ιδανική για την προώθηση ενός πηγαίου κώδικα που λειτουργεί ως σημείο αναφοράς για την υλοποίηση ενός πρωτοκόλου κοινής χρήσης. Αυτός είναι ένας από τους λόγους για τους οποίους διαλέξαμε μια τέτοια άδεια για το apache group. Πολλοί από εμάς θέλουμε να επιβιώσει το HTTP και να γίνει ένα πρότυπο το οποίο είναι αποδεκτό από όλους, και δε θα μας πειράξει καθόλου αν η Microsoft ή η Netscape ενσωματώσει τη δική μας μηχανή HTTP σε δικά τους προϊόντα, αν αυτό προωθήσει ακόμη περισσότερο το στόχο μας για κοινή χρήση του HTTP... Αυτό σημαίνει ότι είναι στρατηγικής σημασίας για το έργο μας να διατηρήσουμε την ενεργητικότητα που έχει σήμερα, και να πείσουμε τους συμμετέχοντες ότι κερδίζουν περισσότερα συνεισφέροντας κώδικα στο έργο μας. Ακόμη και κώδικα που μπορεί να είχε αξία αν τον κρατούσαν ως εμπορικό μυστικό.»

Οι προγραμματιστές τείνουν να προτιμούν την άδεια BSD επειδή τους αφήνει να ασχολούνται με τον κώδικα, και να κάνουν αυτό που πραγματικά θέλουν, χωρίς να ασχολούνται με περίπλοκα νομικά ζητήματα. Αντίθετα, όσοι θέλουν να χρησιμοποιούν το τελικό αποτέλεσμα ως ένα ολοκληρωμένο σύστημα, ή ξέρουν πως άλλοι θα κάνουν την ανάπτυξη του λογισμικού, ή όσοι δεν περιμένουν να ζήσουν από τις αλλαγές και βελτιώσεις τις οποίες κάνουν σε ένα σύστημα (όπως π.χ. οι εργαζόμενοι σε κυβερνητικούς φορείς), προτιμούν την άδεια GPL επειδή αναγκάζει τους άλλους να τους δώσουν περισσότερο κώδικα και εμποδίζει τους εργοδότες τους από το να κρατήσουν τα πνευματικά δικαιώματα και να «θάψουν» ή να αφήσουν ορφανό ένα πρόγραμμα. Αν θέλετε να αναγκάσετε τους ανταγωνιστές σας να σας βοηθήσουν, τότε η GPL είναι ιδιαίτερα ελκυστική ως επιλογή.

Μια άδεια τύπου BSD δεν είναι απλά ένα δώρο. Μια από τις πιο συχνές ερωτήσεις σχετικά με τις άδειες BSD είναι: «Γιατί να βοηθήσω τους ανταγωνιστές μου να κλέψουν τη δουλειά μας;». Στην πραγματικότητα η άδεια BSD δίνει κίνητρο στους ανταγωνιστές να συνεργαστούν. Αν μία μόνο εταιρεία καταφέρει να κυριαρχήσει σε κάποιο τομέα τον οποίο οι άλλες εταιρείες θεωρούν στρατηγικής σημασίας, τότε οι άλλες εταιρείες μπορούν, με ελάχιστη προσπάθεια, να ιδρύσουν μια μικρή επιτροπή με στόχο την επαναφορά της ισορροπίας. Μπορούν τότε να συνεισφέρουν όλες μαζί στην βελτίωση ενός ανταγωνιστικού BSD προϊόντος, αυξάνοντας τον ανταγωνισμό της αγοράς. Έτσι κάθε εταιρεία μπορεί να κερδίσει από κάποιου είδους πλεονέκτημα, το οποίο μπορεί να προσφέρει η ίδια, ενώ ταυτόχρονα όλες μαζί συνεισφέρουν στην οικονομική ευελιξία και αποδοτικότητα της αγοράς. Όσο πιο γρήγορα και εύκολα μπορούν να το κάνουν αυτό τα συνεργαζόμενα μέλη μιας τέτοιας ομάδας, τόσο πιο πετυχημένη μπορεί να γίνει η ομάδα. Μια άδεια BSD είναι, ουσιαστικά, μια άδεια λογισμικού που επιτρέπει και ενθαρρύνει τέτοιες συμπεριφορές, με το ελάχιστο νομικό κόστος και πολύ μικρή νομική πολυπλοκότητα.

Ο πιο σημαντικός στόχος της GPL είναι η δημιουργία ενός πλήρους και ανταγωνιστικού συστήματος Ελεύθερου Λογισμικού, διαθέσιμου σε οποιονδήποτε το θέλει ή το χρειάζεται με ελάχιστο ή καθόλου κόστος, είναι σημαντικός στόχος. Μια άδεια BSD, σε συνδυασμό με ad-hoc ομάδες από ενδιαφερόμενους συνεργάτες, μπορεί να πετύχει τον ίδιο στόχο χωρίς να καταστρέψει τα οικονομικά κίνητρα του συστήματος μεταφοράς τεχνογνωσίας.

11. Οδηγίες για τη Χρήση μιας Άδειας Τύπου BSD

Η άδεια BSD είναι προτιμότερη για τη μεταφορά ερευνητικών αποτελεσμάτων έτσι που να μπορούν να χρησιμοποιηθούν σε μεγάλο εύρος εφαρμογών, μεγιστοποιώντας το όφελος της οικονομίας από αυτά. Γι' αυτό πρέπει οι οργανώσεις που χρηματοδοτούν ερευνητικά έργα, όπως η NSF, ONR και DARPA, να ενθαρρύνουν τη χρήση μιας άδειας τύπου BSD. Μια τέτοια άδεια είναι ιδανική τόσο για τα πρώτα στάδια ενός ερευνητικού έργου, όσο και για τα προγράμματα, τα δεδομένα και το υλικό που χρησιμοποιείται. Οι χρηματοδότες οργανισμοί θα πρέπει επίσης να ενθαρρύνουν τη χρήση ανοιχτών προτύπων και ανοιχτών συστημάτων, τα οποία υλοποιούνται με βάση υπάρχοντα ανοιχτά συστήματα και ανοιχτά πρότυπα.

Η πολιτική των κυβερνήσεων πρέπει να ελαχιστοποιεί το κόστος και τα προβλήματα της μετάβασης από ερευνητικό σε εφαρμοσμένο στάδιο. Όταν αυτό είναι δυνατόν, η χρηματοδότηση μιας ερευνητικής εργασίας θα πρέπει να απαιτεί τη διαθεσιμότητα των αποτελεσμάτων με βάση μια άδεια που επιτρέπει και την εμπορική χρήση των αποτελεσμάτων - όπως οι άδειες τύπου BSD.

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

Οι εταιρείες έχουν καταλάβει πλέον ότι η δημιουργία de facto προτύπων είναι μια καλή τεχνική προβολής. Μια άδεια τύπου BSD μπορεί να λειτουργήσει άνετα με τέτοιο τρόπο, ειδικά όταν μια εταιρεία έχει το πλεονέκτημα να οδηγεί τις εξελίξεις ενός συστήματος. Η άδεια είναι ελκυστική από νομικής πλευράς σε όσο το δυνατόν μεγαλύτερο κοινό, και την ίδια στιγμή η εμπειρία μιας εταιρείας με το συγκεκριμένο σύστημα εξασφαλίζει ότι θα έχει τον έλεγχο σε ότι αφορά στην ανάπτυξη και εξέλιξη του συστήματος. Μερικές φορές μπορεί να παίξει τον ίδιο ρόλο στη δημιουργία de facto προτύπων και κάποια άλλη άδεια, όπως η GPL, ειδικά όταν υπάρχει λόγος να καθυστερήσουν ή να έχουν διάφορα εμπόδια οι ανταγωνιστές. Η GPL όμως δημιουργεί άλλου είδους προβλήματα στην προώθηση ενός προτύπου, επειδή ενθαρρύνει τη δημιουργία μιας ολοκληρωμένης σουίτας κι όχι ενός ανεξάρτητου, εμπορικά διαθέσιμου και βιώσιμου προτύπου. Η χρήση μιας σουίτας GPL προγραμμάτων δημιουργεί, από την άλλη, μια σειρά από προβλήματα και νομικές δυσκολίες σχετικά με την εμπορική χρήση ενός συστήματος. Ένα πραγματικά χρήσιμο τεχνικό πρότυπο δε θα 'πρεπε να δημιουργεί τέτοιου είδους προβλήματα ή να απαιτεί τον αποκλεισμό άλλων προτύπων για μη τεχνικούς λόγους.

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

Οι μεγάλες εταιρείες, στις οποίες αναπτύσσεται και Open Source λογισμικό, είναι καλό να γνωρίζουν ότι οι προγραμματιστές προτιμούν το Open Source λογισμικό επειδή παραμένει διαθέσιμο στον εργαζόμενο όταν αλλάζει εργοδότη. Μερικές εταιρείες ενθαρρύνουν κάτι τέτοιο, θεωρώντας το άλλη μια προσφορά της εταιρείας στον εργαζόμενο, ειδικά όταν το σχετικό λογισμικό δεν είναι στρατηγικής σημασίας για την ίδια την εταιρεία. Η όλη ιδέα είναι, βασικά, ένα είδος από «επίδομα» ή προσφορά της εταιρείας στον εργαζόμενο, το οποίο εμπεριέχει την πιθανότητα μελλοντικού κόστους για την εταιρεία αλλά δεν κοστίζει τίποτα με άμεσο τρόπο. Ένας τρόπος με τον οποίο ωφελείται μια εταιρεία όταν ενθαρρύνει τους εργαζόμενούς της να προσφέρουν σε έργα Open Source είναι η φήμη που κερδίζουν μεταξύ των συναδέλφων τους. Η ευκαιρία για κάτι τέτοιο είναι κι αυτή ένα είδος από «προσφορά» της εταιρείας στους εργαζόμενους, η οποία δεν έχει σχεδόν κανένα κόστος ή μειονέκτημα.

Οι μικρές εταιρείες, με έργα τα οποία είναι εύκολο να μείνουν ορφανά από συντηρητές αξίζει να χρησιμοποιήσουν κάποια άδεια τύπου BSD. Ανεξάρτητα από το μέγεθος που έχουν μια συγκεκριμένη στιγμή, όλες οι εταιρείες αξίζει να σκεφτούν τουλάχιστον την πιθανότητα να ιδρύσουν ένα έργο Open Source γύρω από ένα κομμάτι λογισμικού, ειδικά όταν ο σκοπός τους είναι η συνεργασία με άλλες εταιρείες με το ελάχιστο νομικό και οργανωτικό κόστος. Οι άδειες τύπου BSD ταιριάζουν πολύ καλά με αυτού του είδους τα έργα.

Οι μη κερδοσκοπικοί οργανισμοί θα 'πρεπε να συμμετέχουν σε έργα Open Source όποτε είναι δυνατόν κάτι τέτοιο. Οι άδειες τύπου BSD είναι ιδανικές για τέτοιους οργανισμούς, επειδή μειώνουν στο ελάχιστο τα προβλήματα με τη χρήση του κώδικα. Οπότε είναι καλή ιδέα να τις προτιμούν οι μη κερδοσκοπικοί οργανισμοί. Σε αντίθεση με τις απλές BSD άδειες, η άδεια GPL μπορεί να είναι πηγή προβλημάτων για τους μη κερδοσκοπικούς οργανισμούς που δραστηριοποιούνται στον αναπτυσσόμενο κόσμο. Σε μερικά μέρη όπου η εφαρμογή του νόμου μπορεί να κοστίσει πολλά χρήματα, η απλότητα των αδειών BSD σε σύγκριση με την άδεια GPL μπορεί να είναι σημαντικό πλεονέκτημα.

12. Επίλογος

Σε αντίθεση με την άδεια GPL, η οποία έχει σχεδιαστεί για να εμποδίσει με κάθε τρόπο την εμπορική χρήση του λογισμικού, οι άδειες τύπου BSD έχουν πολύ λίγες απαιτήσεις και όρους για οποιαδήποτε μελλοντική χρήση του λογισμικού. Έτσι το λογισμικό με άδεια BSD μπορεί να παραμείνει Open Source ή να ενσωματωθεί σε εμπορικές λύσεις, ακολουθώντας τις αλλαγές στις ανάγκες του δημιουργού του ή κάποιας εταιρείας. Με λίγα λόγια, οι άδειες τύπου BSD δε δημιουργούν νομικά προβλήματα στο μέλλον ή κατά τη διάρκεια της ανάπτυξης ενός προγράμματος.

Το πιο σημαντικό πλεονέκτημα μιας άδειας τύπου BSD είναι ότι δεν περιέχει περίπλοκους νομικούς όρους, όπως οι άδειες GPL και LGPL, οπότε επιτρέπει στους προγραμματιστές και τις εταιρείες να αφιερώνουν περισσότερο από το χρόνο τους στη δημιουργία και την προώθηση του κώδικα, αντί να ανησυχούν αν ο κώδικας που γράφουν έχει παραβιάσει κάποια άδεια.

13. Αναφορές

[1] http://www.gnu.org/licenses/gpl.html

[2] http://archives.cnn.com/2000/TECH/computing/03/28/cyberpatrol.mirrors/

[3] Open Source: the Unauthorized White Papers, Donald K. Rosenberg, IDG Books,
    2000. Quotes are from page 114, ``Effects of the GNU GPL''.

[4] Το τμήμα «What License to Use?» του
    http://www.oreilly.com/catalog/opensources/book/brian.html

Αυτό το άρθρο είναι μια συνοπτική έκδοση μιας προηγούμενης
εργασίας του συγγραφέα, η οποία είναι διαθέσιμη στη διεύθυνση:
http://alumni.cse.ucsc.edu/~brucem/open_source_license.htm