GNU/Linux 101: Μέρος #2 – Επιλογή Διανομής

Όπου υπάρχει ένα «κέλυφος», υπάρχει και τρόπος
25 Ιουλίου 2017 10:26
GNU/Linux 101: Μέρος #2 – Επιλογή Διανομής

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

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

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

Είναι ένας φαύλος κύκλος αντίστοιχος της επαγγελματικής αποκατάστασης και απόκτησης εμπειριών. Το Linux στερείται βασικών προγραμμάτων (πχ. Adobe Suite, Affinity Suite, Microsoft Office, ‘AAA’ Παιχνίδια, κ.α.) γιατί δεν έχει μεγάλο ποσοστό χρήσης και δεν έχει μεγάλο ποσοστό χρήσης γιατί πολύ απλά στερείται βασικών προγραμμάτων.

Για αρκετές εφαρμογές της αγοράς υπάρχουν εναλλακτικές, αλλά όσο καλές και αν είναι (πχ. Krita) δεν θα μπορέσουν ποτέ να αναμετρηθούν με τις επί-πληρωμή εφαρμογές “μεγάλων” εταιριών, πόσο δε σε επαγγελματικό επίπεδο. Το R&D που “έριξαν” οι δεύτερες μεταφράζεται σε χρόνο και ως γνωστόν “ο χρόνος είναι χρήμα”. Στην καλύτερη περίπτωση όπου τα αποτελέσματα και των δυο εφαρμογών δε διαφέρουν ουσιαστικά, η χρονοβόρα έλλειψη κάποιων κύριων αυτοματοποιημένων ενεργειών αποτελεί trade-off για τους περισσότερους επαγγελματίες που κάνουν χρήση του υπολογιστή τους βιοποριστικά. Στη μια περίπτωση ο χρήστης φτάνει σε παραγωγικό σημείο στις ‘x’ ώρες ενώ κάνοντας χρήση κάποιου ανοιχτού κώδικα προγράμματος στις ‘x+y’ ώρες.

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

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

Μία μικρή και τελευταία παρένθεση, οι όροι αρχικά θα σας φαίνονται πολλοί και ως επί το πλείστον θα σας είναι άγνωστοι, μην αφήσετε αυτό όμως να σας καταβάλει, το έχω βάλει σκοπό μέχρι το τέλος της σειράς των άρθρων να σας λύσω κάθε τυχόν απορία -είναι άλλωστε ένας οδηγός «from zero to hero».

Ας ξεκινήσουμε κάνοντας μια βόλτα από το DistroWatch, εκεί θα δείτε πως υπάρχει μια λίστα με τις Top 100 διανομές. Το DistroWatch λοιπόν είναι μια ιστοσελίδα που ανανεώνεται ημερησίως και προσπαθεί να μετρήσει κατά προσέγγιση το ποσοστό των χρηστών που «ασχολούνται» με την κάθε διανομή.
Την ώρα που γράφω το παρόν άρθρο, μέσα στην πρώτη δεκάδα βρίσκονται οι: Mint, Debian (βλ. Πρώτη διανομή), Manjaro, Ubuntu, openSUSE, Antergos, Deepin, Zorin, Fedora και Elementary OS διανομές.

Όπως είδαμε στο πρώτο άρθρο, βάσει των τεσσάρων κανόνων που δομούν ένα ΕΛ/ΛΑΚ, ο καθένας έχει τη δυνατότητα να ξεκινήσει με βάση του τον πυρήνα, τα εργαλεία και τα βοηθητικά προγράμματά του και να βάλει από πάνω κάποιο πρόσθετο λογισμικό της επιλογής του (πχ. Libre Office, Mozilla Firefox, Google Chrome, VLC, KODI, κ.α.), ένα παραθυρικό σύστημα (πχ. XORG Server, Wayland και Mir), καθώς και ένα περιβάλλον επιφάνειας εργασίας (πχ. Gnome, Unity, Cinnamon, MATE, KDE, Xfce, LXDE, Pantheon, OpenBox, κ.α.).
Κάθε μια λοιπόν διανομή GNU/Linux που βλέπετε στο DistroWatch είναι ακριβώς αυτό, είναι ο ίδιος πυρήνας (με κάποιες εκδόσεις διαφορά), ένα σύνολο προεγκατεστημένων προγραμμάτων (ίσως και το ίδιο), κάποιο παραθυρικό σύστημα (συνήθως ο X Server), ένα διαφορετικής εμφάνισης περιβάλλον επιφάνειας εργασίας (πιθανότατα το Gnome) και φυσικά μια κοινότητα (ή και εταιρία) που το εξελίσσει με όποιον τρόπο δύναται.

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

Το Πρόσθετο Λογισμικό είναι κάθε είδους πρόγραμμα που έρχεται προεγκατεστημένο (βλ. Bloatware) ή που εγκαθιστούμε κατά τη διάρκεια χρήσης του υπολογιστή μας (βλ. Software). Σε αυτά περιλαμβάνονται τα Office, η σουίτα της Adobe, το Steam Store ακόμη και προγράμματα που τρέχουν στο παρασκήνιο χωρίς γραφικό περιβάλλον.

Το Παραθυρικό Σύστημα είναι η ραχοκοκαλιά της επικοινωνίας του hardware και του software με το χρήστη. Επιτρέπει τη μέθεξη μεταξύ της οθόνης, του πληκτρολογίου, του ποντικού και της κάρτας γραφικών για την παραγωγή ενός παραθυρικού περιβάλλοντος που θα χρησιμοποιήσει ως βάση του το περιβάλλον εργασίας. Σε αντίθετη περίπτωση ο υπολογιστής παράγει μόνο χαρακτήρες σε ένα μονόχρωμο φόντο (βλ. DOS).

Τέλος, το Περιβάλλον Εργασίας είναι το layout των γραφικών στοιχείων που απαρτίζουν την οθόνη μας. Η Task Bar των Windows και ο τρόπος που είναι φτιαγμένα τα παράθυρα είναι μερικά μόνο από τα παραδείγματα ενός περιβάλλοντος εργασίας με ταυτότητα, το ίδιο ισχύει και για τα κουμπιά των παραθύρων στο MacOS (βλ. Traffic Light Scheme) όπως και το θρυλικό Dock.

“Αν όμως όλες οι διανομές είναι πρακτικά ίδιες, ποιος ο λόγος κάποιος να προτιμήσει μια από κάποια άλλη;”

Εδώ έγκειται για εμένα η “μαγεία” του ανοιχτού λογισμικού. Ενώ το κλειστό λογισμικό κάθε εταιρίας που κατασκευάζει προγράμματα βρίσκεται στους servers της και για κάθε μια εφαρμογή ο χρήστης καλείται να επισκεφθεί δεκάδες σελίδες για την απόκτηση της και να επαναλάβει τη διαδικασία της εγκατάστασης για κάθε μια ξεχωριστά, το ανοιχτό λογισμικό βρίσκεται συγκεντρωμένο σε ένα “κεντρικό” server που ονομάζεται repository. Σε αυτό βρίσκονται αποθηκευμένα σχεδόν όλα τα προγράμματα που υπάρχουν για Linux, έτοιμα προς εγκατάσταση, με αυτόν τον τρόπο κάθε ενημέρωση συστήματος συνεπάγεται και αυτόματη ενημέρωση όλων των διαθέσιμων εφαρμογών μονομιάς. Αν και κάθε διανομή έχει το δικό της κέντρο (με κάποια να είναι πιο πλούσια ή πιο ελλειπή από άλλα), υπάρχουν διανομές που βασίζονται σε άλλες ή και σε εξ’ ολοκλήρου πιο γνώριμους τρόπους απόκτησης εφαρμογών.

Πλήθος προγραμμάτων υπάρχουν και υπό τη μορφή εγκαταστάσιμων αρχείων (βλ. ‘.exe’). Κάθε διανομή φέρει το δικό της τύπο, όπως για παράδειγμα τα ‘.deb’ αρχεία στις Debian διανομές ή τα ‘.rpm’ στη διανομή Fedora. Τα πιο διαδεδομένα είναι τα πρώτα, ένα νέο είδος όμως φαίνεται να αναβαίνει εκθετικά, η ειδοποιός διαφορά του οποίου είναι η ιδιότητα του ως agnostic-distro, τρέχει δηλαδή σε κάθε διανομή χωρίς περιορισμούς, λόγος για τα Snap πακέτα εγκαταστάσιμων εφαρμογών.

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

Κάπως έτσι οι διανομές κατηγοριοποιήθηκαν σε δύο διαφορετικά είδη. Τις scheduled released (βλ. Debian, Ubuntu, Elementary, κ.α.) και τις rolling released (βλ. Fedora, Arch, Manjaro, κ.α.).



Οι scheduled released διανομές ως μοντέλο είναι πιο κοντά σε αυτό που μέχρι τώρα έχετε γνωρίσει μέσω των Windows και των MacOS. Μέσω αυτού του μοντέλου ανάπτυξης κάθε νέα έκδοση του λειτουργικού κυκλοφορεί βάσει ενός χρονοδιαγράμματος και απαιτεί συνήθως την επανεγκατάσταση του συστήματος εξ’ αρχής. Κάθε νέα έκδοση του λειτουργικού φέρει πέρα από έναν καινούριο πυρήνα και ένα ενημερωμένο repository με τις νέες εκδόσεις των προγραμμάτων που κυκλοφορούσαν τη στιγμή που ξεκίνησε η παραγωγή της. Αυτό έχει σαν αποτέλεσμα ο χρήστης να μην έχει στη διάθεση του πάντα την τελευταία έκδοση των εφαρμογών, αλλά να κερδίζει έτσι ένα πιο σταθερό σύστημα και μια πιο απροβλημάτιστη εμπειρία.

Οι rolling released διανομές σε αντίθεση, ανανεώνονται σχεδόν καθημερινά, ο χρήστης βρίσκεται στο bleeding edge, έχοντας πάντα όλα τα νέα χαρακτηριστικά που έχουν να του προσφέρουν τα προγράμματα που χρησιμοποιεί, χάνοντας όμως έτσι σε σταθερότητα, πράγμα που σε αρχάριους χρήστες και σε “main” συστήματα μπορεί να αποβεί μοιραίο.

Η απάντηση λοιπόν είναι απλή κατά τη γνώμη μου, αν οι ανάγκες σας επιζητούν κάποιο συγκεκριμένο χαρακτηριστικό μιας έκδοσης (ενός προγράμματος) που δεν μπορείτε να αποκτήσετε από το repository που έχετε στη διάθεση σας και δεν μπορείτε να περιμένετε την επόμενη έκδοση του λειτουργικού, τότε και μόνο τότε, ο δρόμος είναι rolling released, σε όλες τις άλλες περιπτώσεις είναι -ΠΑΝΤΑ- scheduled released.

Η διανομή Ubuntu είναι ένα εξαιρετικό παράδειγμα ενός λειτουργικού scheduled released που ξεκίνησε με βάση του ένα μεγαλύτερο (βλ. Debian) και κατάφερε μέσα στα χρόνια να “γεννήσει” και αυτό με τη σειρά του πλήθος άλλως λειτουργικών (πχ. Xubuntu, Lubuntu, Kubuntu, κ.α.) με τη στάμπα -Ubuntu-Based- και αυτό γιατί αν κάποια εφαρμογή υπάρχει για Linux τότε σίγουρα υπάρχει για τη διανομή αυτή. Το Ubuntu κυκλοφορεί σε δύο χρονοδιαγράμματα. Βάσει του πρώτου προσφέρει νέες εκδόσεις κάθε 6 μήνες και υποστήριξη σε αυτές για 9 μήνες, ενώ βάσει του δεύτερου προσφέρει νέες εκδόσεις κάθε 2 χρόνια και υποστήριξη σε αυτές για 5 χρόνια κάτω από το όνομα LTS (Long Term Support).

“Τι θα πει όμως Ubuntu Based;”

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

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

H διανομή Ubuntu κάνει χρήση του package manager που ακούει στο όνομα Apt και ενώ θεωρώ τον PacMan της διανομής Arch τον καλύτερο package manager που υπάρχει -για πολλούς και διάφορους λόγους-, έχω καταλήξει στο συμπέρασμα πως την τελική απόφαση σχετικά με το ποια διανομή είναι τελικά η καλύτερη (υποκειμενικά) την επηρεάζουν δυο βασικοί λόγοι:

1. Το κατά πόσο problem-free ήταν η πρώτη επαφή μαζί της, ακόμη και αν αυτή είχε να κάνει με κάποιο παλιό hardware που ο χρήστης δεν έχει στην κατοχή του πλέον.
2. Το κατά πόσο η σχεδιαστική της γραμμή και ταυτότητα είναι κοντά σε αυτήν του χρήστη, άλλωστε όλοι μπορούμε να βρούμε επιχειρήματα για να υποστηρίξουμε την άποψη μας.

“Όταν κάτι είναι όμορφο, τείνουμε να περνάμε περισσότερο χρόνο μαζί του” -Jonathan Ive

Η δικιά μου λοιπόν αγαπημένη και αυτή την οποία θα εγκαταστήσουμε βήμα-βήμα στο επόμενο άρθρο, ακούει στο όνομα Elementary OS και είναι μια ιδιάζουσα περίπτωση, Ubuntu-Based διανομής που τείνει σχεδιαστικά να μοιάζει στο MacOS, έχοντας παρόλα αυτά τη δική της ταυτότητα.

Θα μπορούσα να γεμίσω αρκετές σελίδες σχετικά με το γιατί την προτιμώ, θα απαντήσω όμως συνοπτικά με τα εξής:
Είναι σχεδιαστικά άρτια, αρκετά ελαφριά, πολύ εύκολη, χρησιμοποιεί τις LTS εκδόσεις του Ubuntu ως βάση της (και κατ’ επέκταση το τεράστιο repository τους και τα “πανταχού παρών” αρχεία ‘.deb’), είναι εξαιρετικά σταθερή, έχει μια φανατική κοινότητα -το ίδιο και δημιουργούς- και ένα ενδιαφέρον όραμα εξέλιξης.

Μέχρι το επόμενο μάθημα μείνετε συντονισμένοι στο Unboxholics.com