ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ -UNIX Μάθημα: Λειτουργικά Συστήματα ΙΙ UNIX ΒασικέςέννοιεςτουUNIX: Πλοήγηση στο Σύστημα Αρχείων, ΟφλοιόςτουUNIX, Βοηθητικά Προγράμματα, ΗδομήτουΠυρήνα. Διδάσκων: Επ. Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 1 Τι είναι το UNIX? Είναι λειτουργικό σύστημα που εκτελείται στο παρασκήνιο και επιτρέπει στον χρήστη να λειτουργήσει το υλικό του συστήματος του, να ξεκινήσει και να σταματήσει προγράμματα και να ορίσει τις παραμέτρους κάτω από τις οποίες λειτουργεί ο υπολογιστής. Πριν από τα Windows και τα λειτουργικά της Apple υπήρχαν πολλά διαφορετικά OS που χρησιμοποιούσαν οι επαγγελματίες - πανεπιστημιακοί. To UNIX είναι ένα από τα λειτουργικά με την πιο μακρά ιστορία, το οποίο όμως χρησιμοποιείται ευρέως σήμερα. Το UNIX δεν είναι ένα ΛΣ, αλλά μια οικογένεια ΛΣ όπως: AIX (IBM), XENIX (XEROX), HP-UX, Linux και Free-BSD. Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 2 1
Όλες οι Εκδόσεις του UNIX έχουν κοινά γνωρίσματα... Είναι πολλαπλών χρηστών οι οποίοι μπορούν να εργάζονται ταυτόχρονα. Οι λογαριασμοί (accounts) διαφοροποιούνται με τα login names, passwords, τον κατάλογο στο σύστημα αρχείων του ΛΣ. Κατά την επιτυχή είσοδο το ΛΣ «διαβάζει» ορισμένα αρχεία που βρίσκονται στον προσωπικό του κατάλογο ώστε να προσαρμόσει το περιβάλλον εργασίας στις ανάγκες του χρήστη. Είναι πολλαπλών εργασιών, δηλαδή έχουν τη δυνατότητα παράλληλης εκτέλεσης πολλών εργασιών, υλοποιώντας μηχανισμούς καταμερισμού χρόνου (time-slicing) αντί για taskswitching που κάνουν πολλά προσωπικά ΛΣ. Ίδιο σετ εντολών και λειτουργιών μέσα από ένα φλοιό εντολών (περιβάλλον κονσόλας) Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 3 Ιστορία του UNIX Αρχικά κάθε μηχανή διαμορφωνόταν για μια συγκεκριμένη λειτουργία Τα πρώτα ΛΣ γραφόταν για ένα συγκεκριμένο τύπο hardware, με αποτέλεσμα να μην είναι μεταφέρσιμα από το ένα είδος υλικού στο άλλο Το 1965 στα Bell Labs (Lucent Technologies σήμερα) οι Dennis Ritchie και Ken Thompson έγραψαν το πρώτο UNIX για ένα DEC PDP/7. Όταν κατασκευάστηκε το PDP-11/20 ξαναέγραψαν το UNIX εξ αρχής... Γιαναγίνειπιοεύκοληημεταβίβασηκώδικααπόένα μηχάνημα σε άλλο ο Ritchie σχεδίασε τη γλώσσα C. To 1973 to UNIX ξαναγράφτηκε σε C. Λόγω περιορισμών (για μονοπωλιακό καθεστώς) στην AT&T, το UNIX άρχισε να διανέμεται δωρεάν στα Πανεπιστήμια και κατόπιν να κερδίζει έδαφος και στον ιδιωτικό τομέα. Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 4 2
Ιστορία του UNIX To 1978 που η AT&T ανακοίνωσε ότι θα χρεώνει τους πάντες (ακόμα και τα Πανεπιστήμια) για τον πηγαίο κώδικα του UNIX, ομάδα επιστημόνων στο Berkeley αποφάσισαν να γράψουν το δικό τους UNIX που ονομάστηκε BSD (Berkeley Software Distribution) Unix. To 1987 ha ΑΤ&Τ και η Sun συμφώνησαν να συνεργαστούν σ ένα έργο ενσωμάτωσης των εκδόσεων At&T και BSD. Επειδή άλλοι κατασκευαστές εκδόσεων UNIX ένοιωσαν ότι από αυτή τη συνεργασία δημιούργησαν τον οργανισμό Open Software Foundation που κυκλοφόρησε την πρώτη έκδοση OSF-1 UNIX το 1991. Η δημιουργία και εξάπλωση του Internet είχε σαν αποτέλεσμα την περαιτέρω εξάπλωση των δωρεάν UNICES Τα FreeBSD και Linux είναι ιδιαίτερα δημοφιλή καθώς είναι ισχυρά ΛΣ δωρεάν ή σε χαμηλό κόστος. UNIX όπως AIX, HP- UX, Sun-Solaris χρησιμοποιούνται κυρίως σε servers μεγάλων απαιτήσεων Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 5 Δομή ενός Λειτουργικού Συστήματος Στο χαμηλότερο επίπεδο ανήκουν τα τμήματα του Λ.Σ. που διαχειρίζονται: τη μνήμη, την επικοινωνία με τις περιφερειακές συσκευές, τα υπό εκτέλεση προγράμματα Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 6 3
Δομή του UNIX Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 7 Πυρήνας (Kernel) Πυρήνας: Σύνολο προγραμμάτων-συναρτήσεων (διεργασιών) που παραμένουν στη μνήμη (memory resident) και στοχεύουν στην εκτέλεση low level έργου ώστε: Να χρονοπρογραμματίζεται (schedule) ο χρόνος χρήσης των συσκευών (devices) για διάφορες εργασίες (tasks). Να ελέγχεται η οργάνωση σε συστήματα αρχείων (file systems). Να καθοδηγείται με οδηγούς συσκευών (drivers) η λειτουργία των συσκευών και των πόρων (resources) του συστήματος. Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 8 4
Φλοιός (Shell) Φλοιός (shell): Έχει τη δυνατότητα διερμηνείας εντολών (command interpreter), αλλά μπορεί και να αξιοποιηθεί σαν γλώσσα προγραμματισμού διαταγών. Παρέχει στο χρήστη τη δυνατότητα χρήσης μεταβλητών, τελεστών και προγραμματιστικών δομών (scripts). Επικοινωνία Χρήστη με Πυρήνα Ξεκίνημα ενός νέου φλοιού με κάθε σύνδεση Εντολές Χρήστη -> Εντολές Κλήσης Συστήματος Ο χρήστης δεν επιτρέπεται να έχει άμεση επαφή με τον πυρήνα Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 9 Φλοιός (Shell) Η κάθε κλήση συστήματος μπορεί να επιτελεί ένα πλήθος πολύπλοκων λειτουργιών. Για παράδειγμα, όταν ανοίγει ένα αρχείο, ο φλοιός λέει στον πυρήνα: Ξεκίνησε τον επεξεργαστή Βρές και φόρτωσε το αρχείο στη μνήμη Ξεκίνησε την επικοινωνία μεταξύ επεξεργαστή και αρχείου Στη συνέχεια ο πυρήνας χειρίζεται την εκτέλεση σε επίπεδο υλικού Υπάρχει ποικιλία Φλοιών: Bourne Shell (sh) Εναλλακτικά ο φλοιός Bourne Again (bash) Βελτιωμένες εκδόσεις των sh και bash είναι αντίστοιχα ο Korn (ksh) και ο Z (zsh) Επίσης υπάρχουν ο C φλοιός (csh) και Perl φλοιός (psh). Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 10 5
Το Σύστημα Αρχείων Μια ομάδα αρχείων είναι αποθηκευμένα στον υπολογιστή ως μέρος του λειτουργικού συστήματος. To UNIX αναπαριστά κάθε μέρος του συστήματος ως ένα αρχείο: Κάθε πρόγραμμα είναι ένα αρχείο Κάθε κατάλογος είναι ένα αρχείο Κάθε κομμάτι του υλικού αναπαρίσταται σαν ένα αρχείο... Μεγάλος αριθμός αρχείων αρχικών ρυθμίσεων Ως εκ τούτου η δομή και η μορφή του συστήματος αρχείων είναι αναπόσπαστο κομμάτι του λειτουργικού συστήματος. Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 11 Βοηθητικά Προγράμματα Βοηθητικά Προγράμματα (Utilities): Προγράμματα που παρέχονται για διευκόλυνση του χρήστη και εξασφαλίζουν: Διαχείριση του συστήματος αρχείων (rm, grep, cp ) Διαχείριση αρχείων (cat, find ) Διαχείριση δεδομένων (editors, μορφοποίηση ) Εξαγωγή γενικών πληροφοριών (who, ps, who am I ) Έλεγχο λειτουργίας συστήματος (kill, ενεργοποίηση εκτυπωτών τερματικών ) Αυτοματισμό γραφείου (mail, message, talk ) Διαχείριση συστήματος (administration) Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 12 6
Χρήστες Λειτουργικό Σύστημα Πολλών Ταυτόχρονων Χρηστών (μέσω τερματικών ή δικτυακών συνδέσεων) Το UNIX χρησιμοποιεί την έννοια των λογαριασμών χρηστών Σε κάθε χρήστη εκχωρείται ένα «όνομα χρήστη» κάποιος «κωδικός πρόσβασης» και κάποιος χώρος καταλόγου Κάθε χρήστης έχει πρόσβαση σε συγκεκριμένους πόρους του συστήματος και άμεσο έλεγχο στα αρχεία που δημιουργεί ο ίδιος Το ΛΣ διαχειρίζεται την κατανομή των πόρων (όπως της μνήμης και του χρόνου επεξεργαστή...) Τέλος υπάρχει η έννοια του Υπερχρήστη (Superuser) o οποίος έχει πρόσβαση σε κάθε αρχείο συνάρτηση - διεργασία Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 13 Εντολές Μια από τις μεγαλύτερες δυνάμεις του UNIX είναι η ισχυρή και ευέλικτη σύνταξη εντολών: Ls /etc > /home/phil/etc-list mail john Στην πραγματικότητα είναι συνδυασμός τριών εντολών Η πλειοψηφία των εντολών ακολουθεί την ίδια γενική μορφή, που είναι: Εντολή [σημαίες] [επιλογές] προέλευση προορισμός Παράδειγμα: cp i /home/phil/etc-list /home/john Προσοχή: Όλες οι εντολές του UNIX είναι case sesnsitive Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 14 7
Που να Bρούμε Bοήθεια Όλες οι εντολές του Unix περιγράφονται online σε ένα σύνολο αρχείων που ονομάζονται man pages man command Αναζήτηση βοήθειας με λέξη κλειδί man -k keyword Για περισσότερες πληροφορίες για τη λειτουργία των «man pages» man man Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 15 Ποιοι είναι συνδεδεμένοι (Logged on) Εντολή who Λίστα όλων των χρηστών που είναι συνδεδεμένοι στο σύστημα και από πού έχουν συνδεθεί και από ποια ώρα Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 16 8
Ποιοι είναι συνδεδεμένοι (Logged on) Εντολή who am i Εμφάνιση στοιχείων χρήστη Εντολή finger <user_name> Πληροφορίες σχετικά με το χρήστη Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 17 Ποιοι είναι συνδεδεμένοι (Logged on) Εντολή w Λίσταόλωντωνχρηστώνπουείναισυνδεδεμένοιστο σύστημα και τι τρέχουν Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 18 9
Άλλεςχρήσιμεςεντολές Εντολή logname Εμφανίζει το Login name του χρήστη Εντολή pwd Εμφανίζει το τρέχον directory Εντολή tty Εμφανίζει το όνομα του τερματικού του χρήστη Εντολή last [user name] Εμφανίζει πληροφορίες εισόδου & εξόδου των χρηστών Εντολή date Εμφανίζει ημερομηνία και ώρα του συστήματος Εντολή clear Καθαρίζει την οθόνη Εντολή cal (cal 2009) Εμφανίζει ημερολόγιο ανά μήνα, έτος Εντολή write (write user_name) Στέλνει μήνυμα σε άλλον χρήστη Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 19 Δομή Καταλόγων Unix Δομή Αντεστραμμένου Δέντρου Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 20 10
Δομή Καταλόγων Unix / Ριζικός κατάλογος (Root) ολόκληρου του συστήματος /bin Binaries: Περιέχει τα αρχεία προγραμμάτων για τις διάφορες εντολές του συστήματος, αρχεία προγραμμάτων για τους φλοιούς, βοηθητικά προγράμματα κ.λ.π. Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 21 Δομή Καταλόγων Unix /sbin Binaries (Εκτελέσιμα που χρησιμοποιούνται για συντήρηση συστήματος και/ή administrative εργασίες) Π.χ., booting, restoring, recovering κλπ /usr Περιέχει αρχεία προγραμμάτων για εφαρμογές λογισμικού. Οποιοδήποτε πρόγραμμα δεν είναι βοηθητικό του UNIX θα τοποθετηθεί εκεί. Παρά το όνομα του δεν είναι σχεδιασμένος για καταλόγους χρηστών. /etc Περιέχει αρχεία ρυθμίσεων για τα διάφορα προγράμματα του συστήματος Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 22 11
Δομή Καταλόγων Unix /lib Βιβλιοθήκες /dev Συσκευές - drivers (π.χ. cdrom, dvd, port, audio, κλπ) /home O χώρος των αρχικών καταλόγων των χρηστών (κάποιες εκδόσεις χρησιμοποιούν τον κατάλογο /users αντί του /home) /tmp Προσωρινά αρχεία /var Περιοχή που κρατά αρχεία τα οποία μπορεί να ποικίλουν στο μέγεθος ή το πλήθος (αρχεία αλληλογραφίας, αρχεία logs κ.λ.π.) Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 23 Πλοήγηση στη δομή καταλόγων ls (listing των αρχείων και καταλόγων) Ηεντολήls παρουσιάζει τα περιεχόμενα του τρέχοντα καταλόγου > ls Mail courses proj3 public_html bin exam2.cc misc myscript Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 24 12
Πλοήγηση στη δομή καταλόγων Για να δείτε μια λίστα των αρχείων και καταλόγων με λεπτομέρειες ls -l Για να δείτε το είδος των αρχείων ls -F Μπορείτε να συνδυάσετε τις επιλογές ls -lf Για να εμφανίσετε μια λίστα ενός συγκεκριμένου καταλόγου ls -lf pathname Όπου pathname η διαδρομή του καταλόγου που σας ενδιαφέρει. Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 25 Πλοήγηση στη δομή καταλόγων Εντολή ls (επιλογές -a, -l, -r, -R, -t, -i) -a : do not ignore entries starting with. (hidden files) -l : use a long listing format -r : reverse order while sorting (αντίστροφη ταξινόμηση) -R : list subdirectories recursively (αναδρομικά) -t : sort by modification time (ταξινόμηση βάσει του χρόνου τροποποίησης) -i : print the index (i-node) number of each file Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 26 13
Ιδιότητες Αρχείων Δικαιώματα Ιδιοκτήτης Ομάδα Ιδιοκτήτη Μέγεθος Χρόνος Τροποποίησης Όνομα Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 27 Δικαιώματα αρχείων Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 28 14
Αρχεία Τελείας... Στο κατάλογο home υπάρχουν τα αρχεία τελείας.login, ".cshrc" και ".profile"..login: login configuration file.profile: αρχείο αρχικών ρυθμίσεων του sh.cshrc: αρχείο αρχικών ρυθμίσεων του csh Σε κάθε κατάλογο υπάρχουν. και... : Αναφέρεται στον τρέχοντα κατάλογο.. :Αναφέρεται στον μητρικό κατάλογο του τρέχοντα καταλόγου. Λειτουργικά Συστήματα II - UNIX / Επ. Καθ. Κ. Λαμπρινουδάκης 29 15