Binary Translation for Fun and Profit



Similar documents
HP OpenVMS Migration Software for Alpha to Integrity Servers Guide to Translating Images

Overview. CISC Developments. RISC Designs. CISC Designs. VAX: Addressing Modes. Digital VAX

HP OpenVMS System Manager s Manual, Volume 2: Tuning, Monitoring, and Complex Systems

Motorola 8- and 16-bit Embedded Application Binary Interface (M8/16EABI)

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

HP Point of Sale (POS) Peripherals Configuration Guide ap5000 VFD Windows (non-opos)

HP AppPulse Mobile. Adding HP AppPulse Mobile to Your Android App

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

Tunable Base Page Size

Software Product Description

Common Internet File System

SERVER 101 COMPUTE MEMORY DISK NETWORK

FlowKit in-circuit debug system

OpenVMS Update & OpenVMS Common Internet File System based on SAMBA

UT69R000 MicroController Software Tools Product Brief

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Hewlett Packard. PRODUCT NAME: HP Distributed Computing Environment SPD (DCE) Version 3.2 for OpenVMS Systems

BEAWebLogic. Platform. 8.1 Supported Configurations: HP OpenVMS 7.3 on Alpha

Jonathan Worthington Scarborough Linux User Group

How To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint)

How to use PDFlib products with PHP

Lab Configure and Test Advanced Protocol Handling on the Cisco PIX Security Appliance

C++ Programming Language

The Advanced JTAG Bridge. Nathan Yawn 05/12/09

hp StorageWorks DS-KGPSA-CA/CX and FCA2354 PCI host bus adapters

HP-UX Role-Based Access Control B Release Notes

HP Intelligent Management Center v7.1 Virtualization Monitor Administrator Guide

VMware and CPU Virtualization Technology. Jack Lo Sr. Director, R&D

OpenView Operations Native Agent and Smart Plug-In for OpenVMS

The C Programming Language course syllabus associate level

Code Estimation Tools Directions for a Services Engagement

Legacy System: Migration Strategy

umps software development

C++ INTERVIEW QUESTIONS

ATF1500AS Device Family. Application Note. In-System Programming of Atmel ATF1500AS Devices on the HP3070. Introduction.

Python for Series 60 Platform

Computer Architecture Lecture 2: Instruction Set Principles (Appendix A) Chih Wei Liu 劉 志 尉 National Chiao Tung University

Embedded Software development Process and Tools:

Cloud Computing #6 - Virtualization

High level code and machine code

Table of Contents. Cisco Mapping Outbound VoIP Calls to Specific Digital Voice Ports

HP ThinPro. Table of contents. Enabling RemoteFX for RDP. Technical white paper

Eliminate Memory Errors and Improve Program Stability

Introduction to HP ArcSight ESM Web Services APIs

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

SIM900_Custom Application Building Tutorial_Application Note_V1.00

Frequently Asked Questions

HP USB Smartcard CCID Keyboard. User Guide

HP Operations Manager Software for Windows Integration Guide

POLYCENTER Software Installation Utility Developer s Guide

HP WBEM Services Software Developer's Kit Version A Release Notes. HP-UX 11i v3

Application Note: AN00141 xcore-xa - Application Development

Migrating Application Code from ARM Cortex-M4 to Cortex-M7 Processors

Ethernet/IP Comms between a WAGO and a Mettler Toledo JAGXTREME Terminal Application note

Modern Software Development Tools on OpenVMS

Integrating SNiFF+ with the Data Display Debugger (DDD)

INTEL PARALLEL STUDIO XE EVALUATION GUIDE

Multi Stage Filtering

GIVE WINGS TO YOUR IDEAS TOOLS MANUAL

Engine: Using MSBuild and Team Foundation

I Control Your Code Attack Vectors Through the Eyes of Software-based Fault Isolation. Mathias Payer, ETH Zurich

Section 1.4. Java s Magic: Bytecode, Java Virtual Machine, JIT,

Functional Requirements for Digital Asset Management Project version /30/2006

CSCI E 98: Managed Environments for the Execution of Programs

HP One-Button Disaster Recovery (OBDR) Solution for ProLiant Servers

SIM900 Eclipse environment install Application Note_V1.00

Freescale Semiconductor, I

CooCox CoIDE UserGuide Version: page 1. Free ARM Cortex M3 and Cortex M0 IDE: CooCox CoIDE UserGuide

Online Recruitment System 1. INTRODUCTION

Survivable SIP Gateway Application Guide

New Features in XE8. Marco Cantù RAD Studio Product Manager

HP StorageWorks MSL2024, MSL4048, and MSL8096 Tape Libraries firmware release notes. Firmware version 4.60 (MSL2024), 6.90 (MSL4048), 9.

File S1: Supplementary Information of CloudDOE

Archive Backup System for. for OpenVMS Installation Guide

Migrate AS 400 Applications to Windows, UNIX or Linux

Start Oracle Insurance Policy Administration. Activity Processing. Version

CHARON and real life

Oracle FLEXCUBE Direct Banking Android Tab Client Installation Guide Release

CA TPX Session Management r5.3

QuickSpecs. NVIDIA Quadro M GB Graphics INTRODUCTION. NVIDIA Quadro M GB Graphics. Overview

HP Business Service Management

EasyC. Programming Tips

Price: see your VeriFone sales representative. Per student, Excluding VAT.

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms

How To Develop Android On Your Computer Or Tablet Or Phone

Chapter 14 Analyzing Network Traffic. Ed Crowley

Strategies for migrating from Alpha and VAX systems to HP Integrity server systems on OpenVMS

SDN. WHITE PAPER Intel Ethernet Switch FM6000 Series - Software Defined Networking. Recep Ozdag Intel Corporation

IBM SDK, Java Technology Edition Version 1. IBM JVM messages IBM

Intel Virtualization Technology (VT) in Converged Application Platforms

SKP16C62P Tutorial 1 Software Development Process using HEW. Renesas Technology America Inc.

Working with the Cognos BI Server Using the Greenplum Database

WRITING HONEYPOINT PLUGINS WITH HONEYPOINT SECURITY SERVER

Transcription:

Binary Translation for Fun and Profit Andy Goldstein OpenVMS Engineering Andy.Goldstein@hp.com 2005 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice

What is Binary Translation? Transformation of an executable or shareable image into an equivalent image for another architecture Direct execution of compiled code Some code may be interpreted Interoperates with native OpenVMS environment System services Executable and shareable images OpenVMS files and other resources 09/21/05 Copyright 2005 HP corporate presentation. All rights reserved. 2

Why Translate? Yes: Source code not available Not performance critical Low usage / not worth porting effort No: Compute intensive / performance critical 4x 10x compute time penalty over recompile Inner mode execution Dynamically generated / modified code 09/21/05 Copyright 2005 HP corporate presentation. All rights reserved. 3

What Can be Translated? Main programs and shareable images User mode execution only Supported languages (RTL support): C, C++ Fortran Cobol Bliss Macro Programs that work (minimal debug capability) 09/21/05 Copyright 2005 HP corporate presentation. All rights reserved. 4

The Translation Process Analyze static branch targets Organize source code into basic blocks Generate object code for basic blocks Build branch table Build translated symbol vector, fixup sections, and shareable image list Write translated image file 09/21/05 Copyright 2005 HP corporate presentation. All rights reserved. 5

Translated Image Format Alpha image I64 image Image header Alpha code and data Branch table Translated I64 code Symbol vector, fixups, etc. 09/21/05 Copyright 2005 HP corporate presentation. All rights reserved. 6

Run Time Environment TIE = Translated Image Environment Automatically activated for any translated image Call jackets for argument list transformation Translated stack interpretation for exceptions Branch lookup Run time emulation for computed branches / missing code Other run time libraries May freely mix and match native & shareable images Must be interface compatible 09/21/05 Copyright 2005 HP corporate presentation. All rights reserved. 7

Translated Image Stack Native call frames TIE jacket frame Translated image call frames TIE jacket frame Native call frames 09/21/05 Copyright 2005 HP corporate presentation. All rights reserved. 8

Shareable Image Compatibility Native and translated images may be freely mixed Binary compatible interfaces Standard calls Argument order Data formats Native images must be compiled /TIE and linked /NONATIVE_ONLY Signatures for argument list translation Outbound calls with OTS$CALL_PROC 09/21/05 Copyright 2005 HP corporate presentation. All rights reserved. 9

Translated Image Names Translated image names are suffixed with _AV Translated image Shareable image references Need logical names for translated / native interoperability e.g., LIBRTL = LIBRTL_AV Included in VMS system startup for all VMS components 09/21/05 Copyright 2005 HP corporate presentation. All rights reserved. 10

Installing Free download from http://h71000.www7.hp.com/openvms/products/omsva/omsais.html Enter contact data Execute license agreement Download Documentation Translator PCSI kit (Alpha and I64 available) RTL PCSI kit (V8.2 only integrated with V8.2-1) Install PCSI kits 09/21/05 Copyright 2005 HP corporate presentation. All rights reserved. 11

Using the Translator $ AEST infile /EXECUTABLE=outfile (default = infile_av) /AUDIT just test for translatability /INTERPRET force full interpretation for output image /LIST output summary listing /DUMP output translated image components /AIIF=filename specify image idents and remap symbol vector names 09/21/05 Copyright 2005 HP corporate presentation. All rights reserved. 12

Resource Considerations Translated images are large I64 instruction stream encoding Limited optimization opportunities Typically 5x size Translator requires large address space May need to increase PGFLQUO 09/21/05 Copyright 2005 HP corporate presentation. All rights reserved. 13

What About the VAX? Translation of VAX translated (VESTed) images is supported! So... First translate VAX to Alpha with VEST Then translate Alpha to I64 with AEST Image name suffixed with _TV_AV Download VEST from http://h71000.www7.hp.com/openvms/products/omsva/omsva.html RTL kit (and V8.2-1 integrated RTLs) include translated VAX RTLs 09/21/05 Copyright 2005 HP corporate presentation. All rights reserved. 14

09/21/05 Copyright 2005 HP corporate presentation. All rights reserved. 15