Facing the Reality: Virtualization in a Microkernelbased Operating System. Matthias Lange, MOS, January 26th, 2016

Similar documents
VIRTUALIZATION. Dresden, 2011/12/6. Julian Stecklina

Björn Döbel. Microkernel-Based Operating Systems. Exercise 3: Virtualization

The Challenges of X86 Hardware Virtualization. GCC- Virtualization: Rajeev Wankar 36

General-purpose computing with VirtualBox on Genode/NOVA. Norman Feske

Creating a Practical Security Architecture Based on sel4

Module 1: Virtualization. Types of Interfaces

Transplantation of VirtualBox to the NOVA microhypervisor. Norman Feske


Virtual Machines. Part 2: starting 19 years ago. Operating Systems In Depth IX 1 Copyright 2018 Thomas W. Doeppner. All rights reserved.

MOS - VIRTUALIZATION. Tobias Stumpf, Marcus Hähnel WS 2015/16

Faculty of Computer Science Institute for System Architecture, Operating Systems Group. Virtualization. Henning Schild. Dresden,

Faculty of Computer Science, Operating Systems Group. The L4Re Microkernel. Adam Lackorzynski. July 2017

Lecture 5. KVM for ARM. Christoffer Dall and Jason Nieh. 5 November, Operating Systems Practical. OSP Lecture 5, KVM for ARM 1/42

Introduction Construction State of the Art. Virtualization. Bernhard Kauer OS Group TU Dresden Dresden,

VIRTUALIZATION. Dresden, 2013/12/3. Julian Stecklina

RESOURCE MANAGEMENT MICHAEL ROITZSCH

The Architecture of Virtual Machines Lecture for the Embedded Systems Course CSD, University of Crete (April 29, 2014)

Lecture 3 MOBILE PLATFORM SECURITY

Four Components of a Computer System

RESOURCE MANAGEMENT MICHAEL ROITZSCH

Using a Separation Kernel to Protect against the Remote Exploitation of Unaltered Passenger Vehicles

MICROKERNEL CONSTRUCTION 2014

Operating System Services. User Services. System Operation Services. User Operating System Interface - CLI. A View of Operating System Services

A Survey on Virtualization Technologies

Virtual Machine Monitors!

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Performance of Kernels in Virtual Machines: An Introduction to KVM Hypervisor

Virtualization. Pradipta De

An Introduction to Android. Jason Chen Developer Advocate Google I/O 2008

The Future of Virtualization

I/O and virtualization

Intel s Virtualization Extensions (VT-x) So you want to build a hypervisor?

Learning Outcomes. Extended OS. Observations Operating systems provide well defined interfaces. Virtual Machines. Interface Levels

Virtualisation: The KVM Way. Amit Shah

CprE Virtualization. Dr. Yong Guan. Department of Electrical and Computer Engineering & Information Assurance Center Iowa State University

Master s Thesis! Improvement of the Virtualization Support in the Fiasco.OC Microkernel! Julius Werner!

EDGE COMPUTING & IOT MAKING IT SECURE AND MANAGEABLE FRANCK ROUX MARKETING MANAGER, NXP JUNE PUBLIC

VIRTUALIZATION. Dresden, 2011/6/23. Julian Stecklina

Fakultät Informatik Institut für Systemarchitektur, Betriebssysteme THE NOVA KERNEL API. Julian Stecklina

Nested Virtualization and Server Consolidation

CIS 21 Final Study Guide. Final covers ch. 1-20, except for 17. Need to know:

1 Virtualization Recap

Columbia University in the city of new york

Embedded Software: Its Growing Influence on the Hardware world

What s In Your e-wallet? Using ARM IP to Enable Security in Mobile Phones. Richard Phelan Media Processing Division TrustZone Security Technology

COS 318: Operating Systems. Virtual Machine Monitors

A Userspace Packet Switch for Virtual Machines

Virtualization. join, aggregation, concatenation, array, N 1 ühendamine, agregeerimine, konkateneerimine, massiiv

LINUX Virtualization. Running other code under LINUX

Virtual Machine Security

W11 Hyper-V security. Jesper Krogh.

Android - open source mobile platform

Chapter 5 C. Virtual machines

Mobile Internet Devices and the Cloud

A Big Little Hypervisor for IoT Development February 2018

Introducing Genode. Norman Feske Genode Labs

Spring 2017 :: CSE 506. Introduction to. Virtual Machines. Nima Honarmand

CS-580K/480K Advanced Topics in Cloud Computing. VM Virtualization II

INFLUENTIAL OPERATING SYSTEM RESEARCH: SECURITY MECHANISMS AND HOW TO USE THEM CARSTEN WEINHOLD

Xen Community Update. Ian Pratt, Citrix Systems and Chairman of Xen.org

Chapter 2: Operating-System Structures

To EL2, and Beyond! connect.linaro.org. Optimizing the Design and Implementation of KVM/ARM

Optimizing and Enhancing VM for the Cloud Computing Era. 20 November 2009 Jun Nakajima, Sheng Yang, and Eddie Dong

IoT It s All About Security

Dawn Song

Virtualization Introduction

Security and Performance Benefits of Virtualization

LINUX KVM FRANCISCO JAVIER VARGAS GARCIA-DONAS CLOUD COMPUTING 2017

Virtualization. Starting Point: A Physical Machine. What is a Virtual Machine? Virtualization Properties. Types of Virtualization

Virtualization. ! Physical Hardware Processors, memory, chipset, I/O devices, etc. Resources often grossly underutilized

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Porting Linux to a new SoC

SIERRAWARE SIERRATEE FOR MIPS OMNISHIELD

ORACLE UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

Infotainment Solutions. with Open Source and i.mx6. mentor.com/embedded. Andrew Patterson Business Development Director Embedded Automotive

Advanced Systems Security: Virtual Machine Systems

Intel Virtualization Technology Roadmap and VT-d Support in Xen

Firefox OS App Days. Overview and High Level Architecture. Author: José M. Cantera Last update: March 2013 TELEFÓNICA I+D

Virtualizaton: One Size Does Not Fit All. Nedeljko Miljevic Product Manager, Automotive Solutions MontaVista Software

Chapter 2. Operating-System Structures

Xen and the Art of Virtualization. Nikola Gvozdiev Georgian Mihaila

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

What are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and

Virtualization, Xen and Denali


Smart Antennas and Hypervisor: Enabling Secure Convergence. July 5, 2017

Designing Security & Trust into Connected Devices

[Docker] Containerization

Copyright 2017 Samsung. All Rights Reserved. O-Hoon Kwon, Ph.D. Samsung Electronics

SECURITY ARCHITECTURES CARSTEN WEINHOLD

TERRA. Boneh. A virtual machine-based platform for trusted computing. Presented by: David Rager November 10, 2004

KVM CPU MODEL IN SYSCALL EMULATION MODE ALEXANDRU DUTU, JOHN SLICE JUNE 14, 2015

HOW TO INTEGRATE NFC CONTROLLERS IN LINUX

Secure Sharing of an ICT Infrastructure Through Vinci

CSC 5930/9010 Cloud S & P: Virtualization

Linux and Xen. Andrea Sarro. andrea.sarro(at)quadrics.it. Linux Kernel Hacking Free Course IV Edition

Virtualization. Michael Tsai 2018/4/16

Software Driven Verification at SoC Level. Perspec System Verifier Overview

Introduction. COMP9242 Advanced Operating Systems 2010/S2 Week 1

GlobalPlatform Trusted Execution Environment (TEE) for Mobile

Transcription:

Facing the Reality: Virtualization in a Microkernelbased Operating System Matthias Lange, MOS, January 26th, 2016 matthias.lange@kernkonzept.com

Today's take aways Microkernel systems are used to build real-world systems being deployed to customers Understand what's beyond CPU and memory virtualization Sharply distinguish between Nanovisor, Microvisor, Microhypervisor, Secuvisor, Trustvisor and Budweiser.

Short Recap Hypervisor vs. VMM Virtualization "styles" L4Linux

Virtualization Objectives Reuse existing/legacy software Security Consolidation

Microkernel as Hypervisor Less code, less errors Improvements over monolithic kernels Fault isolation Improved access control Flexibility Needs runtime environment

Fiasco.OC + L4Re 3rd gen. microkernel + runtime environment x86, ARM (and MIPS), SMP support, 64bit support SVM, VT-x, ARM VE, (MIPS VM) L4Re provides basic services Virtual Machines are just a special type of task State Page table

VM Non-root mode Root mode... Driver Service VMM (e.g. Karma) L4Re Runtime Environment L4Re Microkernel SVM / VT-x Support Ring 3 Ring 0 x86-style Virtualization

ARM Hardware Assisted Virtualization Non-secure World Secure World PL0 User Trusted Services PL1 Kernel Trusted OS Monitor

ARM Hardware Assisted Virtualization Non-secure World Secure World PL0 User User Trusted Services PL1 Kernel Kernel Trusted OS PL2 Hypervisor PL3 Monitor

ARM Hardware Assisted Virtualization Non-secure World Secure World PL0 User L4Re App Trusted Services PL1 Kernel VMM Trusted OS PL2 L4Re Microkernel PL3 Monitor

Virtualization: L4Linux Applicable to non-virtualizable platforms Binary compatible to native Firefox Gimp Up-to-date Linux L4Linux kernel Secure App Native App Infrastructure Microkernel Hardware (CPU, Memory, Devices)

Taming the Robots

Device Accumulation Private Business Development You name it

Security Emerging threats Existing OS not secure Future applications ehealth Mobile payment (NFC) Encrypted voice and text

Security cont. "Everybody" wants its own secure smartphone Governments Businesses

What can we do? picture www.norebbo.com

Patch OS? Bad update record Fragmentation

Add security layer?* Change middleware Improve permission model cf. Butler Lampson, 1972

L4Android Framework Make L4Linux run Android

Applications Browser VPN Secure Voice Phone Home Contacts Calendar Email Application Framework Notification Manager Activity Manager Window Manager Resource Manager Package Manager Telephony Manager Location Manager Media Manager Surface Manager Crypto Manager User Linux Kernel Kernel Display Driver Camera Driver Flash Driver NFC Driver Power Mgmt Audio Driver... Keypad Driver Wifi Driver Smartcard Instead of this...

Applications Browser VPN Secure Voice Phone Home Contacts Calendar Email Application Framework Notification Manager Activity Manager Window Manager Resource Manager Package Manager Telephony Manager Location Manager Media Manager Surface Manager Crypto Manager Glue / HAL Platform support Display Driver Camera Driver Flash Driver NFC Driver Power Mgmt Audio Driver... Keypad Driver Wifi Driver Smartcard User Microkernel Kernel... we want this

Steps and Building Blocks picture www.norebbo.com

Prototype Architecture VM (private) VM Android userlevel software stack (unmodified) Busybox L4Android Kernel L4Android Kernel Platform support & device drivers mag fb-drv L4Linux (GPIO, Touch, Display, ) Runtime Environment sigma0 io moe Fiasco.OC

Cebit 2011 Intel Moorestown prototype Virtualized Android + 2nd Linux + driver Linux No direct hardware access Only touchscreen and display No sensors No network

Implementation Steps Patch L4Linux with Android binder, wakelocks, ashmem, GPIO subsystem Required for touchscreen and display fb-drv: MMIO replay from Linux driver

Towards the L4Android Framework Support for ARM and x86 Android Generic hardware interface for both architectures Require no hardware modifications or extensions

Screenshot

VM (private) VM (dev) VM (business) Android! (unmodified) Android HAL L4Android Kernel Paravirt Drivers Android! (unmodified) Android HAL L4Android Kernel Paravirt Drivers Android! (unmodified) Android HAL L4Android Kernel Paravirt Drivers Platform support & device drivers Display Touch Sensors Power Source Low level busses Clocks GPIO Timer L4Linux (Fileserver, ) Runtime Environment Memory Mgr IO Mgr Roottask Microkernel User Kernel L4Android Architecture

Applications picture www.norebbo.com

Easy to use!

Usability vs. Security Security == bad usability

SiMKo

SiMKo3 Requirements Open Source Solution Emphasis on security (MAC, small TCB) Reuse legacy software with existing VS-NfD approval Commodity OS

VM (private) VM (business) Android! (unmodified) Android HAL L4Android Kernel Paravirt Drivers Simple Userland, no UI!! VPN, Multiplexing Driver L4Linux!! (Modem, Storage, Smartcard, Audio) Android! (unmodified) Android HAL L4Android Kernel Paravirt Drivers Platform support & device drivers Display Touch Sensors Power Source Power Mgmt I2C SPI GPIO Timer Clocks Runtime Environment Memory Mgr IO Mgr Roottask Microkernel User Kernel SiMKo3 Architecture Multi-server OS

Life & Work picture www.telekom.de

Ultimate Goal

How? L4Windows? No source code (well, ReactOS) Port Wine to L4Re? Compatibility Develop VMM? Implement legacy devices Port existing VMM? KVM

L4KVM Feature-rich VMM (read: runs Windows) x86, requires CPU with hardware assisted virtualization Use KVM from within L4Linux Modify KVM to use Fiasco.OC's virtualization API Configure VMCS Handle guest memory Helpful test case

VM Non-root mode Qemu Root mode L4Linux KVM-L4 L4Re Runtime Environment L4Re Microkernel SVM / VT-x Support L4KVM Architecture

L4KVM Status Linux guests 32bit 64bit AMD SVM Intel Vt-x

Genua Security Laptop

Internet Corporate LAN

VM L4Linux KVM Userland, no UI!! VPN, Firewall L4OpenBSD Runtime Environment Memory Mgr IO Mgr Roottask Microkernel User Kernel Under the Hood

Challenges picture www.norebbo.com

How to boot for fast development cycles? Custom bootloader with USB and fastboot support.

Is there a serial interface? Multiplexed via micro USB port or audio jack.

How to develop native drivers? Read TRMs with 5000+ pages. Read Linux drivers.

Reuse proprietary binary blobs? 3G baseband Audio! Use L4Linux as driver

Power management? Frequency scaling Shutdown idle cores

Today's take aways Microkernel systems are used to build real-world systems being deployed to customers Understand what's beyond CPU and memory virtualization Sharply distinguish between Nanovisor, Microvisor, Microhypervisor, Secuvisor, Trustvisor and Budweiser.

*visor nomenclature

VM VM VMM VMM Nanovisor Nanovisor

VM VM VMM VMM Microvisor Microvisor

VM VM VMM VMM Microhypervisor Microhypervisor

VM VM VMM VMM Trustvisor Trustvisor

VM VM VMM VMM Secuvisor Secuvisor

Budweiser