Τερματικό, κονσόλα, tty, κέλυφος. Τι είναι αυτά;

Τι είναι το τερματικό; Τι είναι η κονσόλα; Τι είναι το κέλυφος; Έχει κάποια σημασία η ερώτηση; Τα ίδια δεν είναι; Ε λοιπόν η απάντηση είναι και ναι και όχι. Οι τεχνολογίες αλλάζουν και οι παλιές λέξεις αποκτούν νέο νόημα. Κάτι σαν τον “ρούτερ” που σε συνδέει στο διαδίκτυο. Στο σύντομο αυτό άρθρο θα ξεκαθαρίσουμε αυτές τις έννοιες, ή θα μπερδευτούμε περισσότερο. Θα δείξει …

Once upon a time, as far as I can tell, There was the console, the terminal, and the shell. Let me tell you the story of these divine tools, For you to stop looking like ignorant fools.

Τι είναι το τερματικό

Το τερματικό (terminal) στα χρόνια τα παλιά ήταν μια οθόνη και ένα πληκτρολόγιο που συνδέονταν στον υπολογιστή. Ο υπολογιστής έμοιαζε με ένα ψυγείο ήθελε το δικό του δωμάτιο όπου οι κοινοί θνητοί δεν έμπαιναν μέσα. Και είχε πάνω του συνδεμένα λίγες δεκάδες τέτοια τερματικά. Οθόνη είπα; Γράψε λάθος. Τα πρώτα τερματικά είχαν μόνο πληκτρολόγιο συνδεμένο σε ένα εκτυπωτή. Και ναι μπορούμε να χρησιμοποιήσουμε αυτά τα τερματικά ακόμα και σήμερα !

Αργότερα απέκτησαν και οθόνη, αλλά τους έμεινε το όνομα TeleTYpewriter (τηλετυπος) η χαϊδευτικά tty που μπορεί να το συναντήσουμε κάπου. Η σύνδεση με τον κεντρικό υπολογιστή αρχικά ήταν με σειριακές γραμμές, και στην συνέχεια με modem.

Το τερματικό παραπάνω είναι το θρυλικό VT100 της DEC που κυκλοφόρησε το 1978. Η “γλώσσα” του είναι η βάση της γλώσσας που χρησιμοποιεί το τερματικό στο Linux σήμερα. Όταν γράφεις αυτά τα ακατανόητα για να τυπώσεις κάτι με χρώμα, χρησιμοποιείς σήμερα αυτή την γλώσσα. Δεν είμαστε στην ακμή της τεχνολογίας;

Ο εξομοιωτής τερματικού

Σήμερα όταν λέμε τερματικό εννοούμε είναι ένα πρόγραμμα που κάνει μια εξομοίωση μιας οθόνης και ενός πληκτρολογίου. Δηλαδή θα έπρεπε κανονικά να το λέμε εξομοιωτή τερματικού (terminal emulator). Χαϊδευτικά τα λέμε ψευδοτερματικά (pseudo terminal slaves) ή pts.

Και το πρόγραμμα αυτό μπορεί να τρέχει σε άλλο υπολογιστή ή ακόμα και σε άλλο λειτουργικό. Αλλά ας μείνουμε στην περίπτωση που πατάμε το εικονίδιο του “τερματικού” :terminal: σε κάποιο γραφικό περιβάλλον, οπότε είμαστε στον υπολογιστή μας. Κάθε γραφικό περιβάλλον έχει το δικό του πρόγραμμα τερματικού, αλλά επίσης υπάρχουν και δεκάδες άλλα να διαλέξεις. Πείτε στα σχόλια το αγαπημένο σας.

Τι είναι η κονσόλα

Η κονσόλα (console) ήταν ένα βύσμα πάνω στον υπολογιστή, που είχε συνδεμένο πάνω ένα τερματικό. Το τερματικό αυτό ήταν δίπλα στον υπολογιστή ψυγείο και είχε μια ιδιαίτερη σχέση με τον υπολογιστή καθώς κάποια πράγματα μπορούσες να τα κάνεις μόνο από εκεί.

Η κονσόλα δεν είναι καθόλου παρελθόν. Ακόμα και σήμερα κάθε δικτυακός επαγγελματικός εξοπλισμός έχει ένα τέτοιο βύσμα, και οι τεχνικοί δικτύων έχουν πάντα μαζί τους ένα καλώδιο και ένα τερματικό για να συνδεθούν εκεί. Εντάξει, όχι ένα τερματικό, αλλά ένα εξομοιωτή τερματικού, δηλαδή κουβαλάνε και ένα laptop για να το τρέξουν :-). Γιαυτό υπάρχουν ακόμα σειριακές πόρτες σε κάποια laptop. Αλλιώς θα κουβαλάνε κάποια βαριά προϊστορική αρχαιολογία. Και ναι μπορείς να πάρεις κονσόλα στο Linux με φυσικό τρόπο, οι περισσότερες εγκαταστάσεις του εξάλλου δεν έχουν συνδεμένες κάρτες γραφικών και οθόνες.

Και προφανώς έχουμε και εξομοιωτές κονσόλας, απλά πατάμε CtrlAltFn και θα βγούμε σε περιβάλλον “κονσόλας”, αν και θα έπρεπε να πω εικονικής κονσόλας.
Τεσπά "εντάξει μπάρπα¨ (ok boomer).

Τι είναι το κέλυφος

Το κέλυφος (shell) είναι το πρόγραμμα που τρέχει το τερματικό όταν συνδεθεί με τον υπολογιστή. Διαβάζει μια εντολή από τον χρήστη και την εκτελεί. Κατά κάποιο τρόπο είναι το “περιβάλλον” του τερματικού, όπως το gnome :gnome: ή το kde :neon: είναι το “γραφικό περιβάλλον” της οθόνης. Κάποια κελύφη είναι τόσο ισχυρά που είναι ολόκληρες γλώσσες προγραμματισμού. Τα ποιο γνωστά σήμερα είναι το bash και το zsh.

Τι είναι ένα γραφικό τερματικό Χ11

Για λόγους πληρότητας να αναφέρουμε τα γραφικά τερματικά. Αυτά είχαν δυνατότητα γραφικών (συνήθως ασπρόμαυρων) και ποντίκι. Ήταν ξεχωριστές συσκευές που τις συνέδεες στον υπολογιστή (που παρέμενε κλεισμένος στο δωμάτιο του), με την διαφορά ότι μπορούσαν να συνδεθούν και δικτυακά, να είναι αυτό το δωμάτιο στο CERN για παράδειγμα. Με το που βγήκε το Linux μπορούσες να κάνεις ένα κανονικό υπολογιστή ένα τέτοιο τερματικό και η σχετική αγορά κατάρρευσε.

Τα πρώτα γραφικά περιβάλλοντα στο UNIX ήταν εκ φύσεως απομακρυσμένα, κάτι κάποια στιγμή άλλαξε με την ραγδαία εξέλιξη των καρτών γραφικών. Σήμερα είμαστε στο κατώφλι να ξεπεράσουμε αυτή την τεχνολογία, να πούμε αντίο στον X11 και να χαιρετίσουμε το Wayland. Επιτέλους μια νέα τεχνολογία :grin:.

Τερματικό, κέλυφος ή κονσόλα;

Πείτε τα όπως θέλετε, δεν έχει καμία σημασία. Το να βγεις και να πεις σε κάποιον δεν είναι τερματικό, αλλά “εξομοιωτής τερματικού”, έχει ακριβώς την ίδια αξία με το να λες: Δεν είναι ΤΟ Linux είναι TA Linux (ή το ανάποδο, θα σας γελάσω). Αλλά καλό είναι να ξέρεις την ιστορία μιας τεχνολογίας, σε βοηθά να την καταλάβεις καλύτερα.

Διαβάστε

https://www.poor.dev/blog/terminal-anatomy/

10 «Μου αρέσει»

προσπαθώ να δουλέψω και μου τα κάνετε αυτά… τώρα δεν ξέρω σε ποιον να το πρωτοστείλω… το κρατάω κ για το retrogroup ώστε ν’ απασχολήσω κάποιον άλλον ανυποψίαστο που θα προσπαθήσει να ξεφύγει :P

1 «Μου αρέσει»

εξομοιωτής τερματικού είναι η εφαρμογή όπως η konsole, gnome-terminal κλπ
ψευδοτερματικά είναι οι συσκευές pts που δημιουργούνται κατά βούληση από την εφαρμογή με κάθε παράθυρο και κάθε tab που ανοίγουμε αλλά και μέσω εντολών. Πχ και η screen θα δημιουργήσει τα δικά της ψευδοτερματικά pts.

τρέχοντας τις εντολές

ps

ή

ps -e

και

w

βλέπουμε ότι οι εντολές τρέχουν σε αντίστοιχα TTY που μπορεί να είναι κανονικά εικονικά τερματικά ttyX ή ψευδοτερματικά pts/X (όπου Χ αριθμοί)

3 «Μου αρέσει»

Με το VT100 θυμήθηκα το παρακάτω άρθρο που έχει οδηγίες για τη χρήση ενός VT220 περίπου ως ένα έξτρα μόνιτορ.

https://drewdevault.com/2016/03/22/Integrating-a-VT220-into-my-life.html

1 «Μου αρέσει»