IBM SDK, Java Technology Edition, Version 7 Release 1: Linux User Guide NLS Problem Determination

Total Page:16

File Type:pdf, Size:1020Kb

IBM SDK, Java Technology Edition, Version 7 Release 1: Linux User Guide NLS Problem Determination IBM SDK, Java Technology Edition Version 7 Release 1 Linux User Guide IBM IBM SDK, Java Technology Edition Version 7 Release 1 Linux User Guide IBM Note Before you use this information and the product it supports, read the information in “Notices” on page 685. Copyright information This edition of the user guide applies to the IBM SDK, Java Technology Edition, Version 7 Release 1, for all supported Linux architectures, and to all subsequent releases, modifications, and fix packs, until otherwise indicated in new editions. This guide applies to the following programs: v IBM 32-bit SDK for Linux on Intel architecture, Java Technology Edition, Version 7 Release 1 v IBM 32-bit Runtime Environment for Linux on Intel architecture, Java Technology Edition, Version 7 Release 1 v IBM 64-bit SDK for Linux on AMD64/EM64T architecture, Java Technology Edition, Version 7 Release 1 v IBM 64-bit Runtime Environment for Linux on AMD64/EM64T architecture, Java Technology Edition, Version 7 Release 1 v IBM 32-bit SDK for Linux on System i and System p architecture, Java Technology Edition, Version 7 Release 1 v IBM 32-bit Runtime Environment for Linux on System i and System p architecture, Java Technology Edition, Version 7 Release 1 v IBM 64-bit SDK for Linux on System i and System p architecture, Java Technology Edition, Version 7 Release 1 v IBM 64-bit Runtime Environment for Linux on System i and System p architecture, Java Technology Edition, Version 7 Release 1 v IBM 31-bit SDK for Linux on System z architecture, Java Technology Edition, Version 7 Release 1 v IBM 31-bit Runtime Environment for Linux on System z architecture, Java Technology Edition, Version 7 Release 1 v IBM 64-bit SDK for Linux on System z architecture, Java Technology Edition, Version 7 Release 1 v IBM 64-bit Runtime Environment for Linux on System z architecture, Java Technology Edition, Version 7 Release 1 Note: The SDK and Runtime Environment for some platforms are available only as part of an IBM product or service. Portions © Copyright 1997, 2018, Oracle and/or its affiliates. © Copyright IBM Corporation 2011, 2018. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Preface .............. vii The RMI implementation ........ 134 Thread pooling for RMI connection handlers 136 Chapter 1. Product overview ...... 1 Understanding distributed garbage collection 136 Debugging applications involving RMI .... 137 Introduction .............. 2 The ORB ............... 137 IBM Software Developers Kit (SDK) ..... 2 CORBA .............. 138 Runtime Environment .......... 5 RMI and RMI-IIOP .......... 138 | Small Footprint JRE ........... 6 Java IDL or RMI-IIOP? ......... 139 J9 Virtual Machine (JVM) ......... 12 RMI-IIOP limitations .......... 139 What's new .............. 13 Examples of client–server applications .... 139 First release ............. 13 Using the ORB ............ 144 Service refresh 1 ............ 15 How the ORB works .......... 145 Service refresh 2 ............ 19 Additional features of the ORB ...... 153 Service refresh 3 ............ 21 The Java Native Interface (JNI) ....... 156 Service refresh 4 ............ 25 Overview of JNI ........... 157 Packed object evaluation technology ...... 26 The JNI and the Garbage Collector ..... 158 Packed objects ............ 26 Copying and pinning.......... 162 Conventions and terminology ........ 72 Handling exceptions .......... 164 Other sources of information ........ 73 Synchronization ........... 164 Accessibility .............. 74 Debugging the JNI .......... 165 JNI checklist............. 167 Chapter 2. Understanding the | Graphics processing unit (GPU) ....... 167 components ............ 75 | System requirements .......... 168 The building blocks of the IBM Virtual Machine for Java ................. 75 Chapter 3. Planning......... 169 Java application stack .......... 76 Migrating from earlier releases of the IBM SDK, Components of the IBM Virtual Machine for Java 77 Java Technology Edition .......... 169 Memory management ........... 79 Version compatibility ........... 172 Overview of memory management ..... 79 Supported environments ......... 172 Allocation .............. 81 Detailed description of global garbage collection 84 Chapter 4. Installing and configuring Generational Concurrent Garbage Collector... 93 Balanced Garbage Collection policy ..... 94 the SDK and Runtime Environment .. 175 Metronome Garbage Collection policy .... 101 Upgrading the SDK ........... 175 How to do heap sizing ......... 102 Installing from an InstallAnywhere package ... 175 Interaction of the Garbage Collector with Completing an attended installation ..... 176 applications ............. 104 Completing an unattended installation .... 177 How to coexist with the Garbage Collector .. 105 Interrupted installation ......... 178 Frequently asked questions about the Garbage Known issues and limitations ....... 179 Collector .............. 108 Configuring the SDK and Runtime Environment 180 Class loading ............. 111 Setting the path ........... 180 The parent-delegation model ....... 112 Setting the class path .......... 180 Namespaces and the runtime package .... 113 Updating your SDK or runtime environment for Custom class loaders .......... 113 Daylight Saving Time changes....... 181 Class data sharing ............ 114 Uninstalling the SDK and Runtime Environment 181 The JIT compiler ............ 115 JIT compiler overview ......... 115 Chapter 5. Developing Java How the JIT compiler optimizes code .... 116 applications ............ 183 Frequently asked questions about the JIT Using XML .............. 183 compiler .............. 118 Migrating to the XL-TXE-J ........ 185 The AOT compiler............ 119 Securing Java API for XML processing (JAXP) Networking .............. 120 against malformed input ........ 187 Java Sockets over Remote Direct Memory XML reference information ........ 188 Access (JSOR) ............ 120 Debugging Java applications ........ 192 | The jVerbs library ........... 131 Java Debugger (JDB) .......... 193 Java Remote Method Invocation ....... 134 © Copyright IBM Corp. 2011, 2018 iii Determining whether your application is running Chapter 7. Running Java applications 249 on a 32-bit or 64-bit JVM ......... 193 The java and javaw commands ....... 249 Porting Java applications to 64-bit systems ... 194 Obtaining version information....... 249 General porting considerations ...... 194 Specifying Java options and system properties 251 Porting native code from 32-bit to 64-bit systems 197 Standard options ........... 251 JNI considerations ........... 198 Globalization of the java command ..... 252 Usage of the JNI interface ........ 200 Working with the LD_LIBRARY_PATH environment JVMPI and JVMDI interfaces ....... 200 variable ............... 253 How the JVM processes signals ....... 201 The Just-In-Time (JIT) compiler ....... 253 Signals used by the JVM ........ 201 Disabling the JIT ........... 254 Linking a native code driver to the Enabling the JIT ........... 254 signal-chaining library ......... 203 Determining whether the JIT is enabled ... 254 Writing JNI applications .......... 204 Specifying a garbage collection policy ..... 255 Supported compilers .......... 204 Garbage collection options ........ 255 JNI compatibility ........... 205 More effective heap usage using compressed JNI runtime linking .......... 205 references ............. 256 Example of using Linux shared libraries ... 206 Pause time ............. 257 | Writing Java applications that use a graphics Pause time reduction .......... 258 | processing unit ............. 207 Environments with very full heaps ..... 259 | The CUDA4J application programming interface 207 Using the Metronome Garbage Collector ... 259 | The com.ibm.gpu application programming Enabling Java Sockets over Remote Direct Memory | interface .............. 208 Access (JSOR) ............. 265 | Writing Java applications that use the jVerbs library 209 | Enabling JSOR communication between a Java | jVerbs programming terms and artifacts ... 210 | application and a native application ..... 267 | Implementing client and server communications | Enabling application processing on a graphics | with the verbs interface ......... 212 | processing unit ............. 269 | Implementing server and client communications | Running Java applications on the Little Endian | with the endpoint interface ........ 222 | (LE) Runtime Environment ......... 270 Support for thread-level recovery of blocked Support for bidirectional data ........ 270 connectors .............. 226 Special Arabic characters ........ 271 CORBA support ............ 226 Known limitations........... 273 System properties for tracing the ORB .... 227 Euro symbol support ........... 274 System properties for tuning the ORB .... 228 Fallback font configuration files ....... 274 Java security permissions for the ORB .... 228 Configuring large page memory allocation ... 274 ORB implementation classes ....... 229 System resource limits and the ulimit command 276 RMI over IIOP ............. 229 RMI-IIOP Programmer's Guide ...... 230 Chapter 8. Performance ....... 279 Implementing the Connection Handler Pool for Class data sharing between JVMs ...... 279 RMI ................ 236 Overview of class data sharing ...... 279 Developing Java applications ........ 237 Class data sharing command-line options ... 281 Support for XToolkit ........... 237 Creating, populating, monitoring, and deleting a Support for the Java Attach API ....... 237
Recommended publications
  • Thriving in a Crowded and Changing World: C++ 2006–2020
    Thriving in a Crowded and Changing World: C++ 2006–2020 BJARNE STROUSTRUP, Morgan Stanley and Columbia University, USA Shepherd: Yannis Smaragdakis, University of Athens, Greece By 2006, C++ had been in widespread industrial use for 20 years. It contained parts that had survived unchanged since introduced into C in the early 1970s as well as features that were novel in the early 2000s. From 2006 to 2020, the C++ developer community grew from about 3 million to about 4.5 million. It was a period where new programming models emerged, hardware architectures evolved, new application domains gained massive importance, and quite a few well-financed and professionally marketed languages fought for dominance. How did C++ ś an older language without serious commercial backing ś manage to thrive in the face of all that? This paper focuses on the major changes to the ISO C++ standard for the 2011, 2014, 2017, and 2020 revisions. The standard library is about 3/4 of the C++20 standard, but this paper’s primary focus is on language features and the programming techniques they support. The paper contains long lists of features documenting the growth of C++. Significant technical points are discussed and illustrated with short code fragments. In addition, it presents some failed proposals and the discussions that led to their failure. It offers a perspective on the bewildering flow of facts and features across the years. The emphasis is on the ideas, people, and processes that shaped the language. Themes include efforts to preserve the essence of C++ through evolutionary changes, to simplify itsuse,to improve support for generic programming, to better support compile-time programming, to extend support for concurrency and parallel programming, and to maintain stable support for decades’ old code.
    [Show full text]
  • Workforce Management Web
    Workforce Management Web 8.5.214.14 9/23/2021 8.5.214.14 8.5.214.14 Workforce Management Web Release Notes Release Date Release Type Restrictions AIX Linux Solaris Windows 05/08/19 General X X Contents • 1 8.5.214.14 • 1.1 Helpful Links • 1.2 What's New • 1.3 Resolved Issues • 1.4 Upgrade Notes • 1.5 Supported Languages Workforce Management Web 2 8.5.214.14 What's New Helpful Links This release includes the following new features and enhancements: Releases Info • WFM Web for Supervisors includes a redesigned Forecast module, • List of 8.5.x Releases enabling access to existing forecasting functionality and features, but with many user-friendly enhancements, wizards, and tools. Web for • 8.5.x Known Issues Supervisors (Classic) Forecast module is still supported and available. Note: The Forecast module is currently available only in English. (WFM-28004) Product Documentation • AI-powered Forecasting is introduced in the redesigned Forecast module, providing a sophisticated, automated build method that uses the best of best forecasting algorithms provided through Genesys Workforce Management hosted cloud infrastructure. For information about how to use this build method, see Building Volumes in the Workforce Management Genesys Products Supervisor Help.(WFM-28004) List of Release Notes • The Workforce Management Supervisor Help is a context-sensitive Help that describes the new Forecast interface, including topics that describe the Forecast Scenario and Master Forecast views, and procedures that describe forecasting tasks. The Workforce Management Supervisors (Classic) Help is still available. (WFM-29230) • The Overlays view in the new WFM Web Forecast interface is enhanced, enabling supervisors to adjust Spread over distribution to 15 or 30 minutes (in addition to 60).
    [Show full text]
  • Making Speech Recognition Work on the Web Christopher J. Varenhorst
    Making Speech Recognition Work on the Web by Christopher J. Varenhorst Submitted to the Department of Electrical Engineering and Computer Science in partial fulfillment of the requirements for the degree of Masters of Engineering in Computer Science and Engineering at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY May 2011 c Massachusetts Institute of Technology 2011. All rights reserved. Author.................................................................... Department of Electrical Engineering and Computer Science May 20, 2011 Certified by . James R. Glass Principal Research Scientist Thesis Supervisor Certified by . Scott Cyphers Research Scientist Thesis Supervisor Accepted by . Christopher J. Terman Chairman, Department Committee on Graduate Students Making Speech Recognition Work on the Web by Christopher J. Varenhorst Submitted to the Department of Electrical Engineering and Computer Science on May 20, 2011, in partial fulfillment of the requirements for the degree of Masters of Engineering in Computer Science and Engineering Abstract We present an improved Audio Controller for Web-Accessible Multimodal Interface toolkit { a system that provides a simple way for developers to add speech recognition to web pages. Our improved system offers increased usability and performance for users and greater flexibility for developers. Tests performed showed a %36 increase in recognition response time in the best possible networking conditions. Preliminary tests shows a markedly improved users experience. The new Wowza platform also provides a means of upgrading other Audio Controllers easily. Thesis Supervisor: James R. Glass Title: Principal Research Scientist Thesis Supervisor: Scott Cyphers Title: Research Scientist 2 Contents 1 Introduction and Background 7 1.1 WAMI - Web Accessible Multimodal Toolkit . 8 1.1.1 Existing Java applet . 11 1.2 SALT .
    [Show full text]
  • Defining the Undefinedness of C
    Technical Report: Defining the Undefinedness of C Chucky Ellison Grigore Ros, u University of Illinois {celliso2,grosu}@illinois.edu Abstract naturally capture undefined behavior simply by exclusion, be- This paper investigates undefined behavior in C and offers cause of the complexity of undefined behavior, it takes active a few simple techniques for operationally specifying such work to avoid giving many undefined programs semantics. behavior formally. A semantics-based undefinedness checker In addition, capturing the undefined behavior is at least as for C is developed using these techniques, as well as a test important as capturing the defined behavior, as it represents suite of undefined programs. The tool is evaluated against a source of many subtle program bugs. While a semantics other popular analysis tools, using the new test suite in of defined programs can be used to prove their behavioral addition to a third-party test suite. The semantics-based tool correctness, any results are contingent upon programs actu- performs at least as well or better than the other tools tested. ally being defined—it takes a semantics capturing undefined behavior to decide whether this is the case. 1. Introduction C, together with C++, is the king of undefined behavior—C has over 200 explicitly undefined categories of behavior, and A programming language specification or semantics has dual more that are left implicitly undefined [11]. Many of these duty: to describe the behavior of correct programs and to behaviors can not be detected statically, and as we show later identify incorrect programs. The process of identifying incor- (Section 2.6), detecting them is actually undecidable even rect programs can also be seen as describing which programs dynamically.
    [Show full text]
  • Rich Internet Applications for the Enterprise
    Final Thesis Rich Internet Applications for the Enterprise A comparative study of WebWork and Java Web Start by Emil Jönsson LITH-IDA-EX–07/063–SE 2007-12-07 Linköping University Department of Computer and Information Science Final Thesis Rich Internet Applications for the Enterprise A comparative study of WebWork and Java Web Start by Emil Jönsson LITH-IDA-EX–07/063–SE Supervisors: Valérie Viale Amadeus Philippe Larosa Amadeus Examiner: Kristian Sandahl Department of Computer and Information Science Linköping University Abstract Web applications initially became popular much thanks to low deployment costs and programming simplicity. However, as business requirements grow more complex, limitations in the web programming model might become evident. With the advent of techniques such as AJAX, the bar has been raised for what users have come to expect from web applications. To successfully implement a large-scale web application, software developers need to have knowledge of a big set of complementary technologies. This thesis highlights some of the current problems with the web programming model and discusses how using desktop technologies can improve the user experience. The foundation of the thesis is an implementation of a prototype of a central hotel property management system using web technologies. These technologies have then been compared to an alternative set of technologies, which were used for implementing a second prototype; a stand-alone desktop client distributed using Java Web Start. Keywords: web development, Rich Internet Applications, WebWork, Java Web Start, Property Management System, hospitality software Acknowledgements First I would like to thank Amadeus for giving me the opportunity to do an internship at their development site in Sophia Antipolis.
    [Show full text]
  • Exploiting SAS Software Using Java Technology
    Exploiting SAS® Software Using Java™ Technology Barbara Walters, SAS Institute Inc., Cary, NC Java programs are often delivered via the Internet. In order to protect the local machine from malicious programs, the Java language and the JVM Abstract provide a secure environment for application execution. The secure This paper describes how to use Java™ technology with SAS software. environment ensures that the client machine (the machine where the SAS Institute currently offers several Java development tools that allow browser is running) is not corrupted by the downloaded program and that applications to access SAS data and take advantage of SAS no information is stolen from the client machine. computational capabilities. This paper describes how to use these class libraries and address client/server configuration and performance Java security is based upon the “sandbox” model. The sandbox is the issues. set of resources (threads, socket connections, local files, etc.) that the downloaded Java code is allowed to access. The code is restricted from accessing resources outside of its sandbox. In executing Java applets, Introduction each Web browser defines the limits of the sandbox. Since its introduction in mid-1995, Java have become an integral part of The Security Manager enforces the limits of the sandbox. For applets, the World Wide Web. Java is a rich programming language that enables the Web browser controls the Security Manager. Each browser may put Web programmers to create sophisticated and responsive client/server different restrictions on applet behavior. The default limits imposed by applications. Because Java is portable and secure, users of Web the Security Manager are: applications can be confident that those applications will execute • Classes cannot access the local file system properly and not corrupt their computers.
    [Show full text]
  • Applets, Servlets and JSP
    Java Programming : applets, servlets and JSP. SR03 Dritan Nace A summary of Java Java is a language developed by Sun, which is designed to be object oriented and Simple, robust and secure, independent of hardware architectures and Multitasking. Object oriented and simple : Simpler than C++, transparent memory managment… Robust et secure : Data typing is extremely strict. For applets, it is in principle impossible to access the resources of the host machine. Independant of hardware architectures : The compiler generates a universal code : the « byte-code ». An interpreter which is specific to the host machine, « virtual machine », executes the programs. Multitasking : Java seemingly allows execution of several processes. In reality, a time slot is given to each process on the processor (Multithreaded). J2SE versus J2EE J2SE (standard edition) contains the basic usable components from both the client and server side, – GUI, AWT/Swing for applications (client) or applets. Currently J2SE v1.6 (ou V6) J2EE (enterprise edition), is in a certain sense an extension of SE, designed for server side programming – Servlets, JSP, EJB, etc. • Currently J2EE v1.4 Java and object oriented programming • Classes, and objects – The objects include data and processing for the data. Communication is done via messages (methods). – A class corresponds to an abstract model for object construction. A class is made up of: • attributes (static part) • Methods (dynamic part), which define the behaviour. – Inheritance : the « is a » relationship : a car is a vehicule, – Polymorphism : the same message can be recognised by several objects and entail different behaviour. Portability: JVM The compiler compiles the java source in byte code : javac car.java => car.class Then, java is the name of the program which will interpret the generated byte code.
    [Show full text]
  • Migrating from Java Applets to Plugin-Free Java Technologies
    Migrating from Java Applets to plugin-free Java technologies An Oracle White Paper January, 2016 Migrating from Java Applets to plugin-free Java technologies Migrating from Java Applets to plugin-free Java technologies Disclaimer The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Migrating from Java Applets to plugin-free Java technologies Executive Overview ........................................................................... 4 Browser Plugin Perspectives ............................................................. 4 Java Web Start .................................................................................. 5 Alternatives ....................................................................................... 6 Native Windows/OS X/Linux Installers ........................................... 6 Inverted Browser Control ............................................................... 7 Detecting Applets .............................................................................. 7 Migrating from Java Applets to plugin-free Java technologies Executive Overview With modern browser vendors working to restrict or reduce the support of plugins like
    [Show full text]
  • Openjdk 8 Getting Started with Openjdk 8 Legal Notice
    OpenJDK 8 Getting started with OpenJDK 8 Last Updated: 2021-07-21 OpenJDK 8 Getting started with OpenJDK 8 Legal Notice Copyright © 2021 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js ® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project. The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission.
    [Show full text]
  • CDC: Java Platform Technology for Connected Devices
    CDC: JAVA™ PLATFORM TECHNOLOGY FOR CONNECTED DEVICES Java™ Platform, Micro Edition White Paper June 2005 2 Table of Contents Sun Microsystems, Inc. Table of Contents Introduction . 3 Enterprise Mobility . 4 Connected Devices in Transition . 5 Connected Devices Today . 5 What Users Want . 5 What Developers Want . 6 What Service Providers Want . 6 What Enterprises Want . 6 Java Technology Leads the Way . 7 From Java Specification Requests… . 7 …to Reference Implementations . 8 …to Technology Compatibility Kits . 8 Java Platform, Micro Edition Technologies . 9 Configurations . 9 CDC . 10 CLDC . 10 Profiles . 11 Optional Packages . 11 A CDC Java Runtime Environment . 12 CDC Technical Overview . 13 CDC Class Library . 13 CDC HotSpot™ Implementation . 13 CDC API Overview . 13 Application Models . 15 Standalone Applications . 16 Managed Applications: Applets . 16 Managed Applications: Xlets . 17 CLDC Compatibility . 18 GUI Options and Tradeoffs . 19 AWT . 19 Lightweight Components . 20 Alternate GUI Interfaces . 20 AGUI Optional Package . 20 Security . 21 Developer Tool Support . 22 3 Introduction Sun Microsystems, Inc. Chapter 1 Introduction From a developer’s perspective, the APIs for desktop PCs and enterprise systems have been a daunting combination of complexity and confusion. Over the last 10 years, Java™ technology has helped simplify and tame this world for the benefit of everyone. Developers have benefited by seeing their skills become applicable to more systems. Users have benefited from consistent interfaces across different platforms. And systems vendors have benefited by reducing and focusing their R&D investments while attracting more developers. For desktop and enterprise systems, “Write Once, Run Anywhere”™ has been a success. But if the complexities of the desktop and enterprise world seem, well, complex, then the connected device world is even scarier.
    [Show full text]
  • Automatic Detection of Unspecified Expression Evaluation in Freertos Programs
    IT 14 022 Examensarbete 30 hp Juni 2014 Automatic Detection of Unspecified Expression Evaluation in FreeRTOS Programs Shahrzad Khodayari Institutionen för informationsteknologi Department of Information Technology . ... ... .... . . .. . . Acknowledgements This is a master thesis submitted in Embedded Systems to Department of Information Technology, Uppsala University, Uppsala, Sweden. I would like to express my deepest gratitude to my suppervisor Philipp Rümmer, Programme Director for Master’s programme in Embedded System at Uppsala University, for his patience in supporting continuously and generously guiding me with this project. I would like to appriciate professor Bengt Jonsson for reviewing my master thesis and offering valuable suggestions and comments. I would like to thank professor Daniel Kroening for helping me and providing updates of CBMC. Sincere thanks to my husband and my incredible parents who gave me courage and support throughout the project. Contents 1 Introduction..........................................................................................................1 Contributions.................................................................................................................3 Structure of the thesis report..........................................................................................3 2 Background...........................................................................................................5 2.1 Verification..............................................................................................................5
    [Show full text]
  • Evaluating the Flexibility of the Java Sandbox
    Evaluating the Flexibility of the Java Sandbox Zack Coker, Michael Maass, Tianyuan Ding, Claire Le Goues, and Joshua Sunshine Carnegie Mellon University {zfc,mmaass}@cs.cmu.edu, [email protected], {clegoues,sunshine}@cs.cmu.edu ABSTRACT should protect both the host application and machine from The ubiquitously-installed Java Runtime Environment (JRE) malicious behavior. In practice, these security mechanisms provides a complex, flexible set of mechanisms that support are problematically buggy such that Java malware is often the execution of untrusted code inside a secure sandbox. able to alter the sandbox's settings [4] to override security However, many recent exploits have successfully escaped the mechanisms. Such exploits take advantage of defects in either sandbox, allowing attackers to infect numerous Java hosts. the JRE itself or the application's sandbox configuration to We hypothesize that the Java security model affords devel- disable the security manager, the component of the sandbox opers more flexibility than they need or use in practice, and responsible for enforcing the security policy [5, 6, 7, 8]. thus its complexity compromises security without improving In this paper, we investigate this disconnect between theory practical functionality. We describe an empirical study of the and practice. We hypothesize that it results primarily from ways benign open-source Java applications use and interact unnecessary complexity and flexibility in the design and with the Java security manager. We found that developers engineering of Java's security mechanisms. For example, regularly misunderstand or misuse Java security mechanisms, applications are allowed to change the security manager at that benign programs do not use all of the vast flexibility runtime, whereas static-only configuration of the manager afforded by the Java security model, and that there are clear would be more secure.
    [Show full text]