Τι είναι το Linux και γιατί το τρέχει σχεδόν όλο το ίντερνετ;

Άνοιξες το Skroutz σήμερα; Είδες ένα βίντεο στο Netflix; Έστειλες ένα μήνυμα; Πίσω από κάθε ένα από αυτά, κάπου σε ένα data center, ένας υπολογιστής έτρεξε Linux για να σε εξυπηρετήσει.
Το Linux είναι ένα λειτουργικό σύστημα, ακριβώς όπως τα Windows και το macOS. Η διαφορά είναι ότι είναι δωρεάν, ανοιχτού κώδικα(open source) και φτιαγμένο για να τρέχει σταθερά για χρόνια χωρίς να το πειράζει κανείς. Γι' αυτό ζει μέσα στους servers που κρατάνε όρθιο σχεδόν κάθε site και κάθε app που ανοίγεις.
Δεν το βλέπεις ποτέ, γιατί δεν έχει ωραία παράθυρα και εικονίδια για να το δείξει. Δουλεύει στο background. Αλλά αν σκέφτεσαι μια δουλειά γύρω από Backend, Cloud, DevOps, ακόμα και Cybersecurity, αυτό το αόρατο λειτουργικό είναι το πρώτο πράγμα που θα σου ζητήσουν να ξέρεις. Πάμε να δούμε τι είναι στ' αλήθεια, γιατί κυριαρχεί, και γιατί σε αφορά ακόμα κι αν δεν έχεις γράψει ποτέ ούτε μια γραμμή κώδικα.

Τι είναι το Linux;

Το λειτουργικό σύστημα είναι ο διαχειριστής του υπολογιστή. Είναι αυτό που στέκεται ανάμεσα στα προγράμματα και στο μηχάνημα: μοιράζει τη μνήμη, τρέχει τις εφαρμογές, διαβάζει και γράφει αρχεία, μιλάει με το δίκτυο. Χωρίς λειτουργικό, ο υπολογιστής είναι ένα κουτί που δεν ξέρει τι να κάνει.
Στο laptop σου αυτόν τον ρόλο τον εκπληρούν πιθανότατα τα Windows ή το macOS. Στους servers αυτό γίνεται σχεδόν πάντα από το Linux.
Δύο λέξεις που θα ακούς συνέχεια:
  • Ανοιχτού κώδικα (open source). Ο κώδικας του Linux είναι δημόσιος. Ο καθένας μπορεί να τον δει, να τον διορθώσει, να τον προσαρμόσει. Δεν ανήκει σε μία εταιρεία που σου δίνει ένα κλειστό κουτί.
  • Δωρεάν. Δεν πληρώνεις άδεια χρήσης. Μπορείς να το βάλεις σε έναν server ή σε χίλιους, χωρίς να χρωστάς σε κανέναν τίποτα.
Θα ακούσεις επίσης τη λέξη «distro» (Ubuntu, Debian, Fedora και δεκάδες άλλες). Μη μπερδεύεσαι. Είναι όλες Linux από μέσα, απλώς πακεταρισμένες διαφορετικά, όπως το ίδιο νερό σε διαφορετικά μπουκάλια. Η καρδιά, ο πυρήνας που λέγεται kernel, είναι κοινή.

Γιατί το τρέχει σχεδόν όλο το ίντερνετ;

Εδώ είναι το ενδιαφέρον. Δεν κυριαρχεί επειδή έγινε μόδα. Κυριαρχεί γιατί για τη δουλειά ενός server ταιριάζει καλύτερα από οτιδήποτε άλλο. Τρεις λόγοι, χωρίς ωραιοποιήσεις:
  • Σταθερότητα. Ένας server με Linux ρυθμίζεται και δουλεύει μήνες ή χρόνια χωρίς restart. Δεν σου πετάει «θέλει επανεκκίνηση για ενημερώσεις» στη μέση της Black Friday. Όταν ένα e-shop πρέπει να αντέξει χιλιάδες παραγγελίες την ώρα, αυτή η σταθερότητα είναι το παν.
  • Κόστος. Θέλεις να τρέξεις χίλιους servers; Με Linux πληρώνεις μηδέν σε άδειες. Πολλαπλασίασε την άδεια ενός εμπορικού λειτουργικού επί χίλια και κατάλαβες γιατί κάθε cloud πάροχος στηρίζεται στο Linux.
  • Έλεγχος. Επειδή είναι ανοιχτού κώδικα, το ρυθμίζεις ακριβώς όπως το θες. Πετάς ό,τι δεν χρειάζεσαι, το κάνεις γρήγορο και ασφαλές για τη δική σου δουλειά. Δεν είσαι δεμένος με τις αποφάσεις μιας εταιρείας.
Το αποτέλεσμα: η συντριπτική πλειοψηφία των servers στον κόσμο τρέχει Linux. Skroutz, τράπεζες, Netflix, το cloud της Amazon και της Google, ακόμα και το κινητό σου αν έχει Android (το Android είναι χτισμένο πάνω στον kernel του Linux). Δεν είναι υπερβολή να πεις ότι το μεγαλύτερο κομμάτι του ίντερνετ είναι Linux.
Και να γιατί σε αφορά αυτό πρακτικά: αν μια εφαρμογή τρέχει σε έναν server, ο server τρέχει Linux και κάποιος πρέπει να ξέρει να κινηθεί σε αυτό το περιβάλλον. Αυτός ο «κάποιος» είναι ακριβώς η θέση που ψάχνεις. Αν θες να δεις πώς μοιάζει στην πράξη το να κινείσαι μέσα σε ένα Linux σύστημα, δεν χρειάζεται να το φανταστείς, μπορείς να το δεις με τα μάτια σου.

«Όλα είναι αρχείο»: πώς σκέφτεται το Linux

Εδώ είναι η πιο σημαντική ιδέα για να καταλάβεις πώς λειτουργεί το Linux από μέσα, και είναι απλούστερη απ' όσο ακούγεται.
Στα Windows είσαι συνηθισμένος σε πολλούς ξεχωριστούς δίσκους: C:, D:, ένα USB που γίνεται E:. Καθένας το δικό του δεντράκι. Στο Linux δεν υπάρχει αυτό. Υπάρχει ένα και μοναδικό δέντρο, που ξεκινάει από μια ρίζα, το /. Τα πάντα κρέμονται από εκεί: τα αρχεία σου, τα προγράμματα, οι ρυθμίσεις, ακόμα και οι συσκευές. Ένας δίσκος, ένας εκτυπωτής, ακόμα και η σύνδεση στο δίκτυο, όλα εμφανίζονται ως αρχεία μέσα σε αυτό το ίδιο δέντρο.
Γι' αυτό ακούς τη φράση «στο Linux, όλα είναι αρχείο». Δεν είναι φιλοσοφία, είναι πρακτικό: αν μάθεις να διαβάζεις και να μετακινείσαι σε αρχεία, ξέρεις ήδη να χειρίζεσαι σχεδόν το καθετί στο σύστημα με τα ίδια λίγα εργαλεία.
Ρίξε μια ματιά στο δέντρο. Πάτα στους φακέλους και δες πώς κατεβαίνεις από τη ρίζα / μέχρι τα προσωπικά σου αρχεία στο /home, χωρίς να φοβάσαι ότι θα χαλάσεις κάτι:
Περιήγηση στο Filesystem
/
home
ioannis
projects
app
notes
etc
var
log
Μορφή εντολής:
Relative
Absolute
Πήγαινε σε:

$

$ pwd

/home/ioannis

Πρόσεξε τη διαδρομή: από το / μπαίνεις στο home, μέσα βρίσκεις τον προσωπικό σου φάκελο, και εκεί ζουν τα projects και τα αρχεία σου. Το /etc κρατάει ρυθμίσεις, το /var/log κρατάει logs, δηλαδή τα «ημερολόγια» που γράφει το σύστημα για το τι συμβαίνει. Όταν κάτι χαλάσει σε πραγματική δουλειά, εκεί μέσα κοιτάς πρώτα. Αυτή η λογική ενός ενιαίου δέντρου είναι όλη η δομή. Μόλις την καταλάβεις, το Linux σταματάει να μοιάζει με λαβύρινθο.

Το Linux δεν είναι αυτό που φαντάζεσαι

Ας σπάσουμε τον μεγαλύτερο μύθο, γιατί κρατάει πίσω τους περισσότερους. Το Linux δεν είναι μια μαύρη οθόνη με πράσινα γράμματα για hacker σε ταινία. Δεν χρειάζεται να λύνεις διπλά ολοκληρώματα στις τρεις διαστάσεις, ούτε να έχεις τελειώσει πληροφορική, ούτε να ξέρεις να «χακάρεις».
Η αλήθεια είναι πολύ πιο απλή. Το terminal, η γραμμή εντολών που φοβάσαι, είναι απλώς ένας τρόπος να λες στον υπολογιστή τι να κάνει με λέξεις αντί για κλικ. Αντί να πατήσεις δεξί κλικ και «Νέος φάκελος», γράφεις mkdir project. Αντί να σύρεις ένα αρχείο, γράφεις mv. Το ίδιο πράγμα, με λέξεις.
Γιατί να το κάνεις έτσι; Γιατί οι λέξεις είναι πιο γρήγορες και, κυρίως, επαναλαμβάνονται. Μια εντολή που δουλεύει σε ένα μηχάνημα δουλεύει σε χίλια. Ένα κλικ δεν αντιγράφεται, μια εντολή αντιγράφεται. Γι' αυτό οι engineers δουλεύουν στο terminal: όχι για να δείχνουν έξυπνοι, αλλά γιατί είναι ο μόνος τρόπος να διαχειριστείς εκατό servers χωρίς να ιδρώσεις.
Διάλεξε μια καθημερινή ενέργεια και δες την ίδια δουλειά με τα δύο μάτια: αριστερά όπως την κάνεις με το ποντίκι, δεξιά η μία γραμμή που τη γράφει στο terminal.
Δημιουργία φακέλου
Μετονομασία αρχείου
Μετακίνηση αρχείου
Διαγραφή αρχείου
Λίστα αρχείων φακέλου
Με το ποντίκι
1

Δεξί κλικ στην επιφάνεια

2

Νέος φάκελος

3

Πληκτρολογείς το όνομα

Στο terminal
$mkdir project

Ίδια ενέργεια: με λέξεις αντί για κλικ.

Το κινητό που κρατάς πιθανότατα τρέχει σε Linux. Το Android είναι χτισμένο πάνω στον kernel του. Το χρησιμοποιείς κάθε μέρα χωρίς να το ξέρεις και σίγουρα χωρίς να είσαι hacker.

Πρέπει να μάθω Linux για να δουλέψω στο tech;

Εξαρτάται πού πας, αλλά για τους περισσότερους δρόμους η απάντηση είναι ναι, και όχι με τον τρόπο που νομίζεις.
Δεν σου ζητούν να αποστηθίσεις εκατοντάδες εντολές. Σου ζητούν να μπορείς να κινηθείς: να μπεις σε έναν server, να βρεις ένα αρχείο, να διαβάσεις ένα log για να καταλάβεις γιατί κάτι χάλασε, να τρέξεις μια εντολή και να διαβάσεις τι σου απάντησε. Είναι δεξιότητα πλοήγησης, όχι αποστήθισης.
Και εδώ κρύβεται κάτι που δεν σου λένε οι σχολές. Μπορεί να ξέρεις μια χαρά Python ή Java από θεωρία, και να κολλήσεις στην πρώτη μέρα δουλειάς επειδή δεν έχεις πατήσει ποτέ σε πραγματικό terminal. Η γλώσσα προγραμματισμού είναι το ένα κομμάτι. Το περιβάλλον όπου τρέχει ο κώδικας, δηλαδή το Linux, είναι το άλλο, και σχεδόν κανένα tutorial δεν σου το μαθαίνει. Αυτό ακριβώς το κενό, τα εργαλεία που θεωρούνται αυτονόητα από την πρώτη μέρα, είναι που ξεχωρίζει όποιον προσλαμβάνεται από όποιον μένει στη θεωρία.
Μια χρήσιμη διευκρίνιση για να μη σε μπερδέψουν οι αγγελίες: οι τίτλοι και οι απαιτήσεις είναι ρευστά. Μια αγγελία μπορεί να λέει «DevOps» και να εννοεί κάτι πιο κοντά σε backend, μια άλλη το αντίστροφο. Μη διαβάζεις μόνο την ταμπέλα, διάβασε τι ζητάει η θέση, καθώς και τι τα συζητήσετε κατά τη διάρκεια της συνέντευξης. Το Linux, όμως, εμφανίζεται σχεδόν σε όλες.

Πώς ξεκινάς χωρίς να χαλάσεις τον υπολογιστή σου;

Ο μεγαλύτερος φόβος του αρχάριου: «θα γράψω μια λάθος εντολή και θα χαλάσω το μηχάνημά μου». Λογικός φόβος, και η καλή είδηση είναι ότι λύνεται εντελώς.
Δεν χρειάζεται να αγγίξεις καθόλου το laptop σου. Δεν χρειάζεται να σβήσεις τα Windows, ούτε να μπλέξεις με εγκαταστάσεις που φοβάσαι μη χαλάσουν κάτι. Ο πιο ξεκούραστος τρόπος να μάθεις Linux είναι μέσα στον browser, σε ένα έτοιμο περιβάλλον όπου ό,τι και να γράψεις δεν πειράζει τίποτα δικό σου. Χαλάς κάτι; Το ξαναφορτώνεις καθαρό και συνεχίζεις. Αυτή η ελευθερία να πειραματίζεσαι χωρίς ρίσκο είναι που κάνει τη διαφορά.
Και ο μόνος κανόνας που έχει σημασία στην αρχή: κάνε, μη βλέπεις. Δέκα λεπτά που πληκτρολογείς εντολές μόνος σου αξίζουν περισσότερο από τρεις ώρες βίντεο που απλώς παρακολουθείς. Το Linux δεν το μαθαίνεις διαβάζοντας γι' αυτό, το μαθαίνεις κινούμενος στο command line.

Ξέρεις πια τι είναι το Linux και γιατί κρατάει όρθιο σχεδόν όλο το ίντερνετ. Το επόμενο βήμα είναι να μπεις μέσα σε ένα και να γράψεις την πρώτη σου εντολή.
Σε βάζει μπροστά σε πραγματικό Linux terminal, με hands-on labs στον browser και χωρίς κανένα setup, να μάθεις τα εργαλεία που ζητάει κάθε αγγελία για junior, από κάποιον που τα δουλεύει καθημερινά. Εφάπαξ 29 ευρώ, πρόσβαση για πάντα, χωρίς συνδρομή.