Retargetable Analysis of Machine Code

Total Page:16

File Type:pdf, Size:1020Kb

Retargetable Analysis of Machine Code VYSOKE´ UCˇ ENI´ TECHNICKE´ V BRNEˇ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMACˇ NI´CH TECHNOLOGII´ U´ STAV INFORMACˇ NI´CH SYSTE´ MU˚ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS REKONFIGUROVATELNA´ ANALY´ ZA STROJOVE´ HO KO´ DU RETARGETABLE ANALYSIS OF MACHINE CODE DISERTACˇ NI´ PRA´ CE PHD THESIS AUTOR PRA´ CE Ing. JAKUB KRˇ OUSTEK AUTHOR VEDOUCI´ PRA´ CE Doc. Dr. Ing. DUSˇ AN KOLA´ Rˇ SUPERVISOR BRNO 2014 Abstrakt Analýza softwaru je metodologie, jejímž účelem je analyzovat chování daného programu. Jednotlivé metody této analýzy je možné využít i v dalších oborech, jako je zpětné in- ženýrství, migrace kódu apod. V této práci se zaměříme na analýzu strojového kódu, na zjištění nedostatků existujících metod a na návrh metod nových, které umožní rychlou a přesnou rekonfigurovatelnou analýzu kódu (tj. budou nezávislé na konkrétní cílové plat- formě). Zkoumány budou dva typy analýz – dynamická (tj. analýza za běhu aplikace) a statická (tj. analýza aplikace bez jejího spuštění). Přínos této práce v rámci dynam- ické analýzy je realizován jako rekonfigurovatelný ladicí nástroj a dále jako dva typy tzv. rekonfigurovatelného translátovaného simulátoru. Přínos v rámci statické analýzy spočívá v navržení a implementování rekonfigurovatelného zpětného překladače, který slouží pro transformaci strojového kódu zpět do vysokoúrovňové reprezentace. Všechny tyto nástroje jsou založeny na nových metodách navržených autorem této práce. Na základě experi- mentálních výsledků a ohlasů od uživatelů je možné usuzovat, že tyto nástroje jsou plně srovnatelné s existujícími (komerčními) nástroji a nezřídka dosahují i lepších výsledků. Abstract Program analysis is a computer-science methodology whose task is to analyse the behavior of a given program. The methods of program analysis can also be used in other methodolo- gies such as reverse engineering, re-engineering, code migration, etc. In this thesis, we focus on program analysis of a machine-code and we address the limitations of a nowadays ap- proaches by proposing novel methods of a fast and accurate retargetable analysis (i.e. they are designed to be independent of a particular target platform). We focus on two types of analysis — dynamic analysis (i.e. run-time analysis) and static analysis (i.e. analysing application without its execution). The contribution of this thesis within the dynamic anal- ysis lays in the extension and enhancement of existing methods and their implementation as a retargetable debugger and two types of a retargetable translated simulator. Within the static analysis, we present a concept and implementation of a retargetable decompiler that performs a program transformation from a machine code into a human-readable form of representation. All of these tools are based on several novel methods defined by the author. According to our experimental results and users feed-back, all of the proposed tools are at least fully competitive to existing solutions, while outperforming these solutions in several ways. Klíčová slova strojový kód, analýza kódu, reverzní inženýrství, zpětný překladač, ladicí nástroj, simulátor, zpětný assembler, gramatiky s rozptýleným kontextem, Lissom, jazyky pro popis architek- tur, ISAC, škodlivý kód. Keywords machine code, code analysis, reverse engineering, decompiler, debugger, simulator, disas- sembler, scattered context grammars, Lissom, architecture description languages, ISAC, malware. Citation Jakub Křoustek: Retargetable Analysis of Machine Code, PhD thesis, Brno, FIT BUT, 2014 Retargetable Analysis of Machine Code Statement of Originality I hereby declare that this thesis is my own work that has been created under the supervision of doc. Dušan Kolář. Several results were achieved in co-operation with Lukáš Ďurfina, Petr Zemek, Peter Matula, Zdeněk Přikryl, Stanislav Židek, my students, and other mem- bers of the Lissom project. Where other sources of information have been used, they have been duly acknowledged. ....................... Jakub Křoustek November 17, 2014 Acknowledgements I wish to thank Dušan Kolář for the support during his supervision of this work. I also wish to thank all members of the Lissom research project for their help and ceaseless support of my research. Last, but certainly not least, I wish to thank my family and my girlfriend Lenka for their support and patience during my work on this thesis. c Jakub Křoustek, 2014. Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě in- formačních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů. Contents List of Figures5 List of Tables9 1 Introduction 11 1.1 Author’s Contribution.............................. 13 1.2 Chapter Survey.................................. 14 2 Preliminaries 15 2.1 Theory of Formal Languages.......................... 15 2.2 Theory of Compiler Construction........................ 17 3 Focus of the Thesis 23 3.1 CPU Architectures Overview.......................... 23 3.1.1 CISC Architecture............................ 24 3.1.2 RISC Architecture............................ 24 3.1.3 VLIW Architecture............................ 25 3.2 Executable-File Formats Overview....................... 26 3.2.1 UNIX Executable and Linking Format................. 26 3.2.2 Microsoft Portable Executable and Common Object File Format.. 27 3.2.3 Other Common Formats......................... 28 3.2.4 Comparison of EFFs........................... 28 3.3 Debugging-Information Formats Overview................... 29 3.3.1 DWARF.................................. 29 3.3.2 PDB.................................... 30 3.3.3 Other Formats.............................. 30 4 Machine-Code Analysis: State of the Art 31 4.1 Compiler and Packer Detectors......................... 31 4.2 EFF Parsers and Converters........................... 32 4.3 Disassemblers................................... 34 4.4 Machine-Code Decompilers........................... 35 4.5 Debuggers..................................... 39 4.6 Tools for Simulation, Emulation, and Instrumentation............ 42 4.7 Lissom Project.................................. 44 4.7.1 ISAC Language.............................. 46 4.7.2 Lissom Object File Format....................... 48 4.7.3 Toolchain................................. 48 1 2 Contents 5 Retargetable Dynamic Analysis 53 5.1 Obtaining and Processing Debugging Information............... 54 5.1.1 DWARF Parsing............................. 54 5.1.2 PDB Parsing............................... 58 5.2 Translated Simulator............................... 60 5.2.1 Translated Simulation Overview.................... 62 5.2.2 Static Translated Simulation...................... 62 5.2.3 Just-In-Time Translated Simulation (JIT)............... 67 5.3 Source-Level Debugger.............................. 69 5.3.1 Lissom Three-Layer Architecture.................... 71 5.3.2 Obtaining Debugging Information................... 72 5.3.3 Implementation.............................. 74 6 Retargetable Static Analysis 79 6.1 Motivation.................................... 80 6.1.1 Retargetable Decompilation....................... 81 6.1.2 Application of Decompilation...................... 81 6.2 Overview of the Retargetable Decompiler................... 83 6.3 Preprocessing Phase............................... 87 6.3.1 Compiler and Packer Detection..................... 89 6.3.2 Unpacking................................. 93 6.3.3 Executable-File-Format Conversion................... 95 6.3.4 Context-Sensitive Description of Executable-File-Formats...... 97 6.4 Front-End Phase................................. 105 6.4.1 Debugging and Symbolic Information Exploitation.......... 106 6.4.2 Statically-Linked-Code Recognition................... 107 6.4.3 Instruction Decoding........................... 108 6.4.4 Control-Flow Analysis (CFA)...................... 111 6.4.5 Static Code Interpreter......................... 112 6.4.6 Function Detection............................ 113 6.4.7 Data-Flow Analysis (DFA)....................... 115 6.4.8 Other Analyses.............................. 117 6.4.9 Outputs Generation........................... 118 6.5 Middle-End Phase................................ 118 6.5.1 Built-in Optimization.......................... 120 6.5.2 Instruction-Idiom Analysis....................... 122 6.6 Back-End Phase................................. 130 6.6.1 Back-End Intermediate Representation................. 131 6.6.2 Conversion into BIR........................... 132 6.6.3 BIR Optimizations............................ 133 6.7 Output Generation................................ 135 6.7.1 Generation of Control-Flow Graphs.................. 135 6.7.2 Generation of Call Graphs........................ 136 6.7.3 Generation of the Output HLL..................... 136 Contents 3 7 Experimental Results 139 7.1 Translated Simulation.............................. 140 7.2 Source-Level Debugging............................. 142 7.3 Decompilation.................................. 144 7.3.1 Compiler and Packer Detection..................... 145 7.3.2 Function, Argument, and Return Value Reconstruction....... 148 7.3.3 Instruction-Idiom Detection....................... 152 8 Conclusion 155 8.1 Future Work................................... 156 Bibliography 159 Author’s Publications 167 List of Abbreviations 171 A Decompilation Results 173 A.1 Decompilation of Simple Programs....................... 173 A.2 Decompilation of a Real-World Malware...................
Recommended publications
  • System Administration
    System Administration Varian NMR Spectrometer Systems With VNMR 6.1C Software Pub. No. 01-999166-00, Rev. C0503 System Administration Varian NMR Spectrometer Systems With VNMR 6.1C Software Pub. No. 01-999166-00, Rev. C0503 Revision history: A0800 – Initial release for VNMR 6.1C A1001 – Corrected errors on pg 120, general edit B0202 – Updated AutoTest B0602 – Added additional Autotest sections including VNMRJ update B1002 – Updated Solaris patch information and revised section 21.7, Autotest C0503 – Add additional Autotest sections including cryogenic probes Applicability: Varian NMR spectrometer systems with Sun workstations running Solaris 2.x and VNMR 6.1C software By Rolf Kyburz ([email protected]) Varian International AG, Zug, Switzerland, and Gerald Simon ([email protected]) Varian GmbH, Darmstadt, Germany Additional contributions by Frits Vosman, Dan Iverson, Evan Williams, George Gray, Steve Cheatham Technical writer: Mike Miller Technical editor: Dan Steele Copyright 2001, 2002, 2003 by Varian, Inc., NMR Systems 3120 Hansen Way, Palo Alto, California 94304 1-800-356-4437 http://www.varianinc.com All rights reserved. Printed in the United States. The information in this document has been carefully checked and is believed to be entirely reliable. However, no responsibility is assumed for inaccuracies. Statements in this document are not intended to create any warranty, expressed or implied. Specifications and performance characteristics of the software described in this manual may be changed at any time without notice. Varian reserves the right to make changes in any products herein to improve reliability, function, or design. Varian does not assume any liability arising out of the application or use of any product or circuit described herein; neither does it convey any license under its patent rights nor the rights of others.
    [Show full text]
  • Rights Reserved. Permission to Make Digital Or Hard Copies of All Or Part Of
    Copyright © 1994, by the author(s). All rights reserved. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission. MICROSOFT WINDOWS NT AND THE COMPETITION FOR DESKTOP COMPUTING by Brad Peters, William R. Bush, and A. Richard Newton Memorandum No. UCB/ERL M94/3 31 January 1994 MICROSOFT WINDOWS NT AND THE COMPETITION FOR DESKTOP COMPUTING by Brad Peters, William R. Bush, and A. Richard Newton Memorandum No. UCB/ERL M94/3 31 January 1994 MICROSOFT WINDOWS NT AND THE COMPETITION FOR DESKTOP COMPUTING by Brad Peters, William R. Bush, and A. Richard Newton Memorandum No. UCB/ERL M94/3 31 January 1994 ELECTRONICS RESEARCH LABORATORY College ofEngineering University ofCalifornia, Berkeley 94720 MICROSOFT WINDOWS NT AND THE COMPETITION FOR DESKTOP COMPUTING by Brad Peters, William R. Bush, and A. Richard Newton Memorandum No. UCB/ERL M94/3 31 January 1994 ELECTRONICS RESEARCH LABORATORY College ofEngineering University ofCalifornia, Berkeley 94720 Microsoft Windows NT And The Competition for Desktop Computing January 1994 Department ofElectrical Engineering and Computer Sciences University ofCalifornia Berkeley, California 94720 Abstract This report contains two papers, An Introduction to Microsoft Windows NT And Its Competitors, and The Status ofWindows NT and Its Competitors At The End of1993. The first paper, written in April 1993,presents an overview of the technology of Windows NT, and analyzes the competitors and competitive factors in the desktop operating system race.
    [Show full text]
  • The Library for System Solutions End User Interface Reference
    The Library for System Solutions End User Interface Reference Document Number GG24-4107-00 July 1994 International Technical Support Organization Boca Raton Center Take Note! Before using this information and the product it supports, be sure to read the general information under “Special Notices” on page xi. First Edition (July 1994) This edition applies to IBM and non-IBM products for End User Interface development. Order publications through your IBM representative or the IBM branch office serving your locality. Publications are not stocked at the address given below. An ITSO Technical Bulletin Evaluation Form for reader′s feedback appears facing Chapter 1. If the form has been removed, comments may be addressed to: IBM Corporation, International Technical Support Organization Dept. 91J Building 235-2 Internal Zip 4423 901 NW 51st Street Boca Raton, Florida 33431-1328 When you send information to IBM, you grant IBM a non-exclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you. Copyright International Business Machines Corporation 1994. All rights reserved. Note to U.S. Government Users — Documentation related to restricted rights — Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp. Abstract This document is part of the Library for Systems Solutions, which is intended for professionals involved in defining solutions in the heterogeneous computing environments. The library consists of three types of documents: • Computing Technology • Function Reference • Technology Reference This document is the Function Reference book regarding End User Interface. The book consists of two parts.
    [Show full text]
  • International Technical Support Organization Managing AIX V4 on PCI-Based RISC System/6000 Workstations (40P/43P) September 1995 Publication No
    International Technical Support Organization SG24-2581-00 Managing AIX V4 on PCI-Based RISC System/6000 Workstations (40P/43P) September 1995 IBML International Technical Support Organization SG24-2581-00 Managing AIX V4 on PCI-Based RISC System/6000 Workstations (40P/43P) September 1995 Take Note! Before using this information and the product it supports, be sure to read the general information under “Special Notices” on page xvii. First Edition (September 1995) This edition applies to the AIX Version 4.1.2 and AIX Version 4.1.3 operating system. Order publications through your IBM representative or the IBM branch office serving your locality. Publications are not stocked at the address given below. An ITSO Technical Bulletin Evaluation Form for reader′s feedback appears facing Chapter 1. If the form has been removed, comments may be addressed to: IBM Corporation, International Technical Support Organization Dept. JN9 Building 821 Internal Zip 2834 11400 Burnet Road Austin, Texas 78758-3493 When you send information to IBM, you grant IBM a non-exclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you. Copyright International Business Machines Corporation 1995. All rights reserved. Note to U.S. Government Users — Documentation related to restricted rights — Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp. Abstract The RISC System/6000 family of products, typically based on the Microchannel bus architecture, has been expanded to include a new line of products based on the PowerPC microprocessor, the Peripheral Component Interconnect (PCI) bus architecture and the PowerPC Reference Platform Specification (PReP).
    [Show full text]
  • Linuxvilag-56.Pdf 18399KB 43 2012-05-28 10:25:14
    Beköszöntõ © Kiskapu Kft. Minden jog fenntartva A Pingvin új ruhája tudjuk, hogy gyermekünk Alex Már-már a hazai hivatalokat legyen-e, vagy Tóbiás (akirõl nemrég is megszégyenítõ sebességgel, kiderült, hogy lehet, hogy lány). hosszadalmas háttérmunka Részletesebben a 17. oldalon! után, végre elérkezett az idõ, hogy a világ elé tárjuk a meg- Az új grafikai témájú sorozatok mel- újult Linuxvilágot! A változta- lett (Blender, POVRay, SVG) a mostani Szy György tások valószínûleg mindenki- számban közöljük le a Linux Journal fõszerkesztõ nek szembeötlõek lesznek, csapata által épített néma erõmûrõl bár bevallom, azon vélemé- szóló cikket is, a 24. oldalon. (Halló, nyemet, miszerint is jelenjen meg munkáltatók! Ma már nem luxus a lapban minél több szép lány, csak a csendes iroda!) És ha van egy szno- részben tudtam érvényesíteni. Fonto- bok számára is megfelelõ csúcsgé- sabb cél volt ugyanis, hogy olvasóink pünk, hát futtassunk rajta húsz-har- igénye szerint elsõsorban a tartalomra minc másikat! Ennek megoldásához helyezzük a hangsúlyt: kevesebb erõ- három módszert hasonlítunk össze, sen szakmai cikk, több érdekesség, a XEN, a vmWare és a Qemu progra- több hazai anyag. mok személyében (az összeállítás a 34. oldalon kezdõdik). Természetesen az új laptartalom mel- lett szerettük volna a linuxos közösség A temérdek változtatásról természete- által tiszteletnek örvendõ nemes tityi- sen szeretnénk minél több véleményt totyi állatkák elõtt is tisztelegni, ami- kapni, úgyhogy usgyi, a lap átolvasása hez a legjobb megoldást a Budapesti után mindenki
    [Show full text]
  • Case COMP/C-3/37.792 Microsoft)
    EN EN EN COMMISSION OF THE EUROPEAN COMMUNITIES Brussels, 21.4.2004 C(2004)900 final COMMISSION DECISION of 24.03.2004 relating to a proceeding under Article 82 of the EC Treaty (Case COMP/C-3/37.792 Microsoft) (ONLY THE ENGLISH TEXT IS AUTHENTIC) (Text with EEA relevance) EN EN COMMISSION DECISION of 24.03.2004 relating to a proceeding under Article 82 of the EC Treaty (Case COMP/C-3/37.792 Microsoft) (ONLY THE ENGLISH TEXT IS AUTHENTIC) (Text with EEA relevance) THE COMMISSION OF THE EUROPEAN COMMUNITIES, Having regard to the Treaty establishing the European Community, Having regard to Council Regulation No 17 of 6 February 1962, First Regulation implementing Articles 85 and 86 of the Treaty1, and in particular Article 3 and Article 15(2) thereof, Having regard to the complaint lodged by Sun Microsystems, Inc. on 10 December 1998, alleging infringements of Article 82 of the Treaty by Microsoft and requesting the Commission to put an end to those infringements, Having regard to the Commission decision of 1 August 2000 to initiate proceedings in Case IV/C-3/37.345, Having regard to the Commission decision of 29 August 2001 to initiate proceedings in this case, and to join the findings in Case IV/C-3/37.345 to the procedure followed under this case, Having given the undertaking concerned the opportunity to make known their views on the objections raised by the Commission pursuant to Article 19(1) of Regulation No 17 and Commission Regulation (EC) No 2842/98 of 22 December 1998 on the hearing of parties in certain proceedings under Articles 85 and 86 of the EC Treaty2, Having regard to the final report of the hearing officer in this case, After consulting the Advisory Committee on Restrictive Practices and Dominant Positions, 1 OJ 13, 21.2.1962, p.
    [Show full text]
  • Studio E Sviluppo Di Un Progetto Per La Portabilitá Multipiattaforma Di Un
    STUDIOESVILUPPODIUNPROGETTOPERLA PORTABILITÁMULTIPIATTAFORMADIUN SISTEMAPERLAVISUALIZZAZIONEDIAMBIENTI VIRTUALITRIDIMENSIONALIINTERATTIVI ilario sanseverino Giugno 2014 Ilario Sanseverino: Studio e sviluppo di un progetto per la portabili- tá multipiattaforma di un sistema per la visualizzazione di ambienti virtuali tridimensionali interattivi, © Giugno 2014 ABSTRACT Object of this thesis is to investigate the existing solutions avail- able for cross-platforming, analysing in particular the specific case study of the conversion of a large project, related to a com- plex multimedia application native to the Microsoft (MS) Win- dows environment, into a multi-platform project, discussing the problems encountered and the solutions adopted. SOMMARIO Lo scopo di questa tesi è di investigare le soluzioni esistenti per la portabilità multipiattaforma, in particolare analizzando lo specifico caso di studio della conversione di un grande proget- to, relativo ad una complessa applicazione multimediale nativa per l’ambiente MS Windows, in un progetto multipiattaforma, discutendo dei problemi incontrati e delle soluzioni adottate. iii INDICE 1 introduzione1 2 stato dell’arte5 2.1 Macchine Virtuali 5 2.1.1 ScummVM 7 2.1.2 Mupen64+ 8 2.2 Linguaggi interpretati 8 2.2.1 Java 10 2.2.2 Web apps 11 2.3 Sorgenti ad hoc 12 2.4 Portabilità per libreria 14 2.4.1 Cocos2d 15 2.4.2 Unity 16 2.4.3 Marmalade 18 2.5 Wine 20 2.6 Considerazioni 21 3 architettura 24 3.1 Struttura originale 25 3.1.1 Parser 26 3.1.2 Engine 31 3.1.3 Procedural 35 3.1.4 VR 36 3.1.5 Avatar 37 3.1.6 Multimedia 38 3.1.7 Audio 39 3.2 Librerie utilizzate 39 3.2.1 Boost 40 3.2.2 SDL 41 3.2.3 FFmpeg 43 3.2.4 LibFFI 44 3.2.5 Libarchive 46 3.3 Modifiche apportate 46 3.3.1 Message passing 48 3.3.2 Embedded Resources 49 3.3.3 Video 51 4 implementazione 54 4.1 Building..
    [Show full text]
  • In Using the GNU Compiler Collection (GCC)
    Using the GNU Compiler Collection For gcc version 6.1.0 (GCC) Richard M. Stallman and the GCC Developer Community Published by: GNU Press Website: http://www.gnupress.org a division of the General: [email protected] Free Software Foundation Orders: [email protected] 51 Franklin Street, Fifth Floor Tel 617-542-5942 Boston, MA 02110-1301 USA Fax 617-542-2652 Last printed October 2003 for GCC 3.3.1. Printed copies are available for $45 each. Copyright c 1988-2016 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with the Invariant Sections being \Funding Free Software", the Front-Cover Texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is included in the section entitled \GNU Free Documentation License". (a) The FSF's Front-Cover Text is: A GNU Manual (b) The FSF's Back-Cover Text is: You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. i Short Contents Introduction ::::::::::::::::::::::::::::::::::::::::::::: 1 1 Programming Languages Supported by GCC ::::::::::::::: 3 2 Language Standards Supported by GCC :::::::::::::::::: 5 3 GCC Command Options ::::::::::::::::::::::::::::::: 9 4 C Implementation-Defined Behavior :::::::::::::::::::: 373 5 C++ Implementation-Defined Behavior ::::::::::::::::: 381 6 Extensions to
    [Show full text]
  • Microsoft Windows NT from a UNIX Point of View 1
    Microsoft ® Windows NT™ from a Unix ® Point of View A White Paper from the Business Systems Technology Series Microsoft Windows NT ™ from a Unix ® Point of View A White Paper from the Business Systems Technology Series Abstract This paper provides a technical overview of Windows NT for the information technology (IT) professional with a strong background in Unix. It approaches the subject from the Unix point of view and relates the concepts of Windows NT to corresponding ones found in Unix. It begins with a technical comparison of the two operating systems, moves on to cover how the two can coexist in a heterogeneous environment, and finishes with a brief section describing some of the tools available to aid developers in creating applications for both platforms. About the Microsoft Business Systems Technology Series The Microsoft® Business Systems Technology Series consists of a number of interrelated white papers dedicated to educating information technology (IT) professionals about Windows NT and the Microsoft BackOffice™ family of products. While current technologies used in Microsoft products are often covered, the real purpose of this series is to give the reader an idea of how major technologies are evolving, how Microsoft is using those technologies, and what this means to IT planners. Legal Notice The descriptions of other companies’ products in this paper are provided only as a convenience to the reader. Microsoft cannot guarantee their accuracy, and the products may change over time. Also, the descriptions are intended as brief highlights to aid understanding, rather than as thorough coverage. For authoritative descriptions of these products, please consult their respective manufacturers.
    [Show full text]
  • Pthreads Primer
    PThreads Primer A Guide to Multithreaded Programming Bil Lewis Daniel J. Berg SunSoft Press A Prentice Hall Title 1 1996 Sun Microsystems, Inc. — Printed in the United States of America. 2550 Garcia Avenue, Mountain View, California 94043-1100 U.S.A. All rights reserved. This book is protected by copyright and distributed under licenses restricting its use, copying, distribution, and decompilation. No part of this book may be reproduced in any form by any means without prior written authorization of Sun and its licensors, if any. Portions of the products described in this book may be derived from the UNIX® and Berkeley 4.3 BSD systems, licensed from UNIX System Laboratories, Inc., a wholly owned subsidiary of Novell, Inc., and the University of California, respectively. Third-party font software in this product is protected by copyright and licensed from Sun’s font suppliers. RESTRICTED RIGHTS LEGEND: Use, duplication, or disclosure by the United States government is subject to restrictions as set forth in DFARS 252.227-7013 (c)(1)(ii) and FAR 52.227-19. The products described in this book may be protected by one or more U.S. patents, foreign patents, or pending applications. TRADEMARKS— Sun, Sun Microsystems, the Sun logo, SunSoft, Solaris, Solaris Sunburst Design, OpenWindows, ONC, ONC+, SunOS, AnswerBook, Sun FORTRAN, Wabi, ToolTalk, NFS, XView, SunView, and The Network is the Computer are trademarks or registered trademarks of Sun Microsystems, Inc. UNIX is a registered trademark in the United States and other countries exclusively licensed through X/Open Company, Ltd. OPEN LOOK® is a registered trademark of Novell, Inc.
    [Show full text]
  • Multi-Persona Mobile Computing
    Multi-Persona Mobile Computing Jeremy Andrus Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in the Graduate School of Arts and Sciences COLUMBIA UNIVERSITY 2015 c 2015 Jeremy Andrus All Rights Reserved ABSTRACT Multi-Persona Mobile Computing Jeremy Andrus Smartphones and tablets are increasingly ubiquitous, and many users rely on multiple mobile devices to accommodate work, personal, and geographic mobility needs. Pervasive access to always-on mobile com- puting has created new security and privacy concerns for mobile devices that often force users to carry multiple devices to meet those needs. The volume and popularity of mobile devices has commingled hard- ware and software design, and created tightly vertically integrated platforms that lock users into a single, vendor-controlled ecosystem. My thesis is that lightweight mechanisms can be added to commodity operat- ing systems to enable multiple virtual phones or tablets to run at the same time on a physical smartphone or tablet device, and to enable apps from multiple mobile platforms, such as iOS and Android, to run together on the same physical device, all while maintaining the low-latency and responsiveness expected of modern mobile devices. This dissertation presents two lightweight operating systems mechanisms, virtualization and binary compatibility, that enable multi-persona mobile computing. First, we present Cells, a mobile virtualization architecture enabling multiple virtual phones, or personas, to run simultaneously on the same physical cellphone in a secure and isolated manner. Cells introduces device namespaces that allow apps to run in a virtualized environment while still leveraging native devices such as GPUs to provide accelerated graphics.
    [Show full text]
  • GCC) Red Hat Enterprise Linux 3: Using the GNU Compiler Collection (GCC) Copyright © 1987, 1989, 1991-2003 by Free Software Foundation, Inc
    Red Hat Enterprise Linux 3 Using the GNU Compiler Collection (GCC) Red Hat Enterprise Linux 3: Using the GNU Compiler Collection (GCC) Copyright © 1987, 1989, 1991-2003 by Free Software Foundation, Inc. Copyright © 2003 by Red Hat, Inc. Copyright © 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Sections being "GNU General Public License" and "Funding Free Software", the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is included in the section entitled "GNU Free Documentation License". You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. This documentation has been prepared by Red Hat, Inc. 1801 Varsity Drive Raleigh NC 27606-2072 USA Phone: +1 919 754 3700 Phone: 888 733 4281 Fax: +1 919 754 3701 PO Box 13588 Research Triangle Park NC 27709 USA Manual identifier: • PDF: rhds-gcc-EN-3-PDF-RHI (2003-09-24T01:08) • HTML: rhds-gcc-EN-3-HTML-RHI (2003-09-24T01:08) Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts.
    [Show full text]