ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Λύβας Χρήστος chrislibas@ssl-unipi.gr Μανουσόπουλος Χρήστος cman@unipi.gr Αρχική επιμέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος
>_ ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ (1/3) /ˈjuː.nɪks/ +- Στην πρωταρχική του μορφή κατασκευάστηκε από τον 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) /ˈjuː.nɪks/ +- Το 1987 η μητρική της Bell, AT&T ανακοινώνει τη χρέωση διάθεσης του πηγαίου κώδικα του Unix σε όλους. Έτσι το πανεπιστήμιο της California ανακοίνωσε τη δημιουργία του δικού της Unix-Based λειτουργικού, με όνομα Berkley Software Distribution η BSD. +- Tο οι Sun και AT&T συνεργάστηκαν για τη συνένωση του AT&T Unix με το B1987 SD. +- Μετά την είσοδο του Internet τη δεκαετία του 1980, έδωσε τη δυνατότητα σε προγραμματιστές ερευνητές και φοιτητές να συνεισφέρουν στην εξέλιξη του λειτουργικού χωρίς να είναι αναγκαίο να βρίσκονται στον ίδιο χώρο.
>_ ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ (3/3) /ˈjuː.nɪks/ +- Παρόλο που για μεγάλο χρονικό διάστημα, περίπου μία 25ετία, το Unix ήταν περιορισμένο σε ακαδημαϊκά και ερευνητικά περιβάλλοντα μόνο, σήμερα ως Linux, έχει καταλάβει τους προσωπικούς υπολογιστές πολλών χρηστών. +- Εδώ και μερικά χρόνια είναι σε εξέλιξη μία διαρκής προσπάθεια τυποποίησης του (IEEE POSIX, Open Group). +- Πολλοί οργανισμοί και εταιρίες χρησιμοποιούν Unix- based mail και web servers (apache).
>_ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ Unix (1/3) /ˈjuː.nɪks/ +- Λειτουργικό σύστημα πολλών χρηστών (multi user) +- Υποστήριξη πολλαπλών διεργασιών με διαμέριση χρόνου (multi tasking) +- Built in (και όχι patch) παροχή ασφάλειας +- Υποστήριξη δικτύων +- Υποστήριξη πολλών αρχιτεκτονικών: IA-32, MIPS, x86-64, SPARC, DEC Alpha, Itanium, PowerPC, ARM, m68k, PA-RISC, s390, SuperH, M32R κτλ.
>_ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ Unix (2/3) /ˈjuː.nɪks/ +- Τα πάντα είναι παραμετροποιήσιμα. Η συμπεριφορά του κάθε προγράμματος η εντολής αλλάζει και προσαρμόζεται ανάλογα με τις ανάγκες των χρηστών η των διαχειριστών +- Τα πάντα είναι σταθερά. Κάθε στοιχείο του συστήματος αναπαρίσταται ως αρχείο. Αυτό το διακρίνουμε σε ΟΛΑ τα στοιχεία, από τα έγγραφα μέχρι το hardware. Π.χ ο σκληρός δίσκος είναι το αρχείο /dev/sda1.
>_ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ Unix (3/3) /ˈjuː.nɪks/ +- Αυτοματοποίηση καθημερινών εντολών και ρουτινών. Δίνεται η δυνατότητα να γραφτούν από τον κάθε χρήστη script, τα οποία εκτελούν κάποιες διαδικασίες, εντολές ή προγράμματα σε συγκεκριμένο χρόνο η συγκεκριμένη κατάσταση του συστήματος. Π.χ Αυτοματοποιείται η λήψη εφεδρικών αντιγράφων από τους διαχειριστές η τους χρήστες. +- Αποφυγή Δεσμεύσεων χρήστη. Windows και Mac OS αντιμετωπίζουν τον χρήστη σαν άνθρωπο και όχι σαν άλλο πρόγραμμα. +- Είναι γρήγορα. +- Τα δυνατότερα συστήματα στον κόσμο χρησιμοποιούν linux.
Tianhe-1A >_ TOP SUPERCOMPUTERS (1/4) 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 BASE OPERATING SYSTEMS (2/2) FreeBSD Απόγονος του BSD Unix. Android Λειτουργικό σύστημα για συσκευές κινητής τηλεφωνίας το οποίο τρέχει τον πυρήνα του λειτουργικού Linux της Google. ios (προηγουμένως iphone OS) Υβριδικό λειτουργικό σύστημα κλειστού τύπου με χαρακτηριστικά ανοικτού κώδικα για κινητά το οποίο αναπτύχθηκε και διανέμεται από την Apple. MacOS (προηγουμένως Mac OS X ) Υβριδικό λειτουργικό σύστημα κλειστού τύπου με χαρακτηριστικά ανοικτού κώδικα για υπολογιστές το οποίο αναπτύχθηκε και διανέμεται από την Apple.
Πυρήνας (Kernel) >_ ΔΟΜΗ ΤΟΥ UNIX (1/3) +- Σύνολο συναρτήσεων χαμηλού επιπέδου. +- Έλεγχος λειτουργίας συστήματος. +- Χρονοπρογραμματισμός (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) Φλοιός (Shell) +- Υποστήριξη πολλών χρηστών ταυτόχρονα +- Κάθε χρήστης και ένα προφίλ. +- Ο κάθε χρήστης έχει πλήρη έλεγχο στα αρχεία που δημιουργεί (owner). +- Ύπαρξη του κεντρικού (root) η υπερ χρήστη Super User (SU) +- Ονομάζεται root. +- Διαχειρίζεται το σύστημα. +- Έχει πρόσβαση ΠΑΝΤΟΥ, σε κάθε αρχείο/διεργασιά. +- Τροποποιεί τα δικαιώματα των άλλων χρηστών εκτός από τα δικά του.
>_ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΜΑΘΗΜΑ Putty +- Tο βασικό μας εργαλείο +- Μας προσφέρει απομακρυσμένη σύνδεση μέσω ssh στον server που θα κάνουμε τις εργασίες μας στο εργαστήριο και στο σπίτι Vmware player +- Πλατφόρμα διαχείρισης εικονικών μηχανών (Virtual Machines), όπου θα τοποθετήσουμε το δικό μας server για την εξάσκηση στο σπίτι Kali Linux +- Διανομή Linux που θα χρησιμοποιήσουμε για εξάσκηση στο σπίτι
>_ ΔΟΜΗ ΤΩΝ ΕΝΤΟΛΩΝ Terminal +- Υπάρχει διάκριση μεταξύ κεφαλαίων και πεζών γραμμάτων, δηλαδή είναι Case Sensitive +- Η κάθε εντολή έχει την εξής δομή : +- Εντολή [επιλογές] προέλευση προορισμός +- Ότι εμπεριέχεται στις επιλογές δηλαδή εντός των [] είναι προαιρετικό. +- ο συμβολίζει ότι δεν μπορούν να χρησιμοποιηθούν δύο επιλογές ταυτόχρονα +- Υπάρχει και η δυνατότητα συνδυασμού των εντολών π.χ +- ls -l grep "Sep"
>_ ΛΟΓΑΡΙΑΣΜΟΣ ΧΡΗΣΤΗ (1/2) User +- Όνομα χρήστη (user name) +- Συνθηματικό (password) +- Κέλυφος αρχικής σύνδεσης +- Αρχική ομάδα +- Κατάλογος αφετηρίας
>_ ΛΟΓΑΡΙΑΣΜΟΣ ΧΡΗΣΤΗ (2/2) Πως κάνουμε login από το putty: +- Δίνουμε το hostname (η την ip) και πατάμε open +- Δίνουμε το username +- Μετα το password και μας πάει στον αρχικό κατάλογο
>_ ΣΥΧΝΕΣ ΕΝΤΟΛΕΣ (1/5) +- man: Εμφάνιση οδηγιών χρήσης εντολών +- ls: Εμφάνιση περιεχομένων καταλόγου +- pwd: Εμφάνιση τρέχοντος καταλόγου +- cd: Αλλαγή τρέχοντος καταλόγου +- mkdir: Δημιουργία καταλόγου +- rmdir: Διαγραφή καταλόγου +- cp: Αντιγραφή αρχείων +- mv: Μετακίνηση, η μετονομασία αρχείων +- rm: Διαγραφή αρχείων +- cat: Εμφάνιση περιεχομένων αρχείων
>_ ΣΥΧΝΕΣ ΕΝΤΟΛΕΣ (2/5) +- lpr: Εκτύπωση αρχείων +- vi: Κειμενογράφος οθόνης +- passwd: Αλλαγή κωδικού χρήστη +- Προσοχή! Κατά την πληκτρολόγηση του κωδικού δεν τυπώνεται τίποτα στην οθόνη +- whoami: Πληροφορίες χρήστη +- who: Εμφάνιση των χρηστών που είναι logged in +- w: Εμφάνιση των χρηστών που είναι logged in +- με περισσότερες λεπτομέρειες από την who +- finger: Εμφάνιση πληροφοριών χρήστη
>_ ΣΥΧΝΕΣ ΕΝΤΟΛΕΣ (3/5) +- last: Εμφάνιση τελευταίων συνδέσεων +- clear: Καθαρισμός οθόνης +- cal: Προβολή ημερολογίου +- exit: Έξοδος από το τερματικό +- nano: Κειμενογράφος οθόνης +- logout: Αποσύνδεση χρήστη +- uname: Όνομα λειτουργικού συστήματος. +- history: Λίστα εντολών που χρησιμοποιήθηκαν στο τερματικό.
>_ ΣΥΧΝΕΣ ΕΝΤΟΛΕΣ (4/5) +- ls (list): Εμφάνιση αρχείων καταλόγου. +- pwd (print working directory): Εμφάνιση τρέχοντος καταλόγου. +- cd (change directory): μετάβαση σε φάκελο.
>_ ΣΥΧΝΕΣ ΕΝΤΟΛΕΣ (5/5) +- whoami: Πληροφορίες χρήστη. +- cat: Εμφάνιση περιεχομένων του αρχείου +- Π.χ cat Test.txt εμφανίζει την μοναδική καταχώρηση This is a test. του αρχείο +- rmdir: Διαγραφή καταλόγου
>_ ΒΟΗΘΗΤΙΚΕΣ ΕΝΤΟΛΕΣ (1/2) +- Πολλές φορές τυχαίνει να ξέρω μια εντολή αλλά να μην θυμάμαι ακριβώς πώς λειτουργεί. +- Η εντολή man (manual) περιέχει πληροφορίες για κάθε εντολή +- Τρόπος σύνταξης: man όνομα εντολής +- Πληροφορίες σύνταξης +- Εντολή help
>_ ΒΟΗΘΗΤΙΚΕΣ ΕΝΤΟΛΕΣ (1/2) +- NAME Όνομα εντολής +- SYNOPSIS Γενικές πληροφορίες σύνταξης +- DESCRIPTION Λειτουργία εντολής και των επιλογών +- OPTIONS Περιγραφή των επιλογών +- SEE ALSO Παρόμοιες εντολές +- BUGS Γνωστά bugs (αν υπάρχουν) +- EXAMPLES Παραδείγματα χρήσης +- AUTHORS Ποιος έγραψε τις πληροφορίες +- Έξοδος: q η ^c
Unix and C are the ultimate computer viruses. Richard P. Gabriel