RC_Andreas
Administrator
Ελεύθερο λογισμικό
Αν δεν ασχολείστε με τους Η/Υ και δεν το έχετε ακουστά, μην αγχώνεστε: Μάλλον δεν θα σας ενδιαφέρει και πολύ, αν και σε συζητήσεις οι μη-κομπιουεράκιδες δείχνουν αρκετό ενδιαφέρον, ίσως λόγω της ηθικής/φιλοσοφικές χροιάς που έχει το θέμα (ή μπορεί απλά να θέλουνε να τελειώσει η κουβέντα το συντομότερο).
Αν ασχολείστε με Η/Υ και δεν το ξέρετε, τότε πρέπει να κοιτάξετε να βγείτε κάτω από την πέτρα που βρίσκεστε.
Οι παρακάτω παραγράφοι περιγράφουν με απλά λόγια το τι είναι το open source και την σκοπιμότητα του, για να έχουν κάποιο νόημα αυτές οι σελίδες σε όλους.
Ελεύθερο τι;
Ελεύθερο λογισμικό είναι το λογισμικό το οποίο διατίθεται ελεύθερα. Αυτό σημαίνει πως όταν κάποιος το αποκτήσει μπορεί να το χρησιμοποιήσει, να το αντιγράψει, να το μελετήσει, να το τροποποιήσει και να το διανέμει ελεύθερα. Τα παραπάνω ισχύουν τόσο για τον πηγαίο κώδικα όσο και για τα εκτελέσιμα αρχεία του προγράμματος.
Δεν καταλαβαίνω.
Τα εντελώς εισαγωγικά: Οι υπολογιστές, όπως θα ξέρετε ήδη, αποτελούνται από το hardware και το software. Το software γράφεται, όπως και πάλι θα ξέρετε ήδη, με τη βοήθεια των γλωσσών προγραμματισμού, οι οποίες είναι ενδιάμεσες γλώσσες που τις ?καταλαβαίνουν? τόσο οι άνθρωποι όσο και τα computers, όπως οι C, Fortran (μπλιαχ) κλπ. Ο κώδικας αυτός λέγεται πηγαίος κώδικας (source code).
Όπως όμως οι άνθρωποι έχουν την κατ? εξοχήν γλώσσα τους που την προτιμάνε, έτσι και τα computers έχουν τη δική τους: τη γλώσσα μηχανής. Όπως εσάς σας φαίνεται εξωφρενικό να πείτε ?Για X από 1 μέχρι 4 φέρε ποτήρι νερό? αντί ?Φέρε 4 ποτήρια νερό?, έτσι και στα computers φαίνεται παράξενο μάλλον να πούνε ?Φέρε το τάδε από τη μνήμη? αντί να πούνε ?101001010111?. Έτσι, όπως κάποιος που θέλει να φτιάξει ένα πρόγραμμα, ζητάει από κάποιον προγραμματιστή που καταλαβαίνει από γλώσσες προγραμματισμού να το γράψει, έτσι και στα computers πρέπει ένα ειδικό πρόγραμμα, ο μεταγλωττιστής (compiler) να μεταφράσει την γλώσσα προγραμματισμού σε γλώσσα μηχανής.
Το compilation από γλώσσα προγραμματισμού σε γλώσσα μηχανής, έχει ένα κακό όμως: Επειδή υπερ-αναλύει τη διαδικασία σε πολύ μικρά κομματάκια, ?κρύβει? τις λεπτομέρειες υλοποίησης του προγράμματος από τους άλλους. Έτσι, από τη στιγμή που γίνεται compile ένα πρόγραμμα, δεν υπάρχει τρόπος να καταλάβει κανείς το πώς ο προγραμματιστής το έφτιαξε, ειδικά όταν μιλάμε για περίπλοκα προγράμματα.
Το πρόβλημα
Οι εταιρίες και οι προγραμματιστές από ένα σημείο και μετά έδιναν στους πελάτες τους μόνο τα εκτελέσιμα αρχεία (την γλώσσα μηχανής) ούτως ώστε οι ανταγωνιστές τους να βλέπουν μόνο το αποτέλεσμα και όχι την υλοποίηση των προγραμμάτων. Το κακό αυτής της προσέγγισης, η οποία έγινε η κατ΄εξοχήν πολιτική, είναι πως από τη στιγμή που δημιουργείται κάτι αρκετά περίπλοκο, είναι σχεδόν αδύνατο μια ανταγωνίστρια εταιρία να φτιάξει ένα ισάξιο προϊόν αφού πρέπει να ?ξανα-εφεύρει τον τροχό? για ό,τι έφτιαξε η άλλη εταιρία.
Φανταστείτε να μπορούσε να γίνει αυτό σε όλες τις άλλες βιομηχανίες: Αν σε ένα αστείο (αλλά ρεαλιστικό και συγκρίσιμο) σενάριο, τα καπώ των αυτοκινήτων δεν άνοιγαν, πιθανώς μόνο μία ή δυο εταιρίες να είχαν χειρόφρενο ή τετράχρονους κινητήρες, αερόσακους και ζώνες ασφαλείας! Προφανώς όλοι θα προτιμούσαν τα -σαφώς ανώτερα- προϊόντα τους, θα δημιουργείτο μονοπωλιακή αγορά και αναπόφευκτα η τεχνολογία των αυτοκινήτων θα ήταν χρόνια πίσω συγκριτικά με την σημερινή αφού μια-δυο εταιρίες θα ανέπτυσσαν την τεχνολογία.
Αυτό, δυστυχώς ή ευτυχώς δεν απέχει και πολύ από την πραγματικότητα στον κόσμο των υπολογιστών. Η ίδια η φύση του λογισμικού των υπολογιστών, δημιούργησε ένα περιβάλλον στο οποίο ευδοκιμούν εταιρίες-κολοσσοί οι οποίες χρησιμοποιώντας το σύστημα του κλειστού κώδικα διατηρούν το μονοπώλιο τους συνεχώς. Περιορίζοντας την ελευθερία των άλλων να έχουν πρόσβαση στην καρδιά αυτού που χρησιμοποιούν, το source code, οι εταιρίες πουλάνε μόνο το αποτέλεσμα και όχι την υλοποίηση.
Οι προγραμματιστές καταλαβαίνουν ακριβώς τα προβλήματα σε όλα αυτά. Προφανώς μια θεραπεία που θα ήταν διαθέσιμη μόνο σε ένα ιατρείο στον κόσμο θα πείραζε όχι μόνο τους γιατρούς αλλά και τους ασθενείς. Ή ένα σύστημα ασφάλειας των επιβατών στα αυτοκίνητα που θα ήταν προνόμιο μιας μόνο αυτοκινητοβιομηχανίας θα ενοχλούσε όχι μόνο τους μηχανικούς αλλά και τους οδηγούς που θέλουν ένα άλλο αυτοκίνητο με παρόμοια επίπεδα ασφάλειας. Έτσι και ο περιορισμός στις επιλογές μας λόγω του μονοπωλίου μιας ή δύο εταιριών στους υπολογιστές, θα έπρεπε να πειράζει όλους μας και όχι μόνο τους προγραμματιστές.
Το ελεύθερο λογισμικό
Από αρκετά παλιά κάποιοι προέβλεψαν τα προβλήματα που θα δημιουργηθούν αν το closed-source γινόταν ο de facto τρόπος ανάπτυξης του software. Ένας από αυτούς ήταν ο Richard Stallman, ο οποίος από την αρχή έκανε γνωστό το πρόβλημα και έθεσε τις βάσεις για την ανάπτυξη ενός νέου είδους προγραμμάτων: Των ελεύθερων προγραμμάτων.
Αυτά τα προγράμματα, όταν τα αποκτήσει κανείς (πληρώνοντας ή όχι), έχει το δικαίωμα να δει τον κώδικα τους. Η ελευθερία του αυτή, είναι ίδια με την ελευθερία που έχουμε να φτιάχνουμε τα αυτοκίνητα μας στο δικό μας μηχανικό και αυτή που έχει μια αυτοκινητοβιομηχανία να ?δει? το πώς έφτιαξε μια ανταγωνίστρια εταιρία μια τεχνολογία όπως το turbo ή την ζώνη ασφαλείας και το χειρόφρενο για να βελτιώσει τα δικά της μοντέλα.
Το open source και το free software υποστηρίζουν αυτό τον τρόπο ανάπτυξης προγραμμάτων. Το γιατί το FLOSS είναι καλύτερο από το closed-source μπορεί να το καταλάβει κανείς με λίγη ηθική και ορθολογική σκέψη.
Το Ελεύθερο λογισμικό παρέχει στους χρήστες την ελευθερία να εκτελούν, αντιγράφουν, διανέμουν, μελετούν, τροποποιούν και βελτιώνουν το Ελεύθερο λογισμικό. Για την ακρίβεια, ελευθερίες:
- Την ελευθερία να εκτελείτε το πρόγραμμα για οποιονδήποτε σκοπό (ελευθερία 0).
- Την ελευθερία να μελετάτε τον τρόπο λειτουργίας του προγράμματος και να το προσαρμόζετε στις ανάγκες σας (ελευθερία 1).
- Η πρόσβαση στον πηγαίο κώδικα είναι προϋπόθεση για να ισχύει κάτι τέτοιο.
- Την ελευθερία να αναδιανέμετε αντίγραφα του προγράμματος ώστε να βοηθάτε το συνάνθρωπο σας. (ελευθερία 2).
- Την ελευθερία να βελτιώνετε το πρόγραμμα και να δημοσιεύετε τις βελτιώσεις που έχετε κάνει στο ευρύ κοινό, ώστε να επωφεληθεί ολόκληρη η κοινότητα (ελευθερία 3).
Η πρόσβαση στον πηγαίο κώδικα είναι προϋπόθεση για να ισχύει κάτι τέτοιο. Ένα πρόγραμμα θεωρείται ελεύθερο λογισμικό όταν οι χρήστες του έχουν όλες τις παραπάνω ελευθερίες. Επομένως, θα πρέπει να είστε ελεύθεροι να αναδιανέμετε αντίγραφα, με ή χωρίς τροποποιήσεις, δωρεάν ή χρεώνοντας για την διανομή, στον οποιονδήποτε και οπουδήποτε. Το να είστε ελεύθεροι να κάνετε όλα τα παραπάνω σημαίνει (μεταξύ άλλων) πως δεν χρειάζεται να ζητήσετε εξουσιοδότηση ή να πληρώσετε κάποιον ώστε να λάβετε τη ανάλογη άδεια. Θα πρέπει επίσης να έχετε την ελευθερία να κάνετε τροποποιήσεις και να τις χρησιμοποιείτε ιδιωτικά στην δουλειά ή για διασκέδαση, χωρίς να χρειάζεται να το αναφέρετε. Αν δημοσιεύσετε τις αλλαγές σας, δεν είστε υποχρεωμένοι να ειδοποιήσετε κάποιο συγκεκριμένο άτομο.
Ωστόσο, μερικοί κανόνες που αφορούν τον τρόπο με τον οποίο διανέμεται το ελεύθερο λογισμικό είναι αποδεκτοί όταν δεν συγκρούονται με τις τέσσερις βασικές ελευθερίες. Για παράδειγμα, στην άδεια αντιγραφής (copyleft) όταν αναδιανέμετε κάποιο πρόγραμμα, δεν μπορείτε να προσθέσετε περιορισμούς ώστε να μειώσετε από τον χρήστη τις τέσσερις βασικές ελευθερίες. Αυτός ο κανόνας δεν συγκρούεται με τις βασικές ελευθερίες, αλλά τις προστατεύει. Μπορεί να έχετε πληρώσει για να προμηθευτείτε κάποια αντίγραφα ελεύθερου λογισμικού, ή να έχετε προμηθευτεί τα αντίγραφα χωρίς κάποια οικονομική επιβάρυνση.
Ανεξαρτήτως όμως από τον τρόπο προμήθειας, θα πρέπει πάντα να έχετε την ελευθερία να τροποποιείτε το λογισμικό, ακόμα και να πουλάτε αντίγραφα του. Ελεύθερο λογισμικό δεν σημαίνει μη-εμπορικό. Ένα ελεύθερο πρόγραμμα θα πρέπει να είναι διαθέσιμο για εμπορική χρήση, εμπορική ανάπτυξη ή εμπορική διανομή. Η εμπορική ανάπτυξη του ελευθέρου λογισμικού δεν είναι ασυνήθιστη. Αντιθέτως, τέτοιου είδους ελεύθερο λογισμικό είναι πολύ σημαντικό να υπάρχει.
Κανόνες για την διαδικασία πακεταρίσματος (packaging) μίας τροποποιημένης έκδοσης είναι αποδεκτοί όταν δεν σας περιορίζουν ουσιαστικά την ελευθερία να δημοσιεύετε τις διάφορες τροποποιημένες εκδόσεις. Κανόνες του τύπου εάν διαθέσετε το πρόγραμμα με τον τάδε τρόπο θα πρέπει να τον διαθέσετε επίσης και με τον δείνα τρόπο είναι αποδεκτοί, με την ίδια προϋπόθεση. (Σημειώστε ότι ένας τέτοιος κανόνας σας δίνει επίσης τη δυνατότητα να μη δημοσιεύσετε την δική σας έκδοση του προγράμματος καθόλου).
Κανόνες οι οποίοι απαιτούν τη δημοσίευση του πηγαίου κώδικα στους χρήστες των προγραμμάτων όλων των εκδόσεων που έχετε διαθέσει δημόσια είναι επίσης αποδεκτοί. Επίσης είναι αποδεκτό σε μία άδεια ελεύθερου λογισμικού να υπάρχουν και άλλου είδους απαιτήσεις, όπως πχ εάν έχετε διανέμει μία τροποποιημένη έκδοση ενός προγράμματος και κάποιος προηγούμενος κατασκευαστής ζητήσει αντίγραφο του, θα πρέπει να του αποστείλετε ένα, ή να δηλώσετε τον εαυτό σας στις μετατροπές που κάνατε. Στο έργο GNU, χρησιμοποιούμε την άδεια αντιγραφής (copyleft) για να προστατεύσουμε αυτές τις ελευθερίες νομικά και για όλους. Βέβαια υπάρχει και ελεύθερο λογισμικό το οποίο δεν χρησιμοποιεί την άδεια αντιγραφής (non-copylefted).
Προσωπικά, πιστεύουμε ότι υπάρχουν αρκετοί σημαντικοί λόγοι για τους οποίους θα πρέπει να προτιμάτε τη χρήση της άδειας αντιγραφής. Παρόλα αυτά, ακόμη και στην περίπτωση που το πρόγραμμα σας δεν δημοσιεύεται υπό την άδεια αντιγραφής, μπορούμε να το χρησιμοποιήσουμε.
Πολλές φορές κρατικοί κανονισμοί έλεγχου εξαγωγών και εμπορικά σωματεία (trade sanctions) μπορούν να περιορίσουν την ελευθερία σας να διανέμετε αντίγραφα προγραμμάτων παγκοσμίως. Οι προγραμματιστές δεν μπορούν να εξουδετερώσουν ή να παρακάμψουν τέτοιους περιορισμούς, αλλά αυτό που μπορούν και πρέπει να κάνουν είναι να αρνηθούν να τους επιβάλλουν για την χρήση του προγράμματος. Με αυτόν τον τρόπο, οι περιορισμοί δεν θα επηρεάσουν δραστηριότητες και ανθρώπους εκτός της δικαιοδοσίας αυτών των κυβερνήσεων.
Οι περισσότερες άδειες ελεύθερου λογισμικού βασίζονται στα πνευματικά δικαιώματα (copyright) και υπάρχουν όρια ως προς το είδος των απαιτήσεων που μπορούν να επιβληθούν μέσω αυτών. Εάν μία άδεια βασισμένη στα πνευματικά δικαιώματα σέβεται την ελευθερία με βάση την παραπάνω περιγραφή, είναι απίθανο να έχει κάποιο άλλο πρόβλημα που δεν είναι αναμενόμενο (αν και αυτό συμβαίνει περιστασιακά).
Ωστόσο, κάποιες άδειες ελεύθερου λογισμικού είναι βασισμένες σε συμβόλαια και τα συμβόλαια μπορούν να επιβάλλουν ένα πολύ μεγαλύτερο εύρος περιορισμών. Αυτό σημαίνει πως υπάρχουν πολλοί τρόποι με τους οποίους μία τέτοια άδεια μπορεί να είναι απαράδεκτα περιοριστική και ανελεύθερη. Δεν είναι δυνατόν να αναφέρουμε όλους τους πιθανούς περιορισμούς συμβολαίων που θα ήταν μη αποδεκτοί. Εάν μία άδεια βασισμένη σε συμβόλαια περιορίζει τον χρήστη κατά ένα παράξενο τρόπο που οι άδειες βασισμένες στα πνευματικά δικαιώματα αδυνατούν, και ο οποίος δεν αναφέρεται εδώ ως νόμιμος, θα πρέπει να το σκεφτούμε και πιθανότατα θα αποφασίσουμε πως είναι ανελεύθερη.
Όταν μιλάμε για το ελεύθερο λογισμικό, είναι καλό να αποφεύγουμε όρους όπως το δίνει έτσι (give away) ή δωρεάν (for free), διότι αυτοί υπονοούν ότι το θέμα είναι το κόστος και όχι η ελευθερία. Κάποιοι δημοφιλείς όροι όπως πειρατεία ενσωματώνουν απόψεις που ελπίζουμε πως δεν θα ασπαστείτε.
Έχουμε επίσης και μία λίστα μεταφράσεων του όρου ελεύθερο λογισμικό σε διάφορες γλώσσες. Τέλος, αξίζει να σημειωθεί πως κριτήρια σαν και αυτά που υπάρχουν στον ορισμό του ελεύθερου λογισμικού απαιτούν προσεκτική σκέψη για την ερμηνεία τους. Για να αποφασιστεί κατά πόσο μία συγκεκριμένη άδεια κατατάσσεται ως άδεια ελεύθερου λογισμικού, την κρίνουμε για το κατά πόσο πληρεί το πνεύμα και την πληρότητα των κριτηρίων. Εάν μία άδεια επιβάλλει παράλογους περιορισμούς, την απορρίπτουμε, ακόμα και αν δεν τους αναμέναμε στα κριτήρια.
Πολλές φορές ή απαίτηση κάποιας άδειας δημιουργεί ένα ζήτημα που απαιτεί εκτενή σκέψη, συμπεριλαμβανομένων και συζητήσεων με δικηγόρο, πριν αποφασίσουμε αν η απαίτηση είναι αποδεκτή. Όταν καταλήγουμε σε ένα συμπέρασμα για ένα καινούργιο θέμα, συχνά ανανεώνουμε αυτά τα κριτήρια για να είναι πιο εύκολο να δούμε εάν συγκεκριμένες άδειες είναι δεκτές ή όχι.
Πέρα από το λογισμικό
Τα εγχειρίδια λογισμικού πρέπει να είναι επίσης ελεύθερα, για τους ίδιους λόγους για τους οποίους πρέπει να είναι και το λογισμικό, και επιπρόσθετα επειδή αποτελούν αναπόσπαστο κομμάτι του λογισμικού. Οι ίδιες απόψεις έχουν νόημα και για άλλα είδη εργασίας που έχουν πρακτική χρήση, δηλαδή για εργασίες που ενσωματώνουν πολύτιμη γνώση, όπως οι επιμορφωτικές και επιστημονικές εργασίες. Η Βικιπαίδεια είναι το πιο δημοφιλές παράδειγμα. Οποιοδήποτε είδος εργασίας μπορεί να είναι ελεύθερο, με αποτέλεσμα ο ορισμός του ελεύθερου λογισμικού να έχει επεκταθεί στον ορισμό των ελεύθερων πολιτισμικών εργασιών που μπορεί να εφαρμοστεί σε όλα τα είδη εργασίας.
Ανοιχτός Κώδικας;
Μία άλλη ομάδα έχει αρχίσει να χρησιμοποιεί τον όρο ανοιχτός κώδικας (open source) για να επισημάνει κάτι παραπλήσιο (αλλά όχι ίδιο) με το ελεύθερο λογισμικό (free software). Προτιμούμε τον όρο ελεύθερο λογισμικό (free software) διότι, μόλις ακούσεις ότι αναφέρεται στην ελευθερία και όχι στο κόστος, φέρνει στο νου την ελευθερία. Η λέξη ανοιχτός αδυνατεί να αναφερθεί στην ελευθερία.
Διαβάστε ακόμη εδώ ένα πολύ δυνατό άρθρο για το θέμα αυτό
Πηγές
dimitris.glezos.com/opensource
gnu.org
lovefortechnology.net
Last edited: