Τι σχέση έχει το Top Chef και το Master Chef ή, η μαγειρική με το ανοιχτό λογισμικό;

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

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

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

linux-anoixtos-kodikas
Advertisements

Το αξιοσημείωτο είναι ότι αν κατανοήσουν τι είναι “κώδικας” και τι “εκτελέσιμα” τότε όλα τα υπόλοιπα σιγά σιγά αρχίζουν να δένουν !

Συνταγή = Κώδικας, Φαγητό = εκτελέσιμο προϊόν

Εδώ μπαίνει στο παιχνίδι η μαγειρική…

Εκμεταλλευόμενος την μόδα με τις εκπομπές μαγειρικής, τους περιγράφω το εξής παράδειγμα:

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

Ανοιχτός κώδικας λογισμικού = τσελεμεντές

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

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

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

Λειτουργικό σύστημα = Εστιατόριο

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

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

Αυτό όμως είναι δυνατό μόνο στον κόσμο του ανοιχτού λογισμικού και στο λειτουργικό σύστημα που ονομάζεται Linux.

Διανομές Linux = Κουζίνες του κόσμου

Για αυτό και έχουμε τόσες διαφορετικές κουζίνες και restaurant (κινέζικό, γαλλικό, ιταλικό, ελληνικό κλπ) διότι όλες οι συνταγές στο κόσμο είναι διαθέσιμες και κάθε χώρα ή chef διαμόρφωσαν τα δικά τους φαγητά. Αυτός είναι και ο λόγος που έχουμε τόσες διαφορετικές διανομές Linux (ubuntu, debian, suse, fedora, gentoo κλπ) διότι ο κάθε άνθρωπος διαμόρφωσε τη δικιά του διανομή για κάθε ανάγκη και γούστο.

Επίλογος

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

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