GNU/Linux 101: Μέρος #1 - Ιστορική Αναδρομή

Ελεύθερο όπως ο λόγος, όχι όπως η δωρεάν μπύρα
08 Ιουνίου 2017 23:58
GNU/Linux 101: Μέρος #1 - Ιστορική Αναδρομή

Κακά τα ψέματα βιώνουμε μια παράδοξη εποχή, αμφιταλαντευόμαστε μεταξύ του υπερκορεσμού και της υποκειμενικής ανεπάρκειας. Φάσκουμε και αντιφάσκουμε με τον εαυτό μας σε καθημερινό επίπεδο στην προσπάθεια επαναπροσδιορισμού των αναγκών μας. Κοιμάσαι με την ιδέα πως κάτι δεν είναι αυτό που θα έπρεπε να είναι, κι όμως, ξυπνάς πιο συμβιβασμένος από ποτέ. Η πάλαι ποτέ «οργουελική» προσέγγιση της κοινωνίας του 1984 δείχνει να “πραγματώνεται” στο πρόσωπο εταιρειών που ξεκίνησαν εγκάρδια ενάντιες σε αυτό που τώρα έχουν γίνει. Ποιος θα φανταζόταν το 1983, πως ο κουστουμαρισμένος στα μπλε «Big Brother» και μεγάλος αντίπαλος της Apple, IBM, θα φάνταζε «μικρός» υπό τη σκιά της. Πως η Microsoft θα βασιζόταν στην περισυλλογή δεδομένων για να μείνει στο παιχνίδι και πως καθημερινά θα συναινούσαμε στη δημοσιοποίηση της προσωπικής μας ζωής, με αντάλλαγμα -λίγο χρόνο ακόμη.

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

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

Από τα κινητά τηλέφωνα, τις ηλεκτρονικές συσκευές και τα αυτοκίνητα, σε supercomputers και τους μεγαλύτερους servers στον κόσμο, το Linux, είναι παντού.

“100 Android συσκευές έχουν ενεργοποιηθεί από τη στιγμή που ξεκίνησες να διαβάζεις αυτό το άρθρο, 8/10 χρηματιστηριακοί δείκτες τροφοδοτούνται από Linux, 9/10 supercomputers τρέχουν Linux. Google, Twitter, Facebook, Instagram και Amazon “είναι” Linux” -The Linux Foundation

Για όσους δεν το γνωρίζουν, το Linux αποτελεί το πιο διαδεδομένο Ελεύθερο Λογισμικό/ Λογισμικό Ανοιχτού-Κώδικα στον κόσμο και αποτελεί εναλλακτική λύση, τόσο σε χρήστες Windows, όσο και Mac OS. Για την ακρίβεια όποιος από εσάς έχει κινητό που τρέχει Android, ήδη χρησιμοποιεί Linux καθημερινά. Τι θα πει όμως ΕΛ/ΛΑΚ, πώς αναπτύσσεται, τί επιπτώσεις έχει αυτό στη βιομηχανία και κυρίως πως αυτό επηρεάζει τον τελικό χρήστη;

Η ιστορία μας ξεκινάει στο όχι και τόσο μακρινό 1964, με τις εταιρίες General Electric, AT&T (Bell Labs) και το πανεπιστήμιο MIT να ξεκινούν για το τολμηρό πόνημα που άκουγε στο όνομα Multics (Multiplexed Information and Computing Service). Πρόκειται για ένα πρώιμο κλειστού-κώδικα λειτουργικό σύστημα, η φιλοσοφία του οποίου αποτέλεσε άμεσα και έμμεσα τον ακρογωνιαίο λίθο σε κάθε μετέπειτα προσπάθεια δημιουργίας λειτουργικών συστημάτων (από το Linux, μέχρι το DOS και τα Windows). Κανείς όμως δεν γνώριζε πως πέντε μόλις χρόνια μετά, το φιλόδοξο αυτό project θα είχε κιόλας αποτύχει.
Αν πρόκειται όμως να κερδίσεις τον πόλεμο, τι ουσία μπορεί να έχει το να χάσεις μια μάχη; Όπως αναφέρει στο βιβλίο του «Η Οριστική Ιστορία των Πρώτων Χρόνων του UNIX» ο Dr. Peter H. Salus:

Με το Multics προσπάθησαν να φτιάξουν ένα πιο πολύπλευρο και ευέλικτο λειτουργικό σύστημα και απέτυχαν παταγωδώς”.

Το έτος 1969, η πολυπλοκότητα του όλου εγχειρήματος έδειχνε να αυξάνεται εκθετικά τώρα περισσότερο από ποτέ. Η Bell Labs ακολουθεί τον δρόμο που χάραξε το MIT και αποφασίζει να αποσυρθεί, αφήνοντας μόνο τη General Electric ως πνευματικό δικαιούχο να προσπαθεί δίχως επιτυχία να ολοκληρώσει το project. Τότε ήταν που ο Kenneth Lane Thompson (Ken) μαζί με τον Dennis MacAlistair Ritchie (dmr) -εκ της AT&T- άδραξαν την ευκαιρία, πατώντας στη δυσκολία περάτωσης που αντιμετώπιζε η G.E. Οι δυο τους, ζήτησαν την άδεια να ασχοληθούν με τη δημιουργία μιας απλουστευμένης έκδοσης του Multics για μη-εμπορική χρήση (διασφαλίζοντας τοιουτοτρόπως πως κάτι τέτοιο δεν θα επηρέαζε τις πωλήσεις του πρώτου όταν και αν αυτό θα ήταν σε θέση να διατεθεί στην αγορά). Ύστερα από έναν χρόνο και τη δημιουργία της γλώσσας προγραμματισμού “C”, έδωσαν πνοή στο έργο τους, που δεν ήταν άλλο από το λειτουργικό σύστημα UNIX (Uniplexed Information and Computing Service). Ένα σύστημα με την φιλοσοφία MPM (Minimal, Portable, Modular) κατά την οποία δομήθηκε αργότερα το πρότυπο POSIX (Portable Operating System Interface), τις οδηγίες του οποίου ακολουθούν όλα τα σημερινά λειτουργικά συστήματα..           

Ένα έτος μετά και αφού η εξέλιξη του Multics φάνταζε μάταιη, η ΑΤ&Τ αποφασίζει να αδειοδοτήσει την εμπορική χρήση του σε τρίτους, τόσο επιχειρησιακά όσο και ακαδημαϊκά (IBM, Microsoft και Sun Microsystems ήταν λίγοι από τους πελάτες της). Παράλληλα η Honeywell εξαγοράζει το τμήμα υπολογιστών της General Electric μαζί με το project αλλά αυτή η ιστορία είναι εκτός του εύρους του παρόντος άρθρου.

Λίγα χρόνια αργότερα, το 1977 η ερευνητική ομάδα του Πανεπιστημίου της Καλιφόρνια, Berkeley (CSRG) έχοντας στην κατοχής της μια ακαδημαϊκή άδεια του UNIX -καθώς και ένα βιβλίο που εμπεριείχε τον πηγαίο-κώδικα του για λόγους εκμάθησης- αντέγραψε το λειτουργικό και με κάποιες αλλαγές εξέδωσε τη δική του διανομή κάτω από το όνομα BSD (Berkeley Software Distribution). Αυτό είχε ως αποτέλεσμα η AT&T να μηνύσει το πανεπιστήμιο και κατ’ επέκταση να μειώσει δραματικά την ανάπτυξη της διανομής. Η ιδέα του ελεύθερου λογισμικού και του λογισμικού ανοιχτού-κώδικα είχε μόλις γεννηθεί.

Δεν ήταν άλλος παρά ο Richard Matthew Stallman (rms), προγραμματιστής του MIT, που ανακοίνωσε μέσο του Usenet το 1983 το όραμα του, που άκουγε στο όνομα GNU (αναδρομικό ακρώνυμο για το: Gnu is Not UNIX). Συντάσσοντας το μανιφέστο του, αρίθμησε τις τέσσερεις αρχές ενός λογισμικού ανοιχτού-κώδικα που το κάνουν να διαφέρει από το μέχρι πρότινος κλειστού-κώδικα μοντέλο. Ο χρήστης είχε τη δυνατότητα να το χρησιμοποιήσει για όποιο σκοπό ήθελε [1], να μελετήσει τον κώδικα και να τον τροποποιήσει [2], να το διανέμει ελεύθερα [3] και να τροποποιεί και να αναδιανέμει δημόσια ακόμη και τις τροποποιημένες εκδοχές άλλων [4]. Τη νομιμοποίηση αυτών ήρθε να επισφραγίσει με τη δημιουργία του Free Software Foundation και του GNU Public License (GPL) που επέτρεπε στη αρχική μορφή του λογισμικού και σε όλα τα παράγωγα του κώδικα της να παραμένουν ελεύθερα για δημόσια χρήση.

Το GNU τα είχε όλα: βασικά βοηθητικά προγράμματα, εκτενείς βιβλιοθήκες και ένα ορμαθό εργαλείων (βλ. Bash Shell, GNU Compiler κ.α.) που μόλις έβγαιναν από το στάδιο της beta έκδοσης και έμελλε να εδραιωθούν για πολλά χρόνια στην κατηγορία τους. Αλλά στερούταν το σημαντικότερο, έναν πυρήνα -τη βάση δηλαδή του λειτουργικού συστήματος η οποία είναι υπεύθυνη για οτιδήποτε συμβαίνει στο σύστημα, ένας δίαυλος επικοινωνίας και μετάφρασης που ενώνει το software με το hardware στο πιο χαμηλό επίπεδο. Η λύση ήταν μονόδρομος εκείνη την εποχή κι έτσι ξεκίνησε η κατασκευή του GNU Hurd Kernel, μια δημιουργία όμως που αποδείχτηκε πλήρως προβληματική και ζημιοφόρα τόσο για την ομάδα ανάπτυξης όσο για το ίδιο το GNU.

Δεν ήταν μέχρι το 1991 όπου ένας φοιτητής υπολογιστών του πανεπιστημίου του Ελσίνκι -ετών 21-, μέσο του Usenet έγραψε το ακόλουθο:

“Γεια σε όλους εκεί έξω που χρησιμοποιούν mini-UNIX

Ξεκίνησα να φτιάχνω ένα (ελεύθερο) λειτουργικό σύστημα (σαν χόμπι, δεν θα είναι τίποτα μεγάλο ή επαγγελματικό όπως το gnu) για 386(486) ΑΤ κλώνους. Το ξεκίνησα από τον Απρίλιο και κοντεύει πλέον να ολοκληρωθεί. Θα ήθελα μερικές γνώμες γύρω από τα πράγματα που συμπαθεί/αντιπαθεί ο κόσμος στο mini-UNIX, καθότι το λειτουργικό μου σύστημα τείνει να του μοιάζει κάπως (έχει για παράδειγμα μεταξύ άλλων το ίδιο σχεδιάγραμμα όσον αφορά τη σχεδίαση του συστήματος αρχείων (για πρακτικούς λόγους φυσικά).

Μόλις μετέτρεψα/μετέφερα το bash(1.08) και το gcc(1.40) και πραγματικά δείχνουν να λειτουργούν. Ελέω αυτών λογικά θα έχω κάτι απτό εντός ολίγων μηνών και γι’ αυτό θα ήθελα να ξέρω τι χαρακτηριστικά θα ήθελε ο περισσότερος κόσμος να δει. Κάθε πρόταση είναι δεκτή, αλλά δεν εγγυώμαι πως θα τις προσθέσω όλες :-)

Linus ([email protected])

Y.Γ Για όσους αναρωτιούνται, όχι δεν περιέχει καθόλου κώδικα που να σχετίζεται με το minι-UNIX άλλωστε φέρει ένα σύστημα αρχείων πολλών νημάτων. ΔΕΝ μπορεί να χρησιμοποιηθεί σε άλλα συστήματα (μιας και χρησιμοποιεί τον τρόπο εναλλαγής διεργασιών του 386), και πιθανών ποτέ να μην υποστηρίξει τίποτα άλλο πέρα από σκληρούς δίσκους AT, μιας και μόνο αυτά έχω στην κατοχή μου :-(.”

Τον επόμενο χρόνο ο Linux  Kernel του Linus Torvalds εκδίδεται υπό την άδεια GPL και τα πρώτα ανεξάρτητα λειτουργικά συστήματα μπαίνουν στη φάση της παραγωγής. Λίγο αργότερα και με πάνω από εκατό πλέον άτομα δυναμικό να εργάζονται στην προσαρμογή του πυρήνα Linux στο περιβάλλον του GNU, τα λειτουργικά Slackware και Debian έκαναν τα πρώτα τους “βρεφικά” βήματα. Εφαρμόζοντας και καθιερώνοντας παράλληλα τον όρο GNU/ Linux Distribution. Ο όρος απευθυνόταν σε ένα λειτουργικό σύστημα που απαρτιζόταν από τα εξής: τον πυρήνα Linux, τα εργαλεία, τα βοηθητικά προγράμματα και τις βιβλιοθήκες του GNU, κάποιο πρόσθετο λογισμικό, τα εγχειρίδια χρήσης και λειτουργίας αυτού, ένα παραθυρικό σύστημα και ένα περιβάλλον επιφάνειας εργασίας.

Βάσει των τεσσάρων κανόνων που δομούν ένα ΕΛ/ΛΑΚ ο καθένας είχε τη δυνατότητα να διαλέξει για παράδειγμα ένα διαφορετικό σύνολο εκ των κατηγοριών και να αναδιανέμει το τελικό λειτουργικό όπως αυτός επιθυμούσε (βλ. Ubuntu GNU/Linux Distro, Fedora GNU/Linux Distro, OpenSUSE GNU/Linux Distro, κ.α).

Από το 1994 όπου και ο πυρήνας βγήκε από τη φάση του beta και πέρασε στην έκδοση 1.0, έχει σήμερα αισίως φτάσει την έκδοση 4.11.2. Σε αντίθεση με άλλα λειτουργικά όπως τα Windows της Microsoft ή το Mac OS της Apple που δομούνται εντός των ορίων της εταιρίας, το GNU/Linux δεν γνωρίζει όρια, φτιάχνεται συλλογικά, από διαφορετικούς ανθρώπους, διαφορετικές εταιρίες, διαφορετικές αγορές και ηπείρους. Από το 2005, 10.000 προγραμματιστές, από 1.000 διαφορετικές εταιρίες συνείσφεραν περίπου 20 εκατομμύρια γραμμές κώδικα, κερδίζοντας τον τίτλο του μεγαλύτερου project στην ιστορία των υπολογιστών που αναπτύχθηκε συλλογικά.

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

Σε δεύτερο χρόνο μετά την αποδοχή τους γίνεται εκτεταμένη αξιολόγηση από κάποιον συντηρητή ο οποίος δίνει το δεύτερο «ΟΚ». Όσα patch πέρασαν και τις δύο εκτιμήσεις πάνε στον Linus Torvalds, ο οποίος αποτελεί την τελική αρχή. Τα patch που περνούν επιτυχώς όλη τη διαδικασία βρίσκουν τον δρόμο τους για την επόμενη έκδοση. Αυτό σημαίνει ότι περίπου 10.000 patches ενσωματώνονται σε κάθε νέα έκδοση. Περίπου δώδεκα από αυτά προστέθηκαν από την ώρα που ξεκίνησα να γράφω το παρών άρθρο. Ο ρυθμός ανάπτυξης του είναι απλά ασύγκριτος και αποτελεί τον λόγο που το σύνολο τον συστημάτων υψηλής και κρίσιμης σημασίας το χρησιμοποιούν.

“Αν για παράδειγμα γίνει κοινή η ύπαρξη κάπου exploit του λειτουργικού ή των προγραμμάτων του, χάρη στον ανοιχτό κώδικα όπου ο καθένας έχει πρόσβαση, θα πάρει μόλις κάποια λεπτά για να βρεθεί όχι μόνο το πρόβλημα αλλά και τη λύση του. Λίγα λεπτά αργότερα θα υπάρχει είδη διαθέσιμη η επίλυση ως update. Αυτό έρχεται σε αντίθεση με άλλα λειτουργικά κλειστού κώδικα όπου το πρόβλημα τις περισσότερες φορές λύνεται αφού έχει επηρεάσει πρώτα κάποιες χιλιάδες συστήματα ή και σε κάποιες περιπτώσεις -καθόλου.”

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

Περισσότερα γι’ αυτό καθώς και τον τρόπο επιλογής και εγκατάστασης μιας διανομής Linux στο επόμενο επεισόδιο, μέχρι τότε μείνετε συντονισμένοι στο Unboxholics.com