Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ΕΡΓΑΣΤΉΡΙΟ ΛΕΙΤΟΥΡΓΙΚΏΝ ΣΥΣΤΗΜΆΤΩΝ ΜΆΘΗΜΑ 6OΥ ΕΞΑΜΉΝΟΥ, ΤΟΜΈΑΣ ΛΟΓΙΚΟΎ ΚΑΙ ΥΠΟΛΟΓΙΣΤΏΝ - 2013-2014 Δρ. Α. Κομνηνός

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΕΡΓΑΣΤΉΡΙΟ ΛΕΙΤΟΥΡΓΙΚΏΝ ΣΥΣΤΗΜΆΤΩΝ ΜΆΘΗΜΑ 6OΥ ΕΞΑΜΉΝΟΥ, ΤΟΜΈΑΣ ΛΟΓΙΚΟΎ ΚΑΙ ΥΠΟΛΟΓΙΣΤΏΝ - 2013-2014 Δρ. Α. Κομνηνός"— Μεταγράφημα παρουσίασης:

1 ΕΡΓΑΣΤΉΡΙΟ ΛΕΙΤΟΥΡΓΙΚΏΝ ΣΥΣΤΗΜΆΤΩΝ ΜΆΘΗΜΑ 6OΥ ΕΞΑΜΉΝΟΥ, ΤΟΜΈΑΣ ΛΟΓΙΚΟΎ ΚΑΙ ΥΠΟΛΟΓΙΣΤΏΝ - 2013-2014 Δρ. Α. Κομνηνός akomninos@ceid.upatras.gr

2 ́Εναρξη Μαθήματος • Ο σκοπός του μαθήματος: • Εξοικείωση με την χρήση λειτουργικών συστημάτων τύπου UNIX • Επαφή με τον προγραμματισμό των συστημάτων • Εξοικείωση του με τον πυρήνα του λειτουργικού συστήματος • Μελέτη ορισμένων χαρακτηριστικών μηχανισμών • Μελέτη του πηγαίου κώδικα του πυρήνα του λειτουργικού • Παρέμβαση, μετατροπή, προσθήκη συγκεκριμένων λειτουργιών στο λειτουργικό σύστημα • Το μάθημα θα βασιστεί στο λειτουργικό σύστημα ‘ανοικτού κώδικα’ MINIX version 3.0 • Το μάθημα θα διεξαχθεί σε δύο άξονες • Παραδώσεις – ∆ιαλέξεις • Ασκήσεις

3 Τυπικά Θέματα • Παραδώσεις • ∆ιαλέξεις 4 ώρες την εβδομάδα • Πέμπτη 18:00 - 20:00, ΒΑ • Παρασκευή 18:00 - 20:00, ΑΠ7 / B4 • 4 θεματικές ενότητες • Αντίστοιχα με τα θέματα που καλύφθηκαν στο προηγούμενο εξάμηνο • Ασκήσεις • 4 ασκήσεις (Ομαδικές) • Βαθμολογία • 100% Ασκήσεις

4 Ασκήσεις – Εξέταση • Ασκήσεις • Ομαδικές (1-3 άτομα) • Μικρές ασκήσεις • 2 ασκήσεις ανά θεματική ενότητα • ≃ 1-2 εβδομάδες ανά άσκηση • Κώδικας • Εξέταση • ∆εν θα υπάρχει εξέταση • Βαθμός 100% από ασκήσεις • Καθυστέρηση στην παράδοση = 10% μείωση βαθμού (ανά μέρα καθυστέρησης) • Αντιγραφή σε 1 άσκηση = μηδενισμός στο μάθημα

5 Απορίες – Συναντήσεις • Για οτιδήποτε χρειαστείτε – θα με βρείτε στο ΤΜΗΥΠ: • Προκατασκευασμένα • ́Αλλες μέρες/ώρες κατόπιν συνεννοήσεως • Μέσω e-mail: akomninos@ceid.upatras.grakomninos@ceid.upatras.gr • Μέσω forum του μαθήματος στο my.ceid.upatras.gr • Μεταπτυχιακοί φοιτητές • Προς το παρόν δεν υπάρχουν

6 ́Υλη Μαθήματος • Λειτουργικό Σύστημα MINIX 3 • Περιβάλλον προγραμματισμού • ∆ιεργασίες • ∆ιαχείριση ∆ιεργασιών Επικοινωνία ∆ιεργασιών • ∆ιαχείριση Μνήμης • Συστήματα Αρχείων • ∆ιαχείριση Αρχείων • Μονάδες Εισόδου - Εξόδου • Device Drivers

7 Βιβλιογραφία • Βιβλία • B.Kernighan, R.Pike: ‘‘Το περιβάλλον Προγραμματισμού UNIX’’ • A.Tanenbaum: ‘‘Σύγχρονα Λειτουργικά Συστήματα" • A.Tanenbaum, A.Woodhull: ‘‘Operating Systems Design and Implementation, 3rd Edition" • Πανεπιστημιακές Σημειώσεις • Π.Τριανταφύλλου: ‘Εργαστήριο Λειτουργικών Συστημάτων • ∆ιαδίκτυο • Ιστοσελίδα Λειτουργικού Συστήματος MINIX 3

8 Ιστοσελίδα και Ανακοινώσεις • Η ιστοσελίδα του μαθήματος σύντομα θα ανανεωθεί • Περιέχει : • ∆ιαφάνειες των διαλέξεων • Συμπληρωματικές σημειώσεις • Το υλικό των ασκήσεων • Υλικό από προηγούμενα έτη • ́Ολες οι ανακοινώσεις θα γίνονται στο forum του μαθήματος στο my.ceid.upatras.gr

9 Σύνοψη 1ης ∆ιάλεξης • Θέματα Μαθήματος • Γενικά • ∆ιαδικασία • Υλικό • Λειτουργικό Σύστημα MINIX 3 • Εισαγωγή • Εγκατάσταση • Βασικές Εντολές Κονσόλας • Σύνοψη Μαθήματος • Βιβλιογραφία • Επόμενη ∆ιάλεξη

10 Γενικά Χαρακτηριστικά • Στόχοι σχεδιασμού • Αξιοπιστία • Ευελιξία • Ασφάλεια • Λογισμικό ‘Ανοιχτού Κώδικα’ • Ο κώδικας για τις λειτουργίες του συστήματος και όλες τις εντολές και εργαλεία προσφέρεται ελεύθερα μαζί με την εγκατάσταση των εκτελέσιμων • Απευθύνεται σε • Ενσωματωμένα συστήματα • Συστήματα υψηλής αξιοπιστίας • Συστήματα μικρού κόστους (π.χ. OLPC) • Συστήματα όπου η άδεια GPL είναι ιδιαίτερα περιοριστική • Εκπαίδευση

11 Χαρακτηριστικά Συστήματος • Minimal Unix = MINIX • Ακολουθεί το μοντέλο μικρο-πυρήνα • Ο πυρήνας αποτελείται από 4000 γραμμές κώδικα • Συνολικά είναι ένα λειτουργικό μικρού μεγέθους • περίπου 25000 γραμμές κώδικα • Οι λειτουργίες του συστήματος • είναι χωρισμένες σε modules • τρέχουν σε user mode • επικοινωνούν με τον πυρήνα μέσω μηνυμάτων • αν πάει κάτι λάθος απλά γίνεται επανεκκίνηση του συγκεκριμένου module • Είναι συμβατό με POSIX (Portable OS Interface) • Υποστηρίζει όλες τις γνωστές γλώσσες προγραμματισμού • Προσφέρει περιβάλλον εργασίας X Windows

12 Ιστορική Αναδρομή • Η πρώτη έκδοση εμφανίστηκε το 1987 – περίπου 12000 γραμμές κώδικα • Το πρώτο λειτουργικό ελεύθερου κώδικα βασισμένο στο UNIX Version 7 • Πολλά πανεπιστήμια δημιούργησαν ‘Εργαστήρια Λειτουργικών’ • Ενας από τους βασικούς στόχους ήταν ο εκπαιδευτικός χαρακτήρας • Στόχευε σε συστήματα 8088 με 256k μνήμη, χωρίς σκληρό δίσκο – απλά με δισκέτα • Η δεύτερη έκδοση εμφανίστηκε το 1997 • ́Εγινε συμβατό με POSIX (IEEE 1003.1, ISO 9945-1) • Επέκταση προς συστήματα 32-bit • Υποστήριξη σκληρού δίσκου και μεγαλύτερης μνήμης Υποστήριξη TCP/IP

13 ́Εκδοση 3 • Ανακοινώθηκε τον Οκτώβριο του 2005 • Βασίζεται στην παρατήρηση ότι τα Λ.Σ. έχουν διογκωθεί, είναι αργά και αναξιόπιστα • Συνήθως όλο το Λ.Σ. είναι γραμμένο σε C++ μεταγλωττισμένο σε ένα εκτελέσιμο που τρέχει μέσα στον πυρήνα • ́Ενα bug σε μία από τις εκατομμύρια γραμμές είναι ικανό να οδηγήσει το σύστημα σε κατάρρευση • Το να διορθώσεις όλα τα bugs είναι αδύνατο – όσο χρόνο και αν διαθέσεις • ́Ερευνα έδειξε ότι τα bugs που έχουν εντοπιστεί είναι 6... 16 ανά 1000 γραμμές κώδικα • ́Ερευνα έδειξε ότι μετά από τις δέκα πρώτες εκδόσεις, το 6% των αρχείων του κώδικα εξακολουθούν να περιέχουν bugs

14 ́Εκδοση 3 – συνέχεια • Συνήθως το 70% του κώδικα αφορά τις συσκευές Ε/Ε και τους αντίστοιχους οδηγούς – υλοποιημένα από τρίτους • ́Ερευνες σε ‘σταθερές’ εκδόσεις Linux και OpenBSD εντόπισαν εκατοντάδες bugs στον πυρήνα και κυρίως στους οδηγούς συσκευών Ε/Ε • Για αυτόν τον λόγο οι οδηγοί μεταφέρθηκαν εκτός του πυρήνα • ́Ενας ειδικός δαίμονας παρακολουθεί την κατάσταση των οδηγών και τους επανεκκινεί εάν διαπιστώσει ότι υπάρχει κάποιο πρόβλημα • Υλοποιεί τεχνικές ‘αυτό-ίασης’ (self-healing) • ή αλλιώς τεχνικές ‘αυτό-σταθεροποίησης’ (self-stabilization) -- για τις οποίες μίλησε για πρώτη φορά ο Dijkstra περίπου το 1960 (περισσότερα στο μάθημα Κ.Σ.)

15 Linus Benedict Torvalds • Κατά την διάρκεια των σπουδών του εγκατέστησε το Minix 1.5 – άρχισε τους πειραματισμούς μελετώντας τον κώδικα • Παρατήρησε ότι κάποια βασικά χαρακτηριστικά απουσίαζαν • ́Αρχισε να υλοποιεί τα προγράμματα... • ∆ιαπίστωσε ότι χρειαζόταν διαφορετικό οδηγό για το τερματικό του, οπότε άρχισε να τον υλοποιεί... • Μετά αποφάσισε ότι χρειάζεται να σώσει τα μηνύματα της συζήτησης για το MINIX στο USENIX... • Οπότε άρχισε να γράφει έναν οδηγό για τον σκληρό δίσκο • Στην συνέχεια υλοποίησε ένα απλό σύστημα αρχείων • Τον Αύγουστο του 1991 δημιούργησε την πρώτη έκδοση του πυρήνα του LINUX • Το ανακοίνωσε στο USENIX και με την συνδρομή άλλων προγραμματιστών η πρώτη έκδοση του LINUX ανακοινώθηκε τον Μάρτιο του 1994

16 MINIX vs LINUX • Το Linux είναι ένα μονολιθικό σύστημα • Καμία δομή όσον αφορά την οργάνωση των λειτουργιών • Ο Tanenbaum ισχυρίστηκε ότι τα συστήματα μικροπυρήνα είναι ανώτερα από τα μονολιθικά •... το Linux βασίζεται σε παρωχημένες τεχνολογίες • ο να προγραμματίζεις ένα μονολιθικό πυρήνα το 1991 είναι ‘‘a giant step back into the 1970s’’ • Το MINIX σχεδιάστηκε κυρίως για εκπαιδευτικό χαρακτήρα • Οφείλει να χρησιμοποιεί καλά σχολιασμένο κώδικα • Υλοποιήσεις ‘αναφοράς’ • Προσφέρει τα ‘θεμέλια’ – τις αποδεκτές αρχές – της ερευνητικής περιοχής • Το LINUX δεν έχει τέτοιου είδους στόχους • Πρέπει να είναι ένα ‘πραγματικό’ λειτουργικό σύστημα • Να βασίζεται σε συγκεκριμένες τεχνολογίες και αρχιτεκτονικές

17 Ελάχιστες Απαιτήσεις • Αρχιτεκτονική IA-32 (386, 486, Pentium or compatible) • 16MB μνήμη • CDROM ή USB -- χρήση έκδοσης LiveCD • Αν θέλετε να το εγκαταστήσετε στον σκληρό τότε απαιτεί 50 MB • Για την χρήση του περιβάλλοντος X Windows -- χρειάζεται 256MB μνήμη • Για την εγκατάσταση όλου του κώδικα (εφαρμογές κλπ) χρειάζεται 600MB χώρο

18 Εγκατάσταση: Εύκολη Λύση • Καμία αλλαγή στον σκληρό δίσκο • Χρήση του LiveCD • Κατέβασμα του image (.iso) από την ιστοσελίδα του συστήματος -- www.minix3.org • ∆ημιουργία ενός bootable CD-ROM • Επανεκκίνηση του συστήματος με την χρήση του CD-ROM • Χρήση USB Memory Stick • Κατέβασμα του usb_image (.zip) από την ιστοσελίδα του συστήματος - - www.minix3.orgwww.minix3.org • Τοποθέτηση αρχείων στο USB Memory Stick • Επανεκκίνηση του συστήματος με την χρήση του USB Memory Stick • Sector – by – sector copy του.iso στο USB (π.χ. YUMI, XBOOT κτλ κτλ). • Επιλέγουμε ρυθμίσεις ‘‘regular’’ • Κάντε login ως root (δεν χρειάζεται password)

19 Εγκατάσταση: Πολύ Εύκολη Λύση • Με την προηγούμενη λύση δεν μπορούμε να κάνουμε αλλαγές στο σύστημα • Καμία αλλαγή στον σκληρό δίσκο / λειτουργικό σύστημα • Χρήση ενός Εξομοιωτή • VirtualBox • VMWare Player -- www.vmware.com • QEMU -- www.qemu.orgwww.qemu.org • Bochs -- bochs.sourceforge.net Virtual PC • Παράδειγμα: http://wiki.minix3.org/en/UsersGuide/RunningMinixOnVm ware

20 Πλήρης Εγκατάσταση • Με την προηγούμενη λύση μπορεί το σύστημα να λειτουργεί ‘αργά’ (εξαρτάται από το υλικό) • Απαιτεί αλλαγές στον σκληρό δίσκο • Εκτός αν μπορούμε να αφιερώσουμε έναν άλλο δίσκο μόνο για το MINIX • Χρειαζόμαστε ένα partition το πολύ 1 GB • Υπάρχουν προγράμματα που μπορούν να αλλάξουν το μέγεθος ενός partition χωρίς να το σβήσουν • ∆ημιουργήστε αντίγραφα ασφαλείας (backup) • Ξεκινήστε το σύστημα με το LiveCD (ή USB) • Επιλέγουμε ρυθμίσεις ‘‘regular’’ • Κάντε login ως root (δεν χρειάζεται password) • Εκτελέστε την εντολή setup

21 Ξεκινώντας ένα Session • Για να ξεκινήσουμε, αρχικά κάνουμε login • Μόλις ξεκινήσει το σύστημα εμφανίζεται το μήνυμα login • Σε άλλα συστήματα το περιβάλλον είναι ποιο φιλικό (π.χ. πλούσια γραφικά) • Εισάγοντας σωστό login/password ξεκινάει ένα νέο session • Μια νέα ‘κονσόλα’ δημιουργείται • Ενα πολύ βασικό περιβάλλον εκτέλεσης εντολών

22 Εκτέλεση Εντολών • Το # είναι το prompt • Στο prompt γράφουμε το όνομα της εντολής και πατάμε Return • Πατώντας απλά Return εμφανίζεται μια νέα γραμμή

23 Χειρισμός λαθών • Αν γράψουμε μια εντολή λάθος, εμφανίζεται ένα μήνυμα λάθους • Το μήνυμα λάθους λέει ότι το αρχείο ή ο φάκελος δεν βρέθηκε Το σύστημα θεωρεί ότι και οι εντολές ειναι αρχεία... • Με τα κουμπιά ↑ ↓ μπορούμε να ανατρέξουμε σε προηγούμενες εντολές • Με τα κουμπιά ← → μπορούμε να επεξεργαστούμε την τρέχουσα γραμμή

24 Τερματισμός εντολών – ́Εξοδος από την κονσόλα • Για να διακόψουμε την εκτέλεση μιας εντολής χρησιμοποιούμε το ctrl-c • Για να ‘παγώσουμε’ την έξοδο μιας εντολής χρησιμοποιούμε το ctrl-s • Για να ‘ξεπαγώσουμε ́ την έξοδο χρησιμοποιούμε το ctrl-q • Προσοχή – με αυτόν τον τρόπο μόνο η έξοδος παγώνει, όχι η εκτέλεση • Για κλείσουμε την κονσόλα – να ολοκληρώσουμε το session χρησιμοποιούμε το ctrl-d • Πατάμε συνεχόμενες φορές το ctrl-q • Τερματίζουν όλα τα προγράμματα που τρέχουν και στο τέλος εμφανίζεται πάλι η αρχική οθόνη login • Αυτός είναι ο μοναδικός σωστός τρόπος για να κλείνουμε ένα session

25 Επικοινωνία με άλλους χειριστές • Με την εντολή write μπορούμε να στείλουμε ένα μήνυμα σε μια άλλη κονσόλα Αποστολή μηνύματος # write akomninos hello there ˆD EOT Παραλαβή μηνύματος Message from root (ttyc1) Sat Apr 21 17:09:17 2007.. hello there EOT

26 Οδηγίες Χρήσης / Προγραμματισμού UNIX • Με την εντολή man μπορούμε να προσπελάσουμε τις σελίδες βοήθειας • Υπάρχουν διάφορες κατηγορίες σελίδων • Εντολές Χειριστών -- ls, cp, grep • Κλήσεις Συστήματος -- fork, exit • Ρουτίνες Βιβλιοθηκών • Αρχεία Συσκευών Ε/Ε • Τύποι/Κωδικοποιήσεις Αρχείων • Παιχνίδια • ∆ιάφορα • Εντολές ∆ιαχειριστή Συστήματος • Εγγραφα – περισσότερες πληροφορίες για τις ορισμένες σελίδες που ανήκουν στις παραπάνω κατηγορίες • Για να προσδιορίσουμε σε ποια κατηγορία αναφερόμαστε: • man [category] [topic]

27 #man fork

28 Εγκατάσταση προγραμμάτων στο MINIX • Εντολή packman (<3.1.7) • Απαιτεί το LiveCD ή να έχουμε πρόσβαση στο ∆ιαδίκτυο • Μπορεί να εγκαταστήσει και τον πηγαίο κώδικα • Αντικαταστάθηκε από το pkgin / pkgsrc

29 Σύνοψη 1ης ∆ιάλεξης • Θέματα Μαθήματος • Γενικά • ∆ιαδικασία • Υλικό • Λειτουργικό Σύστημα MINIX 3 • Εισαγωγή • Εγκατάσταση • Βασικές Εντολές Κονσόλας • Σύνοψη Μαθήματος • Βιβλιογραφία • Επόμενη ∆ιάλεξη

30 Σύνοψη Μαθήματος • ∆ιαδικασία Μαθήματος • Συνοπτική παρουσίαση των Σητημάτων και προβλημάτων που θα μελετηθούν • Σύντομη παρουσίαση του MINIX 3 • Θέματα εγκατάστασης MINIX 3 • Περιβάλλον MINIX • Εισαγωγή στις γενικές έννοιες της κονσόλας

31 Βιβλιογραφία • Βιβλίο ‘Σύγχρονα Λειτουργικά Συστήματα" (A.Tanenbaum) • Κεφάλαιο 1: Εισαγωγή • Κεφάλαιο 10: Μελέτη Περίπτωσης 1 – Unix και Linux • Βιβλίο ‘Το περιβάλλον Προγραμματισμού UNIX’’ (B.Kernighan, R.Pike) • Κεφάλαιο 1: Εισαγωγή • Βιβλίο ‘‘Operating Systems: Design and Implementation" (A.Tanenbaum, A.Woodhull) • Κεφάλαιο 1: Introduction • Appendix A: Installing MINIX 3 • Πανεπιστημιακές Σημειώσεις (Π.Τριανταφύλλου) • Κεφάλαιο 1: Εισαγωγή σε Λειτουργικά Συστήματα

32 Επόμενη ∆ιάλεξη • Περιβάλλον προγραμματισμού UNIX Επανάληψη από μάθημα ‘Λειτουργικά Συστήματα Ι’ • Κεφάλαιο 1: Παραδοσιακά Λειτουργικά Συστήματα • Κεφάλαιο 2: ∆ιεργασίες • Αντίστοιχα κεφάλαια από ‘Σύγχρονα Λειτουργικά Συστήματα’ (A.Tanenbaum)


Κατέβασμα ppt "ΕΡΓΑΣΤΉΡΙΟ ΛΕΙΤΟΥΡΓΙΚΏΝ ΣΥΣΤΗΜΆΤΩΝ ΜΆΘΗΜΑ 6OΥ ΕΞΑΜΉΝΟΥ, ΤΟΜΈΑΣ ΛΟΓΙΚΟΎ ΚΑΙ ΥΠΟΛΟΓΙΣΤΏΝ - 2013-2014 Δρ. Α. Κομνηνός"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google