ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I Πιτροπάκης Νικόλαος Υποψήφιος Διδάκτορας Contact: npitrop@unipi.gr Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity Dennis Ritchie
ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ (1/3) Στην πρωταρχική του μορφή κατασκευάστηκε από τον Ken Thompson το 1969 σε γλώσσα assembly για ένα PDP-7 στα Bell Laboratories της ΑΤ&Τ Μεταφέρθηκε σε ένα PDP-11 το 1971 από τον Ken Thompson και τον Dennis Ritchie Το 1973 υλοποιήθηκε εξ αρχής στο μεγαλύτερο μέρος του στη γλώσσα C, η οποία αναπτύχθηκε από τον Brian Kernighan και τον Dennis Ritchie Λόγω μονοπωλιακών τακτικών σύμφωνα με τους εμπορικούς νόμους των ΗΠΑ, η Bell αναγκάστηκε να διανείμει το Unix δωρεάν στα Πανεπιστημιακά ιδρύματα.
ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ (2/3) Το 1987 η μητρική της Bell, AT&T ανακοινώνει τη χρέωση διάθεσης του πηγαίου κώδικα του Unix σε όλους. Έτσι το πανεπιστήμιο της California ανακοίνωσε τη δημιουργία του δικού της Unix-Based λειτουργικού, με όνομα Berkley Software Distribution ή BSD. To 1987 οι Sun και AT&T συνεργάστηκαν για τη συνένωση του AT&T Unix με το BSD. Μετά την είσοδο του Internet τη δεκαετία του 1980, έδωσε τη δυνατότητα σε προγραμματιστές, ερευνητές και φοιτητές να συνεισφέρουν στην εξέλιξη του λειτουργικού χωρίς να είναι αναγκαίο να βρίσκονται στον ίδιο χώρο.
ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ (3/3) Παρόλο που για μεγάλο χρονικό διάστημα, περίπου μία 25ετία, το Unix ήταν περιορισμένο σε ακαδημαϊκά και ερευνητικά περιβάλλοντα μόνο, σήμερα ως Linux, έχει καταλάβει τους προσωπικούς υπολογιστές πολλών χρηστών Εδώ και μερικά χρόνια είναι σε εξέλιξη μία διαρκής προσπάθεια τυποποίησής του (IEEE POSIX, Open Group) Πολλοί οργανισμοί και εταιρίες χρησιμοποιούν Unixbased mail και web servers (apache).
ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ Unix (1/3) Λειτουργικό σύστημα πολλών χρηστών Υποστήριξη πολλαπλών διεργασιών με διαμέριση χρόνου Built in (και όχι patch) παροχή ασφάλειας Υποστήριξη δικτύων Υποστήριξη πολλών τεχνολογιών: IA-32, MIPS, x86-64, SPARC, DEC Alpha, Itanium, PowerPC, ARM, m68k, PA-RISC, s390, SuperH, M32R κτλ
ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ Unix (2/3) Τα πάντα είναι παραμετροποιήσιμα Η συμπεριφορά του κάθε προγράμματος ή εντολής αλλάζει και προσαρμόζεται ανάλογα με τις ανάγκες των χρηστών ή των διαχειριστών Τα πάντα είναι σταθερά Κάθε στοιχείο του συστήματος αναπαρίσταται ως αρχείο Αυτό το διακρίνουμε σε ΟΛΑ τα στοιχεία, από τα έγγραφα μέχρι το hardware. Π.χ ο σκληρός δίσκος είναι το αρχείο /dev/sda1
ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ Unix (3/3) Αυτοματοποίηση καθημερινών εντολών και ρουτινών Δίνεται η δυνατότητα να γραφτούν από τον κάθε χρήστη script, τα οποία εκτελούν κάποιες διαδικασίες, εντολές ή προγράμματα σε συγκεκριμένο χρόνο ή συγκεκριμένη κατάσταση του συστήματος. Π.χ Αυτοματοποιείται η λήψη εφεδρικών αντιγράφων από τους διαχειριστές ή τους χρήστες. Αποφυγή Δεσμεύσεων χρήστη Windows και Mac OS αντιμετωπίζουν τον χρήστη σαν άνθρωπο και όχι σαν άλλο πρόγραμμα Είναι γρήγορα. Τα δυνατότερα συστήματα στον κόσμο χρησιμοποιούν linux
TOP SUPERCOMPUTERS (1/4) Tianhe-1A Country: China Site: National Supercomputing Center in Tianjin Manufacturer: NUDT Cores: 186,368 Linpack Performance (Rmax): 2,566.0 TFlop/s Theoretical Peak (Rpeak): 4,701.0 TFlop/s Power: 4,040.00 kw Memory: 229,376 GB Interconnect: Proprietary Operating System: Linux Compiler: ICC MPI: MPICH2 with a custom GLEX channel
TOP SUPERCOMPUTERS (2/4) Titan Country: U.S. Site: DOE/SC/Oak Ridge National Laboratory System URL: http://www.olcf.ornl.gov/titan/ Manufacturer: Cray Inc. Cores: 560,640 Linpack Performance (Rmax): 17,590.0 TFlop/s Theoretical Peak (Rpeak): 27,112.5 TFlop/s Power: 8,209.00 kw Memory: 710,144 GB Interconnect: Cray Gemini interconnect Operating System: Cray Linux Environment
TOP SUPERCOMPUTERS (3/4) Country: U.S. Site: DOE/NNSA/LLNL Manufacturer: IBM Cores: 1,572,864 Linpack Performance (Rmax): 17,173.2 TFlop/s Theoretical Peak (Rpeak): 20,132.7 TFlop/s Power: 7,890.00 kw Memory: 1,572,864 GB Interconnect: Custom Interconnect Operating System: Linux
TOP SUPERCOMPUTERS (4/4) Country: Japan Site: RIKEN Advanced Institute for Computational Science (AICS) Manufacturer: Fujitsu Cores: 705,024 Linpack Performance (Rmax): 10,510.0 TFlop/s Theoretical Peak (Rpeak): 11,280.4 TFlop/s Power: 12,659.89 kw Memory: 1,410,048 GB Interconnect: Custom Interconnect Operating System: Linux
UNIX BASED OPERATING SYSTEMS (1/2) Linux Το πρώτο ανοιχτό Unix-based OS Ο Linus Torvalds διέθεσε τον πηγαίο κώδικα στο Internet Ζήτησε διορθώσεις, προσθήκες στην λειτουργικότητα και διανομή Βασίζεται στο GNU (Richard Stallman) Ανοικτού πηγαίου κώδικα (Open Source) Η άδεια του Linux ορίζει δημόσια διανομή του πηγαίου κώδικα για τα patches Κανείς δεν είναι ιδιοκτήτης του Linux
UNIX BASED OPERATING SYSTEMS (2/2) Solaris Ιδιόκτητο της Sun Microsystems FreeBSD Απόγονος του BSD Unix Mac OS Ιδιόκτητο της Apple
ΔΟΜΗ ΤΟΥ UNIX (1/3) Πηρύνας (Kernel) Σύνολο συναρτήσεων χαμηλού επιπέδου Έλεγχος λειτουργίας συστήματος Χρονοπρογραματισμός (schedule) της χρήσης των συσκευών (devices) για διάφορες εργασίες (tasks). Ελέγχεται η οργάνωση σε συστήματα αρχείων (file systems). Καθοδηγείται με οδηγούς (drivers) η λειτουργία των συσκευών και των πόρων (resources) του συστήματος Δεν υπάρχει άμεση επαφή του απλού χρήστη με τον πυρήνα Λειτουργεί συνήθως στο παρασκήνιο
ΔΟΜΗ ΤΟΥ UNIX (2/3) Φλοιός (Shell) Το μέσο επικοινωνίας του χρήστη με τον πυρήνα του ΛΣ Μετάφραση εντολών του χρήστη σε Κλήσεις Συστήματος Διερμηνέας εντολών και όχι μόνο Υλοποίηση προγραμμάτων (Shell Scripts) Διαφορετικοί φλοιοί Bourne Shell sh Bash (1989 - OSX & GNU) Korn ksh (1982-OpenSolaris) Z zsh (1990-GRML) C tcsh (1978 FreeBsd)
ΔΟΜΗ ΤΟΥ UNIX (3/3) Χρήστες Υποστήριξη πολλών χρηστών ταυτόχρονα Κάθε χρήστης και ένα προφίλ Ο κάθε χρήστης έχει πλήρη έλεγχο στα αρχεία που δημιουργεί (owner) Ύπαρξη του κεντρικού (root) ή υπέρ χρήστη Super User (SU) Ονομάζεται root Διαχειρίζεται το σύστημα Έχει πρόσβαση ΠΑΝΤΟΥ, σε κάθε αρχείο/διεργασία Τροποποιεί τα δικαιώματα των άλλων χρηστών εκτός από τα δικά του
ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΜΑΘΗΜΑ Putty Το βασικό μας εργαλείο Μας προσφέρει απομακρυσμένη σύνδεση μέσω ssh στον server που θα κάνουμε τις εργασίες μας στο εργαστήριο και στο σπίτι Vmware player Πλατφόρμα διαχείρισης εικονικών μηχανών (Virtual Machines), όπου θα τοποθετήσουμε το δικό μας server για την εξάσκηση στο σπίτι Kali Linux Διανομή Linux που θα χρησιμοποιήσουμε για εξάσκηση στο σπίτι Help!!! Πώς τα δουλεύω αυτά τα εργαλεία??? Ακολουθώ τον οδηγό που υπάρχει αναρτημένος στον evdoxo, στο διαδικτυακό χώρο του μαθήματος.
ΔΟΜΗ ΤΩΝ ΕΝΤΟΛΩΝ Υπάρχει διάκριση μεταξύ κεφαλαίων και πεζών γραμμάτων, δηλαδή είναι Case Sensitive Η κάθε εντολή έχει την εξής δομή: Εντολή [επιλογές] προέλευση προορισμός Ότι εμπεριέχεται στις επιλογές δηλαδή εντός των [] είναι προαιρετικό Το συμβολίζει ότι δεν μπορούν να χρησιμοποιηθούν δύο επιλογές ταυτόχρονα Υπάρχει και η δυνατότητα συνδυασμού των εντολών π.χ ls /home/nikos/ >list.txt mail boss
ΛΟΓΑΡΙΑΣΜΟΣ ΧΡΗΣΤΗ Όνομα χρήστη (user name) Συνθηματικό (password) Κέλυφος αρχικής σύνδεσης Αρχική ομάδα Κατάλογος αφετηρίας Πώς κάνουμε login από το putty: Δίνουμε το hostname (ή την ip) και πατάμε open Δίνουμε το username Μετά το password και μας πάει στον αρχικό κατάλογο
ΣΥΧΝΕΣ ΕΝΤΟΛΕΣ (1/5) man: Εμφάνιση οδηγιών χρήσης εντολών ls: Εμφάνιση περιεχομένων καταλόγου pwd: Εμφάνιση τρέχοντος καταλόγου cd: Αλλαγή τρέχοντος καταλόγου mkdir: Δημιουργία καταλόγου rmdir: Διαγραφή καταλόγου cp: Αντιγραφή αρχείων mv:μετακίνηση, ή μετονομασία αρχείων rm: Διαγραφή αρχείων cat: Εμφάνιση περιεχομένων αρχείων lpr: Εκτύπωση αρχείων vi: Κειμενογράφος οθόνης passwd: Αλλαγή κωδικού χρήστη Προσοχή! Κατά την πληκτρολόγηση του κωδικού δεν τυπώνεται τίποτα στην οθόνη
ΣΥΧΝΕΣ ΕΝΤΟΛΕΣ (2/5) whoami: Πληροφορίες χρήστη who: Εμφάνιση των χρηστών που είναι logged in w: Εμφάνιση των χρηστών που είναι logged in με περισσότερες λεπτομέρειες από την who finger: Εμφάνιση πληροφοριών χρήστη last: Εμφάνιση τελευταίων συνδέσεων clear: Καθαρισμός οθόνης cal: Προβολή ημερολογίου exit: Έξοδος από το τερματικό logout: Αποσύνδεση χρήστη
HEEELP I NEED HEEELP (1/2) Πολλές φορές τυχαίνει να ξέρω την εντολή αλλά να μην θυμάμαι ακριβώς πώς λειτουργεί Η εντολή man (manual) περιέχει πληροφορίες για κάθε εντολή Τρόπος σύνταξης: man όνομα εντολής Π.χ man ls Πληροφορίες σύνταξης Εντολή help
HEEELP I NEED HEEELP (2/2) man πληροφορίες NAME Όνομα εντολής SYNOPSIS Γενικές πληροφορίες σύνταξης DESCRIPTION Λειτουργία εντολής και των επιλογών OPTIONS Περιγραφή των επιλογών SEE ALSO Παρόμοιες εντολές BUGS Γνωστά bugs (αν υπάρχουν) EXAMPLES Παραδείγματα χρήσης AUTHORS Ποιος έγραψε τις πληροφορίες Έξοδος q ή ^c
ls (list) Εμφάνιση αρχείων καταλόγου ΣΥΧΝΕΣ ΕΝΤΟΛΕΣ (3/5) pwd Εμφάνιση τρέχοντος καταλόγου cd (change directory) μετάβαση σε φάκελο cd όνομα καταλόγου cd.. επιστροφή στον προηγούμενο κατάλογο
whoami Πληροφορίες χρήστη ΣΥΧΝΕΣ ΕΝΤΟΛΕΣ (4/5) cat Εμφάνιση περιεχομένων του αρχείου Π.χ cat test εμφανίζει την μοναδική καταχώρηση Testing file!!!! του αρχείου who Εμφάνιση των χρηστών που είναι logged in w Εμφάνιση των χρηστών που είναι logged in με περισσότερες λεπτομέρειες από την who
ΣΥΧΝΕΣ ΕΝΤΟΛΕΣ (5/5) finger Εμφάνιση πληροφοριών χρήστη finger όνομα χρήστη finger m μόνο τα login όνοματα Προσοχή! Στο kali linux δεν υπάρχει η εντολή finger Την κάνουμε install με την εντολή apt-get install finger last Εμφάνιση τελευταίων συνδέσεων clear Καθαρισμός οθόνης cal Προβολή ημερολογίου
Any Question??
root@oslab:~$ sudo shutdown h now