Please use this identifier to cite or link to this item: http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/17237
Title: Σχεδιασμός και υλοποίηση μηχανισμών fork και pipe σε unikernels
Authors: Μάινας, Χαράλαμπος
Γκούμας Γεώργιος
Keywords: virtualization
virtual machines
inter-vm communication
unikernel
kvm
QEMU
rumprun
Issue Date: 20-Mar-2019
Abstract: Τα τελευταία χρόνια το cloud computing αποτελεί ένα σημαντικό κεφάλαιο στη σύγχρονη επιστήμη υπολογιστών. Η κύρια τεχνολο- γία που χρησιμοποιείται, προκειμένου να μπορεί να υποστηριχθεί το cloud computing είναι αυτή της εικονικοποίησης. Με αυτό τον τρόπο ένα φυσικό μηχάνημα, μπορεί να φιλοξενήσει πολλά εικονικά μηχα- νήματα, κάθε ένα από τα οποία αποτελεί έναν αυτοδύναμο υπολογι- στή. Ωστόσο, αποτελεί συχνό φαινόμενο οι εικονικές αυτές μηχανές να χρησιμοποιούνται για την εκτέλεση μίας και μόνο εφαρμογής. Αυ- τό έχει ως αποτέλεσμα, να χαραμείζονται πόροι σε ενέργειες που δε χρειάζονται από την εφαρμογή, αλλά είναι απαραίτητες για το λει- τουργικό σύστημα στο οποίο εκτελούνται αυτές οι εφαρμογές. Μία νεότερη τάση για την υποστήριξη του cloud computing εί- ναι τα containers, που προσφέρουν ελαφρύτερη εικονικοποίηση με γρηγορους χρόνους εκτέλεσης, μικρή κατανάλωση μνήμης και άλ- λα πλεονεκτήματα. Από την άλλη, παρουσιάζουν αρκετά σημαντικά ζητήματα που αφορούν την ασφάλεια. Ένα από τα ζητήματα αυτά είναι, εκείνο της απομόνωσης το οποίο αναγκάζει σε αρκετές περι- πτώσεις να οδηγεί στη χρήση εικονικών μηχανών για τη φιλοξενία των containers, χάνοντας αρκετά από τα πλεονεκτήματα τους. Μία ακόμη προσέγγιση στο θέμα είναι τα unikernels. Πρόκειται για μία εικόνα μηχανής, με ένα μόνο address space το οποίο κατα- σκευάζεται από library operating systems και είναι ειδικευμένο για μία συγκεκριμένη εφαρμογή. Πιο απλά, περιέχει τον κώδικα της ε- φαρμογής και ακριβώς ό,τι κομμάτι του λειτουργικού συστήματος χρειάζεται η εφαρμογή για να λειτουργήσει η διεργασία (drivers, βι- βλιοθήκες, κ.λ.π.), ενοποιημένα σαν ένα αυτόνομο πρόγραμμα που μπορεί να τρέξει ως εικονική μηχανή, ή ακόμα και bare metal. Τα unikernels καταφέρνουν να έχουν γρήγορους χρόνους εκκίνησης και μικρή κατανάλωση μνήμης, χωρίς να θυσιάζεται η ασφάλεια Εν τού- τοις, ένα πρόβλημα είναι ότι τα unikernels υποστηρίζουν μία και μό- νο διεργασία, με αποτέλεσμα να μην μπορούν εφαρμογές με παραπά- νω από μία διεργασίες να εκτελεστούν σε unikernels. Σκοπός, λοιπόν, αυτής της εργασίας είναι η υλοποίηση ενός μη- χανισμού που θα επιτρέπει σε εφαρμογές με περισσότερες από μία διεργασίες να μπορούν να εκτελεστούν και σε unikernels. Επιπλέον, υλοποιείται και ένας απλός μηχανισμός για επικοινωνία μεταξύ των εικονικών μηχανών, στα πρότυπα του pipe.
URI: http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/17237
Appears in Collections:Διπλωματικές Εργασίες - Theses

Files in This Item:
File Description SizeFormat 
diploma.pdfIn recent years cloud computing is one important chapter of mod- ern commputer science. The main technology used in order to sup- port cloud computing is virtualization. Virtualization allows a phys- ical machine to host many virtual machines, each one of which is a self-sufficient computer. However, virtual machines are often used to execute a single application. As a result, resources are devoted to actions that are not needed by the application, but they are necessary for the operating system in which the applications run. An another technology to support cloud computing is containers which offer lightweight virtualization, fast instantiation times and small per-instance memory footprints among other features. On the other hand, containers have several important security issues. Isola- tion is one of these issues , which in several cases leads to the use of virtual machines to host the containers, losing several of their advan- tages. A further approach in cloud computing is unikernerls. Unikernels are specialised, single-address-space machine images constructed by using library operating systems and are specialised for one applica- tion. In somewhat simplified terms, unikernels consist of the applica- tion’s source code and the parts of an opperating system that are nec- essary for the proccess to run (drivers, libraries, etc.) consolidated as a stand-alone virtual machine, or even an app that can be executed bare metal. The Unikernels manage to have fast instantiation times, small memory footprints, without sacrificing security. However, one of the problems of unikernels is that they are single-proccess and as a result multi-proccess applcations are not able to run on unikernels. The purpose of this thesis is to implement a mechanism that will enable the execution of multi-proccess applications on unikernels. Furthermore, a pipe-like mechanism for inter-vm communication is impemented.886.45 kBAdobe PDFView/Open


Items in Artemis are protected by copyright, with all rights reserved, unless otherwise indicated.