ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ
|
|
- Ευρυδίκη Διαμαντόπουλος
- 8 χρόνια πριν
- Προβολές:
Transcript
1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΗΜΙΟΥΡΓΙΑ daemon ΓΙΑ ΤΟΝ ΕΛΕΓΧΟ ΠΟΛΛΑΠΛΩΝ ΕΙΚΟΝΙΚΩΝ ΜΗΧΑΝΩΝ LINUX (USER MODE LINUX VIRTUAL MACHINES) ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΚΑΤΣΩΡΗΣ ΓΕΩΡΓΙΟΣ ΑΜ 4552 ΕΠΙΒΛΕΠΩΝ: ΚΑΘΗΓΗΤΗΣ Δ. ΣΕΡΠΑΝΟΣ
2 Περιεχόμενα Πρόλογος 1 Εισαγωγή 1.1 Στόχος της διπλωμ ατικής,... 2 Υπόβαθρο 2.1 Linux Virtual Machines System Virtual Machines Process Virtual Machines Εικονικοποίηση της ΚΜΕ (CPU Virtualization) Full Virtualization Paravirtualization Hardware assisted Virtualization Χρήση των πόρων συστήμ ατος από το System VM User Mode Linux gdb... 3 User Mode Linux 3.1 Λειτουργία και έλεγχος του User Mode Linux Προετοιμ ασία του ξενιστή και του guest kernel... 4 Αρχιτεκτονική και υλοποίηση 4.1 Αίτηση και εξυπηρέτηση ενεργειών Σενάρια λειτουργίας client Σενάρια λειτουργίας server... 5 Λειτουργία κώδικα 5.1 Ξεκίνημ α ενός UML στιγμ ιότυπου Δημ ιουργία/ διαγραφή/ ανάθεση ΙΡ σε ethernet device Δημ ιουργία και μ εταβολή μ ιας διαδρομ ής...
3 5.4 Έλεγχος firewall ενός UML στιγμ ιότυπου Τερματισμ ός λειτουργίας ενός UML στιγμ ιότυπου... 6 Αναφορές 6.1 Αναφορές... Παράρτημ α Α: Γλωσσάρι Γλωσσάρι... Παράρτημ α Β: Πηγαίος κώδικας Κώδικας client... Κώδικας server...
4 Πρόλογος Το υψηλό κόστος των υπολογιστικών συστημ άτων τα παλαιότερα χρόνια αποτέλεσε το μ οχλό ανάπτυξης νέων τεχνικών, προκειμ ένου να υπάρξει καλύτερη και αποδοτικότερη εκμ ετάλλευση τους. Αυτή ήταν και η κινητήριος δύναμ η για την εμ φάνιση των Virtual Machines, μ ια υλοποίηση που στην αρχή μ πορεί να μ ας μ περδέψει καθώς ανατρέπει την έννοια του υπολογιστικού συστήμ ατος όπως την ξέρουμ ε. Πάνω στην ευκολία δημιουργίας εικονικών συστημ άτων που μ ας παρέχει ένα Virtual Machine βασίζεται και το θέμ α της παρούσας διπλωμ ατικής, καθώς εκμ εταλλεύεται αυτή την ιδιότητα τους ώστε να μπορούμ ε να δημιουργούμ ε και να μεταβάλλουμ ε ένα δίκτυο από Virtual Machines. Στη συμ περιφορά του βέβαια το δίκτυο αυτό θα είναι ίδιο μ ε ένα πραγμ ατικό δίκτυο υπολογιστών, και εκεί είναι και η τεράστια ευελιξία που έχουμ ε μ ε τη χρήση VM: την ταυτόχρονη ύπαρξη ενός ή πλειάδας εικονικών συστημ άτων, μ ε το κόστος απόκτησης ενός μ όνο υπολογιστικού συστήμ ατος. Θα πρέπει επίσης να τονιστεί ότι τα Virtual Machines βρίσκουν εφαρμ ογές και σε διεργασίες χρήστη και γλώσσες προγραμματισμ ού, και δεν χρησιμ οποιούνται αποκλειστικά για εξομ οίωση συστημ άτων. Στα κεφάλαια που ακολουθούν θα γίνει μ ια εκτενέστερη αναφορά πάνω στα Virtual Machines και στον τρόπο λειτουργίας τους, στην αρχιτεκτονική του κώδικα που γράφτηκε για τη συγκεκριμ ένη εργασία, καθώς και στις λειτουργίες που εκτελεί,
5 Κεφάλαιο 1 Εισαγωγή 1.1 Στόχος της διπλωματικής Ο σκοπός της παρούσας εργασίας είναι η ανάπτυξη ενός daemon που θα ελέγχει ένα σύνολο από virtual machines, και θα τα χρησιμ οποιεί προκειμ ένου να εξομοιώνονται λειτουργίες δικτύων υπολογιστών. Κάθε ενεργό στιγμ ιότυπο ενός virtual machine θα έχει ασφαλώς το ρόλο ενός ( εικονικού) υπολογιστή. Οι λειτουργίες που υλοποιεί ο κώδικας είναι η δημ ιουργία, ο έλεγχος και η μ εταβολή ενός δικτύου εικονικών υπολογιστών, μ έσω ενός μενού επιλογών, το οποίο ταυτόχρονα παρέχει πληροφορίες για κάθε εικονικό υπολογιστή. Η υλοποίηση του δικτύου γίνεται μ ε τη χρήση του User Mode Linux ( ενός Linux virtual machine) ενώ κάθε ενεργό UML στιγμ ιότυπο (UML instance) του virtual machine έχει το ρόλο ενός εικονικού υπολογιστή. Η ευελιξία που παρέχεται από τα Virtual Machines είναι τεράστια, και τα καθιστά ιδανικά για το δίκτυο που θα κάνουμ ε. Η συμ περιφορά του εξάλλου θα είναι όμοια μ ε αυτή ενός πραγμ ατικού δικτύου. Προκειμ ένου να είναι εφικτό ένα τέτοιο δίκτυο από Virtual Machines, πρέπει όλοι οι εικονικοί υπολογιστές που θα συμμ ετέχουν σε αυτό να έχουν χαρακτηριστικά και ιδιότητες όμ οιες μ ε ένα πραγμ ατικό δίκτυο, που σημ αίνει ότι κάθε εικονικό μηχάνημ α (UML στιγμ ιότυπο) θα πρέπει να έχει κάποια route rules προκειμ ένου να έχει επικοινωνία μ ε τα υπόλοιπα στιγμ ιότυπα, όπως και τουλάχιστον μ ια ethernet συσκευή, μ ε μ ια ΙΡ διεύθυνση. Επίσης, σε κάθε UML στιγμ ιότυπο είναι δυνατή η εφαρμ ογή firewall rules. Ο κώδικας λοιπόν αναλαμ βάνει να φέρει σε πέρας λειτουργίες όπως ανάθεση και διαγραφή ΙΡ διευθύνσεων, ανάθεση routing και firewall εντολών, καθώς και να δείχνει, μ έσω πληροφοριών που τυπώνονται στη οθόνη, την κατάσταση ολόκληρου του εικονικού δικτύου, και όλων των ενεργών UML στιγμ ιότυπων. Στόχος επίσης είναι και η σωστή αναπαράσταση του δικτύου από ενέργειες που μ πορούν να μ εταβάλουν την κατάσταση του, όπως για παράδειγμ α ο τερματισμ ός ενός UML στιγμ ιότυπου. Σε περίπτωση που ένα συγκεκριμ ένο UML στιγμιότυπο χρησιμ οποιούνταν σαν ενδιάμ εσος σταθμ ός για την επικοινωνία μ εταξύ δυο άλλων, τέτοια ενέργεια θα σήμ αινε την αλλοίωση του δικτύου και πρέπει τα αποτελέσμ ατα της να φανούν στο χρήστη. Παρόμ οιες ενέργειες που αλλοιώνουν το δίκτυο είναι η χρήση του firewall από ένα στιγμ ιότυπο, προκειμ ένου να μ πλοκάρει ένα άλλο, ή η διαγραφή μ ιας ΙΡ διεύθυνσης που χρησιμ οποιούνταν για την επικοινωνία μ εταξύ δυο ή περισσότερων UML στιγμ ιότυπων. Επίσης, καθώς θα υπάρξουν ενέργειες που θα αλλοιώσουν το δίκτυο, πρέπει να είναι δυνατή η επισκευή όποιων τμημ άτων έχουν αλλοιωθεί, όπως για παράδειγμ α η αντικατάσταση του ρόλου που είχε ένα UML στιγμ ιότυπο, από ένα άλλο, και η επαναφορά του δικτύου στη πρότερη, λειτουργική κατάσταση. Όπως αναφέρθηκε, για την υλοποίηση του εικονικού δικτύου θα χρησιμοποιηθεί συγκεκριμ ένο virtual machine, το User Mode Linux. Η χρήση του είναι δυνατή στο λειτουργικό σύστημ α Linux, χωρίς κάποιες τροποποιήσεις εάν χρησιμ οποιείται ένας σχετικά σύγχρονος πυρήνας. Όλες οι νεότερες της εκδόσεις του Linux πυρήνα (Linux kernel) επιτρέπουν την λειτουργία του User Mode Linux, χωρίς να είναι απαραίτητη κάποια τροποποίηση του πυρήνα, ενώ μ ε κάποιες τροποποιήσεις του είναι εφικτή μ ια βελτιωμ ένη απόδοση ( ως προς τον φόρτο και την ασφάλεια του υπολογιστή στον οποίο τρέχει) από τη μ εριά του User Mode Linux.
6 Κεφάλαιο 2 Υπόβαθρο 2.1 Linux Το Linux είναι ένα σύγχρονο λειτουργικό σύστημ α, ενώ μ ερικές από τις ικανότητες του είναι η διαχείριση εικονικής μνήμ ης (virtual memory management), η υποστήριξη multitasking, υποστήριξη στα Ipv4 & Ipv6 πρωτόκολλα κα. Είναι επίσης διαθέσιμ ο για μ ια μ εγάλη γκάμα αρχιτεκτονικών επεξεργαστών (x86, 64_86, arm, powerpc, spark κ. α.), άρα και κατάλληλο για εγκατάσταση σε συστήμ ατα μ ε τέτοιους επεξεργαστές. Κύρια σημ εία στη φιλοσοφία που το διέπει είναι η ελεύθερη διάθεση των αρχείων πηγαίου κώδικα που το αποτελούν, όπως και το ότι είναι ουσιαστικά ένας κλώνος του λειτουργικού συστήμ ατος UNIX. Τα προγράμμ ατα που αποτελούν το Linux είναι ο πυρήνας, ο φλοιός, και τα διάφορα βοηθητικά προγράμμ ατα, όπως συμ βαίνει και στα εμ πορικά συστήμ ατα UNIX. Ο κύριος όγκος των βοηθητικών προγραμμ άτων που αποτέλεσαν την πρώτη έκδοση του Linux προήλθε από το GNU Project, που ιδρύθηκε από τον Richard Stallman το 1984, και είχε στόχο την δημ ιουργία ενός free software λειτουργικού συστήμ ατος, ενώ η πρώτη έκδοση του πυρήνα του Linux γράφτηκε από τον Linus Thorvalds το 1991, καθώς μ έχρι τότε δεν είχε υπάρξει κάποια υλοποίηση πυρήνα που να ήταν διαθέσιμ ος ο πηγαίος κώδικας, και να ακολουθεί την GNU General Public License. Η ένωση αυτών των δυο προγραμμ άτων έδωσε το λειτουργικό σύστημ α που είναι ευρέος γνωστό σαν Linux. Το κύριο πρόγραμμ α στο οποίο βασίζεται η λειτουργία του Linux είναι ο πυρήνας του (linux kernel). Είναι το πρόγραμμ α που καθορίζει τη πρόσβαση κάθε διεργασίας σε πόρους του συστήμ ατος, παρέχοντας μ ία άμ εση διεπαφή μ εταξύ υλικού και κώδικα. Όποια διεργασία επιθυμ εί να έχει πρόσβαση στο υλικό, επικοινωνεί μ ε μ ια κλήση συστήμ ατος (system call) με τον πυρήνα. Γίνεται κατανοητό ότι ο πυρήνας είναι η διεργασία μ ε τα περισσότερα προνόμ ια, κάτι που του επιτρέπει να εκτελεί ενέργειες όπως αλλαγή τιμ ών σε ορισμ ένους καταχωρητές, απενεργοποίηση διακοπών (interrupts), μ εταβολές στην εικονική μνήμ η κ. α. Η προστασία μνήμ ης και διεργασιών στο Linux υλοποιείται μ ε τον διαχωρισμ ό της εικονικής μνήμ ης σε user space, και kernel space περιοχές. Η user space περιοχή είναι προς χρήση από διεργασίες με δικαιώμ ατα χρήστη, ενώ η kernel space χρησιμ οποιείται από τον πυρήνα και έχει αποθηκευμ ένα τα διάφορα προγράμμ ατα οδήγησης (drivers) και χώρο για τις διεργασίες που εκτελεί ο πυρήνας. Επίσης είναι δυνατή η προσθήκη νέων λειτουργιών στον Linux πυρήνα ( π. χ. ένας νέος driver) μ ε τη χρήση kernel modules, που μ πορούν να φορτωθούν αφότου ο πυρήνας έχει ήδη φορτωθεί στη μνήμ η. Ένα ακόμ α γνώρισμ α του Linux είναι η προστασία που παρέχει σε ορισμ ένα από τα αρχεία και προγράμμ ατα του, κάτι που επιτυγχάνεται μ ε τον καθορισμ ό δικαιωμ άτων (read, write, execute) για κάθε αρχείο. Ανάλογα μ ε τα δικαιώμ ατα που έχει κάθε ομ άδα πάνω στα αρχεία είναι και οι ενέργειες που μ πορεί να εκτελέσει μ ε αυτά. Το σύστημ α προστασίας αρχείων είναι όμ οιο μ ε αυτό του λειτουργικού συστήμ ατος UNIX. Μια διεύθυνση που περιέχει περισσότερες και πιο κατατοπιστικές πληροφορίες σχετικά μ ε τα δομ ικά στοιχεία του Linux είναι η ακόλουθη: e4/ Πλέον το Linux έχει κερδίσει την εμ πιστοσύνη των χρηστών του λόγω των επιδόσεων και της σταθερότητας του, ενώ έχει και την απαραίτητη υποστήριξη από μ εγάλες εταιρείες της
7 πληροφορικής, όπως η IBM και η Hewlett Packard, όπως και χρημ ατική στήριξη από αυτές, κάτι που μ πορεί να βοηθήσει στην περαιτέρω βελτίωση και ανάπτυξη του. Βασικό σημείο επίσης στην βελτίωση του είναι το γεγονός της ελεύθερης διάθεσης του πηγαίου κώδικα (source code) των προγραμμ άτων που το απαρτίζουν, κάτι που επιτρέπει στους χρήστες του να εντοπίζουν τυχόν αδυναμ ίες και να προτείνουν αλλαγές στον κώδικα, κάτι που σημ αίνει ότι πρακτικά, πολύ περισσότεροι προγραμμ ατιστές βοηθούν στην ανάπτυξη του κώδικα, σε σύγκριση μ ε μ ια συμ βατική εταιρεία ανάπτυξης λογισμ ικού. Καθώς η διπλωμ ατική εργασία θα χρησιμ οποιούσε το User Mode Linux για να επιτελεί το ρόλο του χρησιμοποιούμ ενου Virtual Machine, η χρήση του Linux σαν περιβάλλοντος ανάπτυξης του κώδικα ήταν απαραίτητη καθώς δεν είναι δυνατή η απροβλημάτιστη λειτουργία του UML σε διαφορετικό λειτουργικό σύστημ α. Προτιμ ήθηκε η διανομ ή Ubuntu, καθώς είναι η πλέον διαδεδομ ένη σήμ ερα, και παρέχει συνεχώς τις τελευταίες εκδώσεις προγραμμ άτων ανοιχτού κώδικα, ενώ υποστηρίζεται και από μ εγάλη ομ άδα ανθρώπων, πέραν των χρηστών του, που αναλαμ βάνουν τη καταγραφή και διόρθωση σφαλμ άτων και αδυναμ ιών στον κώδικα του. Επίσης, θεωρείται από τις φιλικότερες διανομ ές Linux για τον αρχάριο χρήστη, και σε αρχικό στάδιο δεν απαιτεί ιδιαίτερες γνώσεις προκειμ ένου να εγκατασταθεί και να χρησιμ οποιηθεί σε κάποιο υπολογιστικό σύστημ α. Και βεβαίως, δίνει την ίδια δυνατότητα παραμ ετροποίησης και ελέγχου του λειτουργικού που παρέχουν όλες οι διανομ ές Linux, κάνοντας τη διανομ ή Ubuntu μ ια επιλογή τόσο για αρχάριους όσο και για έμ πειρους χρήστες προηγούμ ενων διανομ ών.
8 2.2 Virtual Machines Η ιδέα και χρήση των virtual machines δεν είναι καινούργια. Για τη ακρίβεια, χρησιμ οποιήθηκε για πρώτη φορά στα τέλη του 60, μ ε σκοπό την παράλληλη εκμετάλλευση των υπολογιστών από πολλούς χρήστες ταυτοχρόνως, λόγω του υψηλού κόστους του hardware εκείνη την εποχή, Τα virtual machines χωρίζονται σε δυο κατηγορίες: process, και system virtual machines System Virtual Machines Αποτελούν την αρχική υλοποίηση, στην οποία αποδόθηκε για πρώτη φορά ο όρος virtual machine. Η κύρια ιδέα πίσω από τη δημ ιουργία ενός system virtual machine, είναι η εκμ ετάλλευση του υλικού (hardware) από ένα ή περισσότερα λειτουργικά συστήμ ατα, στα οποία αποδίδουμ ε το χαρακτηρισμ ό guest OS ή φιλοξενούμ ενα ΛΣ. Καθώς πλέον το κόστος του υλικού υπολογιστών έχει μ ειωθεί σε σχέση μ ε προηγούμ ενες δεκαετίες, υπάρχουν πλέον άλλοι λόγοι που οδηγούν στη χρήση virtual machines σε σύγχρονες εφαρμ ογές. Ο κύριος λόγος είναι η ικανότητα να τρέχουν παράλληλα, και σε πλήρη απομ όνωση μ εταξύ τους, τα διάφορα λειτουργικά συστήμ ατα (guest OS) που είναι εγκατεστημ ένα στο virtual machine, με άμ εσο αποτέλεσμ α την καλύτερη και πληρέστερη εκμ ετάλλευση του υλικού, αλλά και μείωση του κόστους που συνεπάγεται η χρήση λιγότερων υπολογιστών που διεκπεραιώνουν τον ίδιο αριθμ ό διεργασιών μ ε πριν. Καθώς τα system VM χωρίζονται σε περαιτέρω κατηγορίες, θα γίνει μ ια συνοπτική περιγραφή τους παρακάτω. Η κλασσική υλοποίηση ενός VM δείχνεται στο Σχήμ α 2.1, και παρουσιάστηκε από τους Popek & Goldberg το 74 [4]. Linux apps. Windows apps. Linux kernel Windows kernel VMM hardware ( i386, 86_64... ) Σχήμ α 2.1 Κλασσική υλοποίηση Virtual Machine Το virtual machine monitor (VMM, ή αλλιώς hypervisor software) αναλαμ βάνει την πρόσβαση του φιλοξενούμ ενου λειτουργικού συστήμ ατος (Linux και Windows στο Σχήμ α 2.2) στο υλικό του υπολογιστή (CPU, I/O κλπ). Στην κλασσική υλοποίηση VM, δεν παρεμβάλλεται λειτουργικό σύστημ α, και η εγκατάσταση του VMM απαιτεί την πλήρη απεγκατάσταση οποιουδήποτε προϋπάρχοντος λειτουργικού συστήμ ατος. Σε αυτή την υλοποίηση, το VMM αναλαμ βάνει να εξυπηρετήσει οποιαδήποτε αίτηση του φιλοξενούμ ενου ΛΣ, καθώς και να κατανείμ ει δίκαια το χρόνο πρόσβασης στους πόρους του συστήμ ατος για κάθε
9 φιλοξενούμ ενο ΛΣ. Επίσης, πρέπει να υπάρχουν και drivers για το VMM, μ ια και αυτό είναι που επικοινωνεί μ ε τις I/O συσκευές. Ο επόμ ενος τύπος Virtual Machine, ο οποίος είναι και ο συνηθέστερος που συναντάμ ε, ονομ άζεται hosted VM. Η εγκατάσταση του γίνεται πάνω σε ένα υπάρχον λειτουργικό σύστημ α, και είναι ίδια μ ε την εγκατάσταση οποιασδήποτε άλλης εφαρμ ογής. Guest apps. Guest kernel VMM Host OS apps. Host OS hardware ( i386, 86_64... ) Σχήμ α 2.2 Hosted ή Whole System Virtual Machine Εάν το ISA (instruction set architecture) του λειτουργικού συστήμ ατος είναι ίδιο μ ε το ISA του φιλοξενούμ ενου ΛΣ, τότε η υλοποίηση ονομ άζεται hosted VM, ενώ σε περίπτωση που έχουμε διαφορετικά ISA μ εταξύ host & guest, έχουμ ε whole system VM, καθώς το VMM αναλαμβάνει τη μ ετάφραση των εντολών του guest σε εντολές που υποστηρίζει ο ξενιστής. Στις υλοποιήσεις hosted και Whole system VM, οι drivers, απαραίτητοι για I/O συσκευές και ενέργειες, παρέχονται από το λειτουργικό σύστημ α του ξενιστή, και όχι από το VMM, Άρα, δεν υπάρχει η ανάγκη ύπαρξης drivers για το VMM, καθώς αυτό το ρόλο τον αναλαμ βάνει το λειτουργικό του ξενιστή. Τελευταία κατηγορία VM, είναι η Codesigned Virtual Machine. Η υλοποίηση τους έχει ως σκοπό τη δημ ιουργία VM μ ε προηγμ ένα χαρακτηριστικά, και ανώτερες επιδόσεις, ενώ η υλοποίηση στοχεύει στο να υπάρχει δυσδιάκριτο όριο μ εταξύ υλικού και λογισμ ικού. Κάποιες από τις ιδιαιτερότητες της συγκεκριμ ένης υλοποίησης είναι το φόρτωμ α όλου του σχετικού με το VMM λογισμ ικού στη μνήμ η, ενώ η περιοχή μνήμ ης στην οποία βρίσκεται δεν γνωστοποιείται σε καμ ία άλλη διεργασία του ξενιστή, είναι δηλαδή κρυμμ ένη περιοχή μνήμ ης. Οι εντολές του φιλοξενούμ ενου ΛΣ μ εταφράζονται από το VMM σε εντολές που υποστηρίζονται από το υλικό (binary translation), και αποθηκεύονται σε μ ια περιοχή της μνήμ ης που χρησιμ οποιείται σαν κρυφή μνήμ η (cache memory). Μια ακόμ α ιδιαιτερότητα της υλοποίησης είναι πως δεν υπάρχουν εφαρμ ογές λογισμ ικού ( πέραν του VMM) που να έχουν γραφεί για το ISA του ξενιστή, δίνοντας την εντύπωση πως το VMM αποτελεί μ έρος του υλικού του ξενιστή. Να σημ ειωθεί πως προτιμ άται η ανάπτυξη σε λογισμ ικό ενός τέτοιου τύπου VM από την υλοποίηση του απευθείας σε hardware, καθώς έτσι έχουμ ε μειωμένο κόστος, ευκολία στην αποσφαλμ άτωση (debugging) του VMM, περιορισμ ό της δυνατότητας μ ετάφρασης μ εταγενέστερων εντολών των guest OS από το VM εξαιτίας της hardware υλοποίησης, κ. α.
10 ορατή μ νή μ η guest kernel guest apps. guest ISA VMM κρυ μμ ένη μ νή μ η translator code cache host ISA hardware Process Virtual Machines Σχήμ α 2.3 Codesigned Virtual Machine Μια process VM παρέχει σε μ ια μ η προνομ ιούχο διεργασία (user process) ένα εικονικό ABI. ABI είναι τα αρχικά του Application Binary Interface, και είναι η διεπαφή μ εταξύ μιας διεργασίας και του υλικού/ λειτουργικού συστήμ ατος, παρέχοντας σε μ ια διεργασία πρόσβαση στο υλικό του συστήμ ατος, όπως και στις υπηρεσίες του λειτουργικού. Επίσης, το ABI απαρτίζεται από τις εντολές χρήστη (user instructions) και μ όνο από αυτές καθώς οι εντολές συστήμ ατος δεν περιλαμ βάνονται στο ABI; και από μ ια διεπαφή κλήσεων συστήματος (system calls), που παρέχει στις διεργασίες τη δυνατότητα να γνωστοποιήσουν στο λειτουργικό σύστημ α την ύπαρξη τους και να ζητήσουν πόρους συστήμ ατος από το λειτουργικό, προκειμ ένου να εκτελεστούν. Άρα λοιπόν, μ ια process VM επιτρέπει σε μια διεργασία μ ε δικαιώμ ατα χρήστη να έχει ένα εικονικό περιβάλλον στο οποίο μ πορεί να εκτελεστεί[4]. Καθώς οι Process VM είναι εκτός του γνωστικού αντικειμ ένου της διπλωμ ατικής, πέραν αυτής της παραγράφου δεν θα υπάρξει περαιτέρω ανάλυση τους. Οι χρήσεις που μ πορεί να έχει μ ια process VM είναι οι ακόλουθες: emulator και binary optimizer: Μια process VM μ πορεί να αναλάβει την εκτέλεση ενός προγράμμ ατος σε ένα διαφορετικό ISA από αυτό για το οποίο έχει μ εταφραστεί το πρόγραμμ α. Ο τρόπος που καταφέρνει κάτι τέτοιο είναι μ ε την μ ετατροπή των εντολών από το αρχικό ISA στο νέο, και άρα τη μίμ ηση (emulate) της συμ περιφοράς του επεξεργαστή μ ε το αρχικό ISA. Η binary translation διαδικασία, που είναι η πιο αποδοτική μ έθοδος μίμ ησης ISA, μ ετατρέπει κομμάτια κώδικα στα ισοδύναμ α τους, και ταυτόχρονα αποθηκεύει κάποιες μεταφρασμ ένα κομμάτια κώδικα για μ ελλοντική χρήση, έχει δηλαδή μ ια συμ περιφορά όμ οια μ ε μ ια κρυφή μνήμ η. Μια ακόμ α εφαρμ ογή είναι η χρήση των process VM σαν βελτιστοποιητές μεταφρασμ ένου κώδικα (binary optimizers), δεν έχουμ ε μ ετατροπή δηλαδή μ εταξύ διαφορετικών ISA. Σκοπός είναι η βελτιστοποίηση του κώδικα του αρχικού εκτελέσιμ ου αρχείου ή βιβλιοθήκης.
11 Virtual Machines γλώσσας προγραμματισμ ού υψηλού επιπέδου (HLL VM): Η ιδέα πίσω από αυτή την προσέγγιση είναι η δυνατότητα εκτέλεσης του ίδιου πηγαίου κώδικα ανεξαρτήτως του ISA του επεξεργαστή (platform independence), και χωρίς να κάνουμ ε κάθε φορά μ εταγλώττιση του κώδικα για το κάθε διαφορετικό ISA στο οποίο θέλουμε να το τρέξουμ ε. Επίσης σημ αντική παράμ ετρος στη σχεδίαση τους είναι και η όσο το δυνατόν μ εγαλύτερη ανεξαρτησία από το λειτουργικό σύστημ α. Το πιο γνωστό παράδειγμ α VM αυτού του τύπου είναι η Java Virtual Machine. Προκειμ ένου να δούμ ε πως λειτουργεί μ ια HLL VM, θα αναφέρουμ ε πρώτα πως λειτουργεί η διαδικασία της μ εταγλώττισης ενός αρχείου πηγαίου κώδικα. Στο Σχήμ α 2.4 φαίνεται η διαδικασία της μ εταγλώττισης για ένα ISA και για το HLL VM. Τα στάδια από τα οποία περνά ένα αρχείο πηγαίου κώδικα στη περίπτωση (a), είναι η αρχική του επεξεργασία από το μ εταγλωττιστή, που κάνει συντακτική, λεξική ανάλυση και αντίστοιχες διαδικασίες. Στο επόμ ενο στάδιο επεξεργασίας ξεκινά η μ ετατροπή σε εντολές του ISA για το οποίο γίνεται η μ εταγλώττιση, και η χρήση μ ετά το πέρας αυτής της διαδικασίας του linker, και έτσι παράγεται τελικώς το αρχείο που περιέχει τη γλώσσα μ ηχανής (object code). Από αυτό το στάδιο και έπειτα, το αρχείο μ πορεί να αποσταλεί και να χρησιμ οποιηθεί από λειτουργικά συστήματα που χρησιμ οποιούν το ίδιο ISA. πηγαίος κώδικας πηγαίος κώδικας πρώτο στάδιο μεταγλώττισης πρώτο στάδιο μεταγλώττισης ενδιάμ εσος κώδικας Object Code δεύτερο στάδιο μεταγλώττισης ενδιάμεσος (μεταφερό μ ενος) κώδικας VM loader αντίγραφο αρχείου στη μνήμη διανομ ή αρχείου για χρήση OS loader αντίγραφο αρχείου στη μνήμη (a) διανομ ή αρχείου για χρήση αρχείο μ ε εντολές του ISA του ξενιστή (b) δεύτερο στάδιο μ εταγλώττισης από VM Σχήμ α 2.4 Η μ εταγλώττιση σε ένα λειτουργικό σύστημ α (a) και στο HLL VM (b) Σε ένα HLL VMM η διαδικασία διαφέρει ελαφρώς, καθώς προκειμ ένου να επιτύχουμε την ανεξαρτησία πλατφόρμ ας αρκεί να φτάσουμ ε μ έχρι το στάδιο της αρχικής επεξεργασίας του πηγαίου κώδικα. Μετά την αρχική επεξεργασία από τον μ εταγλωττιστή, ο πηγαίος κώδικας έχει μ ετατραπεί σε εντολές γενικού τύπου, που αναφέρονται σε ένα εικονικό ISA (virtual ISA). Στη περίπτωση της Java VM, το εικονικό ISA είναι ένα σύνολο λέξεων byte (bytecode), και ο κώδικας ανωτέρου επιπέδου μετασχημ ατίζεται σε bytecode. Πλέον, το
12 αρχείο είναι έτοιμ ο για χρήση από το HLL VM. Η εκτέλεση του από το HLL VM περιλαμβάνει τη δεύτερη φάση χρήσης μ εταγλωττιστή, προκειμ ένου να μ ετατραπεί το αρχείο από το εικονικό ISA στις εντολές που αποτελούν την ISA του επεξεργαστή στον οποίο θα εκτελέσουμ ε το πρόγραμμ α. Ανάλογα μ ε το λειτουργικό και το ISA του συστήμ ατος είναι διαφορετική και η HLL VM υλοποίηση. Όμ ως, το αρχείο πηγαίου κώδικα που έχει παραχθεί μ πορεί να χρησιμοποιηθεί από όλες τις διαφορετικές υλοποιήσεις της HLL VM που έχουμ ε, επιτυγχάνοντας την ανεξαρτησία πλατφόρμ ας που ζητούσαμ ε αρχικά. Η δυσκολία που παρουσιάζεται είναι πως απαιτείται η ανάπτυξη μ ιας HLL VM για κάθε συνδυασμ ό λειτουργικού/isa. 2.3 Εικονικοποίηση της ΚΜΕ (CPU Virtualization) Υπάρχουν περισσότεροι από ένας μ έθοδοι ώστε να έχουμ ε λειτουργία ενός VM. Σε κάθε έναν από αυτούς, η λειτουργία του καθορίζεται από τις ενέργειες του VMM, καθώς αυτό είναι που αναλαμ βάνει την εξυπηρέτηση των αιτημ άτων του φιλοξενούμ ενου ΛΣ, όπως και την πρόσβαση του στο υλικό. Υπάρχουν λύσεις όμ ως που βελτιστοποιούν τη λειτουργία του VM, και οι οποίες μ πορούν να είναι λύσεις που αφορούν τη CPU του ξενιστή, ή το φιλοξενούμ ενο ΛΣ. Όπως είναι κατανοητό, προκειμ ένου να έχουμ ε virtualization, πρέπει να μετασχημ ατιστούν οι εντολές του φιλοξενούμ ενου ΛΣ σε εντολές του ξενιστή, ώστε να είναι δυνατή η εκτέλεση τους από τον επεξεργαστή του ξενιστή. Να σημειώσουμ ε επίσης ότι μ ετάφραση εντολών μ εταξύ διαφορετικών ή και του ίδιου ISA που αναφέρθηκε πιο πάνω, πραγμ ατοποιείται μ ε δύο τεχνικές: binary translation, και interpretation. Καθώς οι δυο αυτές προσεγγίσεις έχουν διαφορετικά χαρακτηριστικά και επιδόσεις, η επιλογή χρήσης τους εξαρτάται από την υλοποιούμ ενη εφαρμ ογή[4]. Παρακάτω παρουσιάζονται λύσεις που έχουν σκοπό τη βελτίωση της απόδοσης του VM, και οι λύσεις αφορούν το φιλοξενούμ ενο ΛΣ, αλλά και τη ΚΜΕ του υλικού. Οι παρακάτω υλοποιήσεις χρησιμ οποιούνται όταν το φιλοξενούμενο ΛΣ και ο ξενιστής έχουν το ίδιο ISA Full Virtualization Η πρώτη περίπτωση που εξετάζουμ ε είναι αυτή της λειτουργίας ενός φιλοξενούμενου ΛΣ το οποίο δεν έχει υποστεί κάποια τροποποίηση, και η ΚΜΕ του υλικού δεν έχει κάποια ειδική υποστήριξη για τα Virtual Machines. Κατά τη λειτουργία του φιλοξενούμ ενου ΛΣ, παράγονται δυο ειδών εντολών: οι προνομ ιούχες (privileged instructions) και μη προνομ ιούχες (non privileged instructions) εντολές. Οι μ η προνομ ιούχες εντολές εκτελούνται απευθείας στον επεξεργαστή για να έχουμ ε καλύτερη απόδοση, ενώ για τις προνομιούχες ακολουθείται η εξής διαδικασία: Καθώς το φιλοξενούμ ενο ΛΣ εκτελείται σε user mode, οι προνομ ιούχες εντολές που θα τρέχει, θα προκαλούν σήμ α trap στον επεξεργαστή. Το σήμα trap γνωστοποιείται στο VMM, το οποίο τελικώς αναλαμ βάνει την εξυπηρέτηση της προνομ ιούχου εντολής, μ ε επακόλουθο ο έλεγχος να περνάει στο VMM. Προκειμ ένου να ανιχνευθεί ποια προνομ ιούχος εντολή εκτελείται, χρησιμ οποιείται binary translation. Η εξυπηρέτηση μ ιας τέτοιας εντολής σημ αίνει την κλήση μ ιας ρουτίνας του VMM, ξεχωριστής για κάθε προνομ ιούχα εντολή, που αναλαμ βάνει να την εξυπηρετήσει, μ ε την εξυπηρέτηση αυτή να ισοδυναμ εί μ ε εξομ οίωση των ενεργειών της εντολής[4][5][6]. Αξίζει να σημ ειωθεί ότι η ίδια διαδικασία που ακολουθείται για τις privileged εντολές ακολουθείται και για εντολές που δεν
13 είναι εικονικοποιήσημ ες (non virtualizable) όπως είναι κάποιες στην x86 αρχιτεκτονική. Στο Σχήμ α 2.5 γίνεται ξανά μ ια παρουσίαση των διάφορων τύπων VM, μ ε σκοπό να τονίσουμ ε ότι η συμ περιφορά που περιγράφηκε παραπάνω δεν παρουσιάζεται σε κάποια συγκεκριμένη υλοποίηση VM που χρησιμοποιούμ ε, αλλά είναι ίδια σε κάθε περίπτωση. Το πρόβλημ α που παρουσιάζει μ ια τέτοια υλοποίηση VM είναι ότι πρέπει να υπάρχει εξομ οίωση ή μετάφραση εντολών μ έσω λογισμ ικού ( από το VMM δηλαδή), γεγονός που επηρεάζει αρνητικά την απόδοση του VM. guest apps. guest apps. Apps. guest apps. guest OS guest OS VMM guest OS VMM μ η προνομιούχος λειτουργία OS hardware VMM hardware OS hardware OS hardware προνομιούχος λειτουργία (a) (b) (c) (d) Σχήμ α 2.5 Δ ιάφορες διαμ ορφώσεις VM. Το Σχήμ α 2.5.a είναι η τυπική εγκατάσταση λειτουργικού σε υλικό. Το Σχήμ α 2.5.b αναπαριστά μ ια native VM εγκατάσταση, το Σχήμ α 2.5.c ένα user mode hosted VM σύστημ α, και τέλος το 2.5.d μ ια dual mode hosted VM εγκατάσταση. Στη τελευταία περίπτωση, το VMM λειτουργεί και στις δυο λειτουργίες, μ πορεί δηλαδή κάποια κομμ άτια του VM να εκτελούνται απευθείας στο υλικό Paravirtualization Μια από τις αρχές των VM είναι η οπτική που παρέχουν στο φιλοξενούμ ενο ΛΣ, του δίνουν δηλαδή την εντύπωση πως έχει στη διάθεση του όλους τους πόρους του συστήμ ατος. Επίσης, αναφέρθηκε πως το φιλοξενούμ ενο ΛΣ δεν υφίσταται αλλαγές στον κώδικα του, άρα επιτελεί τις ίδιες λειτουργίες είτε εγκατασταθεί απευθείας σε υλικό, είτε εάν τρέχει σε VM περιβάλλον. Η υλοποίηση της paravirtualization προσέγγισης επιτυγχάνεται μ ε την αλλαγή του κώδικα του πυρήνα του φιλοξενούμ ενου ΛΣ. Το κίνητρο είναι η εκτέλεση λιγότερων προνομ ιούχων εντολών (privileged instructions) από τη μ εριά του φιλοξενούμ ενου ΛΣ, και το αποτέλεσμ α η βελτίωση της απόδοσης του VM, λόγω της αποφυγής μ εγάλου μ έρους ( όχι όμ ως όλων) των εντολών αυτού του τύπου που απαιτούν ειδικούς χειρισμ ούς από το VMM ( ανίχνευση σήμ ατος trap κ. λ. π.)[4][5]. Οι αλλαγές που κάνουμ ε στο φιλοξενούμ ενο ΛΣ αφορούν τη δημ ιουργία διεπαφής λογισμ ικού (software interface) μ εταξύ VMM πυρήνα φιλοξενούμ ενου ΛΣ, και η οποία δημ ιουργείται έτσι ώστε οι προνομ ιούχες εντολές που είναι δύσκολο να εικονικοποιηθούν, να μ ην περιέχονται στον πυρήνα του φιλοξενούμ ενου ΛΣ, και να αντικατασταθούν μ ε κλήσεις στο VMM[6]. Τελικώς επιτυγχάνουμ ε να βλέπει το φιλοξενούμ ενο ΛΣ μ ια απλοποιημ ένη εκδοχή του επεξεργαστή του ξενιστή. Ο τελικός στόχος αυτής της προσπάθειας είναι να δημ ιουργηθεί ένα VM που δεν θα χρησιμ οποιεί τις εντολές του ISA που είναι δύσκολο να εικονικοποιήσουμ ε, κάτι που απαλλάσσει το VMM από τις πολύπλοκες ενέργειες που απαιτεί ο χειρισμ ός αυτών των εντολών[4]. Όπως αναφέρθηκε πιο πάνω, το VMM είναι παρόν και στη paravirtualization προσέγγιση.
14 2.3.3 Hardware assisted Virtualization Η τελευταία προσέγγιση στη χρήση των virtual machines περιλαμ βάνει τη χρήση επεξεργαστών που υποβοηθούν τη καλύτερη και αποδοτικότερη λειτουργία τους. Παλαιότερες υλοποιήσεις τέτοιων επεξεργαστών ονόμ αζαν τις νέες ιδιότητες και εντολές τους hardware enhancements, ενώ πλέον είναι γνωστές σαν virtualization extensions, και πλέον είναι διαθέσιμ ες και για τις x86 και x86_64 αρχιτεκτονικές, μ ε την AMD να ονομ άζει αυτή την τεχνολογία της AMD V και αντίστοιχα η υλοποίηση της Intel έχει την ονομ ασία VT x. Σκοπός της hardware assisted προσέγγισης είναι η χρήση φιλοξενούμ ενου ΛΣ το οποίο δεν έχει υποστεί μ εταβολές στον κώδικα του. Πλέον όμ ως οι προνομ ιούχες εντολές, παρόλο που θα παράγουν σήμ ατα trap, και το VMM θα είναι παρόν ώστε να τα εξυπηρετεί όπως και πριν, θα εξυπηρετούνται απευθείας στον επεξεργαστή, και όχι από λογισμ ικό ( εκτός από λίγες περιπτώσεις εντολών, που απαιτούν emulation), όπως συνέβαινε στις δυο προηγούμ ενες προσεγγίσεις[4][6]. Καταργείται λοιπόν η ανάγκη paravirtualization ή emulation. Για να συμ βαίνει κάτι τέτοιο θα πρέπει φυσικά το ISA του ξενιστή και του φιλοξενούμ ενου ΛΣ να είναι ίδια. Η λειτουργία ενός τέτοιου επεξεργαστή φαίνεται μ ε την εξέταση της συμ περιφοράς ενός Intel, εξοπλισμ ένου μ ε virtualization extensions. Στην υλοποίηση της Intel (VT x), έχει προστεθεί ένα νέο mode λειτουργίας, το VMX mode. Επίσης, όταν ο επεξεργαστής βρίσκεται σε VMX λειτουργία, θα βρίσκεται είτε σε VMX root, είτε σε VMX non root λειτουργία. Στη VMX root λειτουργία, ο επεξεργαστής συμ περιφέρεται όπως ένας επεξεργαστής χωρίς virtualization extensions, ενώ η VMX non root λειτουργία σχεδιάστηκε για χρήση από τα φιλοξενούμ ενα ΛΣ, και τους απαγορεύει τη μ εταβολή κρίσιμ ων διαμοιραζόμ ενων πόρων (critical shared resources) χωρίς την παρέμ βαση του VMM, το οποίο λειτουργεί σε VMX root λειτουργία (privileged ring 0). Φαίνεται ξεκάθαρα λοιπόν και στο Σχήμ α 2.6 πως το VMM εποπτεύει τη λειτουργία των guest OS, και γιαυτό είναι και σε προνομ ιακή λειτουργία[4][6]. Όπως αναφέρθηκε προηγουμ ένως, ο επεξεργαστής πλέον δουλεύει σε δυο modes, ανάλογα μ ε τον κώδικα (guest OS ή VMM) που εκτελείται στον επεξεργαστή, και εδώ είναι και οι δυο λόγοι που επιτρέπουν στη hardware assisted προσέγγιση να έχει καλύτερη απόδοση. Ο πρώτος λόγος είναι η ύπαρξη ενός νέου mode στο οποίο θα τρέχει το VMM, και επίσης πλέον δεν απαιτείται να τρέχει το φιλοξενούμ ενο ΛΣ σε ring 0 (user mode) αλλά μ πορεί να εκμ εταλλεύεται όλα τα rings για τα οποία έχει κατασκευαστεί. Πλέον, όλες οι προνομιούχες εντολές κάνουν trap στο VMM και εκτελούνται στον επεξεργαστή, και γλιτώνουμ ε το binary translation, ή τις paravirtualization τεχνικές. Ο δεύτερος λόγος είναι η ύπαρξη υλικού (hardware) που αναλαμ βάνει να αποθηκεύει πληροφορίες κατάστασης (state information) που αφορούν τα ενεργά VM, ή όσα VM βρίσκονται σε αδρανοποιημ ένη κατάσταση. Η παρεχόμ ενη δομ ή αποθήκευσης αυτών των πληροφοριών ονομ άζεται VMCS (virtual machine control structure) και αποθηκεύεται στη μνήμ η. Σε περίπτωση που θέλουμ ε να ξεκινήσουμ ε ή να σταματήσουμ ε ένα VM, το υλικό είναι αυτό που πλέον αναλαμ βάνει τη διαδικασία φόρτωσης και αποθήκευσης των πληροφοριών κατάστασης, και όχι το VMM που θα εκτελούσε την ίδια λειτουργία σε περισσότερο χρόνο[4]. Η διαδικασία μ ετάβασης από το φιλοξενούμ ενο ΛΣ στο VMM καλείται VM exit, ενώ η αντίστροφη διαδικασία VM entry. Όπως αναφέρθηκε πιο πάνω, η δομ ή VMCS χρησιμ οποιείται για αυτή τη διαδικασία, και γιαυτό το λόγο είναι χωρισμ ένη σε διάφορα κομμ άτια, καθένα από τα οποία αποθηκεύει συγκεκριμ ένα δεδομ ένα. Για παράδειγμ α, μ ια από
15 τις περιοχές μνήμ ης του VMCS είναι η περιοχή που αποθηκεύει την κατάσταση των καταχωρητών και των διακοπών (registed, interruptibility states) ενός VM, και ονομάζεται guest state area, ενώ η περιοχή που αφορά το VMM ονομ άζεται host state area και αποθηκεύεται η κατάσταση των καταχωρητών. Τα παραπάνω δεδομ ένα χρησιμοποιούνται στη περίπτωση VM entry διαδικασίας, όπου θα ανακληθούν τα δεδομ ένα που είναι αποθηκευμ ένα στη περιοχή guest state area. Αναλυτικότερη εξήγηση της δομ ής VMCS, καθώς και όλων των διεργασιών που περιγράφονται πιο πάνω, μ πορεί να βρεθεί στη παρακάτω διεύθυνση: na/eng/ htm guest apps. guest apps. unprivileged ring 3 guest kernel... guest kernel unprivileged ring 0 VMM privileged ring 0 hardware Σχήμ α 2.6 Τα δυο διαφορετικά επίπεδα προνομ ίων στην VT x υλοποίηση της Intel. Προκειμένου να παρακάμ ψει τα προβλήμ ατα που παρουσίαζαν οι προηγούμ ενες υλοποιήσεις των VM, η VT x υλοποίηση εισήγαγε τα VMX root και VMX non root modes λειτουργίας. Στο φιλοξενούμ ενο ΛΣ του σχήμ ατος υποθέτουμε ότι εκμ εταλλεύεται μ όνο τα rings 0 και 3 του επεξεργαστή για τη λειτουργία του. Επίσης, θα είναι διαφορετικά τα rings στα οποία λειτουργούν τα διάφορα κομμ άτια του φιλοξενούμ ενου ΛΣ, καθώς δεν έχει μ εταβληθεί ο κώδικας του, και συμ περιφέρεται όπως θα συμ περιφερόταν αν είχε εγκατασταθεί απευθείας στο υλικό. Το φιλοξενούμενο ΛΣ λειτουργεί λοιπόν σε VMX non root mode, το VMM σε root mode. guest OS #1 guest OS #n Μη προνομιούχ o επίπεδο ring 3 ring 0 ring 3 ring 0 VMCS 1... VMCS n VM exit VM entry Apps. ring 3 VMM (ring 0) hardware Σχήμ α 2.7 Χρήση του VMCS. Κάθε VM έχει μ ια δομ ή VMCS, την οποία χρησιμ οποιεί αποκλειστικά, και χρησιμ οποιεί όταν σημ ειώνεται VM exit ή VM entry. Τελειώνοντας, πρέπει να αναφέρουμ ε ότι είναι δυνατή η υλοποίηση System VM όπου
16 υποστηρίζονται φιλοξενούμ ενα ΛΣ μ ε ISA διαφορετικό αυτού της ΚΜΕ του ξενιστή. Σε περίπτωση διαφορετικών ISA η απόδοση είναι σαφώς υποδεέστερη, καθώς κάθε εντολή, προνομ ιούχος και μ η, θα πρέπει να μ εταφράζεται σε ισοδύναμ η εντολή (emulation) που υποστηρίζεται από τη ΚΜΕ του ξενιστή από το VMM. Ένας ακόμ α λόγος που οδηγεί σε υποβαθμισμ ένη απόδοση είναι η ύπαρξη διαφορετικών μ οντέλων μνήμ ης (memory model) μ εταξύ του ξενιστή και του φιλοξενούμ ενου ΛΣ[4]. 2.4 Χρήση των πόρων συστήμ ατος από το System VM (I/O Virtualization) Τέλος, αξίζει να αναφερθούμ ε στο τρόπο μ ε τον οποίο χρησιμ οποιεί το VM, πέραν του επεξεργαστή, τις υπόλοιπες συσκευές του υπολογιστή στον οποίο τρέχει. Η κλασσική προσέγγιση είναι η δημ ιουργία μ ίας εικονικής συσκευής που ανατίθεται στο VM, και η μ ετατροπή των ενεργειών στην εικονική συσκευή σε ενέργειες στην πραγμ ατική (physical) συσκευή, χωρίς όμ ως αυτό να συμ βαίνει πάντα[4]. Για παράδειγμ α, όταν επικοινωνούν δικτυακά δυο VM τα οποία τρέχουν στο ίδιο υλικό, δεν στέλνουμ ε τη δικτυακή τους κίνηση στη θύρα δικτύου. Ανάλογα μ ε το είδος της συσκευής που θέλουμ ε να εικονικοποιήσουμε (virtualize) είναι και η τεχνική που θα ακολουθήσουμ ε ώστε να το πετύχουμ ε. Οι συσκευές χωρίζονται στις ακόλουθες κατηγορίες: Αφιερωμ ένες (dedicated) συσκευές : Τέτοιες είναι ένα πληκτρολόγιο, ή μ ια οθόνη. Η συνήθης πρακτική είναι οι ενέργειες που αφορούν αυτές τις συσκευές να περνάνε πρώτα από το VMM. Έπειτα, η διακοπή (interrupt) που παράγεται από τη συσκευή κατευθύνεται από το VMM ξανά στο VM το οποίο τη προκάλεσε. Partitioned συσκευές: Είναι δυνατή η κατάτμ ηση ενός δίσκου σε μ ικρότερα κομμ άτια, μ ε σκοπό να τα αναθέσουμ ε σε VM. Προκειμ ένου να φέρει ένα VM σε πέρας μ ια I/O ενέργεια στο δίσκο του, το VMM αναλαμ βάνει να βρει το κομμ άτι του δίσκου που έχει ανατεθεί στο VM που έκανε την I/O ενέργεια. Διαμοιραζόμ ενες (shared) συσκευές : Ένα παράδειγμ α τέτοιας συσκευής είναι μ ια διεπαφή δικτύου. Κάθε VM έχει μια αντίστοιχη εικονική συσκευή, και το VMM αναλαμ βάνει την κοινή χρήση της πραγμ ατικής θύρας από όλα τα VM που βρίσκονται σε ενεργή κατάσταση, μ ε το να συλλαμ βάνει την I/O δραστηριότητα του κάθε VM και να την κατευθύνει στην πραγμ ατική συσκευή, και αντίστροφα. Επίσης, η χρήση της πραγμ ατικής VM συσκευής γίνεται ισόποσα από όλα τα VM που είναι ενεργά. Spooled συσκευές : Είναι διαμοιραζόμ ενες συσκευές, σε μ εγαλύτερη όμ ως κλίμ ακα, όπως για παράδειγμα ένας δικτυακός εκτυπωτής. : Μη υπάρχουσες συσκευές Συσκευές που είναι εικονικές και δεν υπάρχουν στο υλικό του υπολογιστή που τρέχει
17 το VM. Παράδειγμ α είναι η ανάθεση δικτυακών συσκευών σε VM, ενώ δεν υπάρχει τέτοια συσκευή στο υλικό μ ας. Στο Σχήμ α 2.8 φαίνεται η διεκπεραίωση μ ιας I/O αίτησης σε ένα λειτουργικό σύστημ α. Ένα λειτουργικό σύστημ α υλοποιεί τις διάφορες ενέργειες του έχοντας μ ια πιο μ ακροσκοπική ματιά ως προς το υλικό που είναι εγκατεστημ ένο στο υπολογιστικό σύστημ α μ ας, ενώ οι I/O ενέργειες που αφορούν τις συσκευές κατευθύνονται στη διεπαφή κλήσεων συστήματος (system call interface), και στη διεπαφή κλήσεων drivers (device driver interface). Για παράδειγμ α, η κλήση από το λειτουργικό της εντολής read() γίνεται μ έσω της διεπαφής κλήσεων συστήμ ατος. Το λειτουργικό έπειτα μ ετατρέπει τη κλήση αυτή σε μια κλήση συσκευής, χρησιμ οποιώντας τη διεπαφή κλήσεων drivers, που θα φέρει τελικά σε πέρας την ενέργεια που ζητήθηκε. Ο driver μ ετατρέπει δηλαδή μ ια αίτηση του λειτουργικού, η οποία είναι ανεξάρτητη του εγκατεστημ ένου υλικού στο σύστημ α, σε αίτηση προς ένα συγκεκριμ ένο κομμ άτι του υλικού του συστήμ ατος μ ας. Όπως έχουμ ε πει παραπάνω, το VMM αναλαμ βάνει να εξυπηρετήσει τις προνομ ιούχες εντολές του φιλοξενούμ ενου ΛΣ, οπότε ίδια συμ περιφορά θα έχουμ ε και μ ε τις I/O αιτήσεις ενός VM. Το VMM μ πορεί να υποκλέψει τις I/O ενέργειες του φιλοξενούμ ενου ΛΣ, και να τις μ ετατρέψει σε ενέργειες που αφορούν το υλικό του συστήμ ατος μ ας. Αυτή η υποκλοπή μ πορεί να γίνει σε τρία επίπεδα: στο επίπεδο I/O ενεργειών, στο επίπεδο drivers, και στο επίπεδο κλήσεων συστήμ ατος. εφαρμογή κλήσεις συστήματος Λειτουργικό Σύστημα κλήσεις driver VMM I/O drivers μνήμ η και I/O ενέργειες hardware Σχήμ α 2.8 Δ ιεπαφές σε I/O ενέργειες λειτουργικού και VM Υποκλοπή στο I/O επίπεδο ενεργειών: Οι I/O εντολές προκαλούν σήμ ατα trap, ή αλλάζουν το mode λειτουργίας του επεξεργαστή,
18 οπότε είναι εύκολο να ανιχνευθούν από το VMM. Είναι εύκολο λοιπόν να ανιχνεύσει το VMM τις I/O εντολές, όμ ως είναι δύσκολο να συμ περάνει ποια I/O λειτουργία ανωτέρου επιπέδου ( π. χ. κλήση της read() συνάρτησης) θέλει να φέρει σε πέρας το φιλοξενούμ ενο ΛΣ, ώστε να μ πορέσει το VMM να την εκτελέσει. Για παράδειγμ α, μ ια ανάγνωση δίσκου αποτελείται από πολλές I/O εντολές, και καθιστά δύσκολη την αναγνώριση της εκτελούμ ενης εντολής ανωτέρου επιπέδου. Υποκλοπή στο επίπεδο των drivers: Σε ένα λειτουργικό σύστημ α, μ ια κλήση εντολής ανωτέρου επιπέδου ( π. χ. κλήση της read() συνάρτησης) τελικώς θα μ εταφραστεί σε χρήση μ ιας συσκευής που είναι εγκατεστημ ένη στο σύστημ α μ ας, άρα και την χρήση ενός driver που την ελέγχει. Προκειμ ένου να υλοποιήσει μια I/O ενέργεια που εκτελεί ένα VM στην εικονική συσκευή που του έχουμ ε αναθέσει, το VMM θα πρέπει να την ανιχνεύσει την κλήση driver που κάνει το φιλοξενούμ ενο ΛΣ στην εικονική συσκευή, και να την μ εταθέσει στην πραγμ ατική συσκευή του συστήμ ατος μ ας, καλώντας τον driver που την ελέγχει. Η δυσκολία αυτής της προσέγγισης είναι πως πρέπει το VMM να γνωρίζει τις διεπαφές drivers του φιλοξενούμ ενου ΛΣ. Επίσης, ανάλογα μ ε τον τύπο του VM που χρησιμ οποιείται, θα έχουμ ε διαφορετική συμ περιφορά από το VMM στην εξυπηρέτηση των αιτήσεων προς τον driver που ελέγχει την πραγμ ατική συσκευή. Ένα hosted VM θα χρησιμ οποιήσει τους drivers του λειτουργικού συστήμ ατος πάνω από το οποίο έχει εγκατασταθεί. Ένα native VMM πρέπει να έχει drivers γραμμ ένους για το ίδιο, ώστε να φέρει σε πέρας I/O ενέργειες. Υποκλοπή στο επίπεδο των κλήσεων συστήμ ατος: Μια τελευταία προσέγγιση είναι να αναλαμ βάνει το VMM να φέρνει σε πέρας τις I/O ενέργειες του φιλοξενούμ ενου ΛΣ, αντί να τις μ εταθέτει στους drivers που χρησιμ οποιεί ο ξενιστής. Κάτι τέτοιο απαιτεί να ανιχνεύει το VMM τις I/O ενέργειες του φιλοξενούμ ενου ΛΣ στο ABI, τη διεπαφή δηλαδή της διεργασίας μ ε το υλικό του συστήμ ατος. Αυτή η προσέγγιση φαίνεται πως είναι εφικτή και από το Σχήμ α 2.8, καθώς ξέρουμ ε πως ένα σκέλος του ABI είναι η διεπαφή κλήσεων συστήμ ατος, και προκειμ ένου να έχει μ ια διεργασία υπό τον έλεγχο της το υλικό του συστήμ ατος, θα αποστείλει σχετικό αίτημ α χρησιμ οποιώντας τις κλήσεις συστήμ ατος.[4]. Η δυσκολία αυτού του εγχειρήμ ατος είναι πως θα πρέπει να γραφούν ξανά όλες οι συναρτήσεις που φτάνουν στην ABI διεπαφή, και αυτή τη φορά για το VMM. Κάτι τέτοιο απαιτεί πολύ καλή γνώση του φιλοξενούμ ενου ΛΣ, ώστε να γραφούν αποδοτικές συναρτήσεις. Προκειμ ένου να επιτύχουμ ε καλύτερες επιδώσεις στις I/O ενέργειες των VM, η AMD έχει ανακοινώσει τη κυκλοφορία chipset μ ε Virtualization extensions για τα μ έσα του 2009[5]. 2.5 User Mode Linux Το User Mode Linux επιτρέπει την εκτέλεση/ ύπαρξη εικονικών μηχανημ άτων (virtual machines) Linux ( αλλιώς ονομαζόμ ενα και guests) σε ένα μηχάνημ α που επίσης τρέχει το λειτουργικό σύστημ α Linux και έχει το ρόλο του ξενιστή (host) για όλα τα εικονικά
19 μηχανήμ ατα. Από τη μ εριά του ξενιστή, ένα εικονικό μηχάνημ α Linux δεν είναι κάτι παραπάνω από μ ια ακόμ α διεργασία στο σύστημ α, καθώς το UML επικοινωνεί μ ε τον ξενιστή κάνοντας κλήσεις συστήμ ατος (system calls). H περιοχή της μνήμ ης που καταλαμ βάνει/ χρησιμοποιεί ένα εικονικό μηχάνημ α είναι η περιοχή χρήστη (user space περιοχή), η οποία χρησιμοποιείται αποκλειστικά για τις διεργασίες του χρήστη, σε αντίθεση μ ε την kernel space μνήμ η, που χρησιμ οποιείται από τον πυρήνα του ξενιστή. Γίνεται κατανοητή λοιπόν ο λόγος της ονομ ασίας User Mode Linux. Από την οπτική γωνία του εικονικού μηχανήμ ατος, το UML instance είναι ένας πυρήνας, μ ε τον οποίο αλληλεπιδρούν οι διεργασίες του εικονικού μηχανήμ ατος, κάνοντας τις αντίστοιχες κλήσεις συστήμ ατος. Η σχέση αυτή φαίνεται ακόμα καλύτερα στο Σχήμ α 2.9. Στη συγκεκριμ ένη υλοποίηση VM, ο πυρήνας του ξενιστή είναι ταυτόχρονα και το VMM και μ άλιστα πλέον αυτή η διπλή ιδιότητα του είναι ενσωματωμένη στον πυρήνα, και δεν χρειάζεται κάποια παραπάνω προσθήκη κώδικα στον πυρήνα του ξενιστή, καθώς το User Mode Linux αποτελεί πλέον ενεργό μ έρος της ανάπτυξης και συντήρησης του Linux kernel. Επίσης, το UML ανήκει στη κατηγορία της paravirtualization υλοποίησης VM, καθώς ο πυρήνας του έχει προκύψει από τροποποίηση του κώδικα του Linux πυρήνα. Μια από τις χρήσεις που έχει το User Mode Linux, και τα εικονικά μηχανήματα γενικότερα, είναι, όπως αναφέρθηκε παραπάνω, είναι η χρήση του προκειμ ένου να έχουμε παράλληλη εκμ ετάλλευση του υλικού από περισσότερα του ενός VM, μ ε πρώτη εφαρμογή στους εξυπηρετητές (server). Τα VM επίσης μ πορούν να βρουν εφαρμ ογή σε λύσεις ασφάλειας δικτύων, όπου μ πορούν να χρησιμ οποιηθούν σαν σημ εία ελέγχου για την ls ps System calls ls ps UML System calls Host Kernel Hardware Σχήμ α 2.9 Σχέση virtual machine και host. Από το Σχήμ α φαίνεται πως το ρόλο του VMM πυρήνας του ξενιστή τον έχει ο ασφάλεια ενός δικτύου, ή σαν δόλωμ α (honeypot) προκειμ ένου ενδεχόμ ενες επιθέσεις σε αυτά να αποκαλύψουν αδυναμ ίες ασφάλειας του δικτύου. Άλλες χρήσεις μ πορούν να περιλαμ βάνουν εκπαιδευτικούς σκοπούς, καθώς ένα εικονικό μηχάνημ α παρέχει ένα περιβάλλον Linux, το οποίο όμ ως δεν μ πορεί να έχει πρόσβαση πέρα από τα όρια που θα του θέσει ο διαχειριστής του ξενιστή στο οποίο τρέχει το UML. Το UML μ πορεί επίσης να βρει εφαρμ ογή στο στήσιμ ο ενός εικονικού δικτύου που χρησιμ οποιεί πολλά εικονικά μηχανήματα χρησιμ οποιώντας ένα μ όνο υπολογιστή ( τον host), ή ο έλεγχος και η αποσφαλμάτωση (debugging) κώδικα του πυρήνα (kernel development), καθώς πλέον δεν υπάρχει φόβος καταστροφής ή βλάβης του υλικού (hardware) του μηχανήμ ατος που χρησιμοποιούμ ε, μ ια και χρησιμοποιούμ ε εικονικά μηχανήμ ατα για αυτή τη δουλειά.
20 2.6 gdb Για την αποσφαλμ άτωση του κώδικα χρησιμ οποιήθηκε το gdb, καθώς είναι ο μ ακροβιότερος αποσφαλμ ατωτής για Linux, και είναι απλός στη χρήση του.
21 Κεφάλαιο 3 User Mode Linux 3.1 Λειτουργία και έλεγχος του User Mode Linux Όλοι οι νεώτεροι του linux πυρήνες που είναι εγκατεστημ ένοι στον ξενιστή, υποστηρίζουν την λειτουργία του User Mode Linux χωρίς την ανάγκη τροποποιήσεων, ενώ η εκκίνηση ενός UML στιγμ ιότυπου (instance) γίνεται από το φλοιό (shell) μ ε τα κατάλληλα ορίσμ ατα. Απαραίτητα ορίσμ ατα είναι ο πυρήνας (guest kernel) του UML στιγμ ιότυπου, και ένα σύστημ α αρχείων (guest filesystem), που αποτελεί για τον UML πυρήνα το root device, ή αλλιώς το hardware του μηχανήμ ατος το οποίο ελέγχει. Επιπρόσθετα μπορούμ ε να δώσουμε σαν όρισμ α το ποσό της RAM μνήμ ης του ξενιστή που θα αναθέσουμ ε στο UML, όπως και μ ια συμ βολοσειρά (string) που ονομ άζεται unique machine id (umid), και χρησιμ οποιείται σαν όρισμ α για τον έλεγχο του UML στιγμ ιότυπου. Μια τυπική εντολή για την εκκίνηση ενός UML στιγμ ιότυπου είναι της μ ορφής: $./guest_kernel ubda=guest_filesystem umid=virtual_machine mem=128mb Το αποτέλεσμ α της παραπάνω εντολής θα είναι η εκκίνηση του στιγμ ιότυπου, και η εμφάνιση των boot μηνυμ άτων του UML πυρήνα στο τερμ ατικό, ενώ όταν ολοκληρωθεί το boot, θα πρέπει να κάνουμ ε login, στο στιγμ ιότυπο, όπως θα κάναμ ε σε ένα κανονικό μηχάνημ α Linux. Το όρισμ α ubda σημ αίνει UML block device driver, εδώ αναθέσαμ ε ένα μ όνο block device, για δεύτερο θα γράφαμ ε ubdb, κ. ο. κ. Επίσης, μ ετά την εκκίνηση ενός στιγμιότυπου δημ ιουργείται στο home directory του ξενιστή ένας φάκελος μ ε όνομ α ίδιο μ ε το όρισμ α του umid, το virtual_machine στην πιο πάνω περίπτωση, το οποίο περιέχει το socket μ ε το οποίο γίνεται η επικοινωνία μ εταξύ του ξενιστή συστήμ ατος και του πυρήνα του UML στιγμ ιότυπου, και ένα αρχείο που περιέχει το PID του UML στιγμ ιότυπου, κάτι που μπορούμ ε να το διαπιστώσουμ ε τρέχοντας την εντολή ps aux στον ξενιστή. Το όρισμ α mem=128mb κάνει το instance να νομ ίζει ότι διαθέτει 128 ΜΒ μνήμ ης, στη πράξη όμ ως δημ ιουργεί ένα sparce file στον ξενιστή. Ο έλεγχος, μ ετά την εκκίνηση, του UML στιγμ ιότυπου από τον ξενιστή γίνεται μ ε την χρήση των UML προγραμμ άτων (UML utilities, η εγκατάσταση τους γίνεται στον ξενιστή ), προγραμμ άτων που επιτρέπουν την επικοινωνία μ εταξύ του στιγμ ιότυπου και του ξενιστή, μ έσω ενός socket που βρίσκεται στο φάκελο ~/.uml/instance_umid. Τα UML προγράμματα που χρησιμοποιήσαμ ε στον κώδικα είναι τα uml_mconsole, uml_mkcow, και uml_switch. Μέσω του uml_mconsole μπορούμ ε να ελέγξουμ ε τα στιγμ ιότυπα. Η σύνταξη του, διαφέρει ανάλογα μ ε το όρισμ α που δίνουμ ε. Τα ορίσμ ατα που μ πορεί να πάρει η uml_mconsole εντολή και που θα χρησιμοποιήσουμ ε, είναι τα halt, config, remove, exec. halt : χρησιμ οποιείται για τον τερματισμ ό της λειτουργίας ενός ενεργού UML στιγμ ιότυπου, συντάσσεται : $ uml_mconsole instance_umid halt config : χρησιμ οποιείται για την ανάθεση συσκευών ethernet (ethernet devices) UML στιγμ ιότυπο, στη περίπτωση μ ας χρησιμοποιούμ ε τη παρακάτω σύνταξη : στο $ uml_mconsole instance_umid config eth0=daemon
22 remove : χρησιμ οποιείται για τη διαγραφή μ ιας συσκευής ethernet, ασχέτως αν της έχουμ ε αναθέσει ένα ΙΡ. $ uml_mconsole instance_umid remove eth1 exec : χρησιμ οποιείται για να εκτελούμ ε εντολές από τον ξενιστή, όπως πριν δηλαδή, και οι οποίες κανονικά θα έπρεπε να εκτελεστούν από ένα κέλυφος του UML στιγμ ιότυπου, αφότου κάνουμ ε login σε αυτό. Πρέπει να σημειώσουμ ε δυο πράγμ ατα : το ένα είναι ότι ο πηγαίος κώδικας (source code) του linux πυρήνα που αφορούν το UML, δεν υποστηρίζει το exec όρισμ α, κάτι που σημ αίνει ότι είναι απαραίτητο να προσθέσουμ ε εμ είς τον απαραίτητο κώδικα, και να τον κάνουμ ε build, προκειμ ένου να μπορούμ ε να χρησιμοποιούμ ε το όρισμ α αυτό ( δες παρακάτω). Το δεύτερο είναι πως το output μ ίας εντολής μ ε το exec, δεν τυπώνεται στο τερμ ατικό του ξενιστή, από το οποίο εξάλλου τρέχουμ ε την εντολή uml_mconsole, αλλά θα τυπωθεί το μήνυμ α "OK, the command has been started successfully", άσχετα αν η εντολή όντως είχε ή δεν είχε επιτυχή έκβαση. Το αποτέλεσμ α της εντολής θα εμ φανιστεί μ έσα στο UML στιγμ ιότυπο. Ο λόγος είναι πως, σύμ φωνα μ ε το δημ ιουργό του User Mode Linux, θα ήταν δύσκολο να έπαιρναν το output του μηνύμ ατος που θα παρήγαγε ο πυρήνας του στιγμ ιότυπου, και να το εμ φάνιζαν στον ξενιστή. Παρόλα αυτά, είναι δυνατό να ανακατευθύνουμ ε το output του πυρήνα του ξενιστή σε ένα αρχείο μ έσα στο στιγμ ιότυπο, και έτσι να μπορούμ ε να το διαβάσουμ ε. Η σύνταξη για κάτι τέτοιο θα ήταν : $uml_mconsole instance_umid exec whoami > /tmp/new_file. Η χρήση των χαρακτήρων κανονικά δεν είναι απαραίτητη, αλλά καθώς εμφανίστηκαν κατά καιρούς προβλήμ ατα μ ε τον κώδικα του exec ορίσμ ατος, όλες οι εντολές καλό είναι να εκτελούνται έτσι. Όλες οι εντολές στον κώδικα που αφορούν το exec, δεν χρησιμ οποιούν ανακατεύθυνση. Το uml_mkcow δημ ιουργεί ένα αρχείο, το οποίο χρησιμ οποιείται ώστε να μην μ εταβληθεί το filesystem που χρησιμοποιούμ ε. Αν χρησιμοποιούμ ε ένα cow file, όποιες αλλαγές θα κάνει στο filesystem ένα UML στιγμ ιότυπο, θα καταγραφούν στο cow file, και δεν θα αλλοιώσουν το filesystem. Το όφελος είναι ότι ένα filesystem μ πορεί να χρησιμοποιηθεί από πολλά UML στιγμ ιότυπα και παραμ ένει αναλλοίωτο. Το uml_switch χρησιμ οποιείται για τη δημ ιουργία ενός σημ είου ελέγχου/ επικοινωνίας για όλα τα UML στιγμ ιότυπα. Η σύνταξη του είναι της μ ορφής : uml_switch tap tap0. Αποτέλεσμ α είναι η δημ ιουργία μ ιας ακόμ α ethernet συσκευής στον ξενιστή, μ ε το όνομ α tap0. Με ανάθεση μ ιας IP διεύθυνσης σε αυτή την tap0 συσκευή ( χρησιμ οποιώντας την εντολή ifconfig στον ξενιστή) μπορούμ ε να έχουμ ε επικοινωνία μ εταξύ όλων των UML στιγμιότυπων που ανήκουν στο ίδιο subnet μ ε την ΙΡ διεύθυνση που αναθέσαμ ε στην tap0 συσκευή. Έχουμ ε δηλαδή ένα σημ είο ελέγχου για ορισμ ένα UML στιγμ ιότυπα, ενώ δεν υπάρχει περιορισμ ός στον αριθμ ό των tap συσκευών που μπορούμ ε να δημιουργήσουμ ε.
23 3.2 Προετοιμ ασία του ξενιστή και του guest kernel Όπως είπαμ ε, host system ονομάζουμ ε τον υπολογιστή στον οποίο τρέχουμ ε τα στιγμ ιότυπα (instances) του User Mode Linux, και στον ίδιο υπολογιστή έχουμ ε αποθηκεύσει τα απαραίτητα αρχεία για να το καταφέρουμ ε αυτό. Guest kernel και guest filesystem ονομάζουμ ε τα αρχεία που είναι απαραίτητα για την εκκίνηση ενός instance του User Mode Linux. Πιο συγκεκριμ ένα, τον πυρήνα ο οποίος αναλαμ βάνει να συντονίζει και να εκτελεί τις λειτουργίες στο UML στιγμ ιότυπο, όπως ακριβώς κάνει ο πυρήνας οποιουδήποτε λειτουργικού συστήμ ατος, και το filesystem το οποίο εξομ οιώνει το υλικό (hardware) το οποίο θα διαχειρίζεται ο guest πυρήνας. Για την επιτυχή εκτέλεση του UML daemon που έχουμ ε φτιάξει, είναι απαραίτητο να μπορούμ ε να εκκινούμ ε επιτυχώς ένα UML instance. Αυτό απαιτεί μ ια σειρά από βήμ ατα στο host[1][2]: Ε γκατάσταση πυρήνα μ ε skas patch στο host ( προαιρετικό) Το skas patch χρησιμ οποιείται για να τρέχουν πιο γρήγορα τα UML στιγμ ιότυπα στον ξενιστή, αν και δεν είναι απαραίτητο καθώς και χωρίς αυτό, είναι δυνατή η εκκίνηση τους. Όταν ένα UML δουλεύει σε skas3 mode, τότε όλες οι διεργασίες που συμβαίνουν στο στιγμ ιότυπο αυτό, εμ φανίζονται στον ξενιστή συγκεντρωμ ένες σε μ ια διεργασία μ όνο. Άρα, οι διεργασίες που αφορούν το UML θα εμ φανίζονται τρέχοντας τη διαταγή ps στον ξενιστή, και θα εμ φανίζεται μ όνο το pid του πυρήνα του UML, όπως και μια ακόμ α διεργασία που θα περικλείει όλες τις διεργασίες του UML στιγμ ιότυπου[2]. Το νεότερο skas patch βρίσκεται στη διεύθυνση : mode linux.sourceforge.net/skas patch Πρέπει να σημειώσουμ ε πως για τους νεότερους πυρήνες, για να κάνουμε εγκατάσταση του skas patch, πρέπει να κάνουμ ε τις αλλαγές στον πηγαίο κώδικα του πυρήνα, για τον οποίο έχει γραφτεί το skas patch. Οι απαιτούμ ενες αλλαγές βρίσκονται στο παραπάνω link. Για πυρήνες μ έχρι τον έχει γραφτεί ένα patch που κάνει αυτή τη διαδικασία. Στο link mode linux.org/~blaisorblade/patches/skas3 2.6/ βρίσκονται τα patches που πρέπει να εφαρμόσουμ ε στον πυρήνα που θα χρησιμ οποιεί ο ξενιστής. Για τον πυρήνα πχ , αντιγράφουμ ε τα αρχεία ( σαν root) linux tar.bz2 και skas v8.2.patch.bz2 στο /usr/src φάκελο. Τρέχουμ ε ακολούθως τις εντολές ( σαν root) : tar jxvf linux tar.bz2 mv skas v8.2.patch.bz2 linux / cd linux / bzcat skas v8.2.patch.bz2 patch p1 Θα πρέπει να εμ φανιστούν μηνύμ ατα όπως patching file arch/i386/kconfig patching file arch/i386/kernel/ldt.c
Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,
Εικονικοποίηση Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο, 2016-2017 Εικονικοποίηση - Σύνοψη Γενικά Οργάνωση VMM Τεχνικές Εικονικοποίησης Εικονικοποίηση Μνήμης Live Migration Εικονικοποίηση - Σύνοψη Γενικά Οργάνωση
Εικονικοποίηση. Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο,
Εικονικοποίηση Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Εικονικοποίηση - Σύνοψη Γενικά Οργάνωση VMM Τεχνικές Εικονικοποίησης Εικονικοποίηση Μνήμης Live Migration Παραδείγματα συστημάτων
Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1
Κεφάλαιο 4 Λογισμικό συστήματος Καραμαούνας Πολύκαρπος 1 4.1 Λογισμικό συστήματος (application software) Καραμαούνας Πολύκαρπος 2 Λογισμικό εφαρμογών (application software): προγράμματα για την αντιμετώπιση
Εισαγωγή στην Πληροφορική
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Κρυπτογραφική συσκευή VirtIO για QEMU-KVM
Κρυπτογραφική συσκευή VirtIO για QEMU-KVM Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Μάιος 2017 Βασικό Πλαίσιο Node A Δικτυακή διεργασία (πχ chat)
Κεφάλαιο 4: Λογισμικό Συστήματος
Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος
Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:
Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση: Page 1 Χρήστης Εφαρμογή Λειτουργικό Σύστημα Υλικό Γνωστά Λειτουργικά
Το λειτουργικό σύστημα. Προγραμματισμός II 1
Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί
Αρχιτεκτονική Υπολογιστών
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Λιβανός Γιώργος Εξάμηνο 2017Β
Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!
Λειτουργικά Συστήματα 1.1 Τι είναι Λειτουργικό Σύστημα (Operating System)
Υλικό Hardware Λογισμικό Software... κώδικας ΥΛΙΚΟ Κάθε ηλεκτρονικό, ηλεκτρικό και μηχανικό μέρος του Η/Υ. ΛΟΓΙΣΜΙΚΟ Προγράμματα,δηλαδή οδηγίες γιατοτιπρέπεινακάνειοη/υ. Λειτουργικό Σύστημα Είναι ένα βασικό
Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία
Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ ΔΟΜΗ ΤΟΥ Η/Υ (PC compatibles) RAM CPU PCI Bridge PCI Bridges P2P Bridge RAM CPU PCI Bridge PCI2ISA Bridge Δομή της CPU Register file IP CPU TLB Level-1 cache RAM SP MMU
Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19
Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών 3.1.1 Λογισμικό και Υπολογιστικό Σύστημα Τι είναι το υλικό ενός υπολογιστικού συστήματος; Το σύνολο των ηλεκτρονικών και μηχανικών μερών του που έχουν
Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική
Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Επικοινωνία με περιφερειακά Αρτηρία εισόδου-εξόδου, διευθύνσεις, εγγραφές αναγνώσεις Διαδικασία εξόδου έλεγχος κατάστασης περιφερειακού περίμενε
Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος
Κεφάλαιο 3.1: Λειτουργικά Συστήματα 1 3.1.1 Λογισμικό και Υπολογιστικό Σύστημα Ένα σύγχρονο υπολογιστικό σύστημα αποτελείται από: το υλικό: τα ηλεκτρονικά μέρη του υπολογιστή και το λογισμικό: το σύνολο
Αρχιτεκτονική Υπολογιστών
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Εισαγωγή στην Πληροφορική
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην Πληροφορική Αστροφυσικός Αναπλ. Καθηγητής ΕΜΠ romylos@survey.ntua.gr Λειτουργικά συστήµατα, διεργασίες και δροµολόγηση Σύνδεση
Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι
Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού
Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας
Τ.Ε.Ι ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ & ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΟΙΚΗΣΗΣ Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας Πτυχιακή εργασία του φοιτητή Γιαννακίδη Αποστόλη Επιβλέπων καθηγητής Τσούλος
Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα
Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 1: Βασικές Έννοιες Λειτουργικών Συστημάτων
Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ
Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ http://leitourgika-systhmata-epal-b.ggia.info/ Σύγχρονο Λειτουργικό Σύστημα - ΛΣ Λειτουργικό Σύστημα:
Λειτουργικά Συστήματα (Λ/Σ)
Λειτουργικά Συστήματα (Λ/Σ) Δομή Λειτουργικών Συστημάτων Βασίλης Σακκάς 20/11/2013 1 Δομή ενός Λ/Σ -1 Μονολιθικά συστήματα (monolithic systems) Λειτουργικά συστήματα με ανυπαρξία δομής: "η μεγάλη ακαταστασία"
Κεφάλαιο 4. Λογισμικό Συστήματος
Κεφάλαιο 4 Λογισμικό Συστήματος 4.1 Λογισμικό συστήματος Λογισμικό εφαρμογών (application software):προγράμματα για την αντιμετώπιση εξειδικευμένων προβλημάτων π.χ. επεξεργασία κειμένου, μισθοδοσία κλπ.
Διαφορές single-processor αρχιτεκτονικών και SoCs
13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό
Μάθημα 1 ο ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Μάθημα 1 ο ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Τι είναι Λειτουργικό Σύστημα Κάθε Η/Υ αποτελείται από το Υλικό (Hardware) και το Λογισμικό (Software). Το Υλικό είναι το ηλεκτρικό, ηλεκτρονικό και
Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Μάθημα 10 ο ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (INPUT/OUTPUT)
Μάθημα 10 ο ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (INPUT/OUTPUT) Τι είναι Είσοδος και τι Έξοδος Με τον όρο Είσοδο (Input) αναφερόμαστε στη ροή δεδομένων προς την Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ), ενώ με τον όρο
ΛΟΓΙΣΜΙΚΟ (software)
ΛΟΓΙΣΜΙΚΟ (software) Το Λογισµικό του Ηλεκτρονικού Υπολογιστή Περιεχόµενα Ορισµός Λογισµικού Κατηγορίες Λογισµικό Συστήµατος Λογισµικό Εφαρµογών Το λογισµικό είναι: Το λογισµικό Το σύνολο των προγραµµάτων
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διάλεξη 1 ΕΙΣΑΓΩΓΗ Οι διαφάνειες έχουν καθαρά επικουρικό χαρακτήρα στην παρουσίαση των διαλέξεων του μαθήματος. Δεν αντικαθιστούν σε καμία περίπτωση την παρακάτω βιβλιογραφία που
1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
12 Σχεδιασμός Ανάπτυξη Λειτουργία Π.Σ. 1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 1.1 Δυνατότητες Λειτουργικών Συστημάτων 1.1.1 Εισαγωγή Ο όρος Λειτουργικό Σύστημα (Operating System), εκφράζει το σύνολο των προγραμμάτων
Προγραµµατισµός 2 The shell
Προγραµµατισµός 2 The shell 1 CLI vs GUI! CLI (Command Line Interface) Μεγαλύτερη ευελιξία και ταχύτητα Πιο εύκολο να γίνουν πολύπλοκες λειτουργίες. find. -mtime -2 -name '*.txt' -exec sed -i.bak 's/hi/bye/g'
Κεφάλαιο 3 Λειτουργικά Συστήματα Β ΕΠΑΛ
Κεφάλαιο 3 Λειτουργικά Συστήματα Β ΕΠΑΛ ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (INPUT/OUTPUT) Τι είναι Είσοδος και τι Έξοδος Με τον όρο Είσοδο (Input) αναφερόμαστε στη ροή δεδομένων προς την Κεντρική Μονάδα Επεξεργασίας
12/5/18. συστημάτων. Το λογισµικό συστηµάτων. Κεφάλαιο 5
A. EVANS, K. MARTIN, M. A. POATSY Εισαγωγή στην πληροφορική Θεωρία και πράξη 2 η έκδοση Κεφάλαιο 5 Λογισμικό συστημάτων: Το λειτουργικό σύστημα, τα βοηθητικά προγράμματα και η διαχείριση αρχείων Τα βασικά
Λειτουργικά Συστήματα (Λ/Σ)
Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων
Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ρχιτεκτονική Υπολογιστών 2016-17 Εικονική Μνήμη (και ο ρόλος της στην ιεραρχία μνήμης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Δευτερεύουσα μνήμη
Server Virtualization με εργαλεία ΕΛ/ΛΑΚ. ΛΑΚ Δήμος Ρεθύμνης. www.rethymno.gr
Server Virtualization με εργαλεία ΕΛ/ΛΑΚ ΛΑΚ Μαθηνός Παναγιώτης Λ. Κουντουριώτη 80, τ.κ. 74100, Ρέθυμνο Τηλ: 28313 41310 e mail: mathinos@rethymno.gr www.linkedin.com/in/pmathinos Πληροφορική Μηχανοργάνωση
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2011-12 Εικονική (και ο ρόλος της στην ιεραρχία μνήμης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Ιεραρχία η νέα τάση: [2011]
Πληροφορική I. "Λογισμικό (Software)" B. Φερεντίνος
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Λογισμικό (Software)" B. Φερεντίνος
Λειτουργικά Συστήματα. Εισαγωγή
Λειτουργικά Συστήματα Εισαγωγή Λειτουργικά Συστήματα Ι 4/10/2016 Περιληπτικά Στο σημερινό μάθημα θα δούμε ποια είναι η θέση του Λειτουργικού Συστήματος στην οργάνωση ενός ηλεκτρονικού υπολογιστή. Σπύρος
Εικονική Μνήμη (1/2)
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Εικονική Μνήμη (1/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Εικονική Μνήμη
Λειτουργικά Συστήματα Ι. Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων
Λειτουργικά Συστήματα Ι Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων Δομή Η/Υ Ο Η/Υ αποτελείται από δυο βασικά στοιχεία: Υλικό (το ηλεκτρονικό-μηχανικό μέρος πχ συσκευές, πλακέτες κλπ) Λογισμικό
Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Εργαστήριο
ΚΕΦΑΛΑΙΟ 2 - ΛΟΓΙΣΜΙΚΟ
ΚΕΦΑΛΑΙΟ 2 - ΛΟΓΙΣΜΙΚΟ ΕΡΩΤΗΣΗ 1: Σε ποιες μεγάλες κατηγορίες μπορούμε να χωρίσουμε το Λογισμικό. Μπορούμε να χωρίσουμε το Λογισμικό στις παρακάτω μεγάλες κατηγορίες: στο Λογισμικό Συστήματος (System Software),
Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2018-19 Λειτουργικό Σύστημα: διαχείριση πόρων Εισαγωγή Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Επικοινωνία με χρήστη
ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 5
ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 5 22 Σεπτεµβρίου, 2006 Γεώργιος Έλληνας Επίκουρος Καθηγητής ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΑ ΘΕΜΑΤΑ
Το λειτουργικό σύστημα. Προγραμματισμός II 1
Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί
Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Λειτουργικό Σύστημα:
Εικονική Μνήμη (Virtual Μemory)
ΗΥ 431 Αρχιτεκτονική Παραλλήλων Συστημάτων Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1
ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΩΤΑΠΑΝΤΗΣΕΙΣ
Κεφάλαιο 1: Υλικό Υπολογιστών (Hardware) 1.1: Το υπολογιστικό σύστημα ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 1. Τι αντιλαμβάνεστε με τον όρο υλικό (hardware); [σελ. 8] Τα φυσικά μέρη που μπορούμε να δούμε και να αγγίξουμε
Το λειτουργικό σύστημα. Προγραμματισμός II 1
Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή περιορισμένοι υπολογιστικοί / αποθηκευτικοί πόροι δεν τίθεται θέμα
Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview
Εργαστήριο Λειτουργικών Συστημάτων Minix Overview Σύνοψη 5ης ιάλεξης Λειτουργικό Σύστημα Minix Οργάνωση του Λειτουργικού Συστήματος Οργάνωση πηγαίου κώδικα Minix recompilation Σύνοψη Μαθήματος Σύνοψη Μαθήματος
Εισαγωγή στα Λειτουργικά συστήματα Ι. Καθηγητής Κώστας Αναγνωστόπουλος
Εισαγωγή στα Λειτουργικά συστήματα Ι Καθηγητής Κώστας Αναγνωστόπουλος Τι είναι Λειτουργικό Σύστημα Ένα πρόγραμμα ή συλλογή προγραμμάτων που ελέγχει και διαχειρίζεται το υλικό μιας υπολογιστικής μηχανής
ver Επεξεργαστές κειμένου, λογιστικών φύλλων, παρουσιάσεων Οδηγοί συσκευών (Device Drivers)
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Ορισμοί Πληροφορική I Πρόγραμμα: ένα σύνολο
1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»
1. Εισαγωγή Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 3 «Διεργασίες» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας Η έννοια της διεργασίας (process) είναι θεμελιώδης για την κατανόηση του τρόπου με τον οποίο
Πληροφορική 2. Λειτουργικά Συστήματα
Πληροφορική 2 Λειτουργικά Συστήματα 1 2 Λογισμικό Υπολογιστών Υπολογιστής Υλικό Λογισμικό Λειτουργικό Σύστημα Προγράμματα Εφαρμογών 3 Λειτουργικό Σύστημα (Operating System) Λειτουργικό Σύστημα (ΛΣ) είναι
2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ
2. Σκοποί και Λειτουργίες των ΛΣ Λειτουργικά Συστήματα Η/Υ I. Προστασία του υλικού II. Επικοινωνία με τον χρήστη III. Διαχείριση, αξιοποίηση και έλεγχος πόρων IV. Ικανότητα και ευκολία εξέλιξης Κεφάλαιο
Job Analysis & Job Match Report
Job Analysis & Job Match Report Based on Psychometric Tests and Standards Job Description: (Job_ID ) Monday 31st of January 2011 08:39:49 PM Supported by: Εισαγωγή Το σύστημ α HR Mentor ARISTON έχει δημ
Οργάνωση Υπολογιστών (IΙI)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό
Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικό Σύστημα: διαχείριση πόρων Εισαγωγή Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Επικοινωνία με χρήστη
Γεωγραφικά Συστήµατα Πληροφοριών και Αρχές Τηλεπισκόπησης
Γεωγραφικά Συστήµατα Πληροφοριών και Αρχές Τηλεπισκόπησης Ενότητα: Λειτουργικά Συστήµατα, Συστήµατα Batch και Time Sharing Γεώργιος Σκιάνης Γεωλογίας και Γεωπεριβάλλοντος Σελίδα 2 1. Περιεχόµενα ενότητας...
Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης
Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης Αναστάσιος Α. Νάνος ananos@cslab.ntua.gr Επιβλέπων: Νεκτάριος
Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα
Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 4: Διεργασίες Πρόγραμμα Πρόγραμμα 1 Πρόγραμμα
Κεφάλαιο 3. Διδακτικοί Στόχοι
Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,
Μάθημα 3: Αρχιτεκτονική Υπολογιστών
Μάθημα 3: Αρχιτεκτονική Υπολογιστών 3.1 Περιφερειακές μονάδες και τμήμα επεξεργασίας Στην καθημερινή μας ζωή ερχόμαστε συνέχεια σε επαφή με υπολογιστές. Ο υπολογιστής είναι μια συσκευή που επεξεργάζεται
ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα
ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα 3.1 Η εξέλιξη των λειτουργικών συστηµάτων 3.2 Αρχιτεκτονική λειτουργικών συστηµάτων 3.3 Συντονισµός των δραστηριοτήτων του υπολογιστή 3.4 Χειρισµός ανταγωνισµού µεταξύ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΟΝΑΔΑ ΑΡΙΣΤΕΙΑΣ ΕΛ/ΛΑΚ
ΕΓΚΑΤΑΣΤΑΣΗ ΕΙΚΟΝΙΚΗΣ ΜΗΧΑΝΗΣ Το VirtualBox είναι μια εφαρμογή εικονικοποίησης (virtualization) που επιτρέπει την εγκατάσταση και την ταυτόχρονη λειτουργία ενός ή περισσότερων λειτουργικών συστημάτων στο
ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 9
ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 9 3 Οκτωβρίου, 2004 Ηλίας Κυριακίδης Λέκτορας ΤΑ ΘΕΜΑΤΑ ΜΑΣ ΣΗΜΕΡΑ Ηλεκτρονικοί υπολογιστές Υλικό και λογισµικό Κεντρική Μονάδα Επεξεργασίας Μνήµη Προγραµµατισµός
Κεφάλαιο 2: Λογισμικό (Software) Εφαρμογές Πληροφορικής Κεφ. 2 Καραμαούνας Πολύκαρπος
Κεφάλαιο 2: Λογισμικό (Software) 1 2.1 Λογισμικό Συστήματος και Λογισμικό Εφαρμογών Λογισμικό Συστήματος: διαχειρίζεται το υλικό του υπολογιστή και αποτελεί τη βάση πάνω στην οποία αναπτύσσεται και εκτελείται
Ένα πλαίσιο για την ανάλυση του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL.
Πανεπιστήμ ιο Πειραιά Τμήμ α Πληροφορικής Ένα πλαίσιο για την ανάλυση του φόρτου εργασίας του SQL optimizer στο Σύστημ α Δ ιαχείρισης Βάσεων Δεδομ ένων MySQL Πτυχιακή Εργασία του Ιωάννη ( ΑΜ: Π 01053)
Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»
Σκοπός Μαθήματος Λειτουργικά Συστήματα Η/Υ Θεωρία: Βασικές έννοιες των λειτουργικών συστημάτων Βασικές αρχές σχεδιασμού τους Κεφάλαιο 1 «Εισαγωγή» Εργαστήριο: Πρακτική εξάσκηση στη χρήση των λειτουργικών
Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες
Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες Σύνταξη εντολών Περιεχόµενα Οργάνωση και χειρισµός αρχείων Μπαλαντέρ ικαιώµατα χρήσης αρχείων και οµάδες χρηστών Έλεγχος διεργασιών Σύνταξη εντολών
Λειτουργικά συστήµατα. Λογισμικό Συστήματος 1
Λειτουργικά συστήµατα Λογισμικό Συστήματος 1 Figure 3.1 Batch processing 0-2 Λογισμικό Συστήματος Figure 3.2 Interactive processing 0-3 Λογισμικό Συστήματος Figure 3.3 Software classification 0-4 Λογισμικό
Εισαγωγή στην Πληροφορική
Εισαγωγή στην Πληροφορική Λογισμικό Συστήματος & Εφαρμογών ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Γενική Δομή Υπολογιστών Λειτουργικό σύστημα Υπολογιστής
Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Εργαστήριο
Χρονοδρομολογητής Κυκλικής Επαναφοράς
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 4 η Εργαστηριακή Άσκηση: Χρονοδρομολογητής Κυκλικής Επαναφοράς Λειτουργικά Συστήματα Υπολογιστών
Βασικές Έννοιες της Πληροφορικής
Βασικές Έννοιες της Πληροφορικής Ηλεκτρονικός Υπολογιστής Αυτόματη ηλεκτρονική μηχανή που δέχεται, φυλάσσει, επαναφέρει, επεξεργάζεται και παρουσιάζει πληροφορίες σύμφωνα με προκαθορισμένες εντολές. Δεδομένα
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές
ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ
Άριστος Πασιάς 1 ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ Η ΔΟΜΗ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Άριστος Πασιάς Σεπτέμβριος 2017 2 Στόχοι: Στο τέλος αυτού του μαθήματος ο μαθητή πρέπει: Να μπορεί να αναφέρει τα κύρια χαρακτηριστικά
Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό
ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)
ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) Συσκευές αποθήκευσης Ένας υπολογιστής προκειµένου να αποθηκεύσει δεδοµένα χρησιµοποιεί δύο τρόπους αποθήκευσης: Την Κύρια Μνήµη Τις συσκευές µόνιµης αποθήκευσης (δευτερεύουσα
Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor
Προηγμένοι Μικροεπεξεργαστές Εργαστήριο 4 - Editor Περιγραφή Υλοποίηση ενός υποτυπώδους editor που θα: Διαβάζει ένα προκαθορισμένο αρχείο Θα το απεικονίζει στην οθόνη Θα κάνει highlight με έναν ελεγχόμενο
ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 9
ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 9 3 Οκτωβρίου, 2004 Ηλίας Κυριακίδης Λέκτορας ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ 2005Ηλίας Κυριακίδης,
Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux
1 Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux Το Linux είναι ένα λειτουργικό σύστημα όμοιο με το Unix που αναπτύχθηκε από έναν πυρήνα (kernel, Εικ.1) τον οποίο δημιούργησε το 1991 ο Linus Torvalds όντας
Αρχιτεκτονική υπολογιστών
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 11-12 : Δομή και Λειτουργία της CPU Ευάγγελος Καρβούνης Παρασκευή, 22/01/2016 2 Οργάνωση της CPU Η CPU πρέπει:
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα
Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών
Βιβλιογραφία: Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών Προγραμματισμός Android Ian Clifton. AndroidTM User Interface Design, Addison-Wesley, 2013 P. Deitel. H. Deitel, A. Deitel.
Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων
Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 Απόδοση των οδηγών αποθηκευτικών µέσων Μέσος χρόνος πρόσβασης (Average Access Time) Ταχύτητα µεταφοράς δεδοµένων (Data-Transfer
ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ. Τεχνολογίες Υπολογιστικού Νέφους
ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Τεχνολογίες Υπολογιστικού Νέφους ΔΙΑΛΕΞΗ 5: ΕΙΚΟΝΟΠΟΙΗΣΗ ΠΌΡΩΝ ΒΑΣΙΛΕΙΟΣ Δ. ΤΣΑΚΑΝΙΚΑΣ Revision 12/2017: ΚΩΝ. ΠΑΞΙΜΑΔΗΣ Σκοπός της Ενότητας Σε αυτή την
ΚΑΡΑΜΟΛΕΓΚΟΣ Α. Ε. Διαγωνισμ ος «Cook λοι»
ΟΡΟΙ ΣΥΜΜΕΤΟΧΗΣ ΑΡΤΟΒΙΟΜΗΧΑΝΙΑ ΚΑΡΑΜΟΛΕΓΚΟΣ Α. Ε. Διαγωνισμ ος «Cook λοι» 1. Η εταιρεια Αρτοβιομ ηχανια Καραμ ολεγκος Α. Ε. ( εφεξης καλουμ ενη Δ ιοργανωτης/ Δ ιοργανωτρια ), διοργανωνει ηλεκτρονικα μ
Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap
Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...
Σχεδιασµός βασισµένος σε συνιστώσες
Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι
Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών
Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)
Αρχιτεκτονική Μνήµης
ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Αρχιτεκτονική Μνήµης Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapters 3 & 4 Lapsley [2002]: Chapter
Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα
Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 3: Είσοδος - Έξοδος Τα περισσότερα συστήματα
ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ. Τεχνολογίες Υπολογιστικού Νέφους
ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Τεχνολογίες Υπολογιστικού Νέφους ΔΙΑΛΕΞΗ 5: ΕΙΚΟΝΟΠΟΊΗΣΗ ΠΌΡΩΝ ΒΑΣΙΛΕΙΟΣ Δ. ΤΣΑΚΑΝΙΚΑΣ Σκοπός της Ενότητας Σε αυτή την ενότητα περιγράφεται η εικονοποίηση
ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε
Οδηγίες Εγκατάστασης της MySQL
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΣΕ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Οδηγίες Εγκατάστασης της MySQL Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Νοέμβριος 2007 Περιεχόμενα Περιεχόμενα...