Το λειτουργικό σύστημα Linux

Το Linux είναι μέλος της οικογένειας των λειτουργικών συστημάτων με το όνομα Unix. Με τον όρο λειτουργικό σύστημα αναφερόμαστε στο πρόγραμμα το οποίο διαχειρίζεται τα συστατικά μέρη ενός υπολογιστή (το υλικό, hardware, αλλά και το λογισμικό, software), είναι υπεύθυνο για την εκτέλεση άλλων προγραμμάτων, για τη διαχείριση των χρηστών που χρησιμοποιούν τον υπολογιστή, και για πολλές άλλες λειτουργίες. Το λειτουργικό σύστημα Unix αναπτύχθηκε στα εργαστήρια Bell της ΑΤ&T στις αρχές της δεκαετίας του '70. Η αρχική έκδοση του Unix γνώρισε πολλές βελτιώσεις αλλά και διαφορετικές εκδοχές με αποτέλεσμα σήμερα η οικογένεια των λειτουργικών συστημάτων Unix να αριθμεί πολλά μέλη. Οι υπολογιστές των εργαστηρίων του Τμήματος Εφαρμοσμένων Μαθηματικών χρησιμοποιούν το λειτουργικό σύστημα Linux. Η πρώτη έκδοση του Linux γράφτηκε το 1991 από τον τότε φοιτητή του Πανεπιστημίου του Ελσίνκι Linus Torvalds με σκοπό να βελτιώσει ένα άλλο λειτουργικό σύστημα με το όνομα MINIX (του Andy Tanenbaum) που τότε χρησιμοποιούσαν κυρίως ως εκπαιδευτικό εργαλείο σε τμήματα επιστήμης υπολογιστών. Η πρώτη, ιστορική πλέον, ανακοίνωση της πρώτης εκδοχής του Linux φαίνεται παρακάτω:

From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI>
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki 

Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 386(486) AT clones. This has been brewing
since april, and is starting to get ready.I'd like any feedback on
things people like/dislike in minix, as my OS resembles it somewhat
(same physical layout of the file-system(due to practical reasons)
among other things). I've currently ported bash(1.08) and gcc(1.40),and
things seem to work.This implies that I'll get something practical within a
few months, andI'd like to know what features most people would want. Any
suggestions are welcome, but I won't promise I'll implement them :-)
Linus (torvalds@kruuna.helsinki.fi)
PS. Yes - it's free of any minix code, and it has a multi-threaded fs.
It is NOT protable (uses 386 task switching etc), and it probably never
will support anything other than AT-harddisks, as that's
all I have :-(.

Σήμερα, το Linux αποτελεί την πλέον δημοφιλή εκδοχή της οικογένειας των λειτουργκών συστημάτων Unix και χρησιμοποιείται τόσο σε προσωπικούς υπολογιστές αλλά και σε υπερ-υπολογιστές και εξυπηρετητές (servers). Χωρίς υπερβολή, το Unix και σε μεγάλο βαθμό το Linux "τρέχουν" τον παγκόσμιο ιστό, μεταφέρουν τον μεγαλύτερο όγκο e-mail και διαχειρίζονται πολλές άλλες υπηρεσίες δικτύου.

Το Linux είναι ένα λειτουργικό σύστημα πολλών ταυτόχρονων χρηστών (multisuer) και πολλών ταυτόχρονων διεργασιών (multitasking). Στην πραγματικότητα, η κεντρική μονάδα επεξεργασίας είναι απασχολημένη με μια μόνο εργασία κάθε χρονική στιγμή αλλά με την τεχνική του χρονομερισμού (timesharing) κάθε χρήστης έχει την ψευδαίσθηση ότι μόνο αυτός εργάζεται πάνω στο συγκεκριμένο σύστημα.

Πρώτη είσοδος στο σύστημά σας

Η πρόσβαση σε ένα σύστημα απαιτεί την ταυτοποίηση του χρήστη (διαδικασία login). Για τη διαδικασία αυτή ο χρήστης πρέπει να δώσει το λεγόμενο όνομα χρήστη (username) και το συνθηματικό (password). Αν ο χρήστης ταυτοποιηθεί, έχει πρόσβαση στον υπολογιστή και μπορεί να δίνει εντολές από την λεγόμενη γραμμή εντολών ή από ένα γραφικό περιβάλλον εργασίας (GUI). Στους υπολογιστές του ΤΕΜ η γραμμή εντολών μοιάζει όπως και η παρακάτω:

[someuser@somewhere ~]$

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

date
cal 09 2010

Θα διαπιστώσετε ότι η πρώτη εντολή τυπώνει την ημερομηνία και την ώρα ενώ η δεύτερη εντολή τυπώνει το ημερολόγιο για το μήνα Σεπτέμβριο του έτους 2010. Το τρίτο συστατικό στοιχείο της γραμμής εντολών που φαίνεται παραπάνω, στην προκειμένη περίπτωση ο χαρακτήρας ~, δηλώνει τον τρέχοντα κατάλογο εργασίας (current working directory). Κάθε χρήστης έχει τον δικό του κατάλογο εργασίας (home directory) και ο χαρακτήρας ~ αποτελεί συντομογραφία του προσωπικού καταλόγου εργασίας του χρήστη. Η εντολή pwd τυπώνει στην οθόνη τον προσωπικό κατάλογο εργασίας σας. Αν δώσετε την παραπάνω εντολή σε ένα από τους υπολογιστές του ΤΕΜ θα σας απαντήσει με κάτι σαν και το ακόλουθο:

/home/someuser

Η συγκεκριμένη απάντηση του υπολογιστή ερμηνεύεται αν ξέρει κανείς μερικά πράγματα για τον τρόπο με τον οποίο οργανώνονται αρχεία και κατάλογοι στους υπολογιστές με λειτουργικό σύστημα Unix. Κατ' αρχήν, το Unix επιτρέπει την οργάνωση ομοειδών αρχείων σε καταλόγους (directories). Ένας κατάλογος είναι μια συλλογή από αρχεία ή άλλους καταλόγους. Υπάρχει ένας κατάλογος μέσα στον οποίο περιέχονται ΟΛΑ τα αρχεία και οι κατάλογοι των χρηστών και ο οποίος ονομάζεται κατάλογος ρίζα (root directory). Στο Unix, αυτός ο κατάλογος συμβολίζεται με τον χαρακτήρα /. Το όνομα και μόνο του πρωταρχικού καταλόγου, root, υπονοεί ότι η δομή που χρησιμοποιεί το Unix για να οργανώσει τα αρχεία και τους καταλόγους μοιάζει με δέντρο (tree) αλλά αναστραμμένο. Η ρίζα του δέντρου είναι ο κατάλογος / και μέσα σε αυτόν περιέχονται άλλοι κατάλογοι και αρχεία. Έτσι λοιπόν, η παραπάνω απάντηση του υπολογιστή στην εντολή pwd λέει ότι ο τρέχων κατάλογος εργασίας είναι ο κατάλογος με το όνομα someuser ο οποίος περιέχεται στον κατάλογο home και αυτός με τη σειρά του περιέχεται στον πρωταρχικό κατάλογο /. Ο προσεκτικός αναγνώστης θα παρατηρήσει εδώ ότι ο χαρακτήρας / χρησιμεύει τόσο για να συμβολίσει το λεγόμενο root directory (ο πρώτος χαρακτήρας /) όσο και για να διαχωρίσει καταλόγους και υπο-καταλόγους.

Προφανώς, μέσα στον προσωπικό μας κατάλογο μπορούμε να φτιάξουμε άλλους υπο-καταλόγους έτσι ώστε να οργανώσουμε το περιβάλλον εργασίας μας με τον τρόπο με τον οποίο θέλουμε. Η εντολή για την δημιουργία ενός καταλόγου είναι η mkdir directoryname (σημειώστε ότι από εδώ και στο εξής οποιαδήποτε ακολουθία χαρακτήρων εμφανίζεται με πλάγια γράμματα υπονοεί αντικατάσταση της ακολουθίας με άλλη της επιλογής σας). Η συγκεκριμένη εντολή, δημιουργεί τον κατάλογο με το όνομα directoryname μέσα στο τρέχοντα κατάλογο εργασίας. Για παράδειγμα, αν δώσουμε την εντολή

$ mkdir tem101

στο τρέχοντα κατάλογο εργασίας θα δημιουργηθεί ο κατάλογος με το όνομα tem101. Εδώ, ο χαρακτήρας $, όπως και στην τυπική γραμμή εντολών που είδαμε παραπάνω, δεν είναι μέρος της εντολής που δίνουμε αλλά σηματοδοτεί το σημείο στο οποίο μπορούμε να πληκτρολογήσουμε την εντολή μας. Μπορούμε να δούμε τα περιεχόμενα ενός καταλόγου με την εντολή ls (συντομογραφία της λέξης list). Αν δεν έχουμε φτιάξει κάποιο άλλο κατάλογο η απάντηση της εντολής ls θα εμφανίσει στην οθόνη

Desktop tem101

Σημειώστε ότι ο κατάλογος με το όνομα Desktop δημιουργείται από το λειτουργικό σύστημα την πρώτη φορά που ο χρήστης χρησιμοποιήσει το λογαριασμό χρήσης του και περιέχει τα αρχεία ή καταλόγους της επιφάνειας εργασίας (desktop). Περισσότερα για γραφικά περιβάλλοντα εργασίας αργότερα... Για να κάνουμε τώρα τον κατάλογο tem101 τον τρέχοντα κατάλογο εργασίας δίνουμε την εντολή cd tem101 (από τα αρχικά των λέξεων change directory). Για να επιστρέψουμε πίσω στο προηγούμενο κατάλογο εργασίας δίνουμε την εντολή cd ... Επιπλέον, ανεξάρτητα σε ποιον κατάλογο εργασίας βρισκόμαστε, η εντολή cd χωρίς άλλο όρισμα μας γυρίζει στον προσωπικό κατάλογο εργασίας (home directory).

Μια παρατήρηση ακόμα για την εντολή ls. Σε καταλόγους με πολλά αρχεία και άλλους υποκαταλόγους μπορεί κανείς να ξεχωρίσει εύκολα τα αρχεία από τους καταλόγους δίνοντας την εντολή ls -F. Η εντολή αυτή τυπώνει τον χαρακτήρα / μετά το τέλος κάθε καταλόγου. Για παράδειγμα, η εντολή ls -F στο τρέχων περιβάλλον εργασίας του συγγραφέα τυπώνει:

css/  index.html    notes01.html  notes03.html  notes05.html  notes07.html
img/  linux01.html  notes02.html  notes04.html  notes06.html

Αμέσως μπορεί να διαπιστώσει κανείς ότι τα ονόματα css και img υποδηλώνουν καταλόγους ενώ τα υπόλοιπα ονόματα είναι ονόματα αρχείων. Σε πολλά γραφικά περιβάλλοντα εργασίας τα ονόματα καταλόγων και αρχείων τυπώνονται με διαφορετικά χρώματα έτσι ώστε να είναι ακόμα πιο εύκολος ο διαχωρισμός τους.