Systeemvirtualisatie heeft al veel toepassingen gevonden in de desktop- en serverwereld, gaande van het reduceren van de operationele kosten van datacenters, tot het vergemakkelijken van software-ontwikkeling en het emuleren van software voor verouderde hardware. Ingebedde systemen worden alsmaar krachtiger, en hun hardware evolueert sneller dan hun software. Daarom worden deze systemen nu ook interessant om te virtualiseren. Bestaande technieken voor servers en desktops kunnen niet zomaar worden overgenomen, omdat ingebedde systemen andere vereisten, toepassingen en architecturen hebben.
ARM is marktleider voor processors van ingebedde systemen. Bestaande virtualisatie-oplossingen voor ARM steunen echter op paravirtualisatie, een techniek met veel nadelen, of vereisen recent ontwikkelde hardware-uitbreidingen die niet beschikbaar zijn op de meerderheid van de huidige systemen. Softwaregebaseerde technieken zoals dynamisch binaire vertaling (DBV) bieden een alternatief om de ARM-architectuur volledig te virtualiseren. DBV biedt bovendien heel wat meer toepassingen dan hardware-uitbreidingen.
In dit onderzoek hebben we de fundamentele uitdagingen opgelost om softwaregebaseerde virtualisatie op ARMv7-A mogelijk te maken. We stellen generieke softwaretechnieken voor om de processor en het geheugenbeheer volledig te virtualiseren door middel van DBV en schaduwpaginatabellen. We ontwikkelden
een eigen hypervisor, waarop we al onze technieken implementeerden en evalueerden. Onze evaluatie toont aan dat onze technieken aanvaardbare virtualisatiekosten met zich meebrengen. | |