Porting VB Applications to Linux and Mac OS X

Total Page:16

File Type:pdf, Size:1020Kb

Porting VB Applications to Linux and Mac OS X Porting VB Applications to Linux and Mac OS X A how-to guide for Visual Basic developers by Hank Marquis Hank Marquis has been using Visual Basic since version 1.0. He is author of A Visual Basic Programmer's Toolkit (APress), The Visual Basic 6.0 Bible (IDG) and over 35 articles published in CTO/BackOffice, Visual Basic Programmer's Journal (VBPJ), Visual Studio Magazine (VSM) and Microsoft MSDN. He is currently CTO of SlayFire Software Co., creating optimization and performance tools for REALbasic. Reach him at [email protected] or www.slayfiresoftware.com. Table of Contents Porting Options Beginning Assumptions Porting Considerations Language Keywords Code Syntax Data Types Language Structure User Interface Project Structure Platform APIs Other Considerations Visual Basic Project Converter Additional Resources Table 1. Porting Considerations Table 2. Visual Basic and REALbasic Datatypes Table 3. Getting Ready: The Step by Step Process Preparing Your Code to Use VB Project Converter © 2004 REAL Software, Inc. and Hank Marquis. All rights reserved. Page 1 of 17 Porting Visual Basic applications to Linux and Mac OS X A how-to guide for Visual Basic developers In this white paper, I'll show how you can preserve your investment in Visual Basic by porting your code to Linux and/or Macintosh using REAL Software's REALbasic. I'll provide some examples, share some experience and give you a roadmap for how to port—and how not to port—your Visual Basic apps cross- platform. My intent is to save you some time and pain. For porting our VB projects, we will use REALbasic 5.5.3 for Windows, a modern software development environment that is quite similar to Microsoft Visual Basic® in terms of the GUI and syntax. I also don't intend to provide a full comparison of Visual Basic and REALbasic but rather to show you where they are different in ways that will impact porting your project. Porting Options With the release of Visual Basic.Net, many Visual Basic developers felt abandoned. For the first time, a Visual Basic implementation could not open and run a previous version's source code. Visual Basic.Net requires Visual Basic developers to modify their code because .Net cannot run Visual Basic code. So, like it or not, if you are a Visual Basic developer who wants to take your Visual Basic code forward into new projects, you will be porting. Porting means learning and using new keywords, and keywords that don't work the same way they used to; in general, it's a fair amount of work. So, when I was faced with this dilemma, I asked myself what benefit I would get from porting to .Net. After learning a new language (.Net), significantly changing my source code, and struggling to create programs with a massive "framework" underneath them, I would have a program that ran under Windows. I then started to look into alternatives. If I had to go through the process of learning a new language and IDE, what else could I get? I then found REAL Software and REALbasic. REALbasic 5.5.3 for Windows is a modern, fully object-oriented software development environment (IDE), quite similar to Visual Basic. It could use much of my Visual Basic code unchanged, and it could read most of my Visual Basic forms. I could port my Visual Basic code to REALbasic, and at the end, my application would work under Windows—just like .Net. More importantly however, my ported application would also run under all 32-bit Windows (98/NT/ME/2000/XP) without the .Net framework; Linux (any Intel-based Linux running GTK2.0+ like © 2004 REAL Software, Inc. and Hank Marquis. All rights reserved. Page 2 of 17 SuSE or RedHat) and Mac (Mac OS X and Mac Classic). As an added benefit, there are no runtimes or "frameworks" required for an REALbasic application. In addition, my ported application would include the native interface widgets required to look great. In Windows XP for example, I was surprised that my REALbasic app takes on XP themes automatically! To demonstrate this, see following screenshots of applications compiled with REALbasic: Windows XP, Linux and Mac OS X Screenshots The decision was actually an easy one, as I had to port either way, either to .Net or REALbasic. At the end of the port I would have either a Windows app with huge runtime requirements, or an app that ran under Windows, Linux and Mac. The choice was clear. If I had to learn a new language and port, then I wanted a much bigger bang for the buck than was available with .Net. Beginning Assumptions I'll start with a few assumptions to make sure we're talking from the same frame of reference. I assume you want to move applications from Visual Basic to REALbasic for the reasons I gave above, that you want to create cross-platform applications from your Visual Basic projects, and that you are using Visual Basic 5 or Visual Basic 6 and REALbasic 5.5. I also assume you know something about Visual Basic and/or REALbasic. Porting Considerations To begin, the topics listed in Table 1 need to be taken into consideration as you think about porting your application. I will take these important considerations one by one. Remember, before you port to REALbasic, you should consider the work and re-work that might be required. After all, Linux and Mac operating systems are very different from Windows, and, just like .Net, not all your code or controls will port. Unlike .Net, at the end of your journey with REALbasic you will have a supported, truly cross-platform application! Let's go! © 2004 REAL Software, Inc. and Hank Marquis. All rights reserved. Page 3 of 17 Table 1. Porting Considerations Language Keywords Code Syntax Data Types Language Structure User Interface Project Structure Platform APIs Other considerations Language Keywords You will be pleasantly surprised by how many REALbasic and Visual Basic keywords work identically, including Left, Right, Asc, Str to name just a few. Almost all of your Visual Basic knowledge translates directly into REALbasic. Of course, there are some keywords that do not work the same. For example, in REALbasic, Mid cannot assign a string as the Mid statement in Visual Basic does: Mid(x,2,1) = "!" 'fails in REALbasic 'but is OK in Visual Basic Mid is a function (returns a substring) and a statement (modifies a string) in Visual Basic, but not in REALbasic. In REALBasic, Mid operates only as the function, so you need a replacement statement for Mid in REALbasic. [Note: REALbasic provides a module with such replacements.] Luckily, in REALbasic, unlike Visual Basic, you can have methods and functions with the same names, which makes sense since they are not equivalent in functionality. For example: Sub Mid(ByRef As String, StartPos As Integer, StopPos As Integer Assigns SubString As string) Text = left(text,StartPos-1) + SubString + Right(text,StopPos+1) End Sub creates a "replacement" for Mid, giving REALbasic a Mid statement in addition to the existing Mid function. Once written, you can then use Mid just like you do in Visual Basic. It's easy. Visual Basic makes it easy to write sloppy code, as we all know. Dynamic variable declarations, variants, Goto's, all add flexibility, but, if not used with care, can result in ugly and hard-to-maintain code. REALbasic is object-oriented, and is therefore stricter. For example, in REALbasic, you cannot use a variable without an explicit Dim. © 2004 REAL Software, Inc. and Hank Marquis. All rights reserved. Page 4 of 17 Visual Basic, on the other hand, allows explicit/dynamic variable creation and type casting with explicit variable casts such as $, %, #, @ etc., while REALbasic does not, as shown below: Left$ 'not portable Left 'portable So, before you port to REALbasic, one of the most important things you can do is to clean up your Visual Basic code! Remove variable casts ($, #, %, etc.) from your code. Use Option Explicit to help locate all un-declared dynamic variables in use, and declare them. As with any language, reserved keywords may conflict. REALbasic has a built-in String class, and the name String is reserved in REALbasic, making the Visual Basic String keyword incompatible. In this case, you'll need to change your Visual Basic code after opening it in REALbasic. Then, you'll need to write a replacement function for String, then find and replace all Visual Basic String keywords with the replacement. REALbasic and Visual Basic each have some unique keywords as well. For example, Visual Basic has Space and Int. While REALbasic does not have these, they are easily created in REALbasic, like this: Function Int (Value As Integer) As Integer Return Value \ 1 End Function On the other hand, REALbasic has Min, Max & CountFields; where Visual Basic does not. REALbasic and Visual Basic also have different keywords for the same function. For example, REALbasic has UpperCase, while Visual Basic has Ucase. These work the same way, they just have different names. It is easy to write a wrapper around the REALbasic implementation so you don't have to change your code. However, performance will be faster if you replace Ucase (or Lcase) with UpperCase and LowerCase. As you can see, similar keywords means stepping through a few hoops for experienced Visual Basic developers. To make it even easier, be sure to spend time with the REALbasic user guide and language reference beforehand. Another tip is to play with REALbasic to get the feel for it. In summary, to port your keywords like Mid that work differently, you will need to create replacement functions.
Recommended publications
  • Manualgambas.Pdf
    Introducción Este míni-manual esta pensado y orientado para los asistentes al taller de Gambas. Dado que, a priori, esperamos la asistencia de gente sin conocimientos previos de programación este texto va a ser escueto y muy elemental. Además de dar una formación teórica básica tiene el propósito de servir como chuleta para poder consultar las sintaxis más elementales como por ejemplo de las condicionales, bucles, etc. Nuestra herramienta: GAMBAS Vamos a usar Gambas, un lenguaje de programación visual similar al Visual Basic de Microsoft. Gambas dispone de su propio IDE. Un IDE, por sus siglas en inglés, es un entorno de desarrollo integrado. Gambas es lo que se conoce como un lenguaje de programación interpretado y como ocurre con GNU que es un acrónimo recurrente (Gnu No es Unix) Gambas significa Gambas Almost Means BASic, que traducido al castellano es Gambas Casi es BASic. Los IDE's son unos programas que aglutinan todo lo que necesitamos para programar. Tenemos un editor para picar (vamos a ir introduciéndonos en la jerga del programador) código, con resaltado por colores, autocompletado para ayudarnos en la edición, señalización de errores, etc. Un depurador para poder controlar la ejecución del programa y evaluar su comportamiento con sus inspectores de variables, objetos, etc. Un compilador para generar los binarios, bytecodes, ejecutables, etc. Un empaquetador para crear los instaladores. Además disponen de otras herramientas como gestores de servicios SVC para el control de versiones como GIT o similares. Editores de conexión a bases de datos, etc. Lo primero que vemos al ejecutar Gambas la ventana de bienvenida y nos da varias opciones, abrir un proyecto existente, crear uno nuevo o abrir recientes.
    [Show full text]
  • A Java Implementation of a Portable Desktop Manager Scott .J Griswold University of North Florida
    UNF Digital Commons UNF Graduate Theses and Dissertations Student Scholarship 1998 A Java Implementation of a Portable Desktop Manager Scott .J Griswold University of North Florida Suggested Citation Griswold, Scott .,J "A Java Implementation of a Portable Desktop Manager" (1998). UNF Graduate Theses and Dissertations. 95. https://digitalcommons.unf.edu/etd/95 This Master's Thesis is brought to you for free and open access by the Student Scholarship at UNF Digital Commons. It has been accepted for inclusion in UNF Graduate Theses and Dissertations by an authorized administrator of UNF Digital Commons. For more information, please contact Digital Projects. © 1998 All Rights Reserved A JAVA IMPLEMENTATION OF A PORTABLE DESKTOP MANAGER by Scott J. Griswold A thesis submitted to the Department of Computer and Information Sciences in partial fulfillment of the requirements for the degree of Master of Science in Computer and Information Sciences UNIVERSITY OF NORTH FLORIDA DEPARTMENT OF COMPUTER AND INFORMATION SCIENCES April, 1998 The thesis "A Java Implementation of a Portable Desktop Manager" submitted by Scott J. Griswold in partial fulfillment of the requirements for the degree of Master of Science in Computer and Information Sciences has been ee Date APpr Signature Deleted Dr. Ralph Butler Thesis Advisor and Committee Chairperson Signature Deleted Dr. Yap S. Chua Signature Deleted Accepted for the Department of Computer and Information Sciences Signature Deleted i/2-{/1~ Dr. Charles N. Winton Chairperson of the Department Accepted for the College of Computing Sciences and E Signature Deleted Dr. Charles N. Winton Acting Dean of the College Accepted for the University: Signature Deleted Dr.
    [Show full text]
  • Moxa Nport Real TTY Driver for Arm-Based Platform Porting Guide
    Moxa NPort Real TTY Driver for Arm-based Platform Porting Guide Moxa Technical Support Team [email protected] Contents 1 Introduction ...................................................................................2 2 Porting to the Moxa UC-Series—Arm-based Computer ....................2 2.1 Build binaries on a general Arm platform ...................................................... 2 2.2 Cross-compiler and the Real TTY driver ........................................................ 3 2.3 Moxa cross-compiling interactive script......................................................... 4 2.4 Manually build the Real TTY driver with a cross-compiler ................................ 5 2.5 Deploy cross-compiled binary to target......................................................... 8 3 Porting to Raspberry Pi OS .............................................................9 4 Porting to the Yocto Project on Raspberry Pi ................................ 10 4.1 Prerequisite............................................................................................... 10 4.2 Create a Moxa layer for the Yocto Project..................................................... 11 4.3 Install a Moxa layer into the Yocto Project.................................................... 17 4.4 Deploy the Yocto image in Raspberry Pi ....................................................... 17 4.5 Start the Real TTY driver in Raspberry Pi ..................................................... 18 4.6 Set the default tty mapping to the Real TTY configuration ............................
    [Show full text]
  • Gnu Compiler Collection Backend Port for the Integral Parallel Architecture
    U.P.B. Sci. Bull., Series C, Vol. 74, Iss. 3, 2012 ISSN 1454-234x GNU COMPILER COLLECTION BACKEND PORT FOR THE INTEGRAL PARALLEL ARCHITECTURE Radu HOBINCU1, Valeriu CODREANU2, Lucian PETRICĂ3 Lucrarea de față prezintă procesul de portare a compilatorului GCC oferit de către Free Software Foundation pentru arhitectura hibridă Integral Parallel Architecture, constituită dintr-un controller multithreading și o mașina vectorială SIMD. Este bine cunoscut faptul că motivul principal pentru care mașinile hibride ca și cele vectoriale sunt dificil de utilizat eficient, este programabilitatea. În această lucrare vom demonstra că folosind un compilator open-source și facilitățile de care acesta dispune, putem ușura procesul de dezvoltare software pentru aplicații complexe. This paper presents the process of porting the GCC compiler offered by the Free Software Foundation, for the hybrid Integral Parallel Architecture composed of an interleaved multithreading controller and a vectorial SIMD machine. It is well known that the main reason for which hybrid and vectorial machines are difficult to use efficiently, is programmability. In this paper we well show that by using an open-source compiler and the features it provides, we can ease the software developing process for complex applications. Keywords: integral parallel architecture, multithreading, interleaved multithreading, bubble-free embedded architecture for multithreading, compiler, GCC, backend port 1. Introduction The development of hardware technology in the last decades has required the programmers to offer support for the new features and performances of the last generation processors. This support comes as more complex compilers that have to use the machines' capabilities at their best, and more complex operating systems that need to meet the users' demand for speed, flexibility and accessibility.
    [Show full text]
  • B4X Booklets
    B4X Booklets B4X Getting started Copyright: © 2018 Anywhere Software Edition 1.4 Last update : 2018.11.28 Table of contents 2 B4X Getting started 1 B4X .............................................................................................................................................. 5 2 Getting started B4A..................................................................................................................... 6 2.1 B4A Trial version ................................................................................................................. 7 2.2 Installing B4A and Android SDK ........................................................................................ 8 2.2.1 Installing Java JDK .......................................................................................................... 8 2.2.2 Installing Android SDK ................................................................................................... 9 2.2.3 Installing B4A .................................................................................................................. 9 2.3 B4A Configure Paths in the IDE ........................................................................................ 11 2.4 Installation problem ........................................................................................................... 12 2.5 B4A Choice of the language .............................................................................................. 12 2.6 B4A Connecting a real device...........................................................................................
    [Show full text]
  • Porting C/C++ Applications to the Web PROJECT P1 Fundamental Research Group
    Porting C/C++ applications to the web PROJECT P1 Fundamental Research Group Mentors Nagesh Karmali Rajesh Kushalkar Interns Ajit Kumar Akash Soni Sarthak Mishra Shikhar Suman Yasasvi V Peruvemba List of Contents Project Description Simavr Understanding the Problem Overall Problems Emscripten References Vim.wasm Tetris PNGCrush.js Project Description Lots of educational tools like electronic simulators, emulators, IDEs, etc. are written mostly as a native C/C++ applications. This project is focussed on making these applications run on the web as a service in the cloud. It is focused on porting these desktop applications into their JavaScript counterparts. Understanding the problem 1. Converting the underlying logic written in C/C++ into it’s analogous Javascript file 2. Making sure minimum performance loss occurs during porting. Emscripten 1. Emscripten is an Open Source LLVM to JavaScript compiler. 2. Compile any other code that can be translated into LLVM bitcode into JavaScript. https://emscripten.org/docs/introducing_emscrip ten/about_emscripten.html Installing Emscripten # Get the emsdk repo git clone https://github.com/emscripten-core/emsdk.git # Enter that directory cd emsdk # Fetch the latest version of the emsdk (not needed the first time you clone) git pull # Download and install the latest SDK tools. ./emsdk install latest # Make the "latest" SDK "active" for the current user. (writes ~/.emscripten file) ./emsdk activate latest # Activate PATH and other environment variables in the current terminal source ./emsdk_env.sh Porting of Vim Github Repository https://github.com/rhysd/vim.wasm Source files of Vim that are slightly modified can be found here - https://github.com/rhysd/vim.wasm/compare/a9604e61451707b38fdcb088fbfaeea 2b922fef6...f375d042138c824e3e149e0994b791248f2ecf41#files The Vim Editor is completely written in C.
    [Show full text]
  • Porting the QEMU Virtualization Software to MINIX 3
    Porting the QEMU virtualization software to MINIX 3 Master's thesis in Computer Science Erik van der Kouwe Student number 1397273 [email protected] Vrije Universiteit Amsterdam Faculty of Sciences Department of Mathematics and Computer Science Supervised by dr. Andrew S. Tanenbaum Second reader: dr. Herbert Bos 12 August 2009 Abstract The MINIX 3 operating system aims to make computers more reliable and more secure by keeping privileged code small and simple. Unfortunately, at the moment only few major programs have been ported to MINIX. In particular, no virtualization software is available. By isolating software environments from each other, virtualization aids in software development and provides an additional way to achieve reliability and security. It is unclear whether virtualization software can run efficiently within the constraints of MINIX' microkernel design. To determine whether MINIX is capable of running virtualization software, I have ported QEMU to it. QEMU provides full system virtualization, aiming in particular at portability and speed. I find that QEMU can be ported to MINIX, but that this requires a number of changes to be made to both programs. Allowing QEMU to run mainly involves adding standardized POSIX functions that were previously missing in MINIX. These additions do not conflict with MINIX' design principles and their availability makes porting other software easier. A list of recommendations is provided that could further simplify porting software to MINIX. Besides just porting QEMU, I also investigate what performance bottlenecks it experiences on MINIX. Several areas are found where MINIX does not perform as well as Linux. The causes for these differences are investigated.
    [Show full text]
  • UNIX Operating System Porting Experiences*
    UNIX Operating System Porting Experiences* D. E. BODENSTAB, T. F. HOUGHTON, K. A. KELLEMAN, G. RONKIN, and E. P. SCHAN ABSTRACT One of the reasons for the dramatic growth in popularity of the UNIX(TM) operating sys- tem is the portability of both the operating system and its associated user-level programs. This paper highlights the portability of the UNIX operating system, presents some gen- eral porting considerations, and shows how some of the ideas were used in actual UNIX operating system porting efforts. Discussions of the efforts associated with porting the UNIX operating system to an Intel(TM) 8086-based system, two UNIVAC(TM) 1100 Series processors, and the AT&T 3B20S and 3B5 minicomputers are presented. I. INTRODUCTION One of the reasons for the dramatic growth in popularity of the UNIX [1, 2] operating system is the high degree of portability exhibited by the operating system and its associated user-level programs. Although developed in 1969 on a Digital Equipment Corporation PDP7(TM), the UNIX operating system has since been ported to a number of processors varying in size from 16-bit microprocessors to 32-bit main- frames. This high degree of portability has made the UNIX operating system a candidate to meet the diverse computing needs of the office and computing center environments. This paper highlights some of the porting issues associated with porting the UNIX operating system to a variety of processors. The bulk of the paper discusses issues associated with porting the UNIX operat- ing system kernel. User-level porting issues are not discussed in detail.
    [Show full text]
  • Windows Api Examples
    Windows Api Examples Petur J. Skulason. <mailto:[email protected]?subject=Windows Api Examples> http://www.est.is/~pjs/RealBasic/ http://u225.nett.is/~pjs/ All this is free to use in any application (commercial - shareware - freeware). Also to extract examples and post as examples from other websites. (I do not take any responsibility for how good this is, I dont call for any credit mony or anythink else ... ) These are few examples that I have found on lists, and by experimenting with Windows API calls and browsing MSDN website (http://msdn.microsoft.com/ ). Many text’s are copyed from MSDN website in this document are from MSDN website. Examples are tested on Win98 system, HP OmniBook XE2, compiled on PowerBook G3, PPC7300, LC475. Some of examples are working correctly. Most of examples are working, but some are not working, possible that i’am doing somthing wrong, but they are there. Comments, bugs, other samples welcome. Even requests for more samples. I might try to look at it and see if its possible. PS: In this document I have put some links to MSDN webpage’s. If you are running Internet Explorer then you might need to ‘disconnect java script’ couse then ie might show only part of page. Either run ie with *.js ‘OFF’ or use an other browser, like iCab or Netscape. (As of aug 30, 2000 then pages are displayed correct... problem might be solved... ) When declaring functions/subs then one is calling library, like user32.dll . Can omitt the name extension, use like Lib “user32” instead of Lib “user32.dll”.
    [Show full text]
  • Porting Linux Embedded Linux Conference (Europe)
    Porting Linux Embedded Linux Conference (Europe) Porting Linux About Jon Masters ● Been playing with Linux for 14 years (and the kernel for 13 of those), since the age of 13. ● Built embedded NMR scientific instruments, worked with Montavista UK, now at Red Hat. ● Author of the LKML Summary Podcast and the kernel column in Linux User & Developer. ● Co-author of Building Embedded Linux Systems (second edition) – O'Reilly (2008) ● My car still has an empeg :) Porting Linux Overview ● Why port Linux anyway? ● Background pre-requisities ● Early board work ● Bootloader bringup ● Initial kernel bringup ● Debugging ● Working with Upstream ● Trends Porting Linux Why port Linux anyway? ● Linux is very portable ● Supports 23 architectures in the upstream “mainline” kernel tree of Linus Torvalds. ● Kernel is mostly written in C, with some assembly (most architectures only need a dozen such files) ● Split between high-level generic functions and low- level functions to abstract architectural differences. Porting Linux Why port Linux anyway? ● Linux is competitive ● The number of Linux kernel developers contributing to the official kernel has tripled since 2005. ● Feature growth continues with an average of 10K new lines of source code added every day. ● In the hour you spend here 5.45 patches will on average be added to the upstream Linux kernel. ● Source: Linux Foundation analysis Porting Linux Why port Linux anyway? ● Linux is cost effective. ● A large amount of code to build upon. ● Large (growing) community of developers. ● I think we all know the rest. Porting Linux Background pre-requisities ● Hardware ● Development board or simulator – Optional debugger, some kind of UART – Boards range in value from $200-$crazy – Implement the same architecture and platform as the final design but maybe with a number of hacks.
    [Show full text]
  • Visual Basic 2017 Made Easy
    Visual Basic 2017 Made Easy By Dr.Liew 1 Disclaimer Visual Basic 2017 Made Easy is an independent publication and is not affiliated with, nor has it been authorized, sponsored, or otherwise approved by Microsoft Corporation. Trademarks Microsoft, Visual Basic, Excel and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. All other trademarks belong to their respective owners. Liability The purpose of this book is to provide basic guides for people interested in Visual Basic 2017 programming. Although every effort and care has been taken to make The information as accurate as possible, the author shall not be liable for any error, Harm or damage arising from using the instructions given in this book. ​ Copyright ® 2017 Liew Voon Kiong All rights reserved. No Part of this e-book may be reproduced, in any form or by any means, without permission in writing from the author. 2 Acknowledgement I would like to express my sincere gratitude to many people who have made their contributions in one way or another to the successful publication of this book. My special thanks go to my children Xiang, Yi and Xun who have contributed their ideas and help in editing this book. I would also like to appreciate the support provided by my beloved wife Kim Huang and my youngest daughter Yuan. I would also like to thank the millions of readers who have visited my Visual Basic Tutorial website at vbtutor.net for ​ ​ ​ their support and encouragement. About the Author Dr. Liew Voon Kiong holds a bachelor’s degree in Mathematics, a master’s degree in Management and a doctorate in Business Administration.
    [Show full text]
  • Today's Papers Why Virtualize? Virtual Machines Background
    Today’s Papers • Disco: Running Commodity Operating Systems on Scalable EECS 262a Multiprocessors". ACM Transactions on Computer Systems 15 (4). Advanced Topics in Computer Systems Edouard Bugnion; Scott Devine; Kinshuk Govil; Mendel Rosenblum (November 1997). Lecture 13 • Xen and the Art of Virtualization P. Barham, B. Dragovic, K Fraser, S. Hand, T. Harris, A. Ho, R. Neugebauer, I. Pratt and A. Warfield. Appears in Symposium on Virtual Machines Operating System Principles (SOSP), 2003 October 4th, 2018 John Kubiatowicz • Thoughts? Electrical Engineering and Computer Sciences University of California, Berkeley http://www.eecs.berkeley.edu/~kubitron/cs262 10/04/2018 Cs262a-F18 Lecture-13 2 Why Virtualize? Virtual Machines Background • Observation: instruction-set architectures (ISA) form Consolidate machines some of the relatively few well-documented complex Huge energy, maintenance, and management savings interfaces we have in world – Machine interface includes meaning of interrupt numbers, programmed Isolate performance, security, and configuration I/O, DMA, etc. Stronger than process-based • Anything that implements this interface can execute the Stay flexible software for that platform Rapid provisioning of new services Easy failure/disaster recovery (when used with data replication) •A virtual machine is a software implementation of this Cloud Computing interface (often using the same underlying ISA, but not Huge economies of scale from multiple tenants in large datacenters always) Savings on mgmt, networking, power, maintenance,
    [Show full text]