In this thesis, we explored the possibility of introducing a few vulnerabilities to a separation kernel to increase its performance. We made modifications to S3K, an open-source separation kernel that is in the final stages of being designed. To test the viability of our modifications we benchmarked both the unmodified and the modified versions and compared the results. We changed the scheduler and the inter-process communication used for time sharing: we introduced side-channel vulnerabilities to allow the modified functionalities to complete their work faster. The changes to the scheduler increased performance notably when having a high scheduling overhead, but not so much with low overhead. The changes to the inter-process communication proved to have limited usefulness, as the default version was already rather quick, and the new version had the drawback of increasing the time needed for scheduling. We also tested our scheduler modifications in the inter-process communication benchmarks. This greatly improved performance in all scenarios, and it made our modifications to the inter-process communication slightly more viable. To see how our results held up in a scenario closer to a real use case we also implemented a simple cryptographic application and designed tests based on it. When we ran the tests with different combinations of including or excluding our modifications we got similar results to our previous benchmarks. Overall, our modifications to the scheduler seem like a promising change to the separation kernel, given that one is willing to introduce the side-channels that come with the changes. The modifications to the inter-process communication on the other hand are more questionable and are likely only useful in specific scenarios. / I detta arbete utforskade vi möjligheten att introducera några sårbarheter till en separationskärna för att öka dess prestanda. Vi modifierade S3K, en separationskärna med öppen källkod som är i slutstadiet av att designas. För att testa hur praktiskt användbara våra modifikationer var så körde vi benchmarks på både den ursprungliga versionen och den modifierade versionen och jämförde resultaten. Vi ändrade schemaläggaren och interprocesskommunikationen som används för att dela tid: sidokanalssårbarheter introducerades för att tillåta de ändrade funktionerna att göra färdigt sina arbeten snabbare. Ändringarna till schemaläggaren visade sig öka prestandan noterbart när man hade en hög schemaläggnings-overhead, men skillnaden var inte så stor med låg overhead. Ändringarna till interprocesskommunikationen visade sig ha begränsad användbarhet, då standardversionen redan var ganska snabb och den nya versionen hade nackdelen att den ökade schemaläggningstiden. Vi testade också våra schemaläggningsmodifikationer i våra benchmarks för interprocesskommunikationen. Detta ökade prestandan mycket i alla scenarion, och gjorde våra modifikationer till interprocesskommunikationen något mer praktiskt användbara. För att se hur våra resultat stod sig i ett mer verkligt scenario så implementerade vi också en simpel kryptografisk applikation, och utformade test runt den. När vi testade olika kombinationer av att inkludera eller exkludera våra modifikationer fick vi liknande resultat som vi fick i tidigare benchmarks. Överlag så verkar våra modifikationer till schemaläggaren lovande, givet att man är villig att introducera de sidokanalssårbarheter som kommer med ändringarna. Modifikationerna till interprocesskommunikationen är dock mer tveksamma, och är sannolikt bara användbara i specifika scenarion.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-322832 |
Date | January 2022 |
Creators | Kultala, Henrik |
Publisher | KTH, Skolan för elektroteknik och datavetenskap (EECS) |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | Swedish |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Relation | TRITA-EECS-EX |
Page generated in 0.012 seconds