Flexible Operating System Internals: The Design and Implementation of the Anykernel and Rump Kernels

dc.contributorAalto-yliopistofi
dc.contributorAalto Universityen
dc.contributor.authorKantee, Antti
dc.contributor.departmentTietotekniikan laitosfi
dc.contributor.departmentDepartment of Computer Science and Engineeringen
dc.contributor.schoolPerustieteiden korkeakoulufi
dc.contributor.schoolSchool of Scienceen
dc.contributor.supervisorSaikkonen, Heikki, Prof., Aalto University, Finland
dc.date.accessioned2012-12-17T09:30:32Z
dc.date.available2012-12-17T09:30:32Z
dc.date.defence2012-12-07
dc.date.issued2012
dc.description.abstractThe monolithic kernel architecture is significant in the real world due to the large amount of working and proven code. However, the architecture is not without problems: testing and development is difficult, virtualizing kernel services can be done only by duplicating the entire kernel, and security is weak due to a single domain where all code has direct access to everything. Alternate kernel architectures such as the microkernel and exokernel have been proposed to rectify these problems with monolithic kernels. However, alternate system structures do not address the common desire of using a monolithic kernel when the abovementioned problems do not apply. We propose a flexible anykernel architecture which enables running kernel drivers in a variety of configurations, examples of which include microkernel-style servers and application libraries. A monolithic kernel is shown to be convertible into an anykernel with a reasonable amount of effort and without introducing performance-hindering indirection layers. The original monolithic mode of operation is preserved after the anykernel adjustments, and alternate modes of operation for drivers are available as a runtime choice. For non-monolithic modes of operation, the rump kernel is introduced as a lightweight container for drivers. A rump kernel runs on top of a hypervisor which offers high-level primitives such as thread scheduling and virtual memory. A production quality implementation for the NetBSD open source OS has been done. The anykernel architecture and rump kernels are evaluated both against four years of real-world experience from daily NetBSD development as well as against synthetic benchmarks.en
dc.description.abstractMonoliittisen ytimen käyttöjärjestelmät ovat merkittäviä, koska ne sisältävät suuren määrän olemassaolevia ja testattja ajureita. Monoliittinen arkkitehtuuri ei kuitenkaan ole ongelmaton: virtualisointi onnistuu vain virtualisoimalla ydin kokonaisuutena, ytimen testaus on vaikeaa ja tietoturva on heikkoa johtuen siitä, että ytimessä suoritettavalla ohjelmistolla on suora pääsy käyttöjärjestelmän kaikkiin osiin. Vaihtoehtoisia ydinarkkitehtuureita, kuten mikroydin ja eksoydin, on ehdotettu korjaamaan monoliittisen arkkitehtuurin ongelmia. Vaihtoehtoisissa malleissa on kuitenkin ongelmana se, etteivät ne tue yleistä halua käyttää monoliittista ydintä, kun yllämainitut ongelmat eivät ole relevantteja. Tässä työssä luodaan joustava jokaydin. Se mahdollistaa ajureiden suorittamisen monissa konfiguraatioissa, esimerkkejä joista ovat mikroydin-tyyliset palvelimet ja sovelluskirjastot. Monoliittisen ytimen muuntamisen jokaytimeksi näytetään onnistuvan säädyllisellä vaivalla ilman suorituskykyä heikentäviä abstraktioita. Mahdollisuus suorittaa ajureita monoliittisessä ytimessä säilyy ja muut suorituskonfiguraatiot tarjotaan ajonaikaisena valintana. Muita kuin monoliittisista suorituskonfiguraatiota varten määritellään tynkäydin, joka on ajoympäristö ajureille. Tynkäytimen suoritus tapahtuu hyperkaihtimen päällä. Hyperkaihdin tarjoaa tynkäytimelle korkean tason palveluita kuten säieskeduloinnin ja virtuaalimuistin. Toteutus on tehty tuotantotasoisena NetBSD-nimiselle avoimen lähdekoodin käyttöjärjestelmälle. Jokaydinarkkitehtuuri ja tynkäytimet arvioidaan sekä neljän vuoden reaalikokemuksen että synteettisten kokeiden perusteella.fi
dc.format.extent358
dc.format.mimetypeapplication/pdf
dc.identifier.isbn978-952-60-4917-5 (electronic)
dc.identifier.isbn978-952-60-4916-8 (printed)
dc.identifier.issn1799-4942 (electronic)
dc.identifier.issn1799-4934 (printed)
dc.identifier.issn1799-4934 (ISSN-L)
dc.identifier.urihttps://aaltodoc.aalto.fi/handle/123456789/6318
dc.identifier.urnURN:ISBN:978-952-60-4917-5
dc.language.isoenen
dc.opnTröger, Peter, Dr., Hasso Plattner Institute, Germany
dc.publisherAalto Universityen
dc.publisherAalto-yliopistofi
dc.relation.ispartofseriesAalto University publication series DOCTORAL DISSERTATIONSen
dc.relation.ispartofseries171/2012
dc.revMcKusick, Marshall Kirk, USA
dc.revDavoli, Renzo, Prof., University of Bologna, Italy
dc.subject.keywordoperating system kernel architectureen
dc.subject.keywordimplementationen
dc.subject.keywordopen sourceen
dc.subject.keywordkäyttöjärjestelmäydinarkkitehtuurifi
dc.subject.keywordimplementointifi
dc.subject.keywordavoin lähdekoodifi
dc.subject.otherComputer scienceen
dc.titleFlexible Operating System Internals: The Design and Implementation of the Anykernel and Rump Kernelsen
dc.titleJoustavat käyttöjärjestelmät: Jokaytimen ja Tynkäytimien suunnittelu ja toteutusfi
dc.typeG4 Monografiaväitöskirjafi
dc.type.dcmitypetexten
dc.type.ontasotDoctoral dissertation (monograph)en
dc.type.ontasotVäitöskirja (monografia)fi
local.aalto.digiauthask
local.aalto.digifolderAalto_64238
Files
Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
isbn9789526049175.pdf
Size:
990.92 KB
Format:
Adobe Portable Document Format