Το εργο GNU

dadmin

Banned
Joined
19 Ιαν 2006
Μηνύματα
4.698
Αντιδράσεις
118
.

.

Το πως ξεκινησαν τα πραγματα ωστε να φτασουμε σημερα στο σημειο να εχουμε επιλογες στο τι λειτουργικο θα χρησιμοποιουμε στα Pc μας , ειναι γνωστο. Πρωτα ο Stallman με το project GNU (τη μεταφορα σε γενικες γραμμες του UNIX shell στα Pc με INTEL αρχιτεκτονικη) και μετα ο Linus με τον πυρηνα του (Linux). Μεσα στο χαμο που ακολουθησε και μεχρι το σημερινο χαος των Linux , FREEBSD διανομων αλλα και τον αλλων OSS λειτουργικων - μια μικρη παρενθεση για το ιστορικο της αρχης γραμμενο απο τον δημιουργο του.

(αναδημοσιευεται απο το http://www.gnu.org/gnu/thegnuproject.el.html)

Το έργο GNU

του Richard Stallman

δημοσιοποιήθηκε για πρώτη φορά στο βιβλίο "Open Sources"

Προβολή συνημμένου 45945


Η πρώτη κοινότητα διαμοιρασμού λογισμικού


Όταν ξεκίνησα να εργάζομαι στο εργαστήριο τεχνητής νοημοσύνης (TN) του τεχνολογικού ινστιτούτου Μασαχουσέτης (ΜΙΤ), έγινα μέλος μιας κοινότητας διαμοιρασμού λογισμικού η οποία προϋπήρχε για πολλά χρόνια. Ο διαμοιρασμός λογισμικού δεν ήταν περιορισμένος στη δική μας κοινότητα· είναι τόσο παλιός όσο και οι υπολογιστές, όπως το να μοιράζεσαι μια συνταγή είναι τόσο παλιό όσο και το μαγείρεμα. Όμως εμείς το εφαρμόζαμε (διαμοιράζαμε λογισμικό) περισσότερο από όλους.

Το εργαστήριο TN χρησιμοποιούσε ένα λειτουργικό σύστημα καταμερισμού χρόνου με όνομα ITS (μη συμβατό σύστημα καταμερισμού χρόνου - Incompatible Timesharing System), το οποίο οι hackers (1) του εργαστηρίου είχαν συγγράψει και σχεδιάσει σε συμβολική γλώσσα μηχανής για τον PDP-10 της Digital, έναν από τους ευρέως χρησιμοποιημένους ηλεκτρονικούς υπολογιστές (Η/Υ) εκείνης της εποχής. Ως μέλος της κοινότητας, και ως hacker συστημάτων του εργαστηρίου ΤΝ σκοπός μου ήταν να βελτιώσω αυτό το σύστημα.

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

(1) Η χρήση της λέξης "hacker" με την έννοια "εισβολέας συστημάτων" είναι ένα μπέρδεμα που οφείλεται στα μέσα μαζικής ενημέρωσης. Εμείς οι hackers αρνούμαστε να αναγνωρίσουμε αυτή τη σημασία, συνεχίζοντας να χρησιμοποιούμε τη λέξη με την έννοια του, "κάποιος που αγαπάει τον προγραμματισμό και απολαμβάνει τις αρετές του."

Η κατάρρευση της κοινότητας

Η κατάσταση άλλαξε δραστικά στις αρχές του 1980 όταν η Digital σταμάτησε τη σειρά του PDP-10. Αυτό σήμανε πως σχεδόν όλα τα προγράμματα που ήταν γραμμένα για το ITS ήταν πλέον άχρηστα.

Η κοινότητα των hacker του εργαστηρίου ΤΝ, είχε καταρρεύσει όχι πολύ καιρό πριν. Το 1981, η εμπορική εταιρεία Symbolics προσέλαβε σχεδόν όλο το προσωπικό του εργαστηρίου ΤΝ και η ολιγομελής κοινότητα ήταν ανήμπορη να συνεχίσει να υπάρχει (Το βιβλίο Hackers του Steven Levy περιγράφει αυτά τα γεγονότα, καθώς επίσης δίνει και μια ξεκάθαρη εικόνα της κοινότητας στις αρχές της.) Όταν το εργαστήριο ΤΝ αγόρασε έναν PDP-10 το 1982, οι διαχειριστές αποφάσισαν να χρησιμοποιήσουν το μη ελεύθερο σύστημα καταμερισμού χρόνου της Digital αντικαθιστώντας το ITS.

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

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

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

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

Μια προϋπόθεση είναι ότι οι εταιρείες λογισμικού έχουν αναμφισβήτητα το φυσικό δικαίωμα να έχουν υπό την ιδιοκτησία τους το λογισμικό και αυτονόητα να εκμεταλλεύονται τους χρήστες του. (Εάν αυτό ήταν φυσικό δικαίωμα, τότε όσο πληγή κι αν ήταν για την κοινωνία, δεν θα μπορούσαμε να αντιδράσουμε.) Ωστόσο, παρουσιάζει ιδιαίτερο ενδιαφέρον, ότι η Αμερικανική κυβέρνηση και οι νομικές αρχές απορρίπτουν αυτή την άποψη. Το δικαίωμα πνευματικής ιδιοκτησίας (copyright) δεν είναι φυσικό δικαίωμα, αλλά ένα τεχνητό κυβερνητικό μονοπώλιο επιμονής που περιορίζει το φυσικό δικαίωμα των χρηστών για αντιγραφή.

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

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

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

Δεν υπάρχει αρκετός χώρος για εκτενή αναφορά των λόγων που καταλήγουμε σε αυτό το συμπέρασμα, για περισσότερες πληροφορίες ανακατευθύνω τον αναγνώστη στην ιστοσελίδα με διεύθυνση http://www.gnu.org/philosophy/why-free.html.


Μια απόλυτα ηθική επιλογή


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

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

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

Είχα αποκτήσει ήδη την εμπειρία να υποφέρω από μια ιδιωτική άδεια, όταν κάποιος αρνήθηκε να δώσει σε εμένα και στο εργαστήριο ΤΝ του ΜΙΤ τον πηγαίο κώδικα του προγράμματος έλεγχου του εκτυπωτή μας. (Η έλλειψη συγκεκριμένων χαρακτηριστικών σε αυτό το πρόγραμμα έκανε τη χρήση του εκτυπωτή εξαιρετικά δύσκολη.) Έτσι δεν μπορούσα να πείσω τον εαυτό μου ότι οι ιδιωτικές άδειες ήταν αθώες. Ήμουν πολύ εξαγριωμένος όταν εκείνος (ο άνθρωπος που κατείχε τα πνευματικά δικαιώματα του προγράμματος ελέγχου του εκτυπωτή) αρνήθηκε να μοιραστεί μαζί μας· δεν μπορούσα να στραφώ και να κάνω κι εγώ το ίδιο σε όλους τους άλλους.

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

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

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

Ως κατασκευαστής λειτουργικών συστημάτων, είχα τις κατάλληλες ικανότητες για αυτή τη δουλειά. Έτσι ακόμη κι αν δεν είχα την επιτυχία ως δεδομένη, συνειδητοποίησα ότι εκλέχτηκα ώστε να αναλάβω τη δουλειά. Αποφάσισα να κατασκευάσω ένα σύστημα συμβατό με το Unix ώστε να είναι μεταφέρσιμο και οι χρήστες του Unix να μπορούσαν να στραφούν σε αυτό εύκολα. Το όνομα GNU επιλέχτηκε ακολουθώντας την παράδοση των hacker, σαν αναδρομικό ακρωνύμιο του "GNUs NOT UNIX."

Ένα λειτουργικό σύστημα δεν είναι απλά ένας πυρήνας, απομονωμένος από το να εκτελεί άλλα προγράμματα. Το 1970, κάθε λειτουργικό σύστημα άξιο να αποκαλείται έτσι συμπεριλάμβανε επεξεργαστές γραμμής εντολών, συμβολομεταφραστές, μεταφραστές, διερμηνείς, αποσφαλματωτές, συντάκτες κειμένου, προγράμματα διαχείρισης ηλεκτρονικού ταχυδρομείου και πολλά αλλά. Το ITS τα είχε, το MULTICS τα είχε, το VMS τα είχε, καθώς και το Unix. Το λειτουργικό σύστημα GNU θα τα περιείχε επίσης.

Έπειτα από κάποια χρονική περίοδο άκουσα αυτές τις φράσεις, που ειπώθηκαν από τον Hillel (1) :

Εάν δεν είμαι για τον εαυτό μου, ποιος θα είναι για μένα;

Εάν είμαι μόνο για τον εαυτό μου, τι είμαι;

Εάν όχι τώρα, πότε;

Η απόφαση που πήρα για να ξεκινήσω το έργο GNU βασίστηκε στο ίδιο πνεύμα.

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

Free όπως στην ελευθερία

Ο όρος "free software" είναι μερικές φορές παρεξηγημένος -- δε σχετίζεται καθόλου με το κόστος. Αφορά την ελευθερία. -- Παρακάτω, λόγου χάριν, υπάρχει ο ορισμός του ελεύθερου λογισμικού: Ένα πρόγραμμα είναι ελεύθερο λογισμικό, για εσάς ή για κάποιο συγκεκριμένο χρήστη, εάν:

* Έχετε την ελευθερία να εκτελείτε το πρόγραμμα για οποιονδήποτε σκοπό.

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

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

Εφόσον η λέξη "free" αναφέρεται στην ελευθερία και όχι στο κόστος δεν υπάρχει αντίθεση μεταξύ της πώλησης αντιγραφών και του ελεύθερου λογισμικού. Αντίθετα, η ελευθερία της πώλησης αντιγραφών είναι εξαιρετικά σημαντική: συλλογές ελεύθερου λογισμικού που πωλούνται σε πτυκτούς δίσκους μόνο ανάγνωσης (ΠΔΜΟ - cdroms) είναι σημαντικές για την κοινότητα και η πώληση αυτών είναι ένας σημαντικός τρόπος εύρεσης χρημάτων για την κατασκευή ελεύθερου λογισμικού. Χάρη λέγειν, ένα πρόγραμμα που δεν μπορούν να συμπεριλάβουν οι άνθρωποι σε αυτές τις συλλογές δεν είναι ελεύθερο λογισμικό.

Λόγω της παρερμηνείας της λέξης "free", κάποιοι άνθρωποι έψαξαν να βρουν εναλλακτικές της, όμως κανείς δεν βρήκε κάποια κατάλληλη. Η αγγλική γλώσσα έχει περισσότερες λέξεις και έννοιες από οποιαδήποτε άλλη, αλλά έχει έλλειψη μιας απλής, μη αμφιλεγόμενης λέξης που σημαίνει "free" όπως στην ελευθερία -- "unfettered" είναι η λέξη που βρίσκεται πιο κοντά σε αυτή την έννοια. Τέτοιες εναλλακτικές όπως "liberated", "freedom" και "open" έχουν είτε άλλο νόημα είτε ορισμένα άλλα μειονεκτήματα.

Λογισμικό GNU και το GNU σύστημα

Η κατασκευή ενός ολόκληρου λειτουργικού συστήματος είναι ένα πολύ μεγάλο έργο. Για να το φέρω εις πέρας, αποφάσισα να προσαρμόσω και να χρησιμοποιήσω υπάρχοντα κομμάτια ελεύθερου λογισμικού όποτε αυτό ήταν δυνατό. Για παράδειγμα, αποφάσισα εξ αρχής να χρησιμοποιήσω το Tex ως το βασικό διαμορφωτή κειμένου. Λίγα χρόνια μετά, αποφάσισα να χρησιμοποιήσω το παραθυρικό σύστημα X (X Window System) αντί να γράψω κάποιο άλλο παραθυρικό σύστημα για το GNU.

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

Ξεκινώντας το έργο

Τον Ιανουάριο του 1984 παράτησα τη δουλειά μου στο ΜΙΤ και ξεκίνησα να γράφω λογισμικό GNU. Η φυγή μου από το MIT ήταν απαραίτητη, έτσι ώστε να μην μπορούσε (το ΜΙΤ) να αναμιχθεί με τη διανομή του GNU ως ελεύθερο λογισμικό. Εάν παρέμενα στο προσωπικό, το MIT θα μπορούσε να ισχυριστεί ότι έχει την ιδιοκτησία της δουλειάς, θα μπορούσε να πιέσει για δικούς του όρους διανομής, ή ακόμη και να μετατρέψει τη δουλειά σε ιδιόκτητο λογισμικό. Δεν σκόπευα να κάνω μια μεγάλη ποσότητα δουλειάς ώστε να τη δω να γίνεται άχρηστη για το σκοπό τον οποίο σχεδιάστηκε: τη δημιουργία μιας νέας κοινότητας διαμοιρασμού λογισμικού.

Παρόλα αυτά, ο καθηγητής Winston, τότε επικεφαλής του εργαστηρίου ΤΝ του MIT, μου ζήτησε από ευγένεια να συνεχίσω να χρησιμοποιώ τις εγκαταστάσεις του εργαστηρίου.


Τα πρώτα βήματα


Λίγο καιρό πριν ξεκινήσω το έργο GNU, είχα ακούσει για τη συλλογή μεταφραστών του γερμανικού ελεύθερου πανεπιστήμιου (Free University Compiler Kit), πιο γνωστή ως Vuck (Η λέξη "free" στα γερμανικά γράφεται με V.) Αυτή (η συλλογή) ήταν ένας μεταφραστής σχεδιασμένος ώστε να χειρίζεται πολλαπλές γλώσσες, συμπεριλαμβανομένων των C και Pascal και να υποστηρίζει πολλαπλές πλατφόρμες. Έγραψα στον συγγραφέα του ερωτούμενος εάν το GNU μπορούσε να τον χρησιμοποιήσει.

Εκείνος ανταποκρίθηκε αγενέστατα, λέγοντας πως το πανεπιστήμιο ήταν ελεύθερο αλλά ο μεταφραστής όχι. Για το λόγο αυτό αποφάσισα ότι το πρώτο πρόγραμμα για το έργο GNU θα ήταν ένας πολυγλωσσικός, πολυπλατφορμικός μεταφραστής.

Ελπίζοντας να αποφύγω την ανάγκη να γράψω όλο το μεταφραστή μόνος μου, χρησιμοποίησα τον πηγαίο κώδικα του μεταφραστή Pastel, ο οποίος υποστήριζε πολλαπλές πλατφόρμες και ήταν κατασκευασμένος στο εργαστήριο Lawrence Livermore. Υποστήριζε και ήταν γραμμένος σε μια επεκταμένη έκδοση της Pascal, σχεδιασμένη ώστε να είναι πολυπρογραμματιστική γλώσσα. Προσέθεσα υποστήριξη της C και ξεκίνησα να τον μεταφέρω (τον μεταφραστή) στον υπολογιστή Motorola 68000. Αναγκάστηκα όμως να τα παρατήσω όταν ανακάλυψα ότι ο μεταφραστής χρειαζόταν πολλούς εκατομμύρια χαρακτήρες (megabytes) για το χώρο της στοίβας και το διαθέσιμο Unix σύστημα του 68000 επέτρεπε μόνο 64 χιλιάδες (64 kilobytes).

Τότε συνειδητοποίησα ότι ο μεταφραστής Pastel λειτουργούσε μεταφέροντας όλο το αρχείο εισόδου σε ένα συντακτικό αρχείο, μετατρέποντας το σε μια αλυσίδα από οδηγίες και έπειτα παρήγαγε το αρχείο εξόδου, χωρίς να αποδεσμεύει καθόλου χώρο. Στο σημείο αυτό κατάλαβα ότι έπρεπε να γράψω ένα νέο μεταφραστή εξ αρχής. Ο νέος αυτός μεταφραστής είναι γνωστός ως GCC· σε αυτόν δεν χρησιμοποιείται καθόλου κώδικας από τον μεταφραστή Pastel, αλλά φρόντισα να προσαρμόσω και να χρησιμοποιήσω την υποστήριξη της C που είχα γράψει. Αυτό όμως συνέβη μερικά χρόνια αργότερα· αρχικά, δούλεψα στον GNU Emacs.

Ο GNU Emacs

Ξεκίνησα να δουλεύω στον GNU Emacs το Σεπτέμβριο του 1984 και στις αρχές του 1985 ξεκίνησε να γίνεται χρήσιμος. Αυτό μου έδωσε τη δυνατότητα να χρησιμοποιώ τα Unix συστήματα για να κάνω σύνταξη κειμένου· όντας αδιάφορος στο να μάθω να χρησιμοποιώ τον Vi ή τον ed, έκανα τη σύνταξη σε άλλου είδους μηχανήματα μέχρι τότε.

Στο σημείο αυτό, οι άνθρωποι ξεκίνησαν να χρησιμοποιούν τον GNU Emacs, δημιουργώντας μου την απορία περί του τρόπου διανομής του. Ως φυσικό αποτέλεσμα, τον τοποθέτησα σε ανώνυμο εξυπηρετητή πρωτοκόλλου μεταφοράς αρχείων (ΠΜΑ - ftp) στον υπολογιστή του ΜΙΤ που χρησιμοποιούσα. (Τούτος ο υπολογιστής, με όνομα prep.ai.mit.edu, κατά αυτό τον τρόπο έγινε το πρωταρχικό μέρος διανομών λογισμικού GNU μέσω ΠΜΑ· όταν έκλεισε λίγα χρόνια αργότερα, μεταφέραμε το όνομα στον νέο μας εξυπηρετητή ΠΜΑ.) Εκείνο τον καιρό, πολλοί από τους ενδιαφερόμενους ανθρώπους δεν μπορούσαν να έχουν αντίγραφο του GNU Emacs μέσω ΠΜΑ. ʼρα το ερώτημα ήταν, τι θα τους έλεγα να κάνουν;

Θα μπορούσα να τους πω, "Βρείτε ένα φίλο στο δίκτυο κι αυτός θα δημιουργήσει ένα αντίγραφο για εσάς." Επίσης, θα μπορούσα να κάνω ότι έκανα στον αυθεντικό PDP-10 Emacs, να τους πω: "Ταχυδρομήστε μου μια μαγνητική ταινία (tape) και θα σας την ταχυδρομήσω πίσω με τον Emacs γραμμένο μέσα της." Αλλά ήμουν άνεργος κι έψαχνα να βρω τρόπο ώστε να κερδίσω χρήματα μέσω του ελεύθερου λογισμικού. Έτσι ανακοίνωσα ότι θα ταχυδρομούσα μια μαγνητική ταινία σε όποιον τον ήθελε με κόστος 150$. Με αυτό τον τρόπο, ξεκίνησα μια εταιρεία διανομής ελεύθερου λογισμικού, τον πρόγονο των εταιρειών που διανέμουν ολοκληρωμένα Linux βασισμένα στο GNU (δηλαδή GNU/Linux) συστήματα.

Είναι ένα πρόγραμμα ελεύθερο για κάθε χρήστη;

Εάν ένα πρόγραμμα είναι ελεύθερο λογισμικό, όταν αποδεσμεύεται από το συγγραφέα του, δε σημαίνει απαραίτητα ότι θα είναι ελεύθερο λογισμικό για οποιονδήποτε έχει αντίγραφο του. Για παράδειγμα το δημόσιο λογισμικό (public domain software) -- λογισμικό το οποίο δεν έχει άδεια αντιγραφής -- είναι ελεύθερο λογισμικό· αλλά οποιοσδήποτε μπορεί να δημιουργήσει μια ιδιόκτητη έκδοση του. Παρομοίως, πολλά ελεύθερα προγράμματα έχουν άδεια αντιγραφής, αλλά διανέμονται υπό απλές άδειες που επιτρέπουν τη δημιουργία ιδιόκτητου λογισμικού.

Το πιο παραστατικό παράδειγμα αυτού του προβλήματος είναι το παραθυρικό σύστημα Χ, κατασκευασμένο στο MIT, το οποίο διανέμεται ως ελεύθερο λογισμικό με μια ειδική άδεια· υιοθετήθηκε σύντομα από πολλές εταιρείες υπολογιστών. Αυτές προσέθεσαν το Χ στα ιδιόκτητα Unix συστήματα τους, σε εκτελέσιμη και μόνο μορφή, επικαλυπτόμενο από μια ιδιωτική συμφωνία. Αυτά τα αντίγραφα του Χ ήταν πλέον τόσο ελεύθερο λογισμικό όσο είναι και το Unix.

Οι κατασκευαστές του X δεν θεώρησαν ότι συνέβη σαν πρόβλημα· το ανέμεναν και σκόπευαν να συμβεί. Στόχος τους δεν ήταν η ελευθερία, απλά η "επιτυχία", καθορισμένη ως "να έχουμε πολλούς χρήστες". Δεν νοιάστηκαν αν αυτοί οι χρήστες θα έχουν ελευθερία, ήθελαν μόνο να είναι αριθμητικά πολλοί.

Αυτό οδηγεί σε μια παράδοξη κατάσταση όπου δυο διαφορετικοί τρόποι εκτίμησης της ελευθερίας έδωσαν διαφορετικές απαντήσεις στο ερώτημα, "Είναι αυτό το πρόγραμμα ελεύθερο;" Εάν έκρινες βασισμένος στην ελευθερία που παρεχόταν από τους όρους διανομής του ΜΙΤ, θα έλεγες ότι το Χ ήταν ελεύθερο λογισμικό. Εάν όμως εκτιμούσες την ελευθερία ενός μέσου χρήστη του Χ, θα έλεγες ότι ήταν ιδιόκτητο λογισμικό. Οι περισσότεροι χρήστες του Χ εκτελούσαν τις ιδιοκτήτες εκδόσεις που συνόδευαν τα Unix συστήματα, όχι την ελεύθερη έκδοση.


ʼδεια αντιγραφής (copyleft) και το GNU GPL


Στόχος του GNU ήταν να παρέχει στους χρήστες ελευθερία, όχι να γίνει απλά διάσημο. ʼρα χρειαζόμασταν τη χρήση όρων διανομής που θα εμπόδιζαν τη μετατροπή ενός GNU λογισμικού σε ιδιόκτητο. Η μέθοδος που χρησιμοποιούμε αποκαλείται "copyleft". (1)

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

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

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

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

Ένα σχετικό θέμα αφορά το συνδυασμό ενός ελεύθερου προγράμματος με μη ελεύθερο κώδικα. Ένας τέτοιος συνδυασμός θα ήταν αναπόφευκτα μη ελεύθερος· οι ελευθερίες που θα έλειπαν για το μη ελεύθερο μέρος θα έλειπαν από το σύνολο επίσης. Το να επιτρέψουμε τέτοιους συνδυασμούς θα άνοιγε μια τρύπα αρκετά μεγάλη ώστε να βουλιάξει ένα πλοίο. Για αυτό, μια σημαντική απαίτηση για την άδεια αντιγραφής είναι να βουλώσει αυτή την τρύπα: οτιδήποτε προστίθεται ή συνδυάζεται με ένα πρόγραμμα άδειας αντιγραφής πρέπει να είναι τέτοιο ώστε και η μεγαλύτερη έκδοση του να είναι ελεύθερη και να διανέμεται συνοδευόμενη της άδειας αντιγραφής.

Η συγκεκριμένη υλοποίηση της άδειας αντιγραφής που χρησιμοποιούμε για την πλειοψηφία του GNU λογισμικού είναι η γενική άδεια δημόσιας χρήσης (ΓΑΔΧ), η GNU GPL εν συντομία. Έχουμε και άλλων ειδών άδειες αντιγραφής που χρησιμοποιούνται σε συγκεκριμένες περιστάσεις. Τα εγχειρίδια GNU είναι υπό άδειας αντιγραφής επίσης, αλλά χρησιμοποιούν ένα απλούστερο είδος άδειας, επειδή η πολυπλοκότητα της ΓΑΔΧ δεν είναι αναγκαία για τα εγχειρίδια.

(1) Το 1984 ή 1985, ο Don Hopkins (ένας πολύ δημιουργικός συνεργάτης) μου ταχυδρόμησε ένα γράμμα. Στον φάκελο έγραφε πολλές ψυχαγωγικές κουβέντες, συμπεριλαμβανομένης της: "Copyleft - all rights reserved." Χρησιμοποίησα τη λέξη "copyleft" για να ονομάσω τον τρόπο διανομής του λογισμικού που κατασκεύαζα εκείνο τον καιρό.

Το ίδρυμα ελεύθερου λογισμικού (ΙΕΛ FSF)

Καθώς το ενδιαφέρον χρήσης του Emacs μεγάλωνε, αναμίχθηκαν και άλλοι άνθρωποι στο έργο GNU και αποφασίσαμε ότι ήταν καιρός να αναζητήσουμε χρήματα για μια ακόμη φορά. Έτσι το 1985 δημιουργήσαμε το ΙΕΛ, ένα αφορολόγητο φιλανθρωπικό ίδρυμα για ανάπτυξη ελεύθερου λογισμικού. Το ΙΕΛ ανέλαβε επίσης τη δουλειά της διανομής του Emacs μέσω ταινίας· αργότερα επεκτάθηκε προσθέτοντας ελεύθερο λογισμικό (GNU και μη GNU επίσης) στην ταινία και ξεκινώντας την πώληση εγχειριδίων.

Το ΙΕΛ δέχεται φιλανθρωπίες, αλλά τα περισσότερα έσοδα του προέρχονται από πωλήσεις -- αντιγραφών ελεύθερου λογισμικού και άλλων σχετικών υπηρεσιών. -- Σήμερα πουλάει ΠΔΜΟ, πηγαίο κώδικα, ΠΔΜΟ με εκτελέσιμα, όμορφα εκτυπωμένα εγχειρίδια (όλα με την ελευθερία της αναδιανομής και τροποποίησης) και διανομές υψηλής ποιότητας (όπου χτίζουμε όλη τη συλλογή του λογισμικού για την πλατφόρμα που επιθυμείτε.)

Οι υπάλληλοι του ΙΕΛ συνέγραψαν και διατήρησαν έναν αριθμό πακέτων λογισμικού GNU. Δυο αναφερόμενα είναι η βιβλιοθήκη της γλώσσας C και το κέλυφος. Η GNU C βιβλιοθήκη χρησιμοποιείται από κάθε πρόγραμμα που εκτελείται σε ένα GNU/Linux σύστημα για να επικοινωνήσει με τον πυρήνα Linux. Κατασκευάστηκε από ένα μέλος του ΙΕΛ, τον Roland McGrath. Το κέλυφος που χρησιμοποιείται στα περισσότερα GNU/Linux συστήματα είναι το Bash, το Bourne Again Shell (1), το οποίο κατασκευάστηκε από τον υπάλληλο του ΙΕΛ Brian Fox.

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

(1) Το "Bourne Again Shell" είναι ένα χιουμοριστικό όνομα για το "Bourne Shell", που ήταν το συνηθέστερο κέλυφος του Unix.

Υποστήριξη ελεύθερου λογισμικού

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

Η πώληση αντιγραφών του Emacs επιδεικνύει ένα είδος εταιρείας ελεύθερου λογισμικού. Όταν το ΙΕΛ ανέλαβε αυτή την επιχείρηση, χρειάστηκε να βρω έναν άλλο τρόπο για να ζήσω. Τον βρήκα πουλώντας υπηρεσίες συσχετιζόμενες με το ελεύθερο λογισμικό που είχα κατασκευάσει. Αυτό συμπεριλαμβάνει διδασκαλία για θέματα όπως πώς να προγραμματίζετε στον GNU EMacs, πώς να προσαρμόζετε τον GCC, και ανάπτυξη λογισμικού, συνήθως μεταφορά του GCC σε νέες πλατφόρμες.

Σήμερα καθένα από αυτά τα είδη επιχειρήσεων ελεύθερου λογισμικού εφαρμόζεται από έναν αριθμό εταιρειών. Μερικοί διανέμουν ελεύθερο λογισμικό σε ΠΔΜΟ· άλλοι πωλούν υποστήριξη σε ευρεία επίπεδα, από απαντήσεις σε απλές ερωτήσεις, επιδιορθώσεις σφαλμάτων, μέχρι και προσθήκη νέων σημαντικών χαρακτηριστικών. Αρχίσαμε ήδη να βλέπουμε εταιρείες ελεύθερου λογισμικού βασιζόμενες στη δημιουργία νέων προϊόντων ελεύθερου λογισμικού.

Παρόλα αυτά, προσέξτε -- ένας μεγάλος αριθμός εταιρειών που συσχετίζονται με τον όρο "ανοιχτός κώδικας" (open source) βασίζουν τη δουλειά τους σε μη ελεύθερο λογισμικό που λειτουργεί σε συνδυασμό με το ελεύθερο. Αυτές δεν είναι εταιρείες ελεύθερου λογισμικού, είναι εταιρείες ιδιόκτητου λογισμικού που τα προϊόντα τους οδηγούν τους χρήστες μακριά από την ελευθερία. Αποκαλούν τα προϊόντα αυτά "προστιθέμενης άξιας", κάτι που αντανακλά τις άξιες που θέλουν να υιοθετήσουμε: ʼνεση έναντι της ελευθερίας. Εάν δώσουμε περισσότερη αξία στην ελευθερία, θα αποκαλούμε τέτοιου είδους προϊόντα "διηρημένης ελευθερίας".

Τεχνικοί στόχοι

Ο αρχικός στόχος του GNU ήταν να είναι ελεύθερο λογισμικό. Αν και το GNU δεν είχε τεχνικά προτερήματα έναντι του Unix, είχε ένα κοινωνικό προτέρημα, επιτρέποντας στους χρήστες να συνεργαστούν, και ένα ηθικό προτέρημα, το σεβασμό προς την ελευθερία του χρήστη.

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

Επιπρόσθετα, απορρίψαμε την εστίαση του Unix στο μικρό μέγεθος μνήμης, αποφασίζοντας να μην υποστηρίξουμε τις 16ψήφιες μηχανές (ήταν ξεκάθαρο ότι οι μηχανές 32 ψηφίων θα ήταν οι τυποποιημένες την περίοδο που θα τελείωνε το GNU σύστημα), και να μην προσπαθήσουμε να μειώσουμε τη χρήση μνήμης εκτός και αν ξεπερνούσε το 1 εκατομμύριο χαρακτήρες. Σε προγράμματα που η διαχείριση μεγάλων αρχείων δεν ήταν μεγάλης σημασίας, ενθαρρύναμε τους προγραμματιστές να διαβάζουν ένα ολόκληρο αρχείο εισόδου σε ένα κεντρικό, κι έπειτα να σαρώνουν τα περιεχόμενα δίχως να ανησυχούν για την είσοδο / έξοδο.

Αυτές οι αποφάσεις έκαναν ικανά πολλά GNU προγράμματα να ξεπεράσουν τα αντίστοιχα του Unix σε αξιοπιστία και ταχύτητα.

Δωρούμενοι υπολογιστές

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

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

Όμως αν και αυτό ήταν ένα λογικό κακό, παρέμενε κακό. Σήμερα δεν έχουμε πλέον αντίγραφα του Unix, επειδή τα αντικαταστήσαμε με ελεύθερα λειτουργικά συστήματα. Εάν δεν μπορούσαμε να αντικαταστήσουμε το λειτουργικό σύστημα μιας μηχανής με ένα ελεύθερο, αλλάζαμε την ίδια τη μηχανή.

Η λίστα εργασιών GNU

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

Σήμερα, είναι δύσκολο να έχουν απομείνει Unix συστατικά στη λίστα GNU -- αυτές οι δουλειές έχουν ολοκληρωθεί, εκτός από μερικές μη αναγκαίες. Αλλά η λίστα είναι γεμάτη έργα που μερικοί αποκαλούν "εφαρμογές". Οποιοδήποτε πρόγραμμα που απευθύνεται σε μια κλάση χρηστών θα ήταν χρήσιμο να προστεθεί σε ένα λειτουργικό σύστημα.

Μέχρι και παιχνίδια συμπεριλαμβάνονται στη λίστα εργασίας -- και υπήρχαν από την αρχή. Το Unix περιείχε παιχνίδια, έτσι λογικά θα έπρεπε να έχει και το GNU επίσης. Αλλά η συμβατότητα δεν ήταν πρόβλημα για τα παιχνίδια κι έτσι δεν ακολουθήσαμε τη λίστα παιχνιδιών που είχε το Unix. Αντίθετα, δημιουργήσαμε μια λίστα με ποικιλία διαφορετικών ειδών παιχνιδιών που ίσως αρέσουν στους χρήστες.

Το GNU LGPL ή ΓΑΔΧΒ (γενικής άδεια δημόσιας χρήσης για βιβλιοθήκες)

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

Δεν είναι ζήτημα αρχής· δεν υπάρχει καμία αρχή που να λέει πως τα προϊόντα ιδιόκτητου λογισμικού δικαιούνται να συμπεριλαμβάνουν τον κώδικα μας. (Γιατί όμως συνεισφέρουμε σε ένα έργο που υποστηρίζει την άρνηση διαμοιρασμού μαζί μας Η απάντηση είναι η εξής : το να χρησιμοποιείς τη GNU ΓΑΔΧΒ για τη βιβλιοθήκη της C, ή για οποιαδήποτε άλλη βιβλιοθήκη, είναι απλά ζήτημα σωστής στρατηγικής.

Η βιβλιοθήκη της C παρέχει γενικές λειτουργίες· κάθε ιδιόκτητο σύστημα ή μεταφραστής συνοδεύεται με μια τέτοια βιβλιοθήκη. Επομένως, εάν κάναμε την βιβλιοθήκη μας (GNU C library) διαθέσιμη μόνο για το ελεύθερο λογισμικό δεν θα δίναμε σε αυτό κάποιο πλεονέκτημα -- αλλά θα αποθαρρύναμε της χρήση της.

Ένα σύστημα που εξαιρείται: στο GNU σύστημα (όπου σε αυτό συμπεριλαμβάνεται και το GNU/Linux), η GNU βιβλιοθήκη της C είναι η μοναδική που υπάρχει. Έτσι, οι όροι διανομής της GNU C βιβλιοθήκης είναι αυτοί που αποφασίζουν εάν είναι δυνατό ή εφικτό να μεταφραστεί ένα ιδιόκτητο λογισμικό για το GNU σύστημα. Δεν υπάρχει κανένας ηθικός λόγος για τον οποίο θα έπρεπε να επιτραπούν οι ιδιόκτητες εφαρμογές στο GNU σύστημα, αλλά, στρατηγικά φαίνεται πως απαγορεύοντας αυτές τις εφαρμογές αποθαρρύναμε περισσότερο την χρήση του GNU συστήματος από το να ενθαρρύνουμε την κατασκευή ελεύθερων εφαρμογών.

Έτσι λοιπόν, το να χρησιμοποιείς την GNU ΓΑΔΧΒ είναι μια καλή στρατηγική για την βιβλιοθήκη της C. Για άλλες βιβλιοθήκες, η απόφαση στρατηγικής χρειάζεται υποχρεωτικά να παρθεί μέσα από μια βάση περιπτώσεων. Όταν μια βιβλιοθήκη κάνει εξειδικευμένες λειτουργίες, οι οποίες βοηθούν στη σύνταξη συγκεκριμένων προγραμμάτων και την διανέμουμε υπό την GNU ΓΑΔΧΒ, περιορίζοντας την μόνο στα προγράμματα ελεύθερου λογισμικού, είναι ένας τρόπος αλληλοβοήθειας με τους άλλους κατασκευαστές ελεύθερου λογισμικού, δίνοντας τους έτσι ένα παραπάνω λόγο για να είναι ενάντια του ιδιόκτητου λογισμικού.

Η GNU Readline είναι μια βιβλιοθήκη η οποία κατασκευάστηκε για να παρέχει την δυνατότητα επεξεργασίας της γραμμής εντολών του BASH. Η Readline εκδίδεται υπό την κανονική GNU ΓΑΔΧ κι όχι υπό την GNU ΓΑΔΧΒ. Αυτό πιθανόν να μειώνει το εύρος της χρήσης της· δε σημαίνει όμως πως είναι σοβαρό μειονέκτημα για μας. Στο μεταξύ, έχει δημιουργηθεί τουλάχιστον μια χρήσιμη εφαρμογή ελεύθερου λογισμικού που συγκεκριμένα χρησιμοποιεί την Readline· αυτό είναι αληθινό όφελος για την κοινότητα.

Οι κατασκευαστές ιδιόκτητου λογισμικού πλεονεκτούν μέσω των χρημάτων. Οι κατασκευαστές ελεύθερου λογισμικού πρέπει να δημιουργούν πλεονεκτήματα μεταξύ τους. Ελπίζω πως κάποια μέρα θα έχουμε μια μεγάλη συλλογή από επικαλυπτόμενες βιβλιοθήκες ΓΑΔΧΒ, οι οποίες δεν θα είναι διαθέσιμες παράλληλα και στο ιδιόκτητο λογισμικό, παρέχοντας έτσι χρήσιμες αναλογίες όπου θα χρησιμεύσουν σαν θεμέλια για τη δημιουργία νέου λογισμικού και παράλληλα βελτιώνοντας κάποιο σημαντικό πλεονέκτημα να είμαστε έτοιμοι για τη μετέπειτα κατασκευή ελεύθερου λογισμικού.

Ψαχουλεύοντας μια φαγούρα;

Ο Eric Raymond λέει ότι "Κάθε καλή δουλειά λογισμικού ξεκινά ψαχουλεύοντας την προσωπική φαγούρα του δημιουργού του." Αυτό μερικές φορές μπορεί να συμβαίνει πραγματικά, αλλά πολλά απαραίτητα κομμάτια του GNU λογισμικού κατασκευάστηκαν για να έχουμε ένα ολοκληρωμένο ελεύθερο λειτουργικό σύστημα. Προέρχονται από ένα όραμα και ένα σχεδιασμό, όχι από αυθόρμητη διάθεση.

Για παράδειγμα, κατασκευάσαμε την GNU βιβλιοθήκη της C επειδή ένα σύστημα τύπου Unix χρειάζεται μια τέτοια βιβλιοθήκη, το Bourne-again κέλυφος (bash) επειδή ένα σύστημα τύπου Unix χρειάζεται ένα κέλυφος, και την GNU tar επειδή ένα σύστημα τύπου Unix χρειάζεται μια tar εφαρμογή. Το ίδιο ισχύει και για τα δικά μου προγράμματα -- τον GNU μεταφραστή της C, τον GNU Emacs, τον GDB και την GNU Make.

Μερικά GNU προγράμματα κατασκευάστηκαν για να αντιμετωπίσουν κάποιες συγκεκριμένες απειλές της ελευθερίας μας. Έτσι, κατασκευάσαμε την gzip για να αντικαταστήσουμε το τότε πρόγραμμα συμπίεσης, το οποίο είχε χαθεί μέσα στην κοινότητα λόγω των πατέντων LZW. Είχαμε βρει άτομα για να κατασκευάσουν το LessTiff, και πιο πρόσφατα είχε ξεκινήσει το GNOME και το Harmony για να απευθυνθούμε στα προβλήματα που προκαλούνται από συγκεκριμένες ιδιόκτητες βιβλιοθήκες (δείτε παραπάνω). Κατασκευάζουμε τον GNU φρουρό ιδιοκτησίας (GNU privacy guard - gpg) για να αντικαταστήσουμε το διάσημο μη ελεύθερο λογισμικό κρυπτογράφησης (pretty good privacy - pgp), ώστε οι χρήστες να μη χρειάζεται να διαλέξουν μεταξύ ιδιοκτησίας και ελευθερίας.

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


Απροσδόκητες αναπτύξεις


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

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

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

Το GNU Hurd

Το 1990, το GNU σύστημα ήταν σχεδόν έτοιμο. Το μόνο βασικό συστατικό που του έλειπε ήταν ο πυρήνας. Είχαμε αποφασίσει να υλοποιήσουμε τον πυρήνα σαν μια συλλογή από εξυπηρετητές διεργασιών όπου θα τρέχουν πάνω σε ένα Mach. Ο Mach είναι ένας μικροπυρήνας κατασκευασμένος στο πανεπιστήμιο Carnegie Mellon και στην συνέχεια στο πανεπιστήμιο Utah. Ο πυρήνας GNU Hurd είναι μια συλλογή από εξυπηρετητές (ή ``herd του gnus``) οι οποίοι εκτελούνται πάνω σε ένα Mach, και κάνουν τις ποικίλες λειτουργίες ενός πυρήνα τύπου Unix. Το ξεκίνημα της κατασκευής καθυστέρησε, καθώς περιμέναμε τον Mach να εκδοθεί σαν ελεύθερο λογισμικό, όπως ήταν υποσχόμενο.

Ένας λόγος για τον οποίο διαλέξαμε αυτή την σχεδίαση ήταν για να αποφύγουμε ότι φαινόταν πως θα είναι το δυσκολότερο κομμάτι τις δουλειάς: η αποσφαλμάτωση του πυρήνα χωρίς το πρόγραμμα αποσφαλμάτωσης (debugger) σε επίπεδο πηγαίου κώδικα. Αυτό το κομμάτι του έργου είχε ήδη γίνει, στον Mach· παράλληλα περιμέναμε να ελέγξουμε και τους εξυπηρετητές του Hurd σαν τα κοινά προγράμματα των χρηστών, με το GDB. Τελικά όμως μας πήρε πολύ καιρό· και οι πολύνηματικοί εξυπηρετητές που στέλνουν μεταξύ τους μηνύματα κατέληξαν σε μια πολύ δύσκολη δουλειά αποσφαλμάτωσης. Κάνοντας το Hurd να λειτουργεί σταθερά μας πήρε αρκετά χρόνια.

Alix

Η ονομασία του πυρήνα δεν είχε προσχεδιαστεί ως hurd. Το αρχικό του όνομα ήταν Alix. Του είχε δοθεί το όνομα της κοπέλας μου εκείνο τον καιρό. Αυτή, σαν διαχειρίστρια συστημάτων Unix μου είχε επισημάνει πώς το όνομα της θα ταίριαζε σαν ένα κοινό ονοματολογικό πρότυπο για τις εκδόσεις των συστημάτων τύπου Unix. Χαριτολογώντας, είχε πει στους φίλους της, "Κάποιος θα βαφτίσει ένα πυρήνα με το όνομα μου." Δεν είπα τίποτα, αλλά είχα αποφασίσει να της κάνω έκπληξη με έναν πυρήνα που θα λέγεται Alix.

Τελικά δε συνέβη έτσι ακριβώς. Ο Michael Bushnell (τώρα Thomas), βασικός κατασκευαστής του πυρήνα, προτιμούσε το όνομα Hurd, και όρισε το όνομα Alix ώστε να αναφέρεται σε ένα συγκεκριμένο τμήμα του πυρήνα -- το τμήμα το οποίο σκοπός του ήταν να παγιδεύει και να διαχειρίζεται όλες τις κλήσεις του συστήματος, στέλνοντας μηνύματα στους εξυπηρετητές του Hurd.

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

Προτού όμως συμβούν όλα αυτά, ένας φίλος της είχε δει το όνομα Alix στο πηγαίο κώδικα του Hurd, και της το ανέφερε. Έτσι το όνομα έκανε την δουλειά του.

Linux και GNU/Linux

Το GNU Hurd δεν είναι έτοιμο για παραγωγική χρήση. Ευτυχώς, ένας άλλος πυρήνας είναι άμεσα διαθέσιμος. Το 1991, Ο Linus Torvalds κατασκεύασε ένα συμβατό πυρήνα τύπου Unix και το ονόμασε Linux. Γύρω στο 1992, συνδυάζοντας το Linux με το τότε μη-ολοκληρωμένο GNU σύστημα αποτέλεσε ένα ολοκληρωμένο ελεύθερο λειτουργικό σύστημα. (Φυσικά, συνδυάζοντας τα ήταν μια πολύ ουσιώδης δουλειά). Στο Linux οφείλεται το ότι μπορούμε και τρέχουμε την έκδοση του GNU συστήματος σήμερα.

Ονομάζουμε αυτήν την έκδοση συστήματος GNU/Linux, για να εκφράσουμε την σύνθεση του σαν ένα συνδυασμό μεταξύ του GNU συστήματος και του Linux ως πυρήνα.

Προκλήσεις στο μέλλον μας

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

Οι ακόλουθοι τέσσερις τομείς αναφέρουν αυτές τις προκλήσεις.

 


Η μυστικότητα του υλικού


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

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

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

Μη ελεύθερες βιβλιοθήκες

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

Το πρώτο περιστατικό τέτοιου είδους προβλημάτων ήταν με την εργαλειοθήκη Motif, τον καιρό του 80. Αν και τότε δεν υπήρχαν ελεύθερα λειτουργικά συστήματα, ήταν προφανές το τι πρόβλημα θα τους προκαλούσε το Motif στην συνέχεια. Το έργο GNU αντέδρασε με δύο τρόπους: ζητώντας ιδιαίτερα έργα ελεύθερου λογισμικού να υποστηρίξουν την ελεύθερη εργαλειοθήκη του X τόσο καλά όσο στο Motif, και ζητώντας κάποιον να συγγράψει μία ελεύθερη αντικατάσταση του Motif. Η δουλειά αυτή διήρκεσε αρκετά χρόνια. Το LessTif κατασκευάστηκε από αμέτρητους παθιασμένους προγραμματιστές και έγινε αρκετά δυνατό έτσι ώστε να υποστηρίζει τις περισσότερες από τις εφαρμογές του Motif όχι πριν το 1997.

Περίπου το 1996 ή το 1998, μία άλλη ιδιόκτητη βιβλιοθήκη γραφικών που ονομάζεται Qt χρησιμοποιήθηκε σε μια ουσιώδη συλλογή ελεύθερου λογισμικού, στο γραφικό περιβάλλον KDE.

Τα ελεύθερα συστήματα GNU/Linux αδυνατούσαν στο να χρησιμοποιήσουν το KDE, επειδή δεν μπορούσαμε να χρησιμοποιήσουμε την ιδιόκτητη βιβλιοθήκη. Ωστόσο, μερικοί εμπορικοί διανομείς των GNU/Linux συστημάτων οι οποίοι δεν ήταν αρκετά αυστηρά πιστοί με την ιδεολογία του ελεύθερου λογισμικού πρόσθεσαν αυτόβουλα το KDE στα συστήματα τους -- προωθώντας ένα σύστημα με περισσότερες δυνατότητες αλλά με λιγότερη ελευθερία. Η ομάδα του KDE εμψύχωνε ενεργά αρκετούς προγραμματιστές ώστε να χρησιμοποιούν το Qt, και εκατομμύρια χρήστες του νέου "Linux" δεν είχαν αναφέρει ποτέ την ιδέα του ότι υπήρχε κάποιο πρόβλημα σε αυτό. Η κατάσταση φάνηκε δύσκολη.

Η κοινότητα ελεύθερου λογισμικού απάντησε με δύο τρόπους : με το GNOME και το Harmony.

Το GNU περιβάλλον δικτυακού αντικειμενικού μοντέλου ή αλλιώς GNOME είναι έργο του GNU. Ξεκίνησε το 1997 από τον Miguel de Icaza, και κατασκευάστηκε με την υποστήριξη λογισμικού της Red Hat. Το GNOME άρχισε να παρέχει παρόμοιες πρακτικές ευκολίες γραφικού περιβάλλοντος, αλλά χρησιμοποιώντας αποκλειστικά ελεύθερο λογισμικό. Επίσης διαθέτει τεχνικά πλεονεκτήματα, όπως η υποστήριξη μιας πληθώρας γλωσσών προγραμματισμού και όχι μόνο της C++. Ο βασικός σκοπός του ήταν η ελευθερία και όχι η απαίτηση χρήσης οποιουδήποτε αναγκαίου μη ελεύθερου λογισμικού.

Το Harmony είναι μια συμβατή βιβλιοθήκη όπου σχεδιάστηκε για να αντικαταστήσει το Qt και να κάνει δυνατή την εκτέλεση του KDE λογισμικού χωρίς αυτό.

Το Νοέμβριο του 1998, οι κατασκευαστές του Qt ανήγγειλαν μια αλλαγή στην άδεια, η οποία όταν θα πραγματοποιούνταν, θα έκανε το Qt ελεύθερο λογισμικό. Δεν υπάρχει τρόπος με τον οποίο μπορούμε να είμαστε σίγουροι, αλλά νομίζω πως αυτό οφειλόταν στη σταθερή απάντηση της κοινότητας στο πρόβλημα ότι το Qt πόζαρε όταν ήταν μη ελεύθερο. (Η νέα άδεια είναι ακατάλληλη και άδικη, γ αυτό λοιπόν παραμένει επιθυμητή η απομάκρυνση χρήσης του Qt).

[Υποσημείωση : τον Σεπτέμβριο του 2000, το Qt εκδόθηκε υπό την GNU ΓΑΔΧ, κίνηση που έλυσε αυτό το πρόβλημα.]

Πως λοιπόν θα αντιδράσουμε στην επόμενη προσωρινά μη ελεύθερη βιβλιοθήκη; πότε θα καταλάβει όλη η κοινότητα ότι θα πρέπει να αποφεύγουμε τέτοιου είδους παγίδες; ή πόσοι από εμάς θα παρατήσουμε την ελευθερία για την άνεση και θα προκαλέσουμε σημαντικά προβλήματα; Το μέλλον μας εξαρτάται από την φιλοσοφία μας.


Πατέντες λογισμικού


Η χειρότερη απειλή που αντιμετωπίζουμε οφείλεται στις πατέντες λογισμικού, οι οποίες μπορούν μέσω διάφορων αλγορίθμων και χαρακτηριστικών να περιορίσουν το ελεύθερο λογισμικό για περισσότερο από 20 χρόνια. Ο πατενταρισμένος αλγόριθμος συμπίεσης LZW εφαρμόσθηκε το 1983 και ακόμη δεν μπορούμε να εκδώσουμε ελεύθερο λογισμικό που να μπορεί να παράγει έγκυρα συμπιεσμένα αρχεία επέκτασης GIF. Το 1998, ένα ελεύθερο πρόγραμμα που παράγει συμπιεσμένο ήχο MP3 σταμάτησε την διανομή του υπό την απειλή μιας εφαρμοσμένης πατέντας.

Υπάρχουν τρόποι ώστε να αντιμετωπίσουμε τις πατέντες: μπορούμε να αναζητήσουμε ενδεικτικά στοιχεία τα οποία θα αποδεικνύουν πως μια πατέντα είναι λανθασμένη. Επίσης, μπορούμε να αναζητήσουμε διάφορους εναλλακτικούς τρόπους για να πραγματοποιήσουμε μια συγκεκριμένη δουλειά. Δεν είναι όμως σίγουρο πως αυτοί οι δύο εναλλακτικοί τρόποι λειτουργούν πάντα. Όταν κανένας από τους δύο δεν είναι επιτυχής, τότε η πατέντα συνεχίζει να είναι πατέντα και παράλληλα μπορεί να αναγκάσει το ελεύθερο λογισμικό να στερήσει στους χρήστες κάποια δυνατότητα που επιθυμούν. Τι θα κάνουμε όταν αυτό συμβεί;

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


Ελεύθερη Τεκμηρίωση


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

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

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

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

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

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

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


Πρέπει να μιλάμε για την ελευθερία


Ο σημερινός προϋπολογισμός δείχνει πως υπάρχουν 10 εκατομμύρια χρήστες των συστημάτων GNU/Linux, όπως το Debian GNU/Linux και το Red Hat Linux. Το ελεύθερο λογισμικό έχει κατασκευάσει τέτοιες πρακτικές υπεροχές που διάφοροι χρήστες στρέφονται σε αυτό για καθαρά πρακτικούς λόγους.

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

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

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

"Λογισμικό ανοιχτού κώδικα"

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

Σε αυτούς που άρεσε αυτός ο όρος, στόχευαν να αποφύγουν την παρεξήγηση του "ελεύθερο λογισμικού" με το "δωρεάν" -- κάτι αρκετά εύστοχο. Κάποιοι άλλοι, ωστόσο, στόχευαν να θέσουν το πνεύμα των αρχών, όπου παρακινεί το κίνημα του ελεύθερου λογισμικού και το έργο GNU, και να απευθυνθούν σε παραγωγούς και χρήστες εταιριών. Πολλοί από αυτούς συγκρατούν μια ιδεολογία η οποία συμβάλει στην ελευθερία, μέσα στην κοινότητα, στους χρήστες, στις αρχές. Έτσι, η ρητορική του "λογισμικό ανοικτού κώδικα" επικεντρώνεται περισσότερο στην δυνατότητα παραγωγής ισχυρού λογισμικού υψηλής ποιότητας, ενώ παράλληλα αποφεύγει τις ιδέες της ελευθερίας, της κοινότητας και των αρχών.

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

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


Προσπάθησε!


Η φιλοσοφία του Yoda ("Δεν υπάρχει προσπάθεια") ακούγεται συμπαθητική, για μένα όμως δε λειτουργεί. Πραγματοποίησα την περισσότερη δουλειά μου όντας περίεργος εάν ήμουν ικανός για αυτό, και αβέβαιος ότι εάν το έκανα θα πετύχαινα τον στόχο μου σε ικανοποιητικό βαθμό. Όπως και να έχει όμως προσπάθησα, επειδή δεν υπήρχε κανείς άλλος εκτός από μένα, τον εχθρό και την πόλη. Εκπλήσσοντας τον εαυτό μου, μερικές φορές το πετύχαινα.

Μερικές φορές απέτυχα· κάποιες από τις πόλεις μου κυριεύτηκαν. Τότε ανακάλυψα μια άλλη απειλούμενη πόλη, και ετοιμάσθηκα για την επόμενη μάχη. Με την πάροδο του χρόνου, διδάχτηκα να αντιλαμβάνομαι τις απειλές και να τοποθετώ τον εαυτό μου ανάμεσα σε αυτές και την πόλη μου, προσκαλώντας και άλλους hackers να συμμετάσχουν.

Στις τρέχουσες ημέρες, δεν είμαι μόνος μου. Είναι μεγάλη η ανακούφιση και η ευχαρίστηση που νιώθω όταν βλέπω στρατιές από hackers να εμπλέκονται σε αυτόν τον πόλεμο προσπαθώντας να κρατήσουν τη γραμμή, και συνειδητοποιώ, πως αυτή η πόλη ίσως επιβιώσει -- προς το παρόν. Αλλά οι κίνδυνοι αυξάνονται κάθε χρόνο και τώρα η Microsoft στοχεύει κατηγορηματικά την κοινότητα μας. Δεν μπορούμε να θεωρούμε το μέλλον της ελευθερίας δεδομένο. Μην το θεωρείτε δεδομένο! Εάν θέλετε να κρατήσετε την ελευθερία σας, θα πρέπει να είστε προετοιμασμένοι να την υπερασπιστείτε.

.

.
 
Τελευταία επεξεργασία από έναν συντονιστή:
Απ: Το εργο GNU

Τelamona προσκυνω σε! Εσυ τα εχεις γραψει ολα αυτα?

Να καταθεσω κ'εγω την αποψη μου: Unix και ξερο ψωμι. Ειδικα σαν χρηστης του συστηματος, το λατρεψα. Αγαπημενο μου application το vi. Δυστυχως εχω πια 3 χρονια να ασχοληθω στη δουλεια με Unix. Ολα τα σχεδιαστικα προγραμματα που χρησιμοποιω (βλ. AutoCAD) τρεχουν σε Windows.
 
Απ: Το εργο GNU

Μακαρι αλλα με τι προσοντα? ;D

Αυτο ειναι ενα κομματι απο το βιβλιο του Richard Stallman, στο οποιο μιλαει, εξηγει μαλλον, την ιδεα και τις αφορμες που τον εσπρωξαν να δημιουργησει το GNU (ενα Ελευθερο και Δωρεαν Unix).
 
open_source.jpg

:D :D:D:D
 
Τελευταία επεξεργασία από έναν συντονιστή:
Πίσω
Μπλουζα