Ελεύθερο Λογισμικό-Λογισμικό Ανοικτού Κώδικα

Από Κοινότητα Ελεύθερου Λογισμικού ΕΜΠ
Αναθεώρηση της 01:33, 8 Νοεμβρίου 2007 υπό τον Psomas (Συζήτηση | συνεισφορές)

(διαφορά) ←Παλαιότερη αναθεώρηση | Τελευταία αναθεώρηση (διαφορά) | Νεώτερη αναθεώρηση → (διαφορά)
Μετάβαση σε: πλοήγηση, αναζήτηση

Εισαγωγή

Οι όροι "Ελεύθερο Λογισμικό" ("Free Software") και "Λογισμικό Ανοικτού Κώδικα" ("Open Source Software") αναφέρονται σε προγράμματα των οποίων ο πηγαίος κώδικας είναι προσβάσιμος σε άτομα εκτός της εταιρείας παραγωγής τους και συνεργατών της. Οι όροι αυτοί δεν αναφέρονται σε λογισμικό που διατίθεται δωρεάν (freeware) καθώς το ελεύθερο λογισμικό/λογισμικό ανοικτού κώδικα μπορεί να έχει (μεγάλη) τιμή πώλησης, ενώ αντίθετα υπάρχουν πολλά πακέτα "δωρεάν" λογισμικού των οποίων ο πηγαίος κώδικας είναι μη προσβάσιμος σε άτομα εκτός της εταιρείας παραγωγής. Στον αντίποδα βρίσκεται το "κλειστό" (closed source) ή "ιδιοταγές" (proprietary) λογισμικό, του οποίο ο πηγαίος κώδικας παραμένει κρυφός σε τρίτα άτομα (συμπεριλαμβανομένων των χρηστών του λογισμικού). Το τελευταίο μοντέλο ακολουθούν οι περισσότερες μεγάλες εταιρείες λογισμικού, όπως η Microsoft, η Adobe, η EA Games, η Oracle κλπ.

Το ελεύθερο λογισμικό αντιμετωπιζόταν ως και πριν δέκα χρόνια ως μια ιδεαλιστική προσπάθεια κάποιων "ρομαντικών" που δεν απέβλεπαν σε οικονομικά ωφέλη και προτιμούσαν την αναγνώριση στην κοινότητα των hacker από μια καλοπληρωμένη θέση σε μια από τις μεγάλες εταιρείες λογισμικού. Σιγά σιγά όμως, και σε αυτό συντέλεσε κυρίως η συνειδητοποίηση του ότι το λογισμικό δεν αποτελεί προϊόν αλλά υπηρεσία, το ανοικτό λογισμικό άρχισε να θεωρείται ένα βιώσιμο μοντέλο οικονομικής ανάπτυξης, το οποίο μπορεί να αποφέρει πολύ μεγαλύτερα κέρδη, πιο αξιόπιστες υπηρεσίες και περισσότερες ευκαιρείες απ'ότι το κλειστό λογισμικό. Μετά το 2000, παρατηρείται μια έκρηξη ενδιαφέροντος από μεγάλες εταιρείες, καθώς όλο και περισσότερες "ανοίγουν" πλέον τον κώδικα των προγραμμάτων τους (IBM, Sun, Apple) αλλά και δηλώνουν ανοικτή προτίμηση σε προγράμματα ανοικτού κώδικα (Pixar, Dell). Η ανάλυση του μοντέλου ανάπτυξης βασιζομένου στο ανοικτό λογισμικό γίνεται σε άλλο κείμενο.

Τελευταία, η ιδέα του ανοικτού λογισμικού έχει επεκταθεί και σε άλλους τομείς υπηρεσιών. Έτσι, πλέον, ακούμε για "ανοικτό" hardware (που στην ουσία έγκειται σε δημοσιοποίηση του κώδικα VHDL ή Verilog που παράγει το εν λόγω κύκλωμα), "ανοικτό" φορμά αρχείων, "ελεύθερη" βιβλιογραφία/τεκμηρίωση κλπ.

Ανοικτό ή ελεύθερο;

Αν και οι περισσότεροι άνθρωποι διατυπώνουν στους όρους "Ελεύθερο" και "Ανοικτό" λογισμικό αναφερόμενοι στο ίδιο πράγμα, υπάρχει μια μικρή ιδεολογική διαφορά ανάμεσα σε αυτά τα δύο. Σύμφωνα με το Free Software Foundation, οι ελευθερίες που δίνει μια άδεια χρήσης λογισμικού είναι οι εξής:

  • Η ελευθερία να τρέξεις το πρόγραμμα, για οποιονδήποτε σκοπό (freedom 0)
  • Η ελευθερία να διαβάσεις ή να τροποποιήσεις τον πηγαίο κώδικα του προγράμματος (και κατά συνέπεια και το ίδιο το πρόγραμμα) για ιδιωτική χρήση (freedom 1)
  • Η ελευθερία του να αντιγράψεις το αρχικό πρόγραμμα και να το δώσεις σε κάποιον τρίτο (freedom 2)
  • Η ελευθερία του να μπορείς να δημοσιοποιείς τροποποιημένες και βελτιωμένες εκδόσεις του προγράμματος σε τρίτα άτομα (freedom 3)

Οι περισσότερες EULA (End-User Licence Agreement) των ιδιοταγών προγραμμάτων δίδουν μόνο την ελευθερία (0) και απαγορεύουν ρητά ως ποινικό αδίκημα κατά πνευματικής ιδιοκτησίας τις υπόλοιπες. Θεωρητικά, οποιοδήποτε πρόγραμμα δίδει και την ελευθερία (1) θεωρείται ότι εμπίπτει στην κατηγορία του ανοικτού λογισμικού (ή λογισμικού ανοικτού κώδικα, open source software), άσχετα με το εάν επιτρέπει τις ελευθερίες (2) και (3). Τα προγράμματα τα οποία δίνουν και τις τέσσερις ελευθερίες χρήσης ανήκουν στο ελεύθερο λογισμικό (free software). Στην πράξη τώρα, η συντριπτική πλειονότητα των προγραμμάτων ανοικτού κώδικα είναι και ελεύθερα, δηλαδή επιτρέπουν (υπό κάποιους όρους) στον χρήστη να τροποποιήσει τον πηγαίο κώδικα του προγράμματος και να τον δώσει σε τρίτα άτομα. Ελάχιστα είναι τα προγράμματα που παρέχουν μεν τον πηγαίο τους κώδικα, απαγορεύουν δε τη δημοσίευσή του (αυτούσιου ή τροποποιημένου) σε τρίτους. Για τον λόγο αυτό, οι όροι "ελεύθερο" και "ανοικτό" λογισμικό έχουν γίνει πλέον σχεδόν συνώνυμοι.

Άδειες Ελεύθερου Λογισμικού

Σε ποιον ανήκει το ελεύθερο λογισμικό; Μπορώ να το αντιγράψω; Μπορώ να αλλάξω μια γραμμή στον κώδικα και το πουλήσω ως κλειστό λογισμικό; Αν και στις περισσότερες περιπτώσεις, ιδιοκτήτης του copyright παραμένει ο αρχικός συγγραφέας του λογισμικού, οι απαντήσεις στις παραπάνω ερωτήσεις εξαρτώνται από την άδεια (licence) με την οποία έρχεται το εκάστοτε πρόγραμμα, και την οποία είναι υποχρεωμένος να δεχθεί όποιος σκοπεύει να το χρησιμοποιήσει με οποιονδήποτε έμμεσο ή άμεσο τρόπο. Οι κυριότερες άδειες ανοικτού λογισμικού είναι οι εξής:

Apache Licence

Δημιουργήθηκε από το Apache Foundation και είναι η άδεια υπό την οποία διανέμεται ο εξυπηρετητής HTTP Apache. Είναι μια πολύ αναλυτικά διατυπωμένη άδεια, που ενώ επιτρέπει την αναδιανομή και τροποποίηση του λογισμικού, απαιτεί αυτή να γίνεται υπό την ίδια άδεια, να δείχνονται αναλυτικά ποια αρχεία του πηγαίου κώδικα πείραξε ο χρήστης και απαγορεύει τη χρήση υλικού που σχετίζεται με πατέντες λογισμικού καθώς και τη χρήση ονομάτων και συμβόλων του αρχικού συγγραφέα για διαφημιστικούς σκοπούς. Τέλος, απαλάσσει το δημιουργό από κάθε ευθύνη σχετική με τη χρήση του προγράμματος. Εκτός από τον Apache, την άδεια χρησιμοποιούν πολλά προγράμματα που σχετίζονται με αυτόν, όπως ο Tomcat.

Apache Licences: http://www.apache.org/licenses/

Artistic Licence

Την συνέταξε ο συγγραφέας της perl, Larry Wall. Η πρώτη της έκδοση ήταν τόσο περίπλοκα διατυπωμένη που πολλοί την κατηγόρησαν ότι δεν είναι άδεια ελεύθερου λογισμικού. Η γλώσσα προγραμματισμού perl αλλά και πολλά modules της ήταν συνδεδεμένα με αυτήν. Η δεύτερη έκδοση είναι πιο σαφώς διατυπωμένη, και δίδει το δικαίωμα ανάγνωσης, τροποποίσης και αναδιανομής του πηγαίου κώδικα/προγράμματος (υπό οποιαδήποτε άδεια), εφ'όσον διατηρείται η αναφορά στον αρχικό συγγραφέα του προγράμματος, σε περίπτωση που δεν υπάρξει τροποποίηση. Επιπλέον, απαλλάσει το συγγραφέα από κάθε ευθύνη σχετική με τη χρήση του προγράμματος. Η postgreSQL διατίθεται υπό αυτήν την άδεια.

Αρχική Artistic Licence: http://www.perl.com/language/misc/Artistic.html

Artistic∞ Licence, 2nd Edition: http://dev.perl.org/rfc/346.html

BSD Licence

Η άδεια αυτή αφορά λογισμικό που αναπτύχθηκε αρχικά στο πανεπιστήμιο Berkeley στην Καλιφόρνια των ΗΠΑ. Είναι μια από τις πιο 'ελεύθερες' άδειες, εφ'όσον επιτρέπει την ανάγνωση, την τροποποίηση και την αναδημοσίευση του προγράμματος υπό οποιαδήποτε άδεια, με ή χωρίς τον πηγαίο κώδικα, σε εμπορικά ή μη εμπορικά πακέτα. Επιπλέον, υπάρχουν τροποποιήσεις της άδειας, που αφορούν όμως μόνο το θέμα της χρήσης του ονόματος του αρχικού συγγραφέα για διαφημιστικούς σκοπούς. Παράδειγμα προγραμμάτων που τη χρησιμοποιούν είναι όλα τα είδη λειτουργικού BSD (freeBSD, netBSD, openBSD) καθώς και οι αρχικές εκδόσεις των προγραμμάτων ηλεκτρονικού σχεδιασμού Spice, Magic και IrSim. Ως αποτέλεσμα της ελευθερίας που δίδει η άδεια για χρήση κώδικα ελεύθερων προγραμμάτων σε ιδιοταγή προγράμματα, πολλά κλειστά λειτουργικά συστήματα έχουν κομμάτια βασισμένα στο BSD (π.χ. μέρος του network API στα Windows 2000∞) και πολλά ιδιοταγή πακέτα ηλεκτρονικού σχεδιασμού βασίζονται στο Spice. Αυτό εκλαμβάνεται σαν ελευθερία από τους οπαδούς της άδειας, αλλά πολλές φορές δρα ανασταλτικά προς την ανάπτυξη του ελεύθερου λογισμικού (βλ. http://www.gnu.org/philosophy/x.html ).

Η BSD Licence: http://www.opensource.org/licenses/bsd-license.php

GNU General Public Licence (GPL)

GNU.png

Γράφτηκε αρχικά από τον Richard Stallman για το GNU project. Επιτρέπει την ανάγνωση, τροποποίηση και αναδιανομή του λογισμικού, μαζί με τον πηγαίο κώδικα του, με τον όρο ότι τροποιημένες ή μη εκδόσεις του θα αναδιανείμονται υπό την ίδια άδεια. Εν ολίγοις, διασφαλίζει ότι οι χρήστες του τροποποιημένου λογισμικού θα απολαμβάνουν τις ίδιες ελευθερίες με το χρήστη του αρχικού λογισμικού. Συνεπώς απαγορεύει την χρήση (ολόκληρου ή τμήματος) του πηγαίου κώδικα του προγράμματος σε κλειστά πακέτα λογισμικού. Αυτό εξασφαλίζεται δίνοντας το copyright του προγράμματος στον αρχικό δημιουργό, οπότε σε περίπτωση που κάποιος δε σεβαστεί την GPL μπορεί να μυνηθεί για καταπάτηση πνευματικών δικαιωμάτων. Η GNU GPL έχει κατηγορηθεί από πολλούς ως "ιός" (επειδή θα πρέπει κάθε πρόγραμμα που έχει σχέση με το αρχικό να τη φέρει) και ότι στερεί τη δημιουργία άμεσου κέρδους στον προγραμματιστή (επειδή μπορεί οποιοσδήποτε να αναδιανείμει το λογισμικό). Παρά τις κριτικές αποτελεί τη σημαντικότερη και πιο διαδεδομένη άδεια ελεύθερου λογισμικού. Σημαντικά προγράμματα που τη χρησιμοποιούν είναι ο πυρήνας του Linux, o μεταγλωττιστής gcc, ο επεξεργαστής κειμένου Emacs, ο διερμηνέας της Perl, o Mozilla Firefox, η ΜySQL, το Cygwin, το σύστημα αρχείων ReiserFS και πλέον και η βιβλιοθήκη Qt. Μια πιο ελαστική έκδοση της GPL είναι η GNU Lesser General Public Licence (LGPL). Μια LGPL βιβλιοθήκη για παράδειγμα, μπορεί να συνδεθεί με ένα πρόγραμμα που χρησιμοποιεί άλλη άδεια, ακόμα και αν αυτό δεν είναι ελεύθερο λογισμικό. Το 2005 άρχισαν συζητήσεις για την τρίτη έκδοση της άδειας, η οποία δίνει ιδιαίτερη έμφαση σε θέματα πατεντών λογισμικού και DRM. H GNU GPLv3 εκδόθηκε στις 27 Ιουνίου 2007.

GNU GPL, v3.0: http://www.gnu.org/licenses/gpl.html

GNU LGPL, v3.0: http://www.gnu.org/copyleft/lesser.html

MIT Licence

H άδεια αυτή επιτρέπει την τροποποίηση και την αναδιανομή του προγράμματος με οποιονδήποτε τρόπο, υπό οποιαδήποτε άδεια, για οποιονδήποτε σκοπό. Το πιο γνωστό πρόγραμμα που τη χρησιμοιποιεί είναι ο X Window System (X11) που χρησιμοιείται για το παραθυρικό περιβάλλον στις περισσότερες διανομές Linux, και γι'αυτό η άδεια αυτή ονομάζεται πολλές φορές και X Licence ή X11 Licence. Άλλα προγράμματα που τη χρησιμοποιούν είναι το Expat, το MetaKit, και το PuTTY.

MIT Licence Template: http://www.opensource.org/licenses/mit-license.php

Open Software Licence

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

Open Software Licence: http://www.opensource.org/licenses/osl.php