Εργαστήριο Λειτουργικών Συστήματων 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Εργαστήριο Λειτουργικών Συστήματων 7ο εξάμηνο, Ακαδημαϊκή περίοδος"

Transcript

1 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Εργαστήριο Λειτουργικών Συστήματων 7ο εξάμηνο, Ακαδημαϊκή περίοδος Οδηγός προγραμματισμού σε περιβάλλον QEMU-KVM Εργαστήριο Υπολογιστικών Συστημάτων Ε.Μ.Π. Οκτώβριος 2018

2 Περιεχόμενα 1 Εισαγωγή Χώρος πυρήνα και χώρος χρήστη 3 2 Virtualization (Εικονικοποίηση) 4 3 Προετοιμασία host μηχανήματος Έλεγχος για CPU virtualization extensions Φόρτωση KVM modules Εγκατάσταση του QEMU Χρήση του QEMU - εικονική μηχανή ανάπτυξης 10 5 (Προαιρετικά) Μεταγλώττιση πυρήνα για το VM 13 6 Συχνές ερωτήσεις 16 7 (Προαιρετικά) Μία κλήση συστήματος Hello, World! στο Linux 17 8 Περισσότερες πληροφορίες 20 Επιμέλεια: Δ. Σιακαβάρας, Β. Καρακάσης, Γ. Κουβέλη, Ευ. Κούκης 2

3 1 Εισαγωγή Χώρος πυρήνα και χώρος χρήστη 1. Εισαγωγή Χώρος πυρήνα και χώρος χρήστη Το Linux είναι ένα σύγχρονο λειτουργικό σύστημα που ακολουθεί την παράδοση Το Linux είναι ένα σύγχρονο λειτουργικό σύστημα που ακολουθεί την παράδοση του του Unix. Υποστηρίζει πολλούς ταυτόχρονους χρήστες (είναι δηλαδή multi-user) Unix. Υποστηρίζει πολλούς ταυτόχρονους χρήστες (είναι δηλαδή multi-user) και και πολλές ταυτόχρονες διεργασίες (είναι multi-tasking), οι οποίες μοιράζονται το πολλές ταυτόχρονες διεργασίες (είναι multi-tasking), οι οποίες μοιράζονται το χρόνο χρόνο της CPU. Η οργάνωση του λογισμικού ενός υπολογιστικού συστήματος όταν της CPU. Η οργάνωση του λογισμικού ενός υπολογιστικού συστήματος όταν χρησιμοποιείται το Linux παρουσιάζεται στο παρακάτω σχήμα. χρησιμοποιείται το Linux παρουσιάζεται στο παρακάτω σχήμα.,)-".%/0% 1,)-".%/0% 2 userspace kernelspace system calls!"#$%& Linux '()*+ Σχήμα 1: Οργάνωση σε χώρους πυρήνα και χρήστη Σχήμα 1: Οργάνωση σε χώρους πυρήνα και χρήστη Εφόσον πολλές διαφορετικές διεργασίες πολλών διαφορετικών χρηστών εκτελούνται Εφόσον πολλές στο ίδιο διαφορετικές υπολογιστικό σύστημα, διεργασίες είναι ανάγκη πολλών να υπάρχουν διαφορετικών συγκεκριμένοι μηχανισμοί χρηστών εκτελού- απομόνωσης και ελέγχου πρόσβασης, έτσι ώστε διεργασίες που ανήκουν σε κάποιον νται στο ίδιο υπολογιστικό σύστημα, είναι ανάγκη να υπάρχουν συγκεκριμένοι μηχανισμοί απομόνωσης και ελέγχου πρόσβασης, ώστε διεργασίες που ανήκουν σε χρήστη να μην έχουν πρόσβαση σε δεδομένα άλλων χρηστών, μία διεργασία που δυσλειτουργεί να μην επηρεάζει τη λειτουργία των υπολοίπων αλλά και να κάποιον χρήστη να μην έχουν πρόσβαση σε δεδομένα άλλων χρηστών, μία διεργασία που δυσλειτουργεί να μην επηρεάζει τη λειτουργία των υπολοίπων αλλά και να εξασφαλίζεται η δίκαιη κατανομή των πόρων του συστήματος ανάμεσα στις διεργασίες (χρόνος CPU, μνήμη, πρόσβαση σε συσκευές Ι/Ο). εξασφαλίζεται η δίκαιη κατανομή των πόρων του συστήματος ανάμεσα στις διεργασίες (χρόνος Για να CPU, ικανοποιηθούν μνήμη, πρόσβαση οι παραπάνω σε περιορισμοί, συσκευές κάθε Ι/Ο). διεργασία εκτελείται απομονωμένη από τις υπόλοιπες, στον δικό της εικονικό χώρο διευθύνσεων αλλά και Για να ικανοποιηθούν οι παραπάνω περιορισμοί, κάθε διεργασία εκτελείται απομονωμένη από τις υπόλοιπες, στον δικό της εικονικό χώρο διευθύνσεων αλλά και απομονωμένη από το hardware (δεν επιτρέπεται η εκτέλεση εντολών I/O). Για να μπορέσει να χρησιμοποιήσει τους πόρους του υπολογιστικού συστήματος, απομονωμένη από το hardware (δεν επιτρέπεται η εκτέλεση εντολών I/O). Για να χρησιμοποιεί τις υπηρεσίες του πυρήνα του Linux μέσα από τον μηχανισμό των μπορέσει να χρησιμοποιήσει τους πόρους του υπολογιστικού συστήματος, χρησιμοποιεί τιςγια υπηρεσίες κλήσεων συστήματος. Ο πυρήνας είναι το μόνο πρόγραμμα που έχει τη δυνατότητα απευθείας προσπέλαση του πυρήνα στο του υλικό. Linux Ελέγχει μέσα κάθε από κλήση τονσυστήματος μηχανισμό και των αν κλήσεων συστήματος. επιτρέπεται Ο πυρήνας η πρόσβαση είναιστη τοσυγκεκριμένη μόνο πρόγραμμα διεργασία, που ικανοποιεί έχει τη το δυνατότητα αίτημά της και για απευθείας προσπέλαση επιστρέφει τα στο αποτελέσματα. υλικό. Ελέγχει κάθε κλήση συστήματος και αν επιτρέπεται η πρόσβαση στη συγκεκριμένη διεργασία, ικανοποιεί το αίτημά της και επιστρέφει τα αποτελέσματα Είναι φανερή λοιπόν η διάκριση ανάμεσα στο χώρο πυρήνα (kernelspace) και το χώρο χρήση (userspace). Ο κώδικας των διεργασιών, που εκτελείται στο userspace, δεν επιτρέπεται να προσπελάσει απευθείας το υλικό και δεν έχει πρόσβαση στο χώρο μνήμης άλλων διεργασιών. Αντίθετα, ο κώδικας του πυρήνα, που εκτελείται στο kernelspace έχει ελεύθερη πρόσβαση στο υλικό και στη μνήμη του συστήματος. 3

4 Επιπλέον, πιθανή δυσλειτουργία του μπορεί να αποβεί μοιραία για τη λειτουργία του υπολογιστικού συστήματος. 2 Virtualization (Εικονικοποίηση) Στις ασκήσεις του Εργαστηρίου Λειτουργικών Συστημάτων σας ζητείται η τροποποίηση του πυρήνα του Linux, ώστε να προστεθούν νέες λειτουργίες (κλήση συστήματος, υποστήριξη συσκευών). Παρόλο που για την διαδικασία ανάπτυξης (τροποποίηση κώδικα, μεταγλώττιση) δεν χρειάζονται αυξημένα δικαιώματα, μόνο ο διαχειριστής του συστήματος (χρήστης root) έχει το δικαίωμα τόσο να εγκαταστήσει ένα νέο πυρήνα όσο και να εισαγάγει κάποιο kernel module στον πυρήνα που ήδη τρέχει. Ο λόγος πίσω από αυτό τον περιορισμό είναι λίγο-πολύ προφανής: ο,τιδήποτε τρέχει στον χώρο πυρήνα, μπορεί να κάνει τα πάντα σε ένα σύστημα. Επομένως, εάν όλοι οι χρήστες είχαν αυτό το δικαίωμα, τότε η ασφάλεια και η σταθερότητα του συστήματος θα είχαν καταστρατηγηθεί. Ακόμη όμως και αν κανείς είναι ο διαχειριστής ενός συστήματος, δεν είναι σοφή ιδέα να δοκιμάζει τις αλλαγές που έκανε στον πυρήνα απευθείας σε ένα μηχάνημα, ειδικά εάν αυτό το χρησιμοποιούν και άλλοι χρήστες, γιατί και με αυτό τον τρόπο διακυβεύεται η ασφάλεια και η σταθερότητα του συστήματος. Η λύση στα παραπάνω ζητήματα που αφορούν στον προγραμματισμό του πυρήνα του Linux, είναι η χρήση εικονικοποίησης, η οποία αναλύεται στην συνέχεια. Με τον όρο εικονικοποίηση (virtualization), αναφερόμαστε συνήθως σε με μεθόδους και τεχνικές για τη δημιουργία «εικονικών» αντικειμένων, αντίστοιχων των «φυσικών», τα οποία μπορούν να χρησιμοποιηθούν με ισοδύναμο τρόπο. Στην περίπτωσή μας αναφερόμαστε σε εικονικοποίηση υλικού (full virtualization), όπου ο τελικός στόχος είναι η κατασκευή ολόκληρων εικονικών μηχανών (virtual machines): προσομοιώνουμε τη λειτουργία ενός ολόκληρου υπολογιστικού συστήματος σε λογισμικό. Μέσα στην εικονική μηχανή που προκύπτει, ο χρήστης μπορεί να τρέχει το Λειτουργικό Σύστημα και εφαρμογές με τον ίδιο ακριβώς τρόπο όπως και στο πραγματικό μηχάνημα. Τα πλεονεκτήματα είναι πολλά, ανάμεσα στα άλλα: (i) ευελιξία ταυτόχρονη εκτέλεση πολλών διαφορετικών ΛΣ στο ίδιο φυσικό σύστημα, (ii) φορητότητα προγράμματα εκτελούνται σε σε διαφορετικό υλικό από αυτό για το ποίο έχουν γραφτεί/μεταγλωττιστεί, (iii) ασφάλεια κάθε εικονική μηχανή εκτελείται απομονωμένα από όλες τις υπόλοιπες και από το φυσικό υλικό, (iv) αποδοτικότερη χρήση των φυσικών πόρων μεγάλο πλήθος εικονικών μηχανών μπορεί να μοιράζεται περιορισμένους φυσικούς πόρους, (v) βελτιωμένη αξιοπιστία η εικονική μηχανή μπορεί να μεταφερθεί σε διαφορετικό φυσικό σύστημα, ώστε να συνεχίσει τη λειτουργία χωρίς διακοπή, ξεπερνώντας προβλήματα του υλικού, π.χ. μια επερχόμενη διακοπή ρεύματος. 4

5 Η προσομοίωση της λειτουργίας ενός υπολογιστικού συστήματος εξ ολοκλήρου σε λογισμικό είναι μια υπολογιστικά απαιτητική διαδικασία. Η ανάγκη για μετάφραση από το σύνολο εντολών της εικονικής μηχανής ( guest ) στο σύνολο εντολών του φυσικούς μηχανήματος ( host ) εισάγει σημαντική επιβάρυνση στην ταχύτητα εκτέλεσης της εικονικής μηχανής. Για το λόγο αυτό, συνήθως δεν γίνεται μετάφραση κάθε εντολής, αλλά η εικονική μηχανή εκτελείται σε φυσικό σύστημα με το ίδιο σύνολο εντολών. Έτσι, τα πράγματα απλοποιούνται σημαντικά: το λογισμικό δεν χρειάζεται να μεταφράζει κάθε εντολή, αλλά χρειάζεται να παρεμβαίνει για να συντηρήσει την ψευδαίσθηση μόνο όταν η εικονική μηχανή χρειάζεται να εκτελέσει μια προνομιούχο εντολή. Επιπλέον, η αυξημένη ζήτηση για αποδοτική εκτέλεση εικονικών μηχανών, οδήγησαν στην ανάπτυξη ειδικών επεκτάσεων υλικού (π.χ. ειδικές εντολές στο σύνολο εντολών των σύγχρονων επεξεργαστών), έτσι ώστε το υλικό να υποστηρίζει αποδοτικότερα λειτουργίες εικονικοποίησης. Οι νεότεροι επεξεργαστές x86, τόσο από την AMD όσο και από την Intel, διαθέτουν τέτοιες επεκτάσεις, επιτρέποντας την εκτέλεση εικονικών μηχανών με απόδοση που προσεγγίζει αυτή του πραγματικού μηχανήματος. Παραδείγματα λογισμικού virtualization αποτελούν τα VMWare ESXi, Microsoft Hyper-V, Oracle VM VirtualBox, Xen και QEMU. Στο εργαστήριο θα χρησιμοποιήσουμε για τη δημιουργία εικονικών μηχανών το QEMU-KVM, δηλαδή το λογισμικό QEMU σε συνδυασμό με το υποσύστημα KVM του πυρήνα του Linux. Το KVM (Kernel-based Virtual Machine) είναι ένα υποσύστημα εικονικοποίησης που έχει ενσωματωθεί στον πηγαίο κώδικα του πυρήνα του Linux από την έκδοση , το οποίο προσφέρει έναν ενιαίο τρόπο για χρήση των επεκτάσεων εικονικοποίησης του επεξεργαστή. Αποτελείται από δύο modules, το kvm.ko και το kvm_intel.ko ή το kvm_amd.ko ανάλογα με το μοντέλο του επεξεργαστή του φυσικού μηχανήματος. Το QEMU (Quick EMUlator) είναι μία πλατφόρμα για τη δημιουργία και διαχείριση εικονικών μηχανών. Το QEMU εκτελείται σε επίπεδο χρήστη και υποστηρίζει εικονικοποίηση είτε αμιγώς μέσω λογισμικού, είτε εικονικοποίηση μέσω υλικού. Στην πρώτη περίπτωση δεν απαιτεί ειδική υποστήριξη από το υλικό αλλά είναι πολύ αργό, ειδικά αν το σύνολο εντολών της εικονικής μηχανής διαφέρει από το σύνολο εντολών του φυσικού μηχανήματος. Στη δεύτερη περίπτωση, χρησιμοποιεί το KVM που είδαμε προηγουμένως ώστε να έχει πρόσβαση στις επεκτάσεις εικονικοποίησης του επεξεργαστή. Τότε, η εικονική μηχανή είναι απαραίτητο να είναι της ίδιας αρχιτεκτονικής με το μηχάνημα στο οποίο εκτελείται. Εκτελώντας μία διεργασία qemu στο χώρο χρήστη του πραγματικού συστήματος, θα μπορείτε να έχετε τη δική σας εικονική μηχανή, στην οποία θα έχετε πλήρες δι- 5

6 Linux Guest Windows Guest Διεργασία 1 Διεργασία 2 Διεργασία 1 Διεργασία 2 userspace kernelspace system calls userspace kernelspace Win32 / Win64 Πυρήνας Linux Πυρήνας Windows Υλικό (Virtual Machine) Υλικό (Virtual Machine) Άλλες διεργασίες Διεργασία QEMU Διεργασία QEMU userspace kernelspace system calls Πυρήνας Linux KVM Module (kvm_intel, kvm_amd) Υλικό CPU Virtualization Extensions Σχήμα 2: Δημιουργία εικονικών μηχανών με χρήση των εργαλείων QEMU και KVM. καίωμα διαχειριστή και δυνατότητα για οποιαδήποτε μεταβολή στο σύστημα. Ταυτόχρονα όμως θα είστε περιορισμένοι στο χώρο χρήστη του πραγματικού συστήματος. Το πώς ακριβώς γίνεται αυτό, αναλύεται στη συνέχεια. Στις επόμενες ενότητες θα αναφερόμαστε με τον όρο host στο πραγματικό μας μηχάνημα στο οποίο εκτελείται το QEMU, ενώ με τον όρο guest θα εννοούμε την εικονική μηχανή. 3 Προετοιμασία host μηχανήματος Για την εκτέλεση του QEMU-KVM όπως περιγράφεται στον παρόντα οδηγό, θα 6

7 χρειαστείτε πρόσβαση σε κάποιο μηχάνημα το οποίο διαθέτει επεξεργαστή με δυνατότητες εικονικοποίησης και τρέχει κάποια διανομή Linux. Μπορείτε να χρησιμοποιήσετε ένα δικό σας μηχάνημα, ή, αν θέλετε να ακολουθήσετε ακριβώς τις οδηγίες του παρόντος οδηγού, να δημιουργήσετε μία εικονική μηχανή στην υπηρεσία okeanos ( βλ. ενότητα 6). Στο σημείο αυτό μπορείτε να αποκτήσετε πλήρη γραφική πρόσβαση στο host μηχάνημά σας, αλλά και στο guest VM αργότερα, χρησιμοποιώντας το σύστημα X2Go. Ο server του X2Go είναι ήδη εγκατεστημένος στις υποστηριζόμενες εικόνες μηχανών του okeanos, αλλά και στο root filesystem που σας δίνεται για την εικονική μηχανή ανάπτυξης. Η σύνδεση X2Go πραγματοποιείται πάνω από κρυπτογραφημένο κανάλι ssh. Ακολουθήστε τις οδηγίες σύνδεσης όπως περιγράφονται στην ενότητα 6. ΠΡΟΣΟΧΗ: Στα ακόλουθα υποθέτουμε μια διανομή Debian ή βασισμένη στο Debian. Οι οδηγίες έχουν δοκιμαστεί πλήρως σε διανομή Ubuntu LTS bit. Θεωρούμε ότι υπάρχει λογαριασμός απλού χρήστη user κι εκτελείτε τις εντολές ως user. Η εικόνα της εικονικής μηχανής που σας δίνεται (cslab_rootfs) είναι μηχάνημα Debian Jessie x86-64, οπότε απαιτείται κι ο host να είναι εγκατάσταση x86-64 για να εκτελέσει εικονική μηχανή αυτού του τύπου με KVM. Πριν ξεκινήσετε, βεβαιωθείτε ότι έχετε θέσει το password του root, και μπορείτε να αποκτήσετε root shell, δίνοντας su -. Για το σκοπό αυτό: $ sudo su -... enter user's password here, if requested... # passwd... change password for root, pick a STRONG password... # exit $ su -... enter password for root again... #... you are now the superuser, note the different prompt. # exit $... back to unprivileged user shell. Το πρώτο πράγμα που πρέπει να κάνουμε στο μηχάνημα αυτό που θα χρησιμοποιηθεί ως host για τις εικονικές μηχανές μας, είναι να εγκαταστήσουμε κάποια πακέτα από τα repositories της διανομής μας τα οποία απαιτούνται. Για αυτό το σκοπό δίνουμε ως root την επόμενη εντολή¹ # apt-get install build-essential vim bzip2 gzip xz-utils # apt-get install socat git libglib2.0-dev ¹Στα επόμενα παραδείγματα υποθέτουμε ότι $ είναι το πρωτεύον prompt (PS1) του χρήστη, # του root, > το δευτερεύον (PS2). 7

8 # apt-get install libfdt-dev libpixman-1-dev zlib1g-dev 3.1 Έλεγχος για CPU virtualization extensions Για να ελέγξετε αν ο υπολογιστής σας παρέχει επεκτάσεις εικονικοποίησης ανοίξτε ένα τερματικό και δώστε την παρακάτω εντολή: $ egrep '(vmx svm)' /proc/cpuinfo Σε περίπτωση που η εντολή εκτυπώσει έξοδο που περιλαμβάνει τις λέξεις vmx (Intel) ή svm (AMD) σημαίνει ότι ο επεξεργαστής σας παρέχει δυνατότητες εικονικοποίησης. Για παράδειγμα, η έξοδος της παραπάνω εντολής για επεξεργαστή Intel δίνει έξοδο παρόμοια με την παρακάτω: flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dtherm tpr_shadow vnmi flexpriority 3.2 Φόρτωση KVM modules Αφού έχουμε βεβαιωθεί ότι ο επεξεργαστής μας παρέχει τις επεκτάσεις εικονικοποίησης, πρέπει να ελέγξουμε αν ο πυρήνας Linux που τρέχουμε περιλαμβάνει τα modules του KVM. Αν η εντολή $ lsmod grep kvm δε δώσει κάποια έξοδο σημαίνει ότι τα modules είτε δεν περιλαμβάνονται στον πυρήνα μας είτε ότι απλά δεν έχουν φορτωθεί. Στην πρώτη περίπτωση θα πρέπει να κάνουμε χειροκίνητη εγκατάσταση του KVM αλλά κάτι τέτοιο δεν είναι στα πλαίσια αυτού του μαθήματος και παραλείπεται. Στην δεύτερη περίπτωση αρκεί να δώσουμε ώς root (εντολή su) # modprobe kvm_amd (ή kvm_intel, ανάλογα με την αρχιτεκτονική) η οποία θα φορτώσει αυτόματα και το module kvm, απ όπου εξαρτώνται τα kvm_{amd, intel}. Τέλος, με $ lsmod grep kvm 8

9 πρέπει να βλέπουμε τα δύο φορτωμένα modules του πυρήνα. Σε περίπτωση που χρειάστηκε να φορτώσουμε τα modules με το χέρι μπορούμε να ρυθμίσουμε τον πυρήνα να τα φορτώνει κατά την εκκίνηση του υπολογιστή. Για να γίνει αυτό χρειάζεται να προσθέσουμε στο αρχείο /etc/modules τις γραμμές kvm και kvm_{intel, ή kvm_amd}. Αυτό μπορεί να γίνει με την εντολή # echo -e "kvm\nkvm_amd" >> /etc/modules Σε αυτό το σημείο αφού έχουμε φορτώσει τα modules του KVM στον πυρήνα μας, πρέπει να βλέπουμε το ειδικό αρχείο /dev/kvm το οποίο χρησιμοποιεί όποιο πρόγραμμα θέλει να χρησιμοποιήσει τις επεκτάσεις εικονικοποίησης ώστε να καλέσει τις υπηρεσίες του KVM. Για να σηκώσουμε μία εικονική μηχανή με χρήση QEMU- KVM πρέπει να έχουμε δικαιώματα εγγραφής-ανάγνωσης σε αυτό το αρχείο. Αρχικά, το αρχείο αυτό δημιουργείται με δικαιώματα ανάγνωσης-εγγραφής (rw) για το χρήστη root και το group root. Επειδή θέλουμε για λόγους ασφάλειας κι απομόνωσης οι εικονικές μας μηχανές να εκτελούνται με δικαιώματα χρηστών εκτός του root, θα δημιουργήσουμε ένα group kvm, αν δεν υπάρχει, στο οποίο θα προσθέσουμε τον χρήστη με τον οποίο εμείς χρησιμοποιούμε το σύστημα (π.χ. user), και θα ρυθμίσουμε το αρχείο /dev/kvm να δημιουργείται με δικαιώματα στο group αυτό. Αυτό γίνεται ως εξής: $ su # groupadd kvm # usermod -ag kvm user # echo KERNEL==\"kvm\", GROUP=\"kvm\" >> \ > /etc/udev/rules.d/40-permissions.rules # modprobe -r kvm_amd # modprobe -r kvm # modprobe kvm_amd # exit $ groups user adm cdrom sudo dip plugdev lpadmin sambashare Επειδή μόλις προσθέσαμε τον χρήστη user στο group kvm, ο τρέχων φλοιός του χρήστη εκτελείται χωρίς δικαίωμα στο group kvm. Για να αποκτήσει δικαίωμα στο group kvm, ο απλούστερος τρόπος είναι ο χρήστης να αποσυνδεθεί (logout) και να συνδεθεί εκ νέου. Οπότε ανήκει στο group, κι έχει δικαίωμα εγγραφής στο /dev/ kvm: $ groups user adm cdrom sudo dip plugdev lpadmin sambashare kvm $ ls -l /dev/kvm crw-rw root kvm 10, 232 Mar 9 19:53 /dev/kvm 9

10 3.3 Εγκατάσταση του QEMU Το QEMU είναι διαθέσιμο από τα repositories των περισσότερων διανομών αλλά σε αυτήν την ενότητα θα δείξουμε πως μπορούμε να κάνουμε τη μεταγλώττιση του κατευθείαν από τον πηγαίο κώδικά του, καθώς θα μας φανεί χρήσιμο και για επόμενες εργαστηριακές ασκήσεις. Για το σκοπό αυτό, κατεβάζουμε τον πηγαίο κώδικα ( τον αποσυμπιέζουμε και τον μεταγλωττίζουμε. Στα επόμενα, υποθέτουμε ότι χτίζουμε την έκδοση QEMU 3.0.0: $ wget $ tar xvjf qemu tar.xz $ cd qemu $./configure --prefix=/path/to/qemu/build/dir --enable-kvm \ > --target-list=x86_64-softmmu $ make $ make install Ως μονοπάτι εγκατάστασης του QEMU επιλέγουμε ένα μονοπάτι στο οποίο ο χρήστης μας έχει δικαίωμα εγγραφής, π.χ. το /home/user/opt/qemu, δημιουργώντας το αν χρειαστεί εκ των προτέρων. Το χτίσιμο του QEMU θα πάρει λίγη ώρα. Αν όλα πάνε καλά, με το τέλος διαδικασίας στο /path/to/qemu/build/dir/ θα έχουμε το build tree του QEMU. Σε αυτό το σημείο το μηχάνημα το οποίο θα χρησιμοποιηθεί ως host για τις εικονικές μηχανές μας είναι έτοιμο. 4 Χρήση του QEMU - εικονική μηχανή ανάπτυξης Για τη δική σας ευκολία, σας παρέχονται δύο αρχεία για να να ξεκινήσετε τη λειτουργία της εικονικής σας μηχανής για ανάπτυξη του κώδικά σας: (i) utopia.sh, το οποίο εκκινεί την εικονική μηχανή, και (ii) utopia.config, το οποία περιέχει τις απαραίτητες ρυθμίσεις ώστε να μπορέσει να εκκινήσει σωστά η εικονική μηχανή. Το script utopia.sh διαβάζει τις παραμέτρους στο utopia.config και ξεκινά την εικονική μηχανή. Εάν συμβεί κάποιο λάθος, θα το επισημάνει και θα προτείνει κάποια πιθανή λύση. Αρχικά, όλες οι παράμετροι στο utopia.config είναι σε σχόλια, οπότε θα πρέπει να τις ενεργοποιήσετε για να τρέξει επιτυχώς το utopia.sh. Το utopia.config περιέχει στην ουσία μία σειρά από μεταβλητές περιβάλλοντος που χρησιμοποιεί το utopia.sh κατά τη λειτουργία του. Οι μεταβλητές αυτές είναι: QEMU_BUILD_DIR Αυτός είναι ο κατάλογος στον οποίο έχει γίνει η εγκατάσταση του QEMU. Αν ο κατάλογος υπάρχει, τo utopia.sh θα ψάξει εκεί για το 10

11 εκτελέσιμο bin/qemu-system-x86_64, το οποίο και θα χρησιμοποιήσει για να εκκινήσει την εικονική μηχανή. QCOW2_BACKING_FILE Αυτό είναι το αρχικό Image που θα χρησιμοποιήσει η εικονική μηχανή για να τρέξει ένα πλήρες σύστημα Linux. Στο filesystem που σας παρέχεται στο εργαστήριο, υπάρχει εγκατεστημένο Debian 8 (Jessie). Τίποτε δεν γράφεται σε αυτό το αρχείο. Όλες οι αλλαγές σας, καταλήγουν στο αρχείο $QCOW2_PRIVATE_FILE, δηλ. στο private.qcow2 Σβήνοντάς το, η μηχανή επαναφέρεται στην αρχική της κατάσταση. Για να ξεκινήσετε, κατεβάστε το root filesystem της εικονικής σας μηχανής από το site του μαθήματος, έστω cslab_rootfs_ _1.raw.gz, αποσυμπιέστε το, με χρήση του εργαλείου gunzip, και μετακινήστε το σε φάκελο της επιλογής σας, έστω ~/utopia: $ mkdir ~/utopia $ wget \ > / cslab_rootfs_ _1.raw.gz $ gunzip -k cslab_rootfs_ _1.raw.gz $ mv cslab_rootfs_ _1.raw ~/utopia Αφού πλέον έχετε ρυθμίσει σωστά την εικονική σας μηχανή, μπορείτε να την εκκινήσετε εκτελώντας το utopia.sh. $./utopia.sh Η εικονική μηχανή θα ξεκινήσει και θα τυπωθούν διαγνωστικά μηνύματα σχετικά με το πώς μπορείτε να συνδεθείτε σε αυτήν. Η εικονική μηχανή που σας δίνεται έχει ρυθμισμένους δύο χρήστες, τους user και root, με passwords user και root αντίστοιχα. Υπάρχουν οι εξής τρόποι σύνδεσης στην εικονική σας μηχανή: Με VNC viewer, από το φυσικό μηχάνημα, ή το εξωτερικό VM: vncviewer localhost:0. Είναι αργός τρόπος, αλλά διευκολύνει πολύ το debugging, γιατί μπορείτε να δείτε την εκκίνηση της μηχανής από την πρώτη στιγμή. Υπόδειξη: Πατήστε F8 στο παράθυρο του VNC viewer για να μπορέσετε να στείλετε τον συνδυασμό πλήκτρων Ctrl-Alt-Del στην εικονική μηχανή. Με ssh από τον host / εξωτερική εικονική μηχανή, στο port 22223, με χρήση της εντολής ssh -p root@localhost. Η εσωτερική εικονική μηχανή ακούει στο TCP port του localhost (εξωτερικού VM). 11

12 Με χρήση του x2goclient από την εξωτερική μηχανή στην εσωτερική μηχανή, πάλι με σύνδεση ssh στο port του localhost. Μπορείτε να αλλάξετε τη μεταβλητή UTOPIA_SSH_INTERFACE στο utopia.config, ώστε η εικονική μηχανή ανάπτυξης να επιτρέπει συνδέσεις από οπουδήποτε. Με το τρόπο αυτό θα μπορείτε να συνδέεστε απευθείας προς αυτή, από οποιοδήποτε εξωτερικό μηχάνημα, στη θύρα του εξωτερικού μηχανήματος, π.χ. snf-xxxx. vm.okeanos.grnet.gr. ΠΡΟΣΟΧΗ: Βεβαιωθείτε ότι έχετε θέσει ισχυρά passwords και για τους δύο χρήστες, user και root, πριν ενεργοποιήσετε μια τέτοια επιλογή. Ακριβώς όπως και για ένα πραγματικό μηχάνημα, η λειτουργία της εικονικής μηχανής πρέπει να τερματίζεται σωστά. Ως root, χρησιμοποιήστε την εντολή halt ή poweroff για να «σβήσετε» την εικονική μηχανή, ή την εντολή reboot για να κάνετε επανεκκίνηση. Εάν για κάποιο λόγο η εικονική μηχανή δεν αποκρίνεται, π.χ. ο τροποποιημένος πυρήνας σας εκτελέσει κάποια εσφαλμένη λειτουργία, μπορείτε να τραβήξετε στην ουσία την εικονική μηχανή από την πρίζα, δίνοντας Ctrl-C στο τερματικό που εκτελείται το utopia.sh. Αν δεν υπάρξει αποτέλεσμα, εκτελέστε στο host killall qemu-system-x86_64 ή killall -9 qemu-system-x86_64. Για να κρατάτε τα αρχεία σας έξω από την εικονική μηχανή και να είναι ασφαλή ακόμη και σε περίπτωση που το σύστημα αρχείων της εικονικής μηχανής πάθει κάποια βλάβη (π.χ., λόγω προγραμματιστικού σφάλματος κατά την εκτέλεση του πυρήνα σας ή «βίαιου» shutdown της εικονικής μηχανής), συνιστούμε να χρησιμοποιήσετε το σύστημα αρχείων sshfs. Το sshfs επιτρέπει πρόσβαση σε κατάλογο απομακρυσμένου μηχανήματος, προσαρτώντας τον στο τοπικό μηχάνημα με χρήση του πρωτοκόλλου ssh. Ουσιαστικά, κάθε πρόσβαση στο τοπικό σημείο προσάρτησης μεταφράζεται σε λειτουργίες Εισόδου/Εξόδου πάνω από κρυπτογραφημένο κανάλι ssh. Θα το χρησιμοποιήσουμε ως εξής: Στην εικονική μηχανή ανάπτυξης, θα προσαρτήσουμε τον κατάλογο /home/<host_user>/ του host, στο σημείο /home/user/ host της εσωτερικής εικονικής μηχανής. Έτσι, μπορείτε να κρατάτε τα αρχεία σας στο /home/user/host/ask1 της εσωτερικής εικονικής μηχανής, που θα είναι το /home/<host_user>/ask1 στον host. Για την προσάρτηση καταλόγου του host, μπορείτε στην εσωτερική μηχανή να εκτελέσετε (αντικαθιστώντας την <host_user> με έναν υπαρκτό χρήστη του host): # echo "user_allow_other" >> /etc/fuse.conf $ mkdir /home/user/host $ sshfs -o allow_other <host_user >@ :/ home/<host_user > \ > /home/user/host 12

13 Η παραπάνω διαδικασία υποθέτει ότι στον host είναι ενεργοποιημένη η πρόσβαση μέσω SSH. Αν όχι, χρειάζεται να εγκαταστήσετε (apt-get install) το πακέτο openssh-server. Έτσι διευκολύνεται και η μεταφορά αρχείων από και προς την εικονική μηχανή. Σας προτείνουμε να κρατάτε ολόκληρο τον πηγαίο κώδικα της άσκησης σε κάποιο directory το οποίο είναι mounted μέσω sshfs στον host έτσι ώστε αν αναγκαστείτε να επαναφέρετε την εικονική μηχανή στην αρχική της κατάσταση διαγράφοντας το τοπικό COW αρχείο (private.qcow2), τα αρχεία αυτά να μην επηρεαστούν. ΠΡΟΣΟΧΗ: Για τις ανάγκες της 2ης άσκησης το επόμενο βήμα της μεταγλώττισης νέου πυρήνα είναι προαιρετικό. Αντί να μεταγλωττίσετε το δικό σας πυρήνα, μπορείτε να εγκαταστήσετε, με apt-get το πακέτο linux-headers-$(uname -r) που αντιστοιχεί στον πυρήνα που τρέχετε μέσα στην εικονική μηχανή. Για παράδειγμα: # uname -r... # apt-cache show linux-headers-$(uname -r)... # apt-get install -t jessie-backports linux-headers-$(uname -r) Το πακέτο αυτό εγκαθιστά τα απολύτως απαραίτητα κάτω από τον κατάλογο /lib/ modules/ ώστε να έχετε κατάλληλο $KERNELDIR για τη μεταγλώττιση δικών σας kernel modules. 5 (Προαιρετικά) Μεταγλώττιση πυρήνα για το VM Προαιρετικά, μπορείτε να μεταγλωττίσετε το δικό σας πυρήνα Linux για την εικονική μηχανή του QEMU. Η διαδικασία που θα ακολουθηθεί είναι ακριβώς η ίδια διαδικασία που θα ακολουθούσαμε για τη μεταγλώττιση του πυρήνα για ένα πραγματικό μηχάνημα. ΠΡΟΣΟΧΗ: Ο πυρήνας αποτελείται από πάρα πολλά αρχεία και η διαδικασία μεταγλώττισης του είναι πολύ επίπονη και χρονοβόρα διαδικασία. Για αυτό το λόγο θα μεταγλωττίσετε τον πυρήνα στο host μηχάνημα και όχι στο utopia VM. Έτσι τα βήματα της ρύθμισης και της μεταγλώττισης του πυρήνα θα γίνουν στο host και στη συνέχεια αφού έχετε συνδεθεί στο VM σας και έχετε κάνει mount τον φάκελο του πυρήνα με sshfs θα εκτελέσετε τις εντολές που αφορούν την εγκατάσταση του νέου πυρήνα. Συγκεκριμένα, για τη μεταγλώττιση και εγκατάσταση του πυρήνα απαιτούνται τα 13

14 επόμενα βήματα: Λήψη του κώδικα Αρχικά, θα πρέπει να ανακτήσετε τον κώδικα του πυρήνα από την επίσημη ιστοσελίδα του πυρήνα του Linux ( Ανακτήστε την τελευταία έκδοση. Οι ακόλουθες οδηγίες έχουν δοκιμαστεί με την έκδοση Linux $ wget > v3.x/linux tar.xz Αποσυμπίεση του κώδικα Ο κώδικας που μόλις ανακτήσατε είναι σε συμπιεσμένη μορφή, οπότε θα πρέπει να τον αποσυμπιέσετε, ώστε να μπορέσετε να εργαστείτε σε αυτόν. $ tar xf linux tar.xz Ολόκληρος ο κώδικας του πυρήνα έχει αποσυμπιεστεί στον κατάλογο linux , στον οποίο μπορείτε πλέον να μεταβείτε και να περιηγηθείτε ή κάνετε τις αλλάγες σας στον πυρήνα. Ρύθμιση του πυρήνα Προτού ξεκινήσετε την μεταγλώττιση του πυρήνα, θα πρέπει να πρώτα να κάνετε κάποιες ρυθμίσεις. Ο πιo γρήγορος τρόπος είναι να χρησιμοποιήσετε τις προκαθορισμένες ρυθμίσεις οι οποίες ενεργοποιούνται μέσω της εντολής $ make defconfig Στις περισσότερες περιπτώσεις αυτές οι ρυθμίσεις είναι αρκετές ώστε να έχετε έναν λειτουργικό πυρήνα. Στην περίπτωσή μας, χρειάζεται μικρή τροποποίηση στις προκαθορισμένες ρυθμίσεις. Ο πιο απλός και φιλικός προς το χρήστη τρόπος για να το κάνετε αυτό είναι μέσω της εντολής $ make menuconfig Η εντολή αυτή θα ανοίξει ένα μενού στο τερματικό σας, απ όπου θα μπορέσετε να κάνετε μία πληθώρα ρυθμίσεων για τον πυρήνα που πρόκειται να μεταγλωττίσετε. Για την εκτέλεση στο utopia, θα χρειαστεί να ενεργοποιήσετε (i) τα modules για την αναγνώριση των δίσκων virtio (virtual IO), που χρησιμοποιεί το VM σας, (ii) το module που θα σας επιτρέψει να χρησιμοποιήσετε το sshfs (FUSE), (iii) το filesystem devtmpfs. (iv) τις βελτιστοποίησεις του πυρήνα για καλύτερες επιδόσεις όταν τρέχει ως guest. Πιο συγκεκριμένα, περιηγηθείτε στο μενού και ενεργοποιήστε τις παρακάτω επιλογές. Έχετε υπόψη πως ορισμένες από αυτές εξαρτώνται από άλλες και δεν εμφανίζονται μέχρι να ενεργοποιηθούν οι εξαρτήσεις τους. Συνεπώς, αν 14

15 κάποια επιλογή δεν είναι διαθέσιμη άμεσα, προχωρήστε στις επόμενες και επιστρέψτε για να την ενεργοποιήσετε αργότερα. Virtualization->Host kernel accelerator for virtio net <M> Virtualization->Virtio balloon driver <M> Device Drivers->Virtio drivers->pci driver for virtio devices <M> Device Drivers->Block Devices->Virtio block driver <M> File systems->fuse (Filesystem in Userspace) support <M> Device Drivers->Generic Driver Options-> Maintain a devtmpfs filesystem to mount at /dev [*] Processor type and features->linux guest support [*] Processor type and features->linux guest support-> Enable paravirtualization code [*] Processor type and features->linux guest support-> Enable paravirtualization code-> Paravirtualization layer for spinlocks [*] Processor type and features->linux guest support-> KVM Guest support (including kvmclock) [*] Τέλος, πατήστε στο Exit και στην επόμενη ερώτηση για την αποθήκευση των ρυθμίσεων απαντήστε καταφατικά. Μεταγλώττιση του πυρήνα Τώρα είστε έτοιμοι να μεταγλωττίσετε τον πυρήνα! $ make To βήμα αυτό μπορεί να πάρει αρκετή ώρα. Στο τέλος, θα έχει δημιουργηθεί ένα συμπιεσμένο binary image που φορτώνεται στην μνήμη από τον bootloader κατά την διαδικασία εκκίνησης του συστήματος, αποσυμπιέζεται και, τελικά, αναλαμβάνει τον πλήρη έλεγχο του συστήματος. Εκτός από τον πυρήνα, χρειάζεται μεταγλωττίσουμε τα συνοδευτικά modules του, με την εντολή $ make modules Εγκατάσταση νέου πυρήνα και επανεκκίνηση εικονικής μηχανής Για να ξεκινήσει το μηχάνημα με το νέο πυρήνα που μόλις μεταγλωττίσαμε, χρειάζεται να αντιγράψουμε το συμπιεσμένο binary image του στον κατάλογο /boot. Κατά σύμβαση, ο πυρήνας ακολουθείται κι από το αντίστοιχο αρχείο ρυθμίσεών του. Αυτό το βήμα το εκτελείται μέσα στην εικονική μηχανή, έχοντας πρόσβαση μέσω sshfs στον κατάλογο στον οποίο έχετε μεταγλωττίσει τον πυρήνα. 15

16 $ su - # cd /host/directory/where/you/compiled/the/kernel # make modules_install # make install Σε αυτό το σημείο έχουμε αντιγράψει τον πυρήνα στην τελική του θέση. Χρειάζεται επιπλέον να ενημερώσουμε το περιεχόμενου του αρχείου initrd, το οποίο αναλαμβάνει την προσάρτηση του ριζικού καταλόγου κατά την εκκίνηση του συστήματος και να ανανεώσουμε τη λίστα επιλογών του bootloader(grub), του προγράμματος που αναλαμβάνει την φόρτωση του πυρήνα στη μνήμη κατά την εκκίνηση του συστήματος: $ su - # mkinitramfs -o /boot/initrd.img v # update-grub Σε αυτό το σημείο και αν όλα έχουν πάει καλά με τη μεταγλώττιση του πυρήνα είμαστε έτοιμοι να εκκινήσουμε το μηχάνημα με το νέο πυρήνα. Κατά την εκκίνηση, ο grub μας ζητάει να επιλέξουμε τον πυρήνα που θα χρησιμοποιηθεί. Αν o νέος μας πυρήνας αποτυγχάνει, μπορούμε να επαναφέρουμε τον παλιό απλά επιλέγοντας την αντίστοιχη εγγραφή στο μενού του grub. 6 Συχνές ερωτήσεις Κατά την διαδικασία υλοποίησης της άσκησης μπορούν προκύψουν διάφορα τεχνικά προβλήματα, τα πιο συχνά από τα οποία αναφέρονται στην συνέχεια. Ερώτηση: Τι είναι ο okeanos και πως μπορώ να δημιουργήσω μία εικονική μηχανή εκεί; Απάντηση: Πληροφορίες σχετικά με την υπηρεσία okeanos και τη δημιουργία και χρήση VM εκεί μπορείτε να βρείτε στο site της υπηρεσίας Μπορείτε να βρείτε απαντήσεις σε συχνές ερωτήσεις για την υπηρεσία στο https: //okeanos.grnet.gr/support/faq, καθώς και οδηγό για τη δημιουργία εικονικής μηχανής: 16

17 Ερώτηση: Πώς μπορώ να συνδεθώ με γραφικό περιβάλλον στην εικονική μου μηχανή; Απάντηση: Ακολουθήστε τις οδηγίες σύνδεσης με χρήση του συστήματος X2Go, τις οποίες μπορείτε να βρείτε στον οδηγό χρήσης του okeanos: Ερώτηση: Πώς μπορώ να δημιουργήσω το δικό μου root filesystem; Απάντηση: Αυτή είναι μια αρκετά επίπονη διαδικασία. Αν θέλετε να πειραματιστείτε, μπορείτε να βρείτε οδηγίες στα installing_debian_in_it, 7 (Προαιρετικά) Μία κλήση συστήματος Hello, World! στο Linux ΠΡΟΣΟΧΗ: Για τις ανάγκες της 2ης άσκησης, το παρόν βήμα της προσθήκης δικής σας κλήσης συστήματος στο Linux είναι προαιρετικό. Ένα σύγχρονο ΛΣ όπως το Linux είναι εύκολα επεκτάσιμο μέσω οδηγών συσκευής που υλοποιούν συγκεκριμένες διεπαφές και σπάνια χρειάζεται η υλοποίηση νέων κλήσεων συστήματος για την προσθήκη νέας λειτουργικότητας. ΠΡΟΣΟΧΗ: Το παρόν βήμα έχει δοκιμαστεί πλήρως για την έκδοση του πυρήνα του Linux και μπορεί να απαιτεί μικρές αλλαγές για την εκτέλεσή του με νεότερες εκδόσεις του πυρήνα. Οι διεργασίες χρήστη δεν είναι δυνατόν να εκτελέσουν κώδικα του πυρήνα απευθείας με κλήση συναρτήσεων του πυρήνα, γιατί ο κώδικας και τα δεδομένα του πυρήνα βρίσκονται σε προστατευμένες θέσεις μνήμης. Όταν λοιπόν κάποιο πρόγραμμα χρήστη πρέπει να ζητήσει την εκτέλεση μιας λειτουργίας από τον πυρήνα, για παράδειγμα Ε/Ε από κάποιο αρχείο, πρέπει να εκτελέσει μια κλήση συστήματος. Ο μηχανισμός με τον οποίο το πρόγραμμα ενημερώνει τον πυρήνα ότι θέλει να εκτελέσει μια κλήση συστήματος, είναι μια διακοπή λογισμικού (software interrupt). Ο χειριστής της διακοπής αυτής είναι ο χειριστής κλήσεων συστήματος (συνάρτηση 17

18 system_call:arch/x86/kernel/entry_32.s), η υλοποίηση του οποίου εξαρτάται από την αρχιτεκτονική του συστήματος. Η διακοπή αυτή στην αρχιτεκτονική x86 είναι η $0x80. Με την εκτέλεση αυτής της διακοπής πραγματοποιείται μετάβαση από το χώρο χρήστη στο χώρο πυρήνα και εξυπηρείται η αίτηση του προγράμματος χρήστη. Μιας και ο μηχανισμός μετάβασης σε χώρο πυρήνα είναι κοινός για όλες τις κλήσεις συστήματος, πρέπει ο πυρήνας να έχει τρόπο να διαχωρίζει τις κλήσεις συστήματος μεταξύ τους. Για το λόγο αυτό, στο Linux σε κάθε κλήση συστήματος αντιστοιχίζεται ένας αριθμό (syscall number). Όταν ένα πρόγραμμα χρήστη εκτελεί μια κλήση συστήματος, αναφέρεται σε αυτή με βάση τον αριθμό αυτό (περνώντας τον ως όρισμα, συνήθως μέσω κάποιου καταχωρητή) και όχι με βάση το όνομα της κλήσης συστήματος. Ο πυρήνας του Linux διατηρεί μια λίστα με όλες τις καταχωρημένες κλήσεις συστήματος στον πίνακα κλήσεων συστήματος (sys_call_table). Ο πίνακας αυτός εξαρτάται από την αρχιτεκτονική του συστήματος και για την αρχιτεκτονική x86 (32-bit) ορίζεται στο αρχείο arch/x86/kernel/syscall_table_32.s. Η συνάρτηση system_call (system call handler) ελέγχει ότι ο αριθμός της κλήσης συστήματος είναι έγκυρος συγκρίνοντάς τον με μια σταθερά που δηλώνει τον συνολικό αριθμό των registered κλήσεων συστήματος NR_syscalls. Αν ο αριθμός είναι έγκυρος, καλείται η αντίστοιχη συνάρτηση από τον πίνακα κλήσεων συστήματος (sys_call_table). Με βάση τα παραπάνω, για την προσθήκη μιας κλήσης συστήματος σε ένα σύστημα Linux x86 32-bit πρέπει να ακολουθηθούν τα εξής βήματα: (1) Προσθέτουμε στο αρχείο arch/x86/include/asm/unistd_32.h τον ορισμό του αριθμού της κλήσης συστήματος που θέλουμε να υλοποιήσουμε, αυξάνοντας κατά ένα τον τελευταίο ήδη ορισμένο αριθμό. Για παράδειγμα, προσθέτουμε τη γραμμή: #define NR_foo 341 Στο ίδιο αρχείο, αυξάνουμε κατά ένα την τιμή της σταθεράς NR_syscalls. (2) Προσθέτουμε στο αρχείο arch/x86/kernel/syscall_table_32.s για κάθε κλήση συστήματος που υλοποιούμε μια γραμμή σαν την εξής:.long sys_foo Με τη γραμμή αυτή προσθέτουμε στην ουσία στον πίνακα κλήσεων συστήματος (sys_call_table) την συνάρτηση που θα υλοποιεί την κλήση συστήματος που προσθέτουμε. (3) Προσθέτουμε στο αρχείο include/linux/syscalls.h για κάθε κλήση συστήματος που υλοποιούμε τη δήλωση της συνάρτησης που θα την υλοποιεί: 18

19 asmlinkage long sys_foo(int flag); (4) Προσθέτουμε στον κατάλογο kernel/ (ή οπουδήποτε αλλού κρίνουμε κατάλληλο) ένα αρχείο με την υλοποίηση της συνάρτησης που υλοποιεί την κλήση συστήματος. Μπορούμε επίσης να την προσθέσουμε σε ένα ήδη υπάρχον αρχείο. Ένα παράδειγμα είναι το ακόλουθο (προστίθεται στο νέο αρχείο kernel/ foo.c): #include "linux/kernel.h" asmlinkage long sys_foo(int flag) { printk(kern_debug "Hello from foo! flag=%d.\n", flag); return 0; } Η κλήση συστήματος foo() απλώς τυπώνει στο log αρχείο του πυρήνα (/var/ log/kern.log) ένα string και το όρισμά της, μέσω της συνάρτησης printk(). (5) Αν κατά το προηγούμενο βήμα δημιουργήσαμε νέο αρχείο, προσθέτουμε μια γραμμή σαν την ακόλουθη στο Makefile του καταλόγου όπου το προσθέσαμε (στην συγκεκριμένη περίπτωση, στο kernel/makefile): obj-y += foo.o (6) Μεταγλωττίζουμε ξανά τον πυρήνα. $ make (7) Ένα απλό πρόγραμμα (στον χώρο χρήστη) που καλεί την κλήση συστήματος που μόλις φτιάξαμε είναι το ακόλουθο: #define _GNU_SOURCE #include <stdio.h> #include <unistd.h> #include <sys/syscall.h> #define NR_foo 341 int main() { long ret; ret = syscall( NR_foo, 100); printf("ret=%lu\n", ret); 19

20 } return 0; Εκτελώντας το συγκεκριμένο παράδειγμα, καλούμε την νέα κλήση συστήματος foo(). Μπορούμε να δούμε το απλό μήνυμα που τυπώνει στα logs του πυρήνα δίνοντας την εντολή dmesg στον φλοιό. 8 Περισσότερες πληροφορίες Περισσότερα για το QEMU, το KVM, το σχεδιασμό, την εγκατάσταση και τη χρήση τους μπορείτε να μάθετε στις σελίδες Περισσότερα στοιχεία για την υπηρεσία okeanos και το open source λογισμικό Synnefo που την υποστηρίζει μπορείτε να βρείτε στις σελίδες

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Εργαστήριο

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Εργαστήριο

Διαβάστε περισσότερα

Εικονικοποίηση. Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο,

Εικονικοποίηση. Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, Εικονικοποίηση Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Εικονικοποίηση - Σύνοψη Γενικά Οργάνωση VMM Τεχνικές Εικονικοποίησης Εικονικοποίηση Μνήμης Live Migration Παραδείγματα συστημάτων

Διαβάστε περισσότερα

Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,

Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο, Εικονικοποίηση Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο, 2016-2017 Εικονικοποίηση - Σύνοψη Γενικά Οργάνωση VMM Τεχνικές Εικονικοποίησης Εικονικοποίηση Μνήμης Live Migration Εικονικοποίηση - Σύνοψη Γενικά Οργάνωση

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Εργαστήριο

Διαβάστε περισσότερα

Προγραμματισμός Ι. Εργαστήριο 1 ο Περιβάλλον Εργασίας. Νικόλαος Δ. Τσελίκας Κυριακή Θ. Σεκλού

Προγραμματισμός Ι. Εργαστήριο 1 ο Περιβάλλον Εργασίας. Νικόλαος Δ. Τσελίκας Κυριακή Θ. Σεκλού Προγραμματισμός Ι Εργαστήριο 1 ο Περιβάλλον Εργασίας Νικόλαος Δ. Τσελίκας ntsel@uop.gr Κυριακή Θ. Σεκλού kseklou@uop.gr Εργαστήριο στον Προγραμματισμό Ι - Τμήμα Πληροφορικής και Τηλεπικοινωνιών - Πανεπιστήμιο

Διαβάστε περισσότερα

Λειτουργικά. Συστήματα Ι. Εγκατάσταση Ιδεατής Μηχανής. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Λειτουργικά. Συστήματα Ι. Εγκατάσταση Ιδεατής Μηχανής. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Εγκατάσταση Ιδεατής Μηχανής Linux Εισαγωγή στα Λειτουργικά Συστήματα Εγκατάσταση Ιδεατής Μηχανής Linux Συστήματα Αρχείων Χειρισμός και Διαχείριση

Διαβάστε περισσότερα

Ενσωματωμένα Συστήματα

Ενσωματωμένα Συστήματα Ενσωματωμένα Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ ANDROID-DEVKIT No:01 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΟΝΑΔΑ ΑΡΙΣΤΕΙΑΣ ΕΛ/ΛΑΚ

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΟΝΑΔΑ ΑΡΙΣΤΕΙΑΣ ΕΛ/ΛΑΚ ΕΓΚΑΤΑΣΤΑΣΗ ΕΙΚΟΝΙΚΗΣ ΜΗΧΑΝΗΣ Το VirtualBox είναι μια εφαρμογή εικονικοποίησης (virtualization) που επιτρέπει την εγκατάσταση και την ταυτόχρονη λειτουργία ενός ή περισσότερων λειτουργικών συστημάτων στο

Διαβάστε περισσότερα

Εγκατάσταση του PiNet για διαχείριση εργαστηρίου με Raspberry Pi. Συγγραφέας: Τριχόπουλος Γιώργος Δεκέμβριος 2016

Εγκατάσταση του PiNet για διαχείριση εργαστηρίου με Raspberry Pi. Συγγραφέας: Τριχόπουλος Γιώργος Δεκέμβριος 2016 Εγκατάσταση του PiNet για διαχείριση εργαστηρίου με Raspberry Pi Συγγραφέας: Τριχόπουλος Γιώργος Δεκέμβριος 2016 Το σύστημα PiNet εξυπηρετεί στη διαχείριση των υπολογιστών Raspberry Pi σε μία σχολική τάξη.

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

Linux με τη χρήση κονσόλας

Linux με τη χρήση κονσόλας Linux με τη χρήση κονσόλας Κεφάλαιο 2 Κείμενα Χρυσούλα Παπάζογλου Πανεπιστήμιο Μακεδονίας, Βιβλιοθήκη και Κέντρο Πληροφόρησης Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης Θεσσαλονίκη, Μάρτης 2009 Το υλικό διατίθεται

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Εργαστήριο Εγκατάσταση Ubuntu με VirtualBox Εγκατάσταση Ubuntu με Unetbootin Απομακρυσμένη πρόσβαση με Putty/WinSCP

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Εργαστήριο Εγκατάσταση Ubuntu με VirtualBox Εγκατάσταση Ubuntu με Unetbootin Απομακρυσμένη πρόσβαση με Putty/WinSCP ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Εργαστήριο Εγκατάσταση Ubuntu με VirtualBox Εγκατάσταση Ubuntu με Unetbootin Απομακρυσμένη πρόσβαση με Putty/WinSCP Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ Η/Υ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ Η/Υ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ Η/Υ ΟΔΗΓΟΣ ΕΓΚΑΤΑΣΤΑΣΗΣ Γλώσσας Quipper ΚΟΥΒΕΛΑΣ ΘΕΟΔΩΡΟΣ ΚΥΤΕΑ ΚΩΝΣΤΑΝΤΙΝΑ ΧΡΗΣΤΙΔΗ ΑΓΓΕΛΙΚΗ-ΜΑΡΙΑ

Διαβάστε περισσότερα

Κρυπτογραφική συσκευή VirtIO για QEMU-KVM

Κρυπτογραφική συσκευή VirtIO για QEMU-KVM Κρυπτογραφική συσκευή VirtIO για QEMU-KVM Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Μάιος 2017 Βασικό Πλαίσιο Node A Δικτυακή διεργασία (πχ chat)

Διαβάστε περισσότερα

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

Διαβάστε περισσότερα

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual MILE Simulator Version 1.0 User's Manual Νοέμβριος, 2011 Περιεχόμενα 1. Εισαγωγή στον προσομοιωτή...2 1.1 Εγκατάσταση...2 1.2 Βοήθεια Διευκρινήσεις...2 2. Ξεκινώντας με τον προσομοιωτή...3 2.1 Το memory

Διαβάστε περισσότερα

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι Ενότητα : Εισαγωγή στο λειτουργικό σύστημα Linux. Όνομα Καθηγητή : Δημήτριος Λυμπερόπουλος, Σπύρος Δενάζης Τμήμα : Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

Διαβάστε περισσότερα

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:02 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

Ενημερωτικός οδηγός για τον εξυπηρετητή Ada

Ενημερωτικός οδηγός για τον εξυπηρετητή Ada 17 Ιουλίου 2018 Ενημερωτικός οδηγός για τον εξυπηρετητή Ada Πανεπιστήμιο Κύπρου, Τμήμα Πληροφορικής Μαρία Τσιολάκκη Ομάδα Τεχνικής Υποστήριξης Έκδοση 3.0 Πίνακας περιεχομένων Γενικά... 2 1. Υπηρεσίες πρόσβασης

Διαβάστε περισσότερα

Δίκτυα Η/Υ στην Επιχείρηση

Δίκτυα Η/Υ στην Επιχείρηση Δίκτυα Η/Υ στην Επιχείρηση Εισαγωγή στο λειτουργικό σύστημα Unix Γκάμας Βασίλειος, Εργαστηριακός Συνεργάτης Λειτουργικό Σύστημα (ΛΣ) Λογισμικό συστήματος, το οποίο αποτελεί τη διασύνδεση μεταξύ του υλικού

Διαβάστε περισσότερα

Διαδικαστικά. Εισαγωγή στο Λειτουργικό Σύστημα UNIX. Διαδικαστικά. Τι είναι το Λειτουργικό Σύστημα

Διαδικαστικά. Εισαγωγή στο Λειτουργικό Σύστημα UNIX. Διαδικαστικά. Τι είναι το Λειτουργικό Σύστημα Εισαγωγή στο Λειτουργικό Σύστημα UNIX Τμήμα Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών ΤΕΙ Ηπείρου Γρηγόριος Τζώρτζης Ακ. Έτος 2010-2011 Διαδικαστικά Στο εργαστήριο θα διδαχθούν βασικές εντολές του λειτουργικού

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (Λ/Σ)

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων

Διαβάστε περισσότερα

Αξιοποίηση της Τεχνολογίας των Εικονικών Μηχανών στην Επαγγελματική Εκπαίδευση και την Κατάρτιση Πληροφορικής. Βασιλάκης Βασίλειος Τζανάκης Δημήτριος

Αξιοποίηση της Τεχνολογίας των Εικονικών Μηχανών στην Επαγγελματική Εκπαίδευση και την Κατάρτιση Πληροφορικής. Βασιλάκης Βασίλειος Τζανάκης Δημήτριος Αξιοποίηση της Τεχνολογίας των Εικονικών Μηχανών στην Επαγγελματική Εκπαίδευση και την Κατάρτιση Πληροφορικής Βασιλάκης Βασίλειος Τζανάκης Δημήτριος Εισαγωγή Σκοπός Να παρουσιαστούν προτάσεις αξιοποίησης

Διαβάστε περισσότερα

qemu img create linux.img f raw 2G

qemu img create linux.img f raw 2G Τρέξτε Linux μέσα από Windows P.I.K. panoskrt@gmail.com Δεν είναι λίγοι αυτοί οι οποίοι χρησιμοποιούν ως κύριο λειτουργικό τα Windows και θα ήθελαν για να εγκαταστήσουν Linux αλλά οποιοδήποτε λόγο... φοβούνται

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview Εργαστήριο Λειτουργικών Συστημάτων Minix Overview Σύνοψη 5ης ιάλεξης Λειτουργικό Σύστημα Minix Οργάνωση του Λειτουργικού Συστήματος Οργάνωση πηγαίου κώδικα Minix recompilation Σύνοψη Μαθήματος Σύνοψη Μαθήματος

Διαβάστε περισσότερα

Open eclass 2.2 - Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

Open eclass 2.2 - Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Open eclass 2.2 - Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Οδηγίες Αναβάθμισης (Upgrade) Ομάδα Εργασίας: Τσιμπάνης Κωνσταντίνος, Εξηνταρίδης Γιάννης Αθήνα, 30 Σεπτεμβρίου 2009 Εισαγωγή Η πλατφόρμα Open eclass

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο Στο φετινό εργαστήριο του μαθήματος, έχετε τη δυνατότητα να δουλέψετε σε 2 περιβάλλοντα. Ένα σε περιβάλλον UNIX μέσω απομακρυσμένης σύνδεσης σε

Διαβάστε περισσότερα

Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux

Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux 1 Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux Το Linux είναι ένα λειτουργικό σύστημα όμοιο με το Unix που αναπτύχθηκε από έναν πυρήνα (kernel, Εικ.1) τον οποίο δημιούργησε το 1991 ο Linus Torvalds όντας

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (Λ/Σ)

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Δομή Λειτουργικών Συστημάτων Βασίλης Σακκάς 20/11/2013 1 Δομή ενός Λ/Σ -1 Μονολιθικά συστήματα (monolithic systems) Λειτουργικά συστήματα με ανυπαρξία δομής: "η μεγάλη ακαταστασία"

Διαβάστε περισσότερα

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:00 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ ΔΟΜΗ ΤΟΥ Η/Υ (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

Διαβάστε περισσότερα

Εδώ υπάρχει ένα παράδειγμα από ένα φανταστικό πρόγραμμα και το πακέτο του:

Εδώ υπάρχει ένα παράδειγμα από ένα φανταστικό πρόγραμμα και το πακέτο του: Κεφάλαιο 18: Διαχείριση Πακέτων στο Slackware Ένα πακέτο λογισμικού (software package) είναι ένα σύνολο από σχετικά προγράμματα που είναι έτοιμα για εγκατάσταση. Όταν κατεβάζετε ένα αρχείου πηγαίου κώδικα,

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην Πληροφορική Αστροφυσικός Αναπλ. Καθηγητής ΕΜΠ romylos@survey.ntua.gr Λειτουργικά συστήµατα, διεργασίες και δροµολόγηση Σύνδεση

Διαβάστε περισσότερα

Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI

Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI Εργαστήριο 1ο Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI Σε αυτό το κεφάλαιο θα ασχοληθούμε με την περιγραφή της διαδικασίας μεταγλώττισης ενός προγράμματος C κάνοντας χρήση του μεταγλωττιστή gcc σε

Διαβάστε περισσότερα

ΠΡΟΑΙΡΕΤΙΚΑ ΣΕΜΙΝΑΡΙΑ 2012-2013. Πληροφορική και Επιστήμη Ηλεκτρονικών Υπολογιστών

ΠΡΟΑΙΡΕΤΙΚΑ ΣΕΜΙΝΑΡΙΑ 2012-2013. Πληροφορική και Επιστήμη Ηλεκτρονικών Υπολογιστών ΠΡΟΑΙΡΕΤΙΚΑ ΣΕΜΙΝΑΡΙΑ 2012-2013 Πληροφορική και Επιστήμη Ηλεκτρονικών Υπολογιστών Εγκατάσταση Linux Server/Samba/Web Server (Apache)/MySQL Database Server/Joomla/Moodle/Word Press (Blog)/Email Server/File

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++ ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση του περιβάλλοντος Dev C++ το οποίο θα χρησιμοποιηθεί για την υλοποίηση

Διαβάστε περισσότερα

Server Virtualization με εργαλεία ΕΛ/ΛΑΚ. ΛΑΚ Δήμος Ρεθύμνης. www.rethymno.gr

Server Virtualization με εργαλεία ΕΛ/ΛΑΚ. ΛΑΚ Δήμος Ρεθύμνης. www.rethymno.gr Server Virtualization με εργαλεία ΕΛ/ΛΑΚ ΛΑΚ Μαθηνός Παναγιώτης Λ. Κουντουριώτη 80, τ.κ. 74100, Ρέθυμνο Τηλ: 28313 41310 e mail: mathinos@rethymno.gr www.linkedin.com/in/pmathinos Πληροφορική Μηχανοργάνωση

Διαβάστε περισσότερα

Computer Setup Οδηγός χρήσης

Computer Setup Οδηγός χρήσης Computer Setup Οδηγός χρήσης Copyright 2007 Hewlett-Packard Development Company, L.P. Η ονομασία Windows είναι σήμα κατατεθέν της Microsoft Corporation στις Η.Π.Α. Οι πληροφορίες στο παρόν έγγραφο μπορεί

Διαβάστε περισσότερα

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση: Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση: Page 1 Χρήστης Εφαρμογή Λειτουργικό Σύστημα Υλικό Γνωστά Λειτουργικά

Διαβάστε περισσότερα

Κοινή χρήση πόρων με τα Windows XP

Κοινή χρήση πόρων με τα Windows XP Κοινή χρήση πόρων με τα Windows XP Α. Κοινή χρήση αρχείων και φακέλων Θα μάθετε: Να θέτετε σε κοινή χρήση ένα αρχείο ή ένα φάκελο του υπολογιστή με τα Windows XP. Να θέτετε σε κοινή χρήση στο δίκτυο μουσική,

Διαβάστε περισσότερα

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ http://leitourgika-systhmata-epal-b.ggia.info/ Σύγχρονο Λειτουργικό Σύστημα - ΛΣ Λειτουργικό Σύστημα:

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές Σκοπός του εργαστηρίου αυτού είναι η εξοικείωση με κάποιες εφαρμογές που θα μας φανούν πολύ χρήσιμες κατά τη διάρκεια του μαθήματος της Εισαγωγής στον Προγραμματισμό.

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 00Β

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 00Β Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Πολυτεχνική Σχολή Κοζάνης Πανεπιστήμιο Δυτικής Μακεδονίας ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 00Β Σκοπός της Άσκησης: Εναλλακτική

Διαβάστε περισσότερα

ProcSim οδηγίες χρήσης.

ProcSim οδηγίες χρήσης. ProcSim οδηγίες χρήσης. Το ProcSim είναι ένα εργαλείο προσομοίωσης Οπτικοποίησης του Datapath του απλού επεξεργαστή που περιγράφεται στο μάθημα (και στο βιβλίο). Το εργαλείο αυτό εκτελεί προγράμματα γραμμένα

Διαβάστε περισσότερα

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Επικοινωνία με περιφερειακά Αρτηρία εισόδου-εξόδου, διευθύνσεις, εγγραφές αναγνώσεις Διαδικασία εξόδου έλεγχος κατάστασης περιφερειακού περίμενε

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

Διαβάστε περισσότερα

ProcSim οδηγίες χρήσης.

ProcSim οδηγίες χρήσης. ProcSim οδηγίες χρήσης. Το ProcSim είναι ένα εργαλείο προσομοίωσης Οπτικοποίησης του Datapath του απλού επεξεργαστή που περιγράφεται στο μάθημα (και στο βιβλίο). Το εργαλείο αυτό εκτελεί προγράμματα γραμμένα

Διαβάστε περισσότερα

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ Μάθημα 4ο Σύστημα αρχείων Μιχαηλίδης Παναγιώτης Περιεχόμενα Σύστημα αρχείων Εισαγωγή Μονοπάτια διαδρομής Φόρτωση και αποφόρτωση συστημάτων αρχείων Ιεραρχική οργάνωση

Διαβάστε περισσότερα

Βασική εγκατάσταση Asterisk σε Linux

Βασική εγκατάσταση Asterisk σε Linux Βασική εγκατάσταση Asterisk σε Linux 1 Πι νακας περιεχομε νων ΓΕΝΙΚΆ... 3 ΕΓΚΑΤΆΣΤΑΣΗ ΛΟΓΙΣΜΙΚΟΎ... 4 LINUX MYSQL ASTERISK - UTILITIES... 4 ACCS (ALTEC CALL CENTER SERVER)... 5 Εγκατάσταση σε περιβάλλον

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΔΙΑΝΟΜΗΣ LINUX ΠΡΟΣΑΡΜΟΣΜΕΝΗΣ ΣΤΙΣ ΑΝΑΓΚΕΣ ΤΟΥ ΤΜΗΜΑΤΟΣ Η.Υ.Σ.

ΑΝΑΠΤΥΞΗ ΔΙΑΝΟΜΗΣ LINUX ΠΡΟΣΑΡΜΟΣΜΕΝΗΣ ΣΤΙΣ ΑΝΑΓΚΕΣ ΤΟΥ ΤΜΗΜΑΤΟΣ Η.Υ.Σ. Ανώτατο Τεχνολογικό Εκπαιδευτικό Ίδρυμα Πειραιά ΑΝΑΠΤΥΞΗ ΔΙΑΝΟΜΗΣ LINUX ΠΡΟΣΑΡΜΟΣΜΕΝΗΣ ΣΤΙΣ ΑΝΑΓΚΕΣ ΤΟΥ ΤΜΗΜΑΤΟΣ Η.Υ.Σ. Σπουδαστής: Τσεσμελής Θεόδωρος Εισηγητής Καθηγητής: Πρεζεράκος Γεώργιος Ανάπτυξη

Διαβάστε περισσότερα

Android Studio για Windows

Android Studio για Windows Android Studio για Windows 1. Οδηγίες Εγκατάστασης: 1. Κατεβάστε το Android Studio από εδώ (τελευταία έκδοση 0.4.6, 496 MB): http://developer.android.com/sdk/installing/studio.html 2. Εγκαταστήστε το αρχείο

Διαβάστε περισσότερα

ιεργασία Α Πυρήνας Linux Υλικό

ιεργασία Α Πυρήνας Linux Υλικό ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Υλοποίηση Οδηγού Συσκευής Σε Εικονική

Διαβάστε περισσότερα

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας Τ.Ε.Ι ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ & ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΟΙΚΗΣΗΣ Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας Πτυχιακή εργασία του φοιτητή Γιαννακίδη Αποστόλη Επιβλέπων καθηγητής Τσούλος

Διαβάστε περισσότερα

Ενημέρωση σε Windows 8.1 από τα Windows 8

Ενημέρωση σε Windows 8.1 από τα Windows 8 Ενημέρωση σε Windows 8.1 από τα Windows 8 Τα Windows 8.1 και τα Windows RT 8.1 είναι βασισμένα στα Windows 8 και στα Windows RT, για να σας προσφέρουν βελτιώσεις στην εξατομίκευση, την αναζήτηση, τις εφαρμογές,

Διαβάστε περισσότερα

Hase οδηγίες χρήσης.

Hase οδηγίες χρήσης. Hase οδηγίες χρήσης. Το Hase είναι ένα πρόγραμμα προσομοίωσης που έχει αναπτυχθεί στο πανεπιστήμιο του Εδιμβούργου (http://www.icsa.inf.ed.ac.uk/research/groups/hase/) και μπορεί να χρησιμοποιηθεί για

Διαβάστε περισσότερα

Εισαγωγή στο Λειτουργικό Σύστημα UNIX

Εισαγωγή στο Λειτουργικό Σύστημα UNIX Εισαγωγή στο Λειτουργικό Σύστημα UNIX Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Ηπείρου Διδάσκων: Δημήτριος Λιαροκάπης Διαφάνειες: Γρηγόριος Τζώρτζης Ακ. Έτος 2013-2014 Διαδικαστικά Στο εργαστήριο θα διδαχθούν

Διαβάστε περισσότερα

Εμφάνιση μηνυμάτων ή ενεργοποίηση και απενεργοποίηση της ηχούς εντολών.

Εμφάνιση μηνυμάτων ή ενεργοποίηση και απενεργοποίηση της ηχούς εντολών. ECHO [ON OFF] ECHO [μήνυμα] Εμφάνιση μηνυμάτων ή ενεργοποίηση και απενεργοποίηση της ηχούς εντολών. Πληκτρολογήστε ECHO χωρίς παράμετρο για εμφάνιση της τρέχουσας ρύθμισης. Παραδείγματα: echo this is a

Διαβάστε περισσότερα

Πως δημιουργούμε ένα νέο αρχείο κειμένου; Με τρεις τρόπους:

Πως δημιουργούμε ένα νέο αρχείο κειμένου; Με τρεις τρόπους: Αρχεία Πως δημιουργούμε ένα νέο αρχείο κειμένου; Με τρεις τρόπους: Με την εντολή touch: touch test.txt δημιουργούμε ένα κενό αρχείο test.txt. Mε την εντολή echo: Η echo λειτουργεί σαν αντίλαλος, δηλαδή

Διαβάστε περισσότερα

Εικονική Μνήμη (1/2)

Εικονική Μνήμη (1/2) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Εικονική Μνήμη (1/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Εικονική Μνήμη

Διαβάστε περισσότερα

Οδηγός αναβάθμισης των Windows 8 βήμα προς βήμα ΕΜΠΙΣΤΕΥΤ ΚΟ 1/53

Οδηγός αναβάθμισης των Windows 8 βήμα προς βήμα ΕΜΠΙΣΤΕΥΤ ΚΟ 1/53 Οδηγός αναβάθμισης των Windows 8 βήμα προς βήμα ΕΜΠΙΣΤΕΥΤ ΚΟ 1/53 Περιεχόμενα 1. 1. Διαδικασία των Windows 8 2. Απαιτήσεις συστήματος 3. Προετοιμασία 2. 3. 4. 5. με τη 6. 1. Εξατομίκευση 2. Ασύρματο 3.

Διαβάστε περισσότερα

Unity Editor #02 Κεντρικό Μενού: File, Build Settings και Build & Run

Unity Editor #02 Κεντρικό Μενού: File, Build Settings και Build & Run Unity Editor #02 Κεντρικό Μενού: File, Build Settings και Build & Run Καλώς ήλθες. Στο προηγούμενο μάθημα είδαμε τις λειτουργίες του μενού File του Editor της Unity. Όπως είπαμε οι δύο επιλογές που διαφέρουν

Διαβάστε περισσότερα

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος Κεφάλαιο 3.1: Λειτουργικά Συστήματα 1 3.1.1 Λογισμικό και Υπολογιστικό Σύστημα Ένα σύγχρονο υπολογιστικό σύστημα αποτελείται από: το υλικό: τα ηλεκτρονικά μέρη του υπολογιστή και το λογισμικό: το σύνολο

Διαβάστε περισσότερα

Tο περιβάλλον Code::Blocks

Tο περιβάλλον Code::Blocks Tο περιβάλλον Code::Blocks Το Code::Blocks αποτελεί ένα πλήρες περιβάλλον ανάπτυξης εφαρμογών για την γλώσσα C και C++. Το περιβάλλον είναι ελεύθερο λογισμικό και χρησιμοποιεί μια ειδική έκδοση του μεταγλωττιστή

Διαβάστε περισσότερα

Μανώλης Κιαγιάς, MSc. Aiolos Project. Αρχικές Ρυθμίσεις SSH και εγκατάσταση OpenMPI

Μανώλης Κιαγιάς, MSc. Aiolos Project. Αρχικές Ρυθμίσεις SSH και εγκατάσταση OpenMPI Μανώλης Κιαγιάς, MSc Aiolos Project Αρχικές Ρυθμίσεις SSH και εγκατάσταση OpenMPI Χανιά, 2015 2 (C) 2014 Μανώλης Κιαγιάς, manolis@freebsd.org Το παρόν έργο διατίθεται υπό τους όρους της Άδειας: Αναφορά

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΓΡΑΜΜΑΤΕΙΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ESCHOOL

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΓΡΑΜΜΑΤΕΙΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ESCHOOL ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΓΡΑΜΜΑΤΕΙΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ESCHOOL 1 Βεβαιωθείτε ότι το μηχάνημα έχει τουλάχιστον 1 GB μνήμη RAM (2GB μνήμη RAM αν χρησιμοποιηθεί σαν λειτουργικό σύστημα τα WindowsVista ή Windows 7).

Διαβάστε περισσότερα

Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης eclass 1.7. Οδηγίες Αναβάθμισης (Upgrade) - 1 - Αθήνα, 16 Μαρτίου 2007. 1. Εισαγωγή

Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης eclass 1.7. Οδηγίες Αναβάθμισης (Upgrade) - 1 - Αθήνα, 16 Μαρτίου 2007. 1. Εισαγωγή Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης eclass 1.7 Οδηγίες Αναβάθμισης (Upgrade) Ομάδα Εργασίας: Τσιμπάνης Κωνσταντίνος, Εξηνταρίδης Γιάννης Αθήνα, 16 Μαρτίου 2007 1. Εισαγωγή Η πλατφόρμα eclass είναι ένα

Διαβάστε περισσότερα

Ενημερώσεις λογισμικού Οδηγός χρήσης

Ενημερώσεις λογισμικού Οδηγός χρήσης Ενημερώσεις λογισμικού Οδηγός χρήσης Copyright 2008 Hewlett-Packard Development Company, L.P. Η ονομασία Windows είναι σήμα κατατεθέν της εταιρείας Microsoft Corporation στις Η.Π.Α. Οι πληροφορίες στο

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

Διαβάστε περισσότερα

2.1. Οι λογαριασµοί χρηστών Σύνδεση (login) και αποσύνδεση (logout)

2.1. Οι λογαριασµοί χρηστών Σύνδεση (login) και αποσύνδεση (logout) Πανεπιστήµιο Θεσσαλίας Τµήµα Πληροφορικής µε Εφαρµογές στην Βιοϊατρική Εισαγωγή στον Προγραµµατισµό (εργαστήριο) Εισαγωγή στο λειτουργικό σύστηµα UNIX 1. Σύνδεση στο Εικονικό Ιδιωτικό Δίκτυο (VPN) 1.1.

Διαβάστε περισσότερα

2ο Εργαστήριο. Εισαγωγική στο Λ.Σ. LINUX Γενικές εντολές συστήματος και χρηστών

2ο Εργαστήριο. Εισαγωγική στο Λ.Σ. LINUX Γενικές εντολές συστήματος και χρηστών ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης 2ο Εργαστήριο Εισαγωγική στο Λ.Σ. LINUX Γενικές εντολές συστήματος και χρηστών Πίνακας Εντολών

Διαβάστε περισσότερα

Περιεχόμενα. Μέρος 1: Βασικές έννοιες της πληροφορικής... 13. Πρόλογος... 11

Περιεχόμενα. Μέρος 1: Βασικές έννοιες της πληροφορικής... 13. Πρόλογος... 11 Περιεχόμενα Πρόλογος... 11 Μέρος 1: Βασικές έννοιες της πληροφορικής... 13 1.1 Windows XP... 15 1.2 Επιφάνεια εργασίας... 19 1.3 Γραμμή εργασιών... 24 1.4 Χειρισμός παραθύρων... 30 1.5 Μενού... 36 1.6

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα

Ενσωματωμένα Συστήματα

Ενσωματωμένα Συστήματα Ενσωματωμένα Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ ANDROID-DEVKIT No:02 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

Διαβάστε περισσότερα

1 Αρχική Σελίδα 2. 2 Εγγραφή 3. 3 Προφίλ χρήστη 6. 4 Διαχείριση SSH κλειδιών 7. 5 Δημιουργία νέας εικονικής μηχανής 9. 6 View instance 14

1 Αρχική Σελίδα 2. 2 Εγγραφή 3. 3 Προφίλ χρήστη 6. 4 Διαχείριση SSH κλειδιών 7. 5 Δημιουργία νέας εικονικής μηχανής 9. 6 View instance 14 Vima User Guide Περιεχόμενα 1 Αρχική Σελίδα 2 2 Εγγραφή 3 3 Προφίλ χρήστη 6 4 Διαχείριση SSH κλειδιών 7 5 Δημιουργία νέας εικονικής μηχανής 9 6 View instance 14 7 Διαχείριση 20 8 Ιστορικό 20 9 Στατιστικά

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες

Διαβάστε περισσότερα

Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης

Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης Αναστάσιος Α. Νάνος ananos@cslab.ntua.gr Επιβλέπων: Νεκτάριος

Διαβάστε περισσότερα

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα Μάθημα 2ο Εισαγωγή στο GNU/Linux Ύλη Μαθημάτων ΙΙ Μαθ. 2 : Εισαγωγή στο GNU/Linux Διανομές GNU/Linux, Filesystem/Δικαιώματα, Διανομές live σε VirtualBox,

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1 Πανεπιστήμιο Κύπρου Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη της Πληροφορικής και Πληροφοριακά Συστήματα Εργαστήριο - ΕΠΛ003 Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο UNIX Μέρος 1 Παναγιώτης

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

Διαβάστε περισσότερα

ΛΟΓΙΣΜΙΚΟ (software)

ΛΟΓΙΣΜΙΚΟ (software) ΛΟΓΙΣΜΙΚΟ (software) Το Λογισµικό του Ηλεκτρονικού Υπολογιστή Περιεχόµενα Ορισµός Λογισµικού Κατηγορίες Λογισµικό Συστήµατος Λογισµικό Εφαρµογών Το λογισµικό είναι: Το λογισµικό Το σύνολο των προγραµµάτων

Διαβάστε περισσότερα

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 4 Λογισμικό συστήματος Καραμαούνας Πολύκαρπος 1 4.1 Λογισμικό συστήματος (application software) Καραμαούνας Πολύκαρπος 2 Λογισμικό εφαρμογών (application software): προγράμματα για την αντιμετώπιση

Διαβάστε περισσότερα

Εργαστήριο 4 Ασκήσεις: Διαχείριση Δικτύου (nmap, iptables) και Προχωρημένες Εντολές Unix (grep, ps, cut, find)

Εργαστήριο 4 Ασκήσεις: Διαχείριση Δικτύου (nmap, iptables) και Προχωρημένες Εντολές Unix (grep, ps, cut, find) Εργαστήριο 4 Ασκήσεις: Διαχείριση Δικτύου (nmap, iptables) και Προχωρημένες Εντολές Unix (grep, ps, cut, find) 1) Δώστε την εντολή που δείχνει τις ανοιχτές εισερχόμενες θύρες (ports) της μηχανής σας. Χρησιμοποιήστε

Διαβάστε περισσότερα

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...

Διαβάστε περισσότερα

Για τους Χρήστες του RICOH Smart Device Connector: Διαμόρφωση του Μηχανήματος

Για τους Χρήστες του RICOH Smart Device Connector: Διαμόρφωση του Μηχανήματος Για τους Χρήστες του RICOH Smart Device Connector: Διαμόρφωση του Μηχανήματος ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1. Για όλους τους χρήστες Εισαγωγή... 3 Τρόπος ανάγνωσης του παρόντος εγχειριδίου...3 Εμπορικά σήματα...4

Διαβάστε περισσότερα

ProcSim οδηγίες χρήσης.

ProcSim οδηγίες χρήσης. ProcSim οδηγίες χρήσης. Το ProcSim είναι ένα εργαλείο προσομοίωσης Οπτικοποίησης του Datapath του απλού επεξεργαστή που περιγράφεται στο μάθημα (και στο βιβλίο). Το εργαλείο αυτό εκτελεί προγράμματα γραμμένα

Διαβάστε περισσότερα

Ενημερώσεις λογισμικού Οδηγός χρήσης

Ενημερώσεις λογισμικού Οδηγός χρήσης Ενημερώσεις λογισμικού Οδηγός χρήσης Copyright 2009 Hewlett-Packard Development Company, L.P. Η ονομασία Windows είναι σήμα κατατεθέν της Microsoft Corporation στις Η.Π.Α. Οι πληροφορίες στο παρόν έγγραφο

Διαβάστε περισσότερα

Android Studio για Linux

Android Studio για Linux Android Studio για Linux 1. Οδηγίες Εγκατάστασης: 1. Κατεβάστε το Android Studio από εδώ (τελευταία έκδοση 0.4.6, 496 MB): http://developer.android.com/sdk/installing/studio.html 2. Επιλέξτε το πακέτο

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές

ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές Σκοπός του εργαστηρίου αυτού είναι η χρησιμοποίηση κάποιων εφαρμογών που θα μας φανούν πολύ χρήσιμες κατά τη διάρκεια του μαθήματος της Εισαγωγής στον Προγραμματισμό.

Διαβάστε περισσότερα

Μια καλή επιλογή θα ήταν www.epipla-onomasas.gr (χωρίζοντας τις λέξεις με παύλα -) ή

Μια καλή επιλογή θα ήταν www.epipla-onomasas.gr (χωρίζοντας τις λέξεις με παύλα -) ή Τι είναι ένα CMS CMS ή Σύστημα Διαχείρισης Περιεχομένου (Content Management System) ονομάζουμε ένα λογισμικό που μας βοηθά να ελέγχουμε και να διαχειριζόμαστε έναν ιστότοπο δημόσιας ή περιορισμένης πρόσβασης.

Διαβάστε περισσότερα

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι Ενότητα : Δίκτυα υπολογιστών - Βασικά εργαλεία δικτύων στο Linux. Όνομα Καθηγητή : Δημήτριος Λυμπερόπουλος, Σπύρος Δενάζης Τμήμα : Ηλεκτρολόγων Μηχανικών και Τεχνολογίας

Διαβάστε περισσότερα

Ενηµερώσεις λογισµικού Οδηγός χρήσης

Ενηµερώσεις λογισµικού Οδηγός χρήσης Ενηµερώσεις λογισµικού Οδηγός χρήσης Copyright 2009 Hewlett-Packard Development Company, L.P. Η ονοµασία Windows είναι σήµα κατατεθέν της Microsoft Corporation στις Ηνωµένες Πολιτείες. Οι πληροφορίες στο

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα