RevNIC. Reverse Engineering of Binary Device Drivers. Vitaly Chipounov and George Candea School of Computer & Communica3on Sciences
|
|
|
- Mervyn Burns
- 10 years ago
- Views:
Transcription
1 RevNIC Reverse Engineering of Binary Device Drivers Vitaly Chipounov and George Candea School of Computer & Communica3on Sciences
2 Drivers: Hard to Write and Hard to Port Drivers are closed source Por3ng from exis3ng drivers is difficult Devices rarely come with an interface specificadon Hard to write a driver from scratch SpecificaDons are o@en incomplete and buggy Buggy driver implementa3on
3 ExisDng SoluDons EmulaDng source OS (VMs, NDISwrapper...) Run 3me overhead, hard to maintain Making drivers from specificadons (Termite) Requires formal specifica3ons Manual trace analysis, decompiladon Tedious, imprecise
4 Windows Windows Linux KitOS μc/os II x86 PC Virtual Machines FPGA
5 RevNIC Virtual Machine Guest OS Original Binary Driver Driver Exerciser Hardware interac3on traces RevNIC Code Synthesizer NIC Driver Template SyntheDc Driver
6 RevNIC Virtual Machine Guest OS Original Binary Driver Driver Exerciser Hardware interac3on traces RevNIC Code Synthesizer NIC Driver Template SyntheDc Driver
7 RevNIC Virtual Machine Guest OS Original Binary Driver Driver Exerciser Hardware interac3on traces RevNIC Code Synthesizer NIC Driver Template SyntheDc Driver
8 RevNIC Virtual Machine Guest OS Original Binary Driver Driver Exerciser Hardware interac3on traces RevNIC Code Synthesizer NIC Driver Template SyntheDc Driver
9 High Coverage Driver Exerciser Hand workload is not enough
10 int irq_handler(device_t *dev) { status = hw_read(status_reg); if (status == RX){ pkt_size = hw_read(rx_size_reg); if (pkt_size < 1514) { recv_packet(dev); else { drop_packet(dev); else if (status == TX) {...
11 int irq_handler(device_t *dev) { status = hw_read(status_reg); if (status == RX){ pkt_size = hw_read(rx_size_reg); if (pkt_size < 1514) { recv_packet(dev); else { drop_packet(dev); else if (status == TX) {... Boundary condidons Error recovery code
12 int irq_handler(device_t *dev) { status = hw_read(status_reg); if (status == RX){ pkt_size = hw_read(rx_size_reg); if (pkt_size < 1514) { recv_packet(dev); else { drop_packet(dev); else if (status == TX) {...
13 int irq_handler(device_t *dev) { status = hw_read(status_reg); if (status == RX){ pkt_size = hw_read(rx_size_reg); if (pkt_size < 1514) { recv_packet(dev); else { drop_packet(dev); else if (status == TX) {...
14 int irq_handler(device_t *dev) { status = hw_read(status_reg); if (status == RX){ pkt_size = hw_read(rx_size_reg); if (pkt_size < 1514) { recv_packet(dev); else { drop_packet(dev); else if (status == TX) {... status == TX status == RX F T drop packet pkt_size < 1514 receive packet
15 int irq_handler(device_t *dev) { status = hw_read(status_reg); if (status == RX){ pkt_size = hw_read(rx_size_reg); if (pkt_size < 1514) { recv_packet(dev); else { drop_packet(dev); else if (status == TX) {... status == TX status == RX F T drop packet pkt_size < 1514 receive packet High coverage automated driver exerciser
16 explorer.exe... advapi32.dll Applications and... libraries msvcrt.dll ntdll.dll user32.dll... Device Drivers Windows Kernel ndis.sys rtl8139.sys...
17 Exercising Windows NIC Drivers NICDRIVER.SYS IniDalize(...) QueryInformaDon(...)... SendPacket(...) HandleInterrupt(...) Unload(...)
18 Exercising Windows NIC Drivers NICDRIVER.SYS IniDalize(...) QueryInformaDon(...)... SendPacket(...) HandleInterrupt(...) Unload(...)
19 Exercising Windows NIC Drivers IniDalize(...)
20 Exercising Windows NIC Drivers IniDalize(...)
21 Exercising Windows NIC Drivers IniDalize(...)
22 IniDalize(...)
23 IniDalize(...) Send(..., Packet,...)
24 IniDalize(...) 001a706650e3... Send(..., Packet,...)
25 IniDalize(...) α β γ δ ε ϛ... Send(..., Packet,...)
26 α β γ δ ε ϛ... Send(..., Packet,...)
27 α β γ δ ε ϛ... Send(..., Packet,...) Interrupt
28 α β γ δ ε ϛ... Send(..., Packet,...) Interrupt HandleInterrupt(...)
29 (..., Packet,...) Interrupt dleinterrupt(...)
30 (..., Packet,...) Interrupt dleinterrupt(...) Unload(...)
31 RevNIC Virtual Machine Guest OS Original Binary Driver Driver Exerciser Hardware interac3on traces RevNIC Code Synthesizer NIC Driver Template SyntheDc Driver
32 RevNIC Virtual Machine Guest OS Original Binary Driver Driver Exerciser Hardware interac,on traces RevNIC Code Synthesizer NIC Driver Template SyntheDc Driver
33 Hardware InteracDon Traces Virtual Machine Guest OS Original Binary Driver Driver Exerciser ExecuDon tree Machine instrucdons Memory accesses Register values (Memory Mapped) I/O Trace Files
34 RevNIC Virtual Machine Guest OS Original Binary Driver Driver Exerciser Hardware interac,on traces RevNIC Code Synthesizer NIC Driver Template SyntheDc Driver
35 RevNIC Virtual Machine Guest OS Original Binary Driver Driver Exerciser Hardware interac3on traces RevNIC Code Synthesizer NIC Driver Template Traces C code SyntheDc Driver
36 ExecuDon Tree
37 ExecuDon Tree Sequences of basic blocks BB 1 BB 2 BB 3 BB 4 BB 5 BB 6 BB 7 Trace #1
38 ExecuDon Tree Sequences of basic blocks BB 1 BB 2 BB 3 BB 4 BB 5 BB 6 BB 7 BB 1 BB 2 BB 3 BB 4 BB 8 BB 9 BB 7 Trace #1 Trace #2
39 BB 1 BB 2 BB 3 BB 4 BB 5 BB 6 BB 7 BB 1 BB 2 BB 3 BB 4 BB 8 BB 9 BB 7 Trace #1 Trace #2
40 BB 1 BB 2 BB 3 BB 4 BB 5 BB 6 BB 7 BB 1 BB 2 BB 3 BB 4 BB 8 BB 9 BB 7 Trace #1 Trace #2
41 BB 1 BB 2 BB 3 BB 4 BB 1 BB 2 BB 3 BB 4 BB 1 BB 2 BB 3 BB 4 BB 5 BB 8 BB 6 BB 5 BB 8 BB 9 BB 7 BB 6 BB 9 BB 7 Trace #1 BB 7 Trace #2
42 CFG BB 1 BB 2 BB 3 BB 4 BB 1 BB 2 BB 3 BB 4 BB 1 BB 2 BB 3 BB 4 BB 5 BB 8 BB 6 BB 5 BB 8 BB 9 BB 7 BB 6 BB 9 BB 7 Trace #1 BB 7 Trace #2
43 CFG BB 1 BB 2 BB 3 BB 4 BB 5 BB 8 BB 6 BB 9 BB 7
44 CFG BB 1 BB 2 BB 3 BB 4 uint32_t function_0001(...) { BB1: BB2: BB3: BB4: BB 5 BB 6 BB 8 BB 9 BB5: BB6: BB8: BB9: BB 7 BB7:
45 BB 5 BB 6 CFG BB 1 BB 2 BB 3 BB 4 BB 7 BB 8 BB 9 uint32_t function_0001(uint32_t param1, uint32_t param2) { /*... */ BB1: goto BB2; BB2: v1 = read_port(param1); BB3: v2 = read_port(param2); BB4: if (v1 & 0x21) goto BB8; BB5: write_port(param2, 0x1234); BB6: goto BB7; BB8: write_port(param1, 0x4567); BB9: goto BB7; BB7:
46 RevNIC Virtual Machine Guest OS Original Binary Driver Driver Exerciser Hardware interac3on traces RevNIC Code Synthesizer NIC Driver Template Traces C code SyntheDc Driver
47 RevNIC Virtual Machine Guest OS Original Binary Driver Driver Exerciser Hardware interac3on traces RevNIC Code Synthesizer Traces C code NIC Driver Template C code driver SyntheDc Driver
48 Device Driver Structure Hardware facing funcdons Automa3cally synthesized by RevNIC OS facing funcdons Provided by the driver template
49 Hardware InteracDon Code Template Driver
50 Linux Network Driver Template Templates contain OSspecific boilerplate int pci_nic_init(...) { /* Allocate device resources */ i = pci_enable_device (pdev); if (i) {... ioaddr = pci_resource_start (pdev, 0); irq = pdev->irq; if (request_region (ioaddr, ADDR_RANGE, DRV_NAME) == NULL) {... /* * Insert device detection code here * */ /* Allocate private memory */ dev = alloc_netdev(...); if (!dev) {... /* Register entry points */...
51 Linux Network Driver Template Templates contain OSspecific boilerplate int pci_nic_init(...) { /* Allocate device resources */ i = pci_enable_device (pdev); if (i) {... ioaddr = pci_resource_start (pdev, 0); irq = pdev->irq; if (request_region (ioaddr, ADDR_RANGE, DRV_NAME) == NULL) {... /* * Insert device detection code here * */ /* Allocate private memory */ dev = alloc_netdev(...); if (!dev) {... /* Register entry points */...
52 int pci_nic_init(...) { /* Allocate device resources */ i = pci_enable_device (pdev); if (i) {... ioaddr = pci_resource_start (pdev, 0); irq = pdev->irq; if (request_region (ioaddr, ADDR_RANGE, DRV_NAME) == NULL) {... /* * Insert device detection code here * */ /* Allocate private memory */ dev = alloc_netdev(...); if (!dev) {... /* Register entry points */...
53 int pci_nic_init(...) { /* Allocate device resources */ i = pci_enable_device (pdev); if (i) {... ioaddr = pci_resource_start (pdev, 0); irq = pdev->irq; if (request_region (ioaddr, ADDR_RANGE, DRV_NAME) == NULL) {... /* * Insert device detection code here * */ Placeholders for hardware interacdon /* Allocate private memory */ dev = alloc_netdev(...); if (!dev) {... /* Register entry points */...
54 int pci_nic_init(...) { /* Allocate device resources */ i = pci_enable_device (pdev); if (i) {... ioaddr = pci_resource_start (pdev, 0); irq = pdev->irq; if (request_region (ioaddr, ADDR_RANGE, DRV_NAME) == NULL) {... /* * Insert device detection code here * */ if (hw_checkdevice(ioaddr) < 0) { v1 = read_port(ioaddr); if (!(v1 & 1)) { goto lbl0; write_port(ioaddr, 0); lbl0: write_port(ioaddr, 1); /* Allocate private memory */ dev = alloc_netdev(...); if (!dev) {... /* Register entry points */...
55 RevNIC Virtual Machine Guest OS Original Binary Driver Driver Exerciser Hardware interac3on traces RevNIC Code Synthesizer NIC Driver Template SyntheDc Driver
56 RevNIC Virtual Machine Guest OS Original Binary Driver Driver Exerciser Hardware interac3on traces RevNIC Code Synthesizer NIC Driver Template SyntheDc Driver insmod revnic_driver.ko
57 ImplementaDon QEMU virtual machine 1 x86 to LLVM translator KLEE symbolic execudon engine 2 1 F. Bellard. QEMU, a Fast and Portable Dynamic Translator. In USENIX C. Cadar et al. KLEE: Unassisted and automa3c genera3on of high coverage tests for complex systems programs. In OSDI 2008.
58 EvaluaDon RevNIC can port network drivers between different OS plaiorms different hardware architectures SyntheDc drivers have good performance
59 Reverse Engineered Drivers Driver Size 1 AMD PCNet Realtek RTL8139 SMSC 91C111 Realtek RTL8029 (NE2000) 35 KB 20 KB 19 KB 18 KB 1 80% of Linux NIC drivers are smaller than 35KB
60 Target Plaiorms Windows Windows Linux KitOS μc/os II
61 Target Plaiorms Windows Windows Linux KitOS μc/os II x86 PC RTL8139
62 Target Plaiorms Windows Windows Linux KitOS μc/os II x86 PC VMware QEMU RTL8139 PCnet, NE2000
63 Target Plaiorms Windows Windows Linux KitOS μc/os II x86 PC RTL8139 VMware QEMU PCnet, NE2000 FPGA4U SMSC 91C111
64 EffecDveness RevNIC reverse engineers all relevant funcdonality IniDalizaDon, sending, recepdon, shutdown, DMA, etc.
65 Performance Throughput (Mbps) Windows KitOS Windows Windows Linux Original Windows Linux Windows Original UDP Packet Size (Bytes)
66 Performance Throughput (Mbps) Windows KitOS Windows Windows Linux Original Windows Linux Windows Original UDP Packet Size (Bytes)
67 Performance Throughput (Mbps) Windows KitOS Windows Windows Linux Original Windows Linux Windows Original UDP Packet Size (Bytes)
68 Performance Throughput (Mbps) Windows KitOS Windows Windows Linux Original Windows Linux Windows Original UDP Packet Size (Bytes)
69 PorDng Effort
70 PorDng Effort Virtual Machine Guest OS Original Binary Driver 80% basic block coverage ~20 min Zero manual effort Driver Exerciser
71 PorDng Effort Virtual Machine Guest OS Original Binary Driver 80% basic block coverage ~20 min Zero manual effort Driver Exerciser ~1 min RevNIC Code Synthesizer Zero manual effort
72 PorDng Effort Virtual Machine Guest OS Original Binary Driver Driver Exerciser 80% basic block coverage ~20 min Zero manual effort Few hours 5 days ~1 min RevNIC Code Synthesizer One Dme effort NIC Driver Template Zero manual effort
73 PorDng Effort Virtual Machine Guest OS Original Binary Driver Driver Exerciser 80% basic block coverage ~20 min Zero manual effort Few hours 5 days ~1 min RevNIC Code Synthesizer One Dme effort NIC Driver Template Zero manual effort SyntheDc Driver (e.g., Linux)
74 PorDng Effort RevNIC speeds up driver development Device Manual (Linux) RevNIC Persons Span Persons Span RTL years 1 1 week 91C years 1 4 days NE years 1 5 days PCNet 3 4 years 1 1 week
75 PorDng Effort RevNIC speeds up driver development Device Manual (Linux) RevNIC Persons Span Persons Span RTL years 1 1 week 91C years 1 4 days NE years 1 5 days PCNet 3 4 years 1 1 week
76 PorDng Effort RevNIC speeds up driver development Device Manual (Linux) RevNIC Persons Span Persons Span RTL years 1 1 week Mostly fixing undocumented quirks 91C years 1 4 days NE years 1 5 days PCNet 3 4 years 1 1 week
77 PorDng Effort RevNIC speeds up driver development Device Manual (Linux) RevNIC Persons Span Persons Span RTL years 1 1 week 91C years 1 4 days NE years 1 5 days PCNet 3 4 years 1 1 week
78 RevNIC Reverse engineering of driver s state machine from interacdon traces High coverage reverse engineering through symbolic execudon Using symbolic hardware for reverse engineering without access to original devices
79 RevNIC Reverse engineering of driver s state machine from interacdon traces High coverage reverse engineering through symbolic execudon Using symbolic hardware for reverse engineering without access to original devices
Reverse Engineering of Binary Device Drivers with RevNIC
Reverse Engineering of Binary Device Drivers with RevNIC Vitaly Chipounov and George Candea School of Computer and Communication Sciences École Polytechnique Fédérale de Lausanne (EPFL), Switzerland Abstract
Full and Para Virtualization
Full and Para Virtualization Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF x86 Hardware Virtualization The x86 architecture offers four levels
Virtualization Technologies
12 January 2010 Virtualization Technologies Alex Landau ([email protected]) IBM Haifa Research Lab What is virtualization? Virtualization is way to run multiple operating systems and user applications on
Virtualization System Vulnerability Discovery Framework. Speaker: Qinghao Tang Title:360 Marvel Team Leader
Virtualization System Vulnerability Discovery Framework Speaker: Qinghao Tang Title:360 Marvel Team Leader 1 360 Marvel Team Established in May 2015, the first professional could computing and virtualization
Introduction to Virtual Machines
Introduction to Virtual Machines Introduction Abstraction and interfaces Virtualization Computer system architecture Process virtual machines System virtual machines 1 Abstraction Mechanism to manage complexity
Chapter 14 Virtual Machines
Operating Systems: Internals and Design Principles Chapter 14 Virtual Machines Eighth Edition By William Stallings Virtual Machines (VM) Virtualization technology enables a single PC or server to simultaneously
Virtual machines and operating systems
V i r t u a l m a c h i n e s a n d o p e r a t i n g s y s t e m s Virtual machines and operating systems Krzysztof Lichota [email protected] A g e n d a Virtual machines and operating systems interactions
Advanced Computer Networks. Network I/O Virtualization
Advanced Computer Networks 263 3501 00 Network I/O Virtualization Patrick Stuedi Spring Semester 2014 Oriana Riva, Department of Computer Science ETH Zürich 1 Outline Last week: Today: Software Defined
Xen and the Art of. Virtualization. Ian Pratt
Xen and the Art of Virtualization Ian Pratt Keir Fraser, Steve Hand, Christian Limpach, Dan Magenheimer (HP), Mike Wray (HP), R Neugebauer (Intel), M Williamson (Intel) Computer Laboratory Outline Virtualization
Virtualization. Types of Interfaces
Virtualization Virtualization: extend or replace an existing interface to mimic the behavior of another system. Introduced in 1970s: run legacy software on newer mainframe hardware Handle platform diversity
Virtualization for Cloud Computing
Virtualization for Cloud Computing Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF CLOUD COMPUTING On demand provision of computational resources
Performance Evaluation of VMXNET3 Virtual Network Device VMware vsphere 4 build 164009
Performance Study Performance Evaluation of VMXNET3 Virtual Network Device VMware vsphere 4 build 164009 Introduction With more and more mission critical networking intensive workloads being virtualized
Cloud9 Parallel Symbolic Execution for Automated Real-World Software Testing
Cloud9 Parallel Symbolic Execution for Automated Real-World Software Testing Stefan Bucur, Vlad Ureche, Cristian Zamfir, George Candea School of Computer and Communication Sciences Automated Software Testing
Basics in Energy Information (& Communication) Systems Virtualization / Virtual Machines
Basics in Energy Information (& Communication) Systems Virtualization / Virtual Machines Dr. Johann Pohany, Virtualization Virtualization deals with extending or replacing an existing interface so as to
USB to RS-422/485 Serial Adapter
USB to RS-422/485 Serial Adapter User Manual Ver. 2.00 All brand names and trademarks are properties of their respective owners. Contents: Chapter 1: Introduction... 3 1.1 Product Introduction... 3 1.2
Datacenter Operating Systems
Datacenter Operating Systems CSE451 Simon Peter With thanks to Timothy Roscoe (ETH Zurich) Autumn 2015 This Lecture What s a datacenter Why datacenters Types of datacenters Hyperscale datacenters Major
Virtualization Technology. Zhiming Shen
Virtualization Technology Zhiming Shen Virtualization: rejuvenation 1960 s: first track of virtualization Time and resource sharing on expensive mainframes IBM VM/370 Late 1970 s and early 1980 s: became
Bridging the Gap between Software and Hardware Techniques for I/O Virtualization
Bridging the Gap between Software and Hardware Techniques for I/O Virtualization Jose Renato Santos Yoshio Turner G.(John) Janakiraman Ian Pratt Hewlett Packard Laboratories, Palo Alto, CA University of
Uses for Virtual Machines. Virtual Machines. There are several uses for virtual machines:
Virtual Machines Uses for Virtual Machines Virtual machine technology, often just called virtualization, makes one computer behave as several computers by sharing the resources of a single computer between
Assessing the Performance of Virtualization Technologies for NFV: a Preliminary Benchmarking
Assessing the Performance of Virtualization Technologies for NFV: a Preliminary Benchmarking Roberto Bonafiglia, Ivano Cerrato, Francesco Ciaccia, Mario Nemirovsky, Fulvio Risso Politecnico di Torino,
KVM: Kernel-based Virtualization Driver
KVM: Kernel-based Virtualization Driver White Paper Overview The current interest in virtualization has led to the creation of several different hypervisors. Most of these, however, predate hardware-assisted
Introduction to the NI Real-Time Hypervisor
Introduction to the NI Real-Time Hypervisor 1 Agenda 1) NI Real-Time Hypervisor overview 2) Basics of virtualization technology 3) Configuring and using Real-Time Hypervisor systems 4) Performance and
Xenomai: integration and qualification of a real time operating system ARMadeus Systems
: integration and qualification of a real time operating system ARMadeus Systems Gwenhaël 8 july 2009 1 / 22 Plan 1 2 3 of in a Buildroot environment 4 5 6 2 / 22 : basics Real time extension for Linux.
Dynamically Translating x86 to LLVM using QEMU
Dynamically Translating x86 to LLVM using QEMU Vitaly Chipounov and George Candea School of Computer and Communication Sciences École Polytechnique Fédérale de Lausanne (EPFL), Switzerland 1 Introduction
12. Introduction to Virtual Machines
12. Introduction to Virtual Machines 12. Introduction to Virtual Machines Modern Applications Challenges of Virtual Machine Monitors Historical Perspective Classification 332 / 352 12. Introduction to
COS 318: Operating Systems. Virtual Machine Monitors
COS 318: Operating Systems Virtual Machine Monitors Kai Li and Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall13/cos318/ Introduction u Have
VMware vsphere 5.0 Boot Camp
VMware vsphere 5.0 Boot Camp This powerful 5-day 10hr/day class is an intensive introduction to VMware vsphere 5.0 including VMware ESX 5.0 and vcenter. Assuming no prior virtualization experience, this
Virtualization. Pradipta De [email protected]
Virtualization Pradipta De [email protected] Today s Topic Virtualization Basics System Virtualization Techniques CSE506: Ext Filesystem 2 Virtualization? A virtual machine (VM) is an emulation
Virtual Machine in Automation Projects
Virtual Machine in Automation Projects Master Thesis Xiaoyuan Xing Department of Production Engineering and Management KTH, Sweden June 2010 0 Abstract Virtual machine, as an engineering tool, has recently
High-performance vnic framework for hypervisor-based NFV with userspace vswitch Yoshihiro Nakajima, Hitoshi Masutani, Hirokazu Takahashi NTT Labs.
High-performance vnic framework for hypervisor-based NFV with userspace vswitch Yoshihiro Nakajima, Hitoshi Masutani, Hirokazu Takahashi NTT Labs. 0 Outline Motivation and background Issues on current
VMware vsphere 5.1 Advanced Administration
Course ID VMW200 VMware vsphere 5.1 Advanced Administration Course Description This powerful 5-day 10hr/day class is an intensive introduction to VMware vsphere 5.0 including VMware ESX 5.0 and vcenter.
Optimizing Network Virtualization in Xen
Optimizing Network Virtualization in Xen Aravind Menon EPFL, Switzerland Alan L. Cox Rice university, Houston Willy Zwaenepoel EPFL, Switzerland Abstract In this paper, we propose and evaluate three techniques
Evading Android Emulator
Evading Android Emulator Thanasis Petsas [email protected] [email protected] - www.syssec-project.eu 1 What is a Virtual Machine? A software based computer that functions like a physical machine A
Hypervisors and Virtual Machines
Hypervisors and Virtual Machines Implementation Insights on the x86 Architecture DON REVELLE Don is a performance engineer and Linux systems/kernel programmer, specializing in high-volume UNIX, Web, virtualization,
x86 ISA Modifications to support Virtual Machines
x86 ISA Modifications to support Virtual Machines Douglas Beal Ashish Kumar Gupta CSE 548 Project Outline of the talk Review of Virtual Machines What complicates Virtualization Technique for Virtualization
Virtual Switching Without a Hypervisor for a More Secure Cloud
ing Without a for a More Secure Cloud Xin Jin Princeton University Joint work with Eric Keller(UPenn) and Jennifer Rexford(Princeton) 1 Public Cloud Infrastructure Cloud providers offer computing resources
Microkernels, virtualization, exokernels. Tutorial 1 CSC469
Microkernels, virtualization, exokernels Tutorial 1 CSC469 Monolithic kernel vs Microkernel Monolithic OS kernel Application VFS System call User mode What was the main idea? What were the problems? IPC,
Gigabit Ethernet Design
Gigabit Ethernet Design Laura Jeanne Knapp Network Consultant 1-919-254-8801 [email protected] www.lauraknapp.com Tom Hadley Network Consultant 1-919-301-3052 [email protected] HSEdes_ 010 ed and
I/O virtualization. Jussi Hanhirova Aalto University, Helsinki, Finland [email protected]. 2015-12-10 Hanhirova CS/Aalto
I/O virtualization Jussi Hanhirova Aalto University, Helsinki, Finland [email protected] Outline Introduction IIoT Data streams on the fly processing Network packet processing in the virtualized
Basics of Virtualisation
Basics of Virtualisation Volker Büge Institut für Experimentelle Kernphysik Universität Karlsruhe Die Kooperation von The x86 Architecture Why do we need virtualisation? x86 based operating systems are
Chapter 5 Cloud Resource Virtualization
Chapter 5 Cloud Resource Virtualization Contents Virtualization. Layering and virtualization. Virtual machine monitor. Virtual machine. Performance and security isolation. Architectural support for virtualization.
Hyper-V R2: What's New?
ASPE IT Training Hyper-V R2: What's New? A WHITE PAPER PREPARED FOR ASPE BY TOM CARPENTER www.aspe-it.com toll-free: 877-800-5221 Hyper-V R2: What s New? Executive Summary This white paper provides an
Outline. Outline. Why virtualization? Why not virtualize? Today s data center. Cloud computing. Virtual resource pool
Outline CS 6V81-05: System Security and Malicious Code Analysis Overview of System ization: The most powerful platform for program analysis and system security Zhiqiang Lin Department of Computer Science
Next Generation Operating Systems
Next Generation Operating Systems Zeljko Susnjar, Cisco CTG June 2015 The end of CPU scaling Future computing challenges Power efficiency Performance == parallelism Cisco Confidential 2 Paradox of the
www.see-grid-sci.eu Regional SEE-GRID-SCI Training for Site Administrators Institute of Physics Belgrade March 5-6, 2009
SEE-GRID-SCI Virtualization and Grid Computing with XEN www.see-grid-sci.eu Regional SEE-GRID-SCI Training for Site Administrators Institute of Physics Belgrade March 5-6, 2009 Milan Potocnik University
Date: December 2009 Version: 1.0. How Does Xen Work?
Date: December 2009 Version: 1.0 How Does Xen Work? Table of Contents Executive Summary... 3 Xen Environment Components... 3 Xen Hypervisor... 3... 4 Domain U... 4 Domain Management and Control... 6 Xend...
Enhancing Hypervisor and Cloud Solutions Using Embedded Linux Iisko Lappalainen MontaVista
Enhancing Hypervisor and Cloud Solutions Using Embedded Linux Iisko Lappalainen MontaVista Setting the Stage This presentation will discuss the usage of Linux as a base component of hypervisor components
Virtualised MikroTik
Virtualised MikroTik MikroTik in a Virtualised Hardware Environment Speaker: Tom Smyth CTO Wireless Connect Ltd. Event: MUM Krackow Feb 2008 http://wirelessconnect.eu/ Copyright 2008 1 Objectives Understand
Architecture of the Kernel-based Virtual Machine (KVM)
Corporate Technology Architecture of the Kernel-based Virtual Machine (KVM) Jan Kiszka, Siemens AG, CT T DE IT 1 Corporate Competence Center Embedded Linux [email protected] Copyright Siemens AG 2010.
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
Virtual Machines. COMP 3361: Operating Systems I Winter 2015 http://www.cs.du.edu/3361
s COMP 3361: Operating Systems I Winter 2015 http://www.cs.du.edu/3361 1 Virtualization! Create illusion of multiple machines on the same physical hardware! Single computer hosts multiple virtual machines
Windows Server 2008 R2 Hyper-V Live Migration
Windows Server 2008 R2 Hyper-V Live Migration Table of Contents Overview of Windows Server 2008 R2 Hyper-V Features... 3 Dynamic VM storage... 3 Enhanced Processor Support... 3 Enhanced Networking Support...
Virtualization in Linux KVM + QEMU
CS695 Topics in Virtualization and Cloud Computing KVM + QEMU Senthil, Puru, Prateek and Shashank 1 Topics covered KVM and QEMU Architecture VTx support CPU virtualization in KMV Memory virtualization
Automatic Logging of Operating System Effects to Guide Application-Level Architecture Simulation
Automatic Logging of Operating System Effects to Guide Application-Level Architecture Simulation Satish Narayanasamy, Cristiano Pereira, Harish Patil, Robert Cohn, and Brad Calder Computer Science and
Intel Virtualization Technology
Intel Virtualization Technology Examining VT-x and VT-d August, 2007 v 1.0 Peter Carlston, Platform Architect Embedded & Communications Processor Division Intel, the Intel logo, Pentium, and VTune are
Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai 2007. Jens Onno Krah
(DSF) Soft Core Prozessor NIOS II Stand Mai 2007 Jens Onno Krah Cologne University of Applied Sciences www.fh-koeln.de [email protected] NIOS II 1 1 What is Nios II? Altera s Second Generation
Where IT perceptions are reality. Test Report. OCe14000 Performance. Featuring Emulex OCe14102 Network Adapters Emulex XE100 Offload Engine
Where IT perceptions are reality Test Report OCe14000 Performance Featuring Emulex OCe14102 Network Adapters Emulex XE100 Offload Engine Document # TEST2014001 v9, October 2014 Copyright 2014 IT Brand
VON/K: A Fast Virtual Overlay Network Embedded in KVM Hypervisor for High Performance Computing
Journal of Information & Computational Science 9: 5 (2012) 1273 1280 Available at http://www.joics.com VON/K: A Fast Virtual Overlay Network Embedded in KVM Hypervisor for High Performance Computing Yuan
CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study
CS 377: Operating Systems Lecture 25 - Linux Case Study Guest Lecturer: Tim Wood Outline Linux History Design Principles System Overview Process Scheduling Memory Management File Systems A review of what
EXPLORING LINUX KERNEL: THE EASY WAY!
EXPLORING LINUX KERNEL: THE EASY WAY! By: Ahmed Bilal Numan 1 PROBLEM Explore linux kernel TCP/IP stack Solution Try to understand relative kernel code Available text Run kernel in virtualized environment
Virtualization. Jukka K. Nurminen 23.9.2015
Virtualization Jukka K. Nurminen 23.9.2015 Virtualization Virtualization refers to the act of creating a virtual (rather than actual) version of something, including virtual computer hardware platforms,
Performance Profiling in a Virtualized Environment
Performance Profiling in a Virtualized Environment Jiaqing Du EPFL, Switzerland Nipun Sehrawat IIT Guwahati, India Willy Zwaenepoel EPFL, Switzerland Abstract Virtualization is a key enabling technology
Intel DPDK Boosts Server Appliance Performance White Paper
Intel DPDK Boosts Server Appliance Performance Intel DPDK Boosts Server Appliance Performance Introduction As network speeds increase to 40G and above, both in the enterprise and data center, the bottlenecks
Performance Analysis of Large Receive Offload in a Xen Virtualized System
Performance Analysis of Large Receive Offload in a Virtualized System Hitoshi Oi and Fumio Nakajima The University of Aizu, Aizu Wakamatsu, JAPAN {oi,f.nkjm}@oslab.biz Abstract System-level virtualization
IxChariot Virtualization Performance Test Plan
WHITE PAPER IxChariot Virtualization Performance Test Plan Test Methodologies The following test plan gives a brief overview of the trend toward virtualization, and how IxChariot can be used to validate
High-performance vswitch of the user, by the user, for the user
A bird in cloud High-performance vswitch of the user, by the user, for the user Yoshihiro Nakajima, Wataru Ishida, Tomonori Fujita, Takahashi Hirokazu, Tomoya Hibi, Hitoshi Matsutahi, Katsuhiro Shimano
IOS110. Virtualization 5/27/2014 1
IOS110 Virtualization 5/27/2014 1 Agenda What is Virtualization? Types of Virtualization. Advantages and Disadvantages. Virtualization software Hyper V What is Virtualization? Virtualization Refers to
Toward a practical HPC Cloud : Performance tuning of a virtualized HPC cluster
Toward a practical HPC Cloud : Performance tuning of a virtualized HPC cluster Ryousei Takano Information Technology Research Institute, National Institute of Advanced Industrial Science and Technology
Networking Virtualization Using FPGAs
Networking Virtualization Using FPGAs Russell Tessier, Deepak Unnikrishnan, Dong Yin, and Lixin Gao Reconfigurable Computing Group Department of Electrical and Computer Engineering University of Massachusetts,
Performance Evaluation of Linux Bridge
Performance Evaluation of Linux Bridge James T. Yu School of Computer Science, Telecommunications, and Information System (CTI) DePaul University ABSTRACT This paper studies a unique network feature, Ethernet
The Plan Today... System Calls and API's Basics of OS design Virtual Machines
System Calls + The Plan Today... System Calls and API's Basics of OS design Virtual Machines System Calls System programs interact with the OS (and ultimately hardware) through system calls. Called when
OPTIMIZE DMA CONFIGURATION IN ENCRYPTION USE CASE. Guillène Ribière, CEO, System Architect
OPTIMIZE DMA CONFIGURATION IN ENCRYPTION USE CASE Guillène Ribière, CEO, System Architect Problem Statement Low Performances on Hardware Accelerated Encryption: Max Measured 10MBps Expectations: 90 MBps
Virtual Machines. Virtualization
Virtual Machines Marie Roch Tanenbaum 8.3 contains slides from: Tanenbaum 3 rd ed. 2008 1 Virtualization Started with the IBM System/360 in the 1960s Basic concept simulate multiple copies of the underlying
The XenServer Product Family:
The XenServer Product Family: A XenSource TM White Paper Virtualization Choice for Every Server: The Next Generation of Server Virtualization The business case for virtualization is based on an industry-wide
Wireshark in a Multi-Core Environment Using Hardware Acceleration Presenter: Pete Sanders, Napatech Inc. Sharkfest 2009 Stanford University
Wireshark in a Multi-Core Environment Using Hardware Acceleration Presenter: Pete Sanders, Napatech Inc. Sharkfest 2009 Stanford University Napatech - Sharkfest 2009 1 Presentation Overview About Napatech
Comparative Study of Virtual Machine Software Packages with Real Operating System
Master Thesis Electrical Engineering June 2012 Comparative Study of Virtual Machine Software Packages with Real Operating System Arunkumar Jayaraman Pavankumar Rayapudi School of Computing Blekinge Institute
KVM, OpenStack, and the Open Cloud
KVM, OpenStack, and the Open Cloud Adam Jollans, IBM & Mike Kadera, Intel CloudOpen Europe - October 13, 2014 13Oct14 Open VirtualizaGon Alliance 1 Agenda A Brief History of VirtualizaGon KVM Architecture
Hardware Based Virtualization Technologies. Elsie Wahlig [email protected] Platform Software Architect
Hardware Based Virtualization Technologies Elsie Wahlig [email protected] Platform Software Architect Outline What is Virtualization? Evolution of Virtualization AMD Virtualization AMD s IO Virtualization
DPDK Summit 2014 DPDK in a Virtual World
DPDK Summit 2014 DPDK in a Virtual World Bhavesh Davda (Sr. Staff Engineer, CTO Office, ware) Rashmin Patel (DPDK Virtualization Engineer, Intel) Agenda Data Plane Virtualization Trends DPDK Virtualization
Embedded Software development Process and Tools: Lesson-4 Linking and Locating Software
Embedded Software development Process and Tools: Lesson-4 Linking and Locating Software 1 1. Linker 2 Linker Links the compiled codes of application software, object codes from library and OS kernel functions.
Virtualization of Linux based computers: the Linux-VServer project
Virtualization of Linux based computers: the Linux-VServer project Benoît t des Ligneris, Ph. D. [email protected] Objectives: Objectives: 1) Present the available programs that can
VMWARE VSPHERE 5.0 WITH ESXI AND VCENTER
VMWARE VSPHERE 5.0 WITH ESXI AND VCENTER CORPORATE COLLEGE SEMINAR SERIES Date: April 15-19 Presented by: Lone Star Corporate College Format: Location: Classroom instruction 8 a.m.-5 p.m. (five-day session)
Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com
Best Practises for LabVIEW FPGA Design Flow 1 Agenda Overall Application Design Flow Host, Real-Time and FPGA LabVIEW FPGA Architecture Development FPGA Design Flow Common FPGA Architectures Testing and
Concurrent Direct Network Access for Virtual Machine Monitors
Concurrent Direct Network Access for Virtual Machine Monitors Paul Willmann Jeffrey Shafer David Carr Aravind Menon Scott Rixner Alan L. Cox Willy Zwaenepoel Rice University Houston, TX {willmann,shafer,dcarr,rixner,alc}@rice.edu
Virtualizing a Virtual Machine
Virtualizing a Virtual Machine Azeem Jiva Shrinivas Joshi AMD Java Labs TS-5227 Learn best practices for deploying Java EE applications in virtualized environment 2008 JavaOne SM Conference java.com.sun/javaone
Intel Virtualization Technology Overview Yu Ke
Intel Virtualization Technology Overview Yu Ke SSG System Software Division Agenda Virtualization Overview Intel Virtualization Technology 2 What is Virtualization VM 0 VM 1 VM n Virtual Machines (VMs)
Networked I/O for Virtual Machines
Networked I/O for Virtual Machines Approaches and Challenges Muli Ben-Yehuda, Ben-Ami Yassour, Orit Wasserman {muli,benami,oritw}@il.ibm.com IBM Haifa Research Lab Networked I/O for Virtual Machines p.
Virtualization. Explain how today s virtualization movement is actually a reinvention
Virtualization Learning Objectives Explain how today s virtualization movement is actually a reinvention of the past. Explain how virtualization works. Discuss the technical challenges to virtualization.
A Comparison of VMware and {Virtual Server}
A Comparison of VMware and {Virtual Server} Kurt Lamoreaux Consultant, MCSE, VCP Computer Networking and Consulting Services A Funny Thing Happened on the Way to HP World 2004 Call for speakers at the
Knut Omang Ifi/Oracle 19 Oct, 2015
Software and hardware support for Network Virtualization Knut Omang Ifi/Oracle 19 Oct, 2015 Motivation Goal: Introduction to challenges in providing fast networking to virtual machines Prerequisites: What
OS Virtualization Frank Hofmann
OS Virtualization Frank Hofmann OP/N1 Released Products Engineering Sun Microsystems UK Overview Different approaches to virtualization > Compartmentalization > System Personalities > Virtual Machines
Virtual Machines. Virtual Machines
Virtual Machines Virtual Machines What is a virtual machine? Examples? Benefits? 1 Virtualization Creation of an isomorphism that maps a virtual guest system to a real host: Maps guest state S to host
Leveraging NIC Technology to Improve Network Performance in VMware vsphere
Leveraging NIC Technology to Improve Network Performance in VMware vsphere Performance Study TECHNICAL WHITE PAPER Table of Contents Introduction... 3 Hardware Description... 3 List of Features... 4 NetQueue...
Beyond the Hypervisor
Beyond the Hypervisor A Technical Roadmap for Open Virtualization, Linux, KVM Mike Day Distinguished Engineer, Chief Virtualization Architect, Open Systems Development Saturday, February 22, 2014 1 [email protected]
Virtualization Strategy with Oracle VM and Oracle Linux. Bjorn Naessens
with Oracle VM and Bjorn Naessens Join the buzz: Wifi pass: BANQ Twitter #oracleopenxperience @oopenxperience 2 About me Certifications OVM 2.x/3.x Implementation Specialist 5.x Certified Administrator
Linux Driver Devices. Why, When, Which, How?
Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may
Programmable Networking with Open vswitch
Programmable Networking with Open vswitch Jesse Gross LinuxCon September, 2013 2009 VMware Inc. All rights reserved Background: The Evolution of Data Centers Virtualization has created data center workloads
