1.1.8 Εισαγωγή στην ανοικτότητα


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

Επειδή η παραπάνω παρατήρηση είναι πολύ σημαντική είναι καλό να αποσαφηνιστεί με μία παραβολή:

Ο Γιάννης ζει σε ένα χωρίο 10 χιλιόμετρα από την πόλη. Το χωρίο του παρέχει τα περισσότερα από όσα χρειάζεται, αλλά μια στο τόσο θέλει να πηγαίνει και στην πόλη. Ο γείτονας του, ταλαντούχος μηχανολόγος μηχανικός, έχει κατασκευάσει με κόπο και μεράκι ένα αρκετά καλό αυτοκίνητο. Επειδή όμως είναι απορροφημένος με τα σχέδια και τις κατασκευές του το χρησιμοποιεί σπάνια. Προτείνει λοιπόν στον Γιάννη, αντί να ξοδέψει ένα σωρό λεφτά για την αγορά ενός αυτοκινήτου, να του παραχωρήσει μια άδεια χρήσης του δικού του. Φυσικά θέτει κάποιους όρους: θα το χρησιμοποιεί αυτός και μόνο αυτός, στην διαδρομή για την πόλη, το πολύ μια φορά τη βδομάδα και εφόσον συμπληρώνει την απαιτούμενη βενζίνη κάθε φορά. Ο Γιάννης σαν αντάλλαγμα του δίνει 1.000 ευρώ και παραλαμβάνει αντίγραφο από τα κλειδιά και μια άδεια χρήσης του αυτοκινήτου. Δηλαδή μια σελίδα κειμένου που αναφέρει τα παραπάνω δικαιώματα και υποχρεώσεις του σχετικά με το αυτοκίνητο με την υπογραφή του ιδιοκτήτη του στο τέλος.

Είναι σαφές πως ο Γιάννης της ιστορίας μας δεν αγόρασε το αυτοκίνητο αλλά ένα σύνολο από δικαιώματα σχετικά με αυτό (και ένα αντίγραφο από τα κλειδιά). Με ακριβώς τον ίδιο τρόπο, οι αγοραστές λογισμικού δεν αγοράζουν το λογισμικό αλλά κάποια απολύτως συγκεκριμένα και περιορισμένα δικαιώματα επί αυτού και ένα αντίγραφο του εκτελέσιμου κώδικα του λογισμικού.

Το λογισμικό που διατίθεται με αυτόν τον τρόπο χαρακτηρίζεται ως ιδιόκτητο (proprietary) επειδή παραμένει στην αποκλειστική ιδιοκτησία του κατασκευαστή του. Ο κατασκευαστής συνήθως παραχωρεί τόσο λίγα δικαιώματα που είναι σωστότερο να συζητάμε για το τι περιορισμοί τίθενται.

Με την ανάπτυξη του Internet οι προγραμματιστές που συνειδητοποιούσαν τους περιορισμούς του ιδιόκτητου λογισμικού μπόρεσαν να έρθουν εύκολα σε επαφή και αναζήτησαν μια μέθοδο ανάπτυξης, διάθεσης και χρήσης λογισμικού που θα τους έδινε μεγαλύτερη ελευθερία. Το αποτέλεσμα ήταν αφενός η ωρίμανση μεθόδων συνεργατικής ανάπτυξης και ελεύθερης διάθεσης λογισμικού το οποίο φτάνει στους χρήστες με ελάχιστους περιορισμούς και αφετέρου μια αυξανόμενη συλλογή από τα προϊόντα αυτής της μεθόδου, δηλαδή το Ελεύθερο Λογισμικό / Λογισμικό Ανοικτού Κώδικα (ΕΛ/ΛΑΚ). [1]

Ο όρος «Ελεύθερο Λογισμικό / Λογισμικό Ανοικτού Κώδικα» (ΕΛ/ΛΑΚ) ομαδοποιεί το Ελεύθερο Λογισμικό (ΕΛ) και το Λογισμικό Ανοικτού Κώδικα (ΛΑΚ). Ως σύνολο περιγράφει λογισμικό το οποίο διατίθεται με ειδικές άδειες, οι οποίες επιτρέπουν στους χρήστες να μελετήσουν, να τροποποιήσουν και να βελτιώσουν το λογισμικό. Ο τεχνικός τρόπος με τον οποίο επιτυγχάνεται αυτό είναι η διαθεσιμότητα του πηγαίου κώδικα από αποθετήρια(source code repositories. Οι αντίστοιχοι αγγλικοί όροι είναι Free Software και Open Source Software ενώ η ομαδοποίηση αναφέρεται συνήθως ως FOSS (Free and Open Source Software) ή FLOSS (Free/Libre/Open Source software). [2]

Ποια είναι η διαφορά μεταξύ Ελεύθερου Λογισμικού και Λογισμικού Ανοικτού Κώδικα;

Οι δύο αυτές ομάδες περιγράφουν λογισμικό με παρόμοια μοντέλα ανάπτυξης και διάθεσης. Η κύρια διαφορά μεταξύ τους είναι ότι ο όρος Ελεύθερο Λογισμικό εστιάζει στις ελευθερίες που παρέχονται στο χρήστη, μέσω της αδειοδότησης, ενώ το Λογισμικό Ανοικτού Κώδικα δίνει έμφαση στο τεχνικό σημείο της διαθεσιμότητας του πηγαίου κώδικα και της δυνατότητας συνεργατικής ανάπτυξης.  Από νομικής απόψεως, οι ανωτέρω διαφορετικές προτεραιότητες εκφράζονται με την επιλογή των αντίστοιχων αδειών χρήσης του λογισμικού. Για παράδειγμα, η διάθεση του Ελεύθερου Λογισμικού συνοδεύεται από την ανάλογη άδεια, που εγγυάται στο χρήστη, την ελευθερία τροποποίησης και χρήσης. [3]

Ένα λογισμικό για να θεωρηθεί ως ελεύθερο θα πρέπει, σύμφωνα με το Ίδρυμα Ελεύθερου Λογισμικού (FSF - Free Software Foundation), η άδεια χρήσης του να διασφαλίζει τις παρακάτω ελευθερίες για τον χρήστη του:

·        Την ελευθερία να εκτελέσει το πρόγραμμα για οποιονδήποτε σκοπό (freedom 0)

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

·        Την ελευθερία του να αντιγράψει το αρχικό πρόγραμμα και να το αναδιανείμει σε κάποιον τρίτο (freedom 2)

·        Την ελευθερία να βελτιώσει το πρόγραμμα και να διανείμει τις βελτιώσεις που έχει κάνει στο ευρύ κοινό, ώστε να επωφεληθεί ολόκληρη η κοινότητα (freedom 3)

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

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

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

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

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

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

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

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

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

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

Τύποι αδειών

Οι άδειες ΕΛ/ΛΑΚ μπορούν να κατηγοριοποιηθούν σε δύο μεγάλες ομάδες: Τις προστατευτικές και τις μη προστατευτικές.

Οι μη προστατευτικές δεν εφαρμόζουν κανέναν περιορισμό στην διανομή του λογισμικού  (είτε όπως είναι, είτε αφότου μετατραπεί). Παραδείγματα Μη-Προστατευτικών αδειών:  BSD, Apache Software License, MIT License κ.α.

Οι προστατευτικές θέτουν τον περιορισμό ότι ο χρήστης μπορεί να το διαθέσει σε τρίτους µόνο κάτω από το καθεστώς της ίδιας άδειας χρήσης µε αυτή κάτω από την οποία το έλαβε και ο ίδιος. Αυτός ο περιορισμός υπάρχει για να διασφαλίσει ότι κάθε αποδέκτης είτε του πρωτότυπου λογισμικού είτε του λογισμικού που προκύπτει από την τροποποίηση του θα συνεχίσει να απολαμβάνει τις ίδιες ελευθερίες και δικαιώματα, δηλαδή ο εξασφαλίζουν ότι ο κώδικας θα παραμείνει πάντα ανοικτός/ελεύθερος. Παραδείγματα Προστατευτικών αδειών: GNU General Public License v.2.0,  GNU Lesser General Public License v.2.1, Open Software License v.1.1, Python Software Foundation License.

Δημοφιλείς εφαρμογές ΕΛ/ΛΑΚ 

Φυλλομετρητής  Δικτύου (Web Browser):Χαρακτηριστικό παράδειγμα είναι της Netscape Corporation, όπου στα τέλη της δεκαετίας του 1990 αποφάσισε να δημοσιοποιήσει τον κώδικα του Mozilla Firefox. Η απόφαση αυτή θεωρείται από τις πρωτοπόρες που άνοιξε το δρόμο στην εδραίωση του ανοικτού λογισμικού

Προγράμματα Ηλεκτρονικού Ταχυδρομείου (E-mail Clients): Mozilla Thunderbird.

Εφαρμογές Γραφείου: Η ολοκληρωμένη σουίτα εφαρμογών γραφείου το Libre Office.

Λειτουργικά Συστήματα: GNU/Linux, FreeBSD και ΟpenSolaris.

Εξυπηρετητής ιστοσελίδων: Apache

Επεξεργασία Βίντεο / Εικόνας / Γραφικών / Ήχου: OpenShot Επεξεργαστής βίντεο, GIMP Επεξεργαστής Εικόνων, Audacity Επεξεργαστής και ηχογράφος ήχου, VLC media player, Blender Δημιουργία τρισδιάστατων γραφικών

Επεξεργαστές / Περιβάλλον εργασίας (IDE): Eclipse.org, Netbeans

Συμπίεση / Αποσυμπίεση αρχείων: 7-Zip

Γλώσσες Προγραμματισμού: JavaScript, Python, Java, PHP

Βάσεις δεδομένων: MySQL Community Edition, PostgreSQL, MariaDB

Όλα τα προϊόντα ΕΛ/ΛΑΚ διατίθενται δωρεάν;

Υπάρχουν πολλές περιπτώσεις ΕΛ/ΛΑΚ, τα οποία διατίθενται έναντι χρηματικού αντιτίμου, παρέχοντας συνήθως στον αγοραστή και επιπρόσθετες υπηρεσίες όπως, η συντήρηση, η εγκατάσταση και η τεχνική βοήθεια. Παράλληλα, υπάρχει περίπτωση κάποιος κατασκευαστής να παρέχει δωρεάν το ΕΛ/ΛΑΚ και να χρεώνει τις υπηρεσίες τεχνικής υποστήριξης. [4]



[1] Πηγή: http://www.it.uom.gr/teaching/ellak.html

[3] Πηγή: https://mathe.ellak.gr/ti-ine-to-ellak

[4] Πηγή: https://mathe.ellak.gr/ti-ine-to-ellak