Εισαγωγή στο λειτουργικό σύστηµα Unix
Εισαγωγή Περιεχόµενα Λειτουργίες του Λ.Σ. Unix Λογαριασµοί Username Password Userid και Groupid Home Directory Κέλυφος Σύστηµα Αρχείων Pathname examples Pathname σχετικής διαδροµής
Εισαγωγή Το Unix δηµιουργήθηκε στο τέλος της δεκαετίας του 60 από τους Ken Thompson και Dennis Ritchie στα Bell Labs Υπήρξε το πρώτο Λ.Σ. που κατασκευάστηκε µε χρήση της γλώσσας προγραµµατισµού C. Χρησιµοποιήθηκε σε ένα ευρύ φάσµα υπολογιστών (από υπερυπολογιστές µέχρι PC) µε αποτέλεσµα να υπάρχουν σωρεία παραλλαγών του: Solaris, AIX, Unixware, Linux, FreeBSD Υποστηρίζει πολλαπλούς χρήστες (multi-user) και πολλαπλές εργασίες (multi-tasking) ταυτόχρονα Υπάρχουν εκδόσεις που υποστηρίζουν πολλούς επεξεργαστές (multi-processing) και επεξεργασία πραγµατικού χρόνου (realtime processing)
Λειτουργίες του Λ.Σ. Unix Λειτουργικό Σύστηµα είναι µια συλλογή προγραµµάτων τα οποία συντονίζουν τη λειτουργία του υλικού και λογισµικού ενός υπολογιστή. Το Λ.Σ. παρέχει λειτουργίες όπως αυτές που φαίνονται στο επόµενο σχήµα:
Λειτουργίες του Λ.Σ. Unix (2) Είσοδος / έξοδος (Ε/Ε) Η Ε/Ε επιτρέπει στον υπολογιστή να αλληλεπιδρά µε τον χρήστη δεχόµενος δεδοµένα (από πληκτρολόγιο ή αρχεία αποθηκευµένα σε περιφερειακές µονάδες µνήµης) και παρουσιάζοντας αποτελέσµατα (στην οθόνη ή εκτυπωτή ή αποθηκεύοντας τα σε αρχεία) ιερµηνευτής Εντολών ιαβάζει τις εντολές που δίνονται από το πληκτρολόγιο και τις µετατρέπει ή τις διερµηνεύει σε εντολές κατανοητές από τον υπολογιστή. Ο διερµηνευτής εντολών στο Unix ονοµάζεται Κέλυφος (Shell). Υπάρχει ένας µεγάλος αριθµός κελυφών από τα οποία µπορεί να επιλέξει κάποιο κάθε χρήστης (π.χ.sh, csh, tcsh, bash, ksh)
Λειτουργίες του Λ.Σ. Unix (3) ιαχείριση εδοµένων Η διαχείριση δεδοµένων επιτρέπει την οργάνωση δεδοµένων σε λογικές οµάδες που ονοµάζονται αρχεία (files) και την οµαδοποίηση αρχείων σε καταλόγους (directories) Εργαλεία Ανάπτυξης Προγραµµάτων Επιτρέπουν την ανάπτυξη και συντήρηση προγραµµάτων. Παραδείγµατα τέτοιων εργαλείων είναι οι επεξεργαστές κειµένου (text editors), οι µεταγλωττιστές (compilers), οι συµβολοµεταφραστές (assemblers), οι διορθωτές λαθών (debuggers)
Λειτουργίες του Λ.Σ. Unix (4) ιαµερισµός Χρόνου Επιτρέπει σε πολλούς χρήστες να εκτελούν προγράµµατα µέσω τερµατικών ή telnet ταυτόχρονα. Ασφάλεια Είναι η πολιτική που ακολουθείται ώστε να προστατεύεται ο ένας χρήστης από τον άλλο και το λειτουργικό σύστηµα από όλους τους χρήστες. Η βασική υπευθυνότητα της πολιτικής ασφάλειας είναι να διασφαλίζει ότι µόνο εξουσιοδοτηµένοι χρήστες προσπελαύνουν το υπολογιστικό σύστηµα και ότι οι χρήστες µπορούν να εκτελούν µόνο εργασίες για τις οποίες είναι εξουσιοδοτηµένοι να κάνουν. Για παράδειγµα µόνο οι διαχειριστές του συστήµατος µπορούν να εγκαταστήσουν νέο λογισµικό ή να δηµιουργήσουν νέους χρήστες
Λειτουργίες του Λ.Σ. Unix (5) Επικοινωνία Επιτρέπει σε πολλούς χρήστες να εκτελούν προγράµµατα µέσω τερµατικών ή telnet ταυτόχρονα. Λογαριασµοί (accounts) Οι λογαριασµοί κρατάνε στοιχεία για τις ενέργειες που έχει κάνει κάθε χρήστης στον υπολογιστή για λόγους ασφαλείας αλλά και για χρέωση. Το όνοµα προέρχεται από την αρχική λογική της ύπαρξης των λογαριασµών που προέβλεπαν χρέωση για τη χρήση των πόρων του υπολογιστικού συστήµατος
Λογαριασµοί Για να έχει κάποιος χρήστης πρόσβαση σε ένα σύστηµα UNIX πρέπει να έχει ενεργοποιηθεί ένας λογαριασµός. Ένας λογαριασµός για ένα χρήστη περιλαµβάνει: Τον ορισµό ενός κωδικού (username) και ενός συνθηµατικού (password) για τον χρήστη Τον ορισµό userid και groupid µέσω των οποίων το Unix αναγνωρίζει µοναδικά τον χρήστη και το βασικό group στο οποίο αυτός ανήκει Το ορισµό του home directory του χρήστη στο οποίο ο χρήστης αποθηκεύει τα δεδοµένα του και στο οποίο µπορεί να έχει πρόσβαση µόνο ο ίδιος Τον ορισµό ενός κελύφους (shell) βάση του οποίου θα διερµηνεύονται οι εντολές που δίνει ο χρήστης από το πληκτρολόγιο
Κωδικός xρήστη (username) Το username είναι µια ακολουθία από αλφαβητικούς ή / και αριθµητικούς χαρακτήρες µε µέγιστο µήκος 8. Συνήθως είναι συνδυασµός των αρχικών γραµµάτων του επιθέτου και του ονόµατος του χρήστη: ntsap, nicolast Είναι το κύριο χαρακτηριστικό αναγνώρισης / διάκρισης του λογαριασµού. Συνήθως χρησιµοποιείται και στην ηλεκτρονική διεύθυνση του χρήστη (e-mail): username@mailserver, π.χ. nicolast@ucy.ac.cy Χρησιµοποιείται επίσης στην προσωπική ιστοσελίδα του χρήστη στη µορφή: http://webserver/~username/, π.χ. http://www.image.ntua.gr/~ntsap/
Συνθηµατικό (password) Το password είναι µια κρυφή συµβολοσειρά που µονάχα ο χρήστης γνωρίζει (ούτε καν το σύστηµα!) Όταν ο χρήστης εισάγει το password του, το σύστηµα το κρυπτογραφεί και το συγκρίνει µε την αποθηκευµένη συµβολοσειρά. Τα passwords µπορούν να έχουν οποιοδήποτε µήκος αλλά µόνο οι πρώτοι 8 χαρακτήρες λαµβάνονται υπόψιν. Για λόγους ασφαλείες πολλές φορές επιβάλλεται στους χρήστες να: Χρησιµοποιούν password µήκους > 5 χαρακτήρες Περιλαµβάνουν στο password αριθµούς και σύµβολα (π.χ. _) Αλλάζουν τακτικά το password τους
Userid και groupid Το userid είναι ένας ακέραιος αριθµός που διακρίνει έναν λογαριασµό UNIX. Κάθε userid είναι µοναδικό. Είναι πιο εύκολο για το σύστηµα να χρησιµοποιεί έναν αριθµό παρά µια συµβολοσειρά όπως το username. Ο χρήστης δεν χρειάζεται να θυµάται το userid του. Το Unix διαθέτει την έννοια του "group χρηστών (π.χ. τα groups students και faculty). Ένα Unix group µπορεί να µοιραστεί αρχεία και ενεργές διεργασίες και επίσης να έχει τα ίδια δικαιώµατα. Ο κάθε λογαριασµός ορίζεται σε σχέση µε ένα πρωτεύον (primary) group. Το groupid είναι ένας αριθµός που χαρακτηρίζει το συγκεκριµένο primary group. Ένας λογαριασµός µπορεί να ανήκει σε πολλά groups (αλλά µόνο σε ένα primary group)
Προσωπικός κατάλογος (Home Directory) Το home directory είναι ένας χώρος στο σύστηµα αρχείων όπου αποθηκεύονται τα αρχεία ενός συγκεκριµένου λογαριασµού (χρήστη). Το directory (κατάλογος) είναι αντίστοιχο του φάκελο των Windows. Πολλές Unix εντολές και εφαρµογές χρησιµοποιούν το home directory σαν χώρο που ψάχνουν για αρχεία customization (π.χ. για την διαµόρφωση του περιβάλλοντος εργασίας του χρήστη, ποιο κέλυφος θα χρησιµοποιηθεί). Παράδειγµα αρχείου customization είναι το.profile Το όνοµα του home directory του χρήστη είναι συνήθως ίδιο µε το username του.
Κέλυφος (Shell) To Shell (κέλυφος) είναι ένα πρόγραµµα Unix που προσφέρει ένα text-based περιβάλλον (µη γραφικό) αλληλεπίδρασης µε τον χρήστη. ιαβάζει τις εντολές που δίνει ο χρήστης από το πληκτρολόγιο, τις ερµηνεύει και ενεργοποιεί τα κατάλληλα προγράµµατα για να τις εκτελέσουν Αµέσως µετά το login σε ένα σύστηµα Unix, το πρώτο πρόγραµµα µε το οποίο ερχόµαστε σε επαφή είναι το shell. Ο κάθε χρήστης µπορεί να επιλέξει το κέλυφος (π.χ. csh, tcsh, bash, ksh, κ.ά.) που επιθυµεί να χρησιµοποιεί ρυθµίζοντας τις παραµέτρους του αρχείου customization (π.χ. του αρχείου.profile)
Το Σύστηµα Αρχείων του Unix Είναι µια ιεραρχική δοµή αρχείων και καταλόγων. Η κορυφή της ιεραρχίας ονοµάζεται ριζικός κατάλογος (root) και «κρατά» όλους τους υπόλοιπους καταλόγους και αρχεία. Το όνοµα του ριζικού καταλόγου είναι: «/» Το pathname ενός αρχείου περιλαµβάνει το όνοµα του αρχείου και το όνοµα του καταλόγου που «κρατά» το αρχείο, και το όνοµα του καταλόγου που «κρατά» τον κατάλογο αυτό.. κοκ. µέχρι να φτάσουµε στον ριζικό κατάλογο. Τα ονόµατα διαδροµής σε ένα σύστηµα αρχείων UNIX είναι µοναδικά.
Το Σύστηµα Αρχείων του Unix(2)
Το Σύστηµα Αρχείων του Unix (3) Υπάρχουν ορισµένοι υποκατάλογοι του root οι οποίοι είναι δεσµευµένοι σε συγκεκριµένη λειτουργικότητα: bin: περιέχει προγράµµατα του λειτουργικού συστήµατος. dev: περιέχει οδηγούς συσκευών (device drivers) για έλεγχο των συσκευών εισόδου-εξόδου καθώς και άλλων περιφερειακών µονάδων. etc: περιέχει αρχεία ρυθµίσεων (configuration files) για το Λ.Σ. (π.χ. µπορεί να οριστεί πιο µήνυµα εµφανίζεται κατά την διαδικασία login). mnt: εικονικός κατάλογος που απεικονίζει περιφερειακές µονάδες µνήµης όπως cdrom drives, floppy drives, σκληρούς δίσκους άλλων υπολογιστών που είναι προσβάσιµοι µέσω δικτύου. usr: περιέχει λογισµικό εφαρµογών var: περιέχει διάφορα αρχεία, όπως τα γραµµατοκιβώτια (mail boxes) των χρηστών
Pathname examples
Pathname examples (2) Το pathname για τον τρέχοντα κατάλογο (current directory) στην προηγούµενη διαφάνεια είναι: /groups/faculty/cs/chris/personal Το pathname για τον κατάλογο προορισµού (destination directory) στην προηγούµενη διαφάνεια είναι: /groups/faculty/cs/chris/courses/epl001 Αµφότερα ξεκινάνε από το root και καλούνται absolute pathnames (ονόµατα απόλυτης διαδροµής).
Pathname σχετικής διαδροµής Αν από τον τρέχοντα κατάλογο στην προηγούµενη διαφάνεια επιθυµούµε να πάµε στον κατάλογο προορισµού µπορούµε να χρησιµοποιήσουµε pathname σχετικής διαδροµής (relative pathname):../courses/epl001 Υπάρχουν ειδικοί συµβολισµοί που χρησιµοποιούνται για τον ορισµό σχετικών διαδροµών:. Συµβολίζει τον τρέχοντα κατάλογο.. Συµβολίζει τον κατάλογο που περιέχει τον τρέχοντα κατάλογο (parent directory) ~username Συµβολίζει τoν προσωπικό κατάλογο (home directory) του χρήστη µε κωδικό όνοµα username
Ερωτήσεις?