Παρασκευή, 31 Οκτωβρίου 2014

Η Άνοδος του Linux και η ιστορία ενός χάκερ


Η Άνοδος του Linux

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

Ο αρχικός κώδικας του Linux γράφτηκε για διασκέδαση ή σύμφωνα με την φράση του Eric S. Raymond (προέδρου του OSI -Open Source Initiative, πρώην ιδρυτικό μέλος του GNU, γνωστού υπερασπιστή της κουλτούρας των hackers και συγγραφέα του θρυλικού πια μανιφέστου για την ανάπτυξη των open source προγραμμάτων «The Cathedral and The Bazaar» -«Ο Καθεδρικός και το Παζάρι»),

"για να «ξύσει την φαγούρα» του Linus Torvalds"

και αργότερα για να ικανοποιήσει τον ενθουσιασμό -και την άκρατη επιθυμία για προγραμματισμό- πολλών χάκερ και απλών ανθρώπων που ό,τι έκαναν, το έκαναν από χόμπι και οι οποίοι -ως επί το πλείστον- είχαν μεγαλώσει στην εποχή των ZX80 και BBC Micro. Για όλους αυτούς ο κώδικας ήταν διαθέσιμος και μπορούσαν να τον hack-άρουν.

Ο Richard Stallman, είπε σε συνέντευξη του:

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

Όχι άδικα, οι hackers, χαρακτηρίζονται ως: "οι αυτόχθονες του νέου εκπαιδευτικού παραδείγματος".

Στα τέλη του εβδομήντα και στις αρχές του ογδόντα, για εκείνους που πέρασαν την εφηβεία τους ή ακόμα και την παιδική τους ηλικία διερευνώντας τον υπολογιστή τους, το να παίζουν με το λογισμικό το θεωρούσαν ως ευκαιρία για να μάθουν. Και, αυτήν την εμπειρία μάθησης, ένιωθαν την ανάγκη να την μοιραστούν. Έτσι λοιπόν αναπτύχθηκε το Linux֗ μέσα από αυτό το ήθος. Το Linux γεννήθηκε μέσα από το κίνημα του Ελεύθερου λογισμικού και στις αρχές της δεκαετίας του Usenet, όπου η κουλτούρα που επικρατούσε ήταν

"αν γράψατε κάτι καλό, δημοσιεύστε το στο Usenet"

και ο μόνος όρος που αφορούσε το λογισμικό ήταν ότι

"αν το λογισμικό σπάσει, μπορείτε να πάρετε και να κρατήσετε και τα δύο κομμάτια."

Το Linux τέθηκε σε λειτουργία λίγο μετά τον Ιανουάριο του 1991 όταν ο Linus Torvalds αγόρασε ένα PC. Όπως λέει ο Lars Wilenius,

"Μέχρι τότε ο Linus χρησιμοποιούσε ένα Sinclair QL που, όπως οι περισσότεροι υπολογιστές που κατασκευάζονται στην Βρετανία, ήταν ευφυής και ασυνήθιστα διαφορετικός από τους άλλους. Όπως ο κάθε χάκερ που σέβεται τον εαυτό του, έτσι και ο Linus είχε γράψει μερικά δικά του εργαλεία ανάπτυξης και προγράμματα λογισμικού. Συν των άλλων, όχι μόνο τροποποίησε λίγο το hardware του QL προκειμένου να αντικαταστήσει ένα σπασμένο πληκτρολόγιο, μα πρόσθεσε και ένα συμβατό -με τον υπολογιστή του- floppy drive. Όταν λοιπόν αγόρασε το καινούριο του κομπιούτερ, έγραψε ένα device driver (πρόγραμμα-οδηγό) συσκευής για το QL ώστε να μπορέσει να μεταφέρει ό,τι του χρειαζόταν -από τον QL- στο υπολογιστή που αγόρασε."

Μάλιστα, μία από τις αγαπημένες ατάκες του Linus Torvalds ήταν:

"Software is like sex; it's better when it's free."

δηλαδή

"Το λογισμικό είναι όπως το σεξ ֗ είναι καλύτερο όταν είναι ελεύθερο."

Από το Minix στο Linux

Όταν ο Linus πρωτοξεκίνησε το Linux, το βάσισε πάνω σ’ ένα λειτουργικό σύστημα της εποχής, το Minix που αναπτύχθηκε ως ένα εργαλείο διδασκαλίας από τον Andrew Tanenbaum. Πιο συγκεκριμένα, το βιβλίο του Andrew Stuart Tanenbaum, του δημιουργού του MINIX, ήταν η έμπνευση του Λίνους Τόρβαλντς για την δημιουργία του πυρήνα Linux.
Στην αυτοβιογραφία του Just for Fun, ο Linus Torvalds το περιγράφει ως

"το βιβλίο που με εκτόξευσε σε νέα ύψη."

Ο λόγος για το Operating Systems: Design and Implementation, (που μαζί με τον Albert Woodhull) έγραψε ο καθηγητής της επιστήμης υπολογιστών στο Πανεπιστήμιο Βρέιε, Άντριου Στιούαρτ Τάνενμπάουμ ο οποίος είναι γνωστός και ως ο δημιουργός του MINIX, του Ελεύθερου και Ανοιχτού κώδικα λειτουργικού συστήματος, το οποίο δημιούργησε για εκπαιδευτικούς σκοπούς. Σημειωτέον πως το MINIX σήμερα συνεχίζει να αναπτύσσεται -τόσο ως εκπαιδευτικό σύστημα, όσο και ως σύστημα παραγωγής.

Το 1987, λοιπόν, ο Τανενμπάουμ έγραψε έναν κλώνο του UNIX και τον ονόμασε MINIX (από το MIni-uNIX), για υπολογιστές IBM PC. Το λειτουργικό σύστημα απευθυνόταν σε φοιτητές και σε οποιονδήποτε άλλον ήθελε να μελετήσει πώς δουλεύει ένα λειτουργικό σύστημα. Στην συνέχεια, έγραψε ένα βιβλίο το οποίο περιείχε όλον τον πηγαίο κώδικα και ένα παράρτημα στο οποίο εξηγούσε τον κώδικα με λεπτομέρεια. Ο κώδικας ήταν διαθέσιμος σε μια σειρά από δισκέτες. Μέσα σε τρεις μήνες, μια ομάδα συζητήσεων γεννήθηκε στο USENET, με το όνομα comp.os.minix, με 40.000 χρήστες οι οποίοι συζητούσαν και βελτίωναν το σύστημα. Ένας από αυτούς τους χρήστες ήταν ο Φινλανδός Λίνους Τόρβαλντς, ο οποίος άρχισε να προσθέτει δυνατότητες στο MINIX και να το προσαρμόζει στις ανάγκες του.

Το Unix του κίνησε την περιέργεια και γεννήθηκε η επιθυμία του να εγκαταστήσει ένα Unix-οειδές λειτουργικό σύστημα στον ολοκαίνουριο υπολογιστή του. Έτσι λοιπόν ο Torvalds εγκατέστησε ένα αντίγραφο του Minix και άρχισε να γράφει έναν αυτοτελές εξομοιωτή τερματικού προκειμένου να έχει πρόσβαση στους servers του UNIX, στο πανεπιστήμιο του Ελσίνκι. Και μπορεί στην αρχή να ξεκίνησε με στόχο του τον εξομοιωτή τερματικού, το έργο του όμως αναπτύχθηκε και μέχρι τον Αύγουστο του 1991, ο Torvalds ήταν πλέον έτοιμος να ανακοινώσει στην ομάδα συζήτησης comp.os.minix στο Usenet πως έφτιαχνε ένα δωρεάν λειτουργικό σύστημα για κλώνους 386 (486) AT. Τόνιζε μάλιστα πως είναι απλά ένα χόμπι֗ δεν θα είναι τίποτα σπουδαίο ούτε κατάλληλο για επαγγελματίες, όπως το GNU. Την 5η Οκτωβρίου του 1991, ο Linus Torvalds ανακοίνωσε την κυκλοφορία του δικού του πυρήνα, του Linux, ο οποίος αρχικά χρησιμοποιούσε το σύστημα αρχείων του Minix χωρίς όμως να βασίζεται στον πηγαίο κώδικα του Minix.

Η πρώτη προσέγγιση του πυρήνα του Linux γράφτηκε αποκλειστικά και μόνο για την διερεύνηση της λειτουργίας του τσιπ 80386, του υπολογιστή του Torvalds, που χρησιμοποιούσε τον compiler GCC του GNU και το πιθανότερο ήταν πως δεν θα υποστήριζε τίποτε άλλο εκτός από σκληρούς δίσκους AT. Ο πυρήνας του Linux ήταν μία συγκεκριμένη και μονολιθική μηχανή που, όμως, γρήγορα προσέλκυσε πολλούς֗ οπαδούς και κριτικούς. Δεν πέρασαν παρά λίγοι μόνον μήνες και ο Torvalds προχώρησε στην βαρυσήμαντη απόφαση να απελευθερώσει τον κώδικα του Linux, υπό την άδεια GNU GPL. Από κει και πέρα οι εξελίξεις έτρεχαν και πολύ γρήγορα άρχισαν να βοηθούν και να συμμετέχουν όλο και περισσότεροι ενθουσιώδεις χομπίστες που, όπως ο Torvalds, είχαν μεγαλώσει στην εποχή του Sinclair QL και ήθελαν να εξερευνήσουν τον κώδικα.

Έτσι λοιπόν, εκ τη γενέσει του, το Linux, ανήκε σε όλους και σε κανέναν. Κάτι σαν την παιδική χαρά֗ το κάθε τι σε ενθουσιάζει και χαίρεσαι, θέλεις να το δοκιμάσεις. Το ίδιο ενθουσιάζονταν και όλοι αυτοί οι hackers και χομπίστες που χαίρονταν με την εμπειρία που αποκτούσαν και με τις δοκιμές που έκαναν. Ο Alan Cox εγκατέστησε το Linux στο μηχάνημα του Πανεπιστημίου Swansea Computer Society και ξεκίνησε την προσπάθεια διόρθωσης των bugs που είχε ο κώδικας δικτύωσης του Πανεπιστημίου.

Όπως λέει ο Alan Cox

"Το Πανεπιστήμιο Swansea είχε ένα ωραίο και πολύ δραστήριο δίκτυο, πολλαπλών πρωτοκόλλων, που ήταν απλά τέλειο για να... σου κρασάρει τον υπολογιστή. Άρχισα την επιδιόρθωση αυτών των προβλημάτων και έτσι φτιάξαμε τον κώδικα δικτύωσης, με βάση τον βασικό κώδικα δικτύωσης που είχαν δημιουργήσει οι άλλοι. Αυτό που λίγο-πολύ έκανα ήταν να κατεβάζω πρότυπα και να μαθαίνω διαβάζοντάς τα. Υπήρχαν θέματα που δεν διορθωνόταν, μέχρι την στιγμή βέβαια που εμπλεκόταν κάποιος ο οποίος καταλάβαινε πώς «δούλευαν» τα μαθηματικά."

Χάκερ και χομπίστες

Αναμφισβήτητα, αυτή η ανοιχτή, συνεργατική στάση στην ανάπτυξη λογισμικού δεν ήταν δημοφιλής σε όλους αλλά λειτούργησε, παρά τις διαμαρτυρίες πολλών -εκείνη την εποχή- που θα έπρεπε να γνωρίζουν καλύτερα. Τέτοιοι βέβαια υπήρχαν ανέκαθεν και πάντα θα υπάρχουν. Όπως για παράδειγμα ο Scott McNealy, Διευθύνων Σύμβουλος της Sun Microsystems, που το 2003 απέρριψε το GNU/Linux λέγοντας πως πρόκειται για ένα

"υπέροχο περιβάλλον, κατάλληλο για κάποιον χομπίστα֗ όχι όμως και για μια επιχείρηση."

Και φυσικά -μέσα στα επόμενα χρόνια- αποδείχθηκε πως η βαρύγδουπη και άκρως υποτιμητική δήλωσή του ήταν πέρα για πέρα λάθος, αφού το Linux αντικατέστησε το Solaris και έγινε η πλατφόρμα που έτρεχαν οι servers των επιχειρήσεων και η Sun οδηγήθηκε σε παρακμή.

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

Και στην εκκολαπτόμενη κοινότητα του Linux, όπου αφθονούσαν τα ταλέντα και οι υψηλές επιδόσεις, όλοι αυτοί οι άνθρωποι δεν είχαν καμία σχέση μεταξύ τους֗ το κοινό τους σημείο ήταν το μεράκι και ο ενθουσιασμός που είχαν να εισχωρήσουν στον κώδικα και να κάνουν την διαφορά, μέσα σε ένα κλίμα απόλυτα δημοκρατικό.

Έτοιμο!

Το Linux και το GNU έδωσαν στους οικιακούς χρήστες την δυνατότητα να εξερευνήσουν τις δυνατότητες του κώδικα, μα και την δυνατότητα δικτύωσης των μηχανημάτων τους. Το Linux αντικατέστησε το Ανοιχτού Κώδικα «GNU Hurd», ως πυρήνας στην καρδιά του λειτουργικού συστήματος GNU του Ρίτσαρντ Στάλλμαν και οι χρήστες άρχισαν να συσκευάζουν τα στοιχεία του Linux και GNU σε συνεκτικές «διανομές» με τους εγκαταστάτες και εργαλεία partitioning (κατάτμησης) που έκαναν το λογισμικό προσβάσιμο, καθώς και διάφορα εργαλεία που θα χρησίμευαν στον χρήστη και θα τον έκαναν να αισθάνεται πως χρησιμοποιεί ένα φιλικό προς αυτόν λογισμικό.

Ο Owen Le Blanc συνέταξε την «MCC interim release», την πρώτη προσωρινή διανομή του Linux, τον Φεβρουάριο του 1992 και η οποία πήρε το όνομά της από το Κέντρο Υπολογιστών του Μάντσεστερ (Manchester Computing Centre) της Αγγλίας. Την ίδια χρονιά, ο Peter McDonald έδωσε στην κυκλοφορία την διανομή SLS (Softlanding Linux System). Η διανομή αυτή ήταν και η πρώτη προσπάθεια να συνενωθεί όλο το διαθέσιμο λογισμικό και να δημιουργηθεί μια δημοφιλής διανομή Linux, έτσι όπως την εννοούμε σήμερα.

Η SLS, όμως, δεν άρεσε σε όλους. Παρόλο που ήταν καλή, άφηνε πολλά πράγματα να τα κάνει ο χρήστης. Οι αδυναμίες της SLS έκαναν τον Volkerding Volkerding να δημιουργήσει την διανομή Slackware που αποτέλεσε το πρότυπο για πολλές μεταγενέστερες εμπορικές διανομές, συμπεριλαμβανομένων των Red Hat και SuSE. Η δυσαρέσκεια για την SLS ήταν και το κίνητρο του Ian Murdock, που ξεκίνησε το Debian.

"Η SLS είναι ίσως η διανομή που κλυδωνίζεται από τα περισσότερα bugs και, ταυτόχρονα, η πιο κακοσυντηρημένη διανομή Linux που υπάρχει,"

έγραψε το 1994.

"Και το χειρότερο; Η SLS είναι πιθανότατα η πιο δημοφιλής διανομή."

Ένα συλλογικό τέχνασμα

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

Αυτό που θέλησε να κάνει, λοιπόν, ο Ian Murdock ήταν να πάρει αυτήν την συνεργατική τεχνική και να την εφαρμόσει σε μια διανομή Linux.

Ο δημιουργός του Debian -Ian Murdock- είχε ως σκοπό να φτιάξει μια διανομή η οποία θα ήταν ελεύθερη και προσβάσιμη απο όλους ανεξαιρέτως, στο πνεύμα του Linux και όχι όπως ήταν μέχρι τότε η κατάσταση -δηλαδή μεγάλες εταιρείες να το εκμεταλλεύονται με σκοπό το κέρδος (βλέπε Sun, Apple). Το Debian ξεκίνησε σαν μια μικρή ομάδα ανάπτυξης ελεύθερου/ανοιχτού λογισμικού και σιγά σιγά μεγάλωσε σε μια τεράστια κοινότητα χρηστών και developers πάνω στην οποία είναι βασισμένες πάρα πολλές διανομές όπως το Ubuntu, το Linux Mint και πάρα πολλές Debian-based διανομές. Tου έδωσε μάλιστα, για όνομα, τον συνδυασμό του δικού του ονόματος και της γυναίκας του (Debra+Ian=Debian). Την 16η Αυγούστου 1993, ο Murdock ανακοίνωσε την επικείμενη άφιξη του Debian στο comp.os.linux.development. Από τότε μέχρι και σήμερα, το χαρακτηριστικό όλων των Debian-based διανομών είναι η έμφαση στην αξιοπιστία, στην σταθερότητα, στην ευκολία εγκατάστασης και στις αναβαθμίσεις.

Το Debian, η Red Hat και το Slackware ήταν οι δημοφιλείς διανομές της δεκαετίας του ενενήντα. Το Debian ήταν η διανομή της κοινότητας και η συνείδηση ​​του Linux. Το Slackware ήταν η πιο Unix-οειδής διανομή και η Red Hat έφτασε σε μεγάλη εμπορική ακμή. Σχεδόν όλες οι διανομές GNU/Linux που υπάρχουν σήμερα, πέρα κάποιων αξιέπαινων εξαιρέσεων, εξελίχθηκαν μέσα από αυτές τις τρεις διανομές.

Το Linux τραβάει την προσοχή

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

Η επιτυχία που γνώρισε η Red Hat δεν ήταν καθόλου τυχαία. Από την στιγμή που το Linux άρχισε να απογειώνεται σε εμπορικά περιβάλλοντα, στο τέλος της δεκαετίας, η Red Hat επωφελήθηκε δεόντως αυτήν την ακμή για να γίνει «η εταιρεία του Linux».

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

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

"Το Linux είναι πλέον ενσωματωμένο στην βιομηχανία. Είναι αυτό που χρησιμοποιείτε"

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

Το Linux έχει γίνει θεσμός, όπως ένα ροκ συγκρότημα που απέκτησε διασημότητα και απαιτεί πληρωμή για τα downloads (τις λήψεις) των τραγουδιών του. Το Linux έχει γίνει σαν τους Metallica...

Οι καιροί έχουν αλλάξει και όχι πάντα προς το καλύτερο, αλλά αν ο άκρατος ενθουσιασμός των πρώτων ημερών έχει περάσει, το πνεύμα ζει στις κοινότητες των διανομών όπως είναι το Debian και το Fedora, το Gentoo και το Arch, μα και στην διασκέδαση και στην ελευθερία όλων αυτών που μπορεί να φτιάξει ένα Raspberry Pi με τους απόηχους του παρελθόντος και το απεριόριστο πεδίο εφαρμογής για πείραμα και παιχνίδι.