Coffee Break

Total Page:16

File Type:pdf, Size:1020Kb

Coffee Break :FM<IJKFIP Java on Linux DXb`e^j\ej\f]AXmXfeC`elo :F==<< 9I<8B We introduce some tools and projects of the Java landscape. BY DAVID HULL inux is a free operating system. run Java on a completely free, TCK-com- a burst of JVM development. Literally Java is one of the most popular pliant system. dozens of projects sprang up. Most of Cplatforms for free software. Run- Because the open source community these projects had petered out by 2003 ning free Java software on Linux should still supports several other completely or so, but a few stuck around and be easy; yet, until fairly recently, anyone free choices that aren’t officially blessed, gained wider acceptance. who wanted to run Java on Linux faced the situation is still a bit complex. To run Sun’s HotSpot JVM comes in client a dilemma. On one hand, you could use Java, you need some way of executing and server versions. Both versions are Sun’s own Java environment, and you’d Java bytecodes, typically but not neces- free. The client version is tuned for be guaranteed compatibility (at least sarily, with a Java Virtual Machine shorter running applications, whereas with other Sun-based deployments), but (JVM), and you need an implementation the server version is tuned for long-run- you would be using non-free software. of whatever libraries you are using (to- ning servers. The main difference is that On the other hand, you could go with gether, this is more or less what Sun the server version puts more effort into any of literally dozens of free offerings, calls a Java Runtime Environment optimizations that have a greater effect ranging from someone’s PhD thesis to [JRE]). In this article, I will walk you with longer execution times. An applica- major projects with release schedules through the major choices for JREs. tion running on the client JVM will typi- and full-time staff, but these alternatives cally start faster but might run slower would lead to questions of compatibility N_`Z_AMD6 over time. HotSpot is the JVM shipped under Sun’s Technology Compatibility The JVM is the component that actually with OpenJDK [4] (Figure 2). At this Kit (TCK) test suite. runs your Java application. Because Java writing, the latest point release is dated This situation improved considerably programs are represented as a sequence February 11, 2009. in late 2006 and early 2007 when Sun of bytecodes, the simple way to run a JamVM [5], an alternative virtual ma- began releasing its Java Development Kit Java application is to interpret each byte- chine developed by Robert Lougher and (JDK) under a free license. Because Sun code and do what it says. This simple first released in 2003, is optimized for relied on other vendors for some parts of method is much too slow to be practical, small size and fast startup time. The exe- the JDK, it couldn’t release them as free so modern JVMs typically include a Just software. The IcedTea project [1] has In Time (JIT) compiler that translates Work in Progress filled in these missing pieces, both for Java bytecodes to native machine code. The components discussed in this article JDK 5 and JDK 6, by bringing in appro- When Java was introduced, the idea are under active development. State- priate parts of the GNU Classpath [2] of a new object-oriented language with ments about which versions are avail- (Figure 1). Because Sun has also re- a published specification and a major able, or packaged, or compatible with leased its HotSpot JVM [3] under an vendor behind it was catnip to program- various other components reflect my open source license, it is now possible to ming language researchers, resulting in best understanding as of this writing. 32 ISSUE 102 MAY 2009 Java on Linux :FM<IJKFIP called “Ahead Of Time” (AOT) compila- tion to distinguish it from “just in time.” Many of the earlier open source JVM projects are still around, and some of them might even work with modern Java systems. To use them, you’ll have to build the code yourself and, quite pos- sibly, get your hands dirty in the code. In addition, you will find a number of more specialized JVMs aimed at embed- ded applications or other niches. They aren’t included here, but if you’re curi- ous, the Kaffe site has an extensive list [11]. A virtual machine called IKVM [12] is even available for running Java on .NET, and it works with Linux. Tools like IKVM might be useful if you’re develop- ing for .NET, but for running ordinary =`^li\(1K_\>EL:cXjjgXk_c`YiXip`jXe`dgfikXekZfdgfe\ekf]k_\fg\ejfliZ\AXmX Java applications on Linux, it’s probably \em`ifed\ek% better just to run them in a standard en- vironment. cutable for the i486 and later Intel chips at portability and small size. Kaffe has is around 180KB. JamVM is developed been ported to a large variety of plat- N_`Z_C`YiXi`\j6 mainly on PowerPC, but it has been built forms, ranging from small embedded de- Mercifully, the task of choosing libraries and tested on ix86, ARM, AMD64, and vices to Linux, Mac, and Windows. The is much simpler than choosing JVMs be- MIPS chips. JamVM requires GNU Class- developers do not claim full Sun compat- cause the open source user has fewer path for library support; according to the ibility. In fact, the website goes so far as options. After all, writing a complete set JamVM website, it is incompatible with to explicitly disclaim Sun support. In par- of libraries is a much bigger task than OpenJDK. The latest release is 1.5.2, ticular, Kaffe does not support security writing a JVM. For example, the GNU dated February 4, 2009. features such as bytecode verification. Classpath project has 20 active develop- Cacao [6] was originally developed in The SableVM project [9] aims to pro- ers, whereas a VM tool like JamVM has 1997 at the Vienna Institute of Technol- vide a highly portable and understand- just one. And let’s face it: Writing a new ogy as a faster alternative to Sun’s JVM, able JVM implementation. SableVM uses JVM with a cutting-edge optimizing JIT which was a pure interpreter. Cacao in- a sophisticated interpreter to achieve is a lot more fun than writing 18 differ- stead compiles everything as it runs it. performance “near” that of a JIT. Ac- ent versions of Arrays.fill(). In this, it is more like the server version cording to the website, the Sable project Most Java libraries can be written in of HotSpot than the client. Cacao be- “has met its research goals and is not ac- Java and will run on any compliant JVM, came an open source project in 2004. tively maintained anymore”; indeed, the leaving only a small set of packages that The latest release is 0.99.3, dated August last release was 1.13, dated December must be customized for the JVM imple- 12, 2008. 2005. Nonetheless, SableVM is available mentation. In practice, all of the JVMs I Jikes RVM [7] (not to be confused in package form for major distributions. listed, except HotSpot, integrate with with the RVM “recoverable memory” li- Another option is to compile with the GNU Classpath. Several also integrate brary) is the JVM produced as part of GNU Compiler for Java (GCJ) [10]. Did I with OpenJDK. Even OpenJDK itself IBM’s Jalapeño project. The Jikes VM is say the JVM is what actually runs Java used GNU Classpath code to replace the “meta-circular,” meaning it is written in programs? Usually it is, but you don’t proprietary sections that Sun couldn’t Java. The R in the name is for research, have to take the usual route of compiling open source. and RVM is aimed at demonstrating and Java to bytecodes and then feeding them Although Sun has opened its library trying out new and wonderful ideas in to a JVM that will most likely compile code, it still tightly controls the process virtual machine technology. The project them even more. Instead, you can feed and compatibility tests (in particular, its is very much alive – with a book just re- the bytecodes to the GCJ and produce TCK) that allow an implementation to leased about its architecture – but unlike native code directly. Also, you can use claim full Java compliance. Because of the Jikes compiler, it does not appear to the GCJ to compile Java Archive (JAR) this, it is generally not practical for open be actively packaged for distribution. files to native code. The finished product source projects to claim full Java compli- Kaffe [8] was originally developed in will run like any other native executable, ance, with the special exception of Open- 1996 and was, for a time, the flagship and a libgcj shared library even provides JDK. Naturally, an open source project, product of Transvirtual Technologies. the standard library environment. This Mauve [13], was started that is aimed at Transvirtual released Kaffe under the process is what used to be called “compi- addressing this by providing a free test GPL in 1998, and it continues as an open lation,” but in the context of a bytecode- suite for Java class libraries. source project. The Kaffe project is aimed based system like Java or .NET, it is GNU Classpath was practically the MAY 2009 ISSUE 102 33 :FM<IJKFIP Java on Linux only game in town for a long time if you 2.0. The requirement of Apache compli- OpenJDK 6 with HotSpot, Kaffe, and wanted to run Java in a completely free ance precludes GNU Classpath, which Cacao.
Recommended publications
  • Building Openjfx
    Building OpenJFX Building a UI toolkit for many different platforms is a complex and challenging endeavor. It requires platform specific tools such as C compilers as well as portable tools like Gradle and the JDK. Which tools must be installed differs from platform to platform. While the OpenJFX build system was designed to remove as many build hurdles as possible, it is necessary to build native code and have the requisite compilers and toolchains installed. On Mac and Linux this is fairly easy, but setting up Windows is more difficult. If you are looking for instructions to build FX for JDK 8uNNN, they have been archived here. Before you start Platform Prerequisites Windows Missing paths issue Mac Linux Ubuntu 18.04 Ubuntu 20.04 Oracle Enterprise Linux 7 and Fedora 21 CentOS 8 Common Prerequisites OpenJDK Git Gradle Ant Environment Variables Getting the Sources Using Gradle on The Command Line Build and Test Platform Builds NOTE: cross-build support is currently untested in the mainline jfx-dev/rt repo Customizing the Build Testing Running system tests with Robot Testing with JDK 9 or JDK 10 Integration with OpenJDK Understanding a JDK Modular world in our developer build Adding new packages in a modular world First Step - development Second Step - cleanup Before you start Do you really want to build OpenJFX? We would like you to, but the latest stable build is already available on the JavaFX website, and JavaFX 8 is bundled by default in Oracle JDK 8 (9 and 10 also included JavaFX, but were superseded by 11, which does not).
    [Show full text]
  • Glassfish Server Open Source Edition 3.1 Installation Guide
    GlassFish Server Open Source Edition 3.1 Installation Guide Part No: 821–2453 Feburary 2011 Copyright © 2010, 2011, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related software documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are “commercial computer software” or “commercial technical data” pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms setforth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.
    [Show full text]
  • Writing R Extensions
    Writing R Extensions Version 4.2.0 Under development (2021-09-29) R Core Team This manual is for R, version 4.2.0 Under development (2021-09-29). Copyright c 1999{2021 R Core Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into an- other language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the R Core Team. i Table of Contents Acknowledgements ::::::::::::::::::::::::::::::::::::::::::::::::: 1 1 Creating R packages ::::::::::::::::::::::::::::::::::::::::::: 2 1.1 Package structure :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 3 1.1.1 The DESCRIPTION file ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 4 1.1.2 Licensing ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 1.1.3 Package Dependencies::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 9 1.1.3.1 Suggested packages:::::::::::::::::::::::::::::::::::::::::::::::::::::: 12 1.1.4 The INDEX file ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 13 1.1.5 Package subdirectories :::::::::::::::::::::::::::::::::::::::::::::::::::::::
    [Show full text]
  • Going from Python to Guile Scheme a Natural Progression
    Going from Python to Guile Scheme A natural progression Arne Babenhauserheide February 28, 2015 Abstract After 6 years of intense Python-Programming, I am starting into Guile Scheme. And against all my expec- tations, I feel at home. 1 2 The title image is built on Green Tree Python from Michael Gil, licensed under the creativecommons attribution license, and Guile GNU Goatee from Martin Grabmüller, Licensed under GPLv3 or later. This book is licensed as copyleft free culture under the GPLv3 or later. Except for the title image, it is copyright (c) 2014 Arne Babenhauserheide. Contents Contents 3 I My story 7 II Python 11 1 The Strengths of Python 13 1.1 Pseudocode which runs . 13 1.2 One way to do it . 14 1.3 Hackable, but painfully . 15 1.4 Batteries and Bindings . 17 1.5 Scales up . 17 2 Limitations of Python 19 2.1 The warped mind . 19 2.2 Templates condemn a language . 20 3 4 CONTENTS 2.3 Python syntax reached its limits . 21 2.4 Time to free myself . 23 IIIGuile Scheme 25 3 But the (parens)! 29 4 Summary 33 5 Comparing Guile Scheme to the Strengths of Python 35 5.1 Pseudocode . 36 General Pseudocode . 36 Consistency . 37 Pseudocode with loops . 40 Summary . 44 5.2 One way to do it? . 44 5.3 Planned Hackablility, but hard to discover. 50 Accessing variables inside modules . 51 Runtime Self-Introspection . 51 freedom: changing the syntax is the same as reg- ular programming . 58 Discovering starting points for hacking . 60 5.4 Batteries and Bindings: FFI .
    [Show full text]
  • Toward Harnessing High-Level Language Virtual Machines for Further Speeding up Weak Mutation Testing
    2012 IEEE Fifth International Conference on Software Testing, Verification and Validation Toward Harnessing High-level Language Virtual Machines for Further Speeding up Weak Mutation Testing Vinicius H. S. Durelli Jeff Offutt Marcio E. Delamaro Computer Systems Department Software Engineering Computer Systems Department Universidade de Sao˜ Paulo George Mason University Universidade de Sao˜ Paulo Sao˜ Carlos, SP, Brazil Fairfax, VA, USA Sao˜ Carlos, SP, Brazil [email protected] [email protected] [email protected] Abstract—High-level language virtual machines (HLL VMs) have tried to exploit the control that HLL VMs exert over run- are now widely used to implement high-level programming ning programs to facilitate and speedup software engineering languages. To a certain extent, their widespread adoption is due activities. Thus, this research suggests that software testing to the software engineering benefits provided by these managed execution environments, for example, garbage collection (GC) activities can benefit from HLL VMs support. and cross-platform portability. Although HLL VMs are widely Test tools are usually built on top of HLL VMs. However, used, most research has concentrated on high-end optimizations they often end up tampering with the emergent computation. such as dynamic compilation and advanced GC techniques. Few Using features within the HLL VMs can avoid such problems. efforts have focused on introducing features that automate or fa- Moreover, embedding testing tools within HLL VMs can cilitate certain software engineering activities, including software testing. This paper suggests that HLL VMs provide a reasonable significantly speedup computationally expensive techniques basis for building an integrated software testing environment. As such as mutation testing [6].
    [Show full text]
  • Java (Programming Langua a (Programming Language)
    Java (programming language) From Wikipedia, the free encyclopedialopedia "Java language" redirects here. For the natural language from the Indonesian island of Java, see Javanese language. Not to be confused with JavaScript. Java multi-paradigm: object-oriented, structured, imperative, Paradigm(s) functional, generic, reflective, concurrent James Gosling and Designed by Sun Microsystems Developer Oracle Corporation Appeared in 1995[1] Java Standard Edition 8 Update Stable release 5 (1.8.0_5) / April 15, 2014; 2 months ago Static, strong, safe, nominative, Typing discipline manifest Major OpenJDK, many others implementations Dialects Generic Java, Pizza Ada 83, C++, C#,[2] Eiffel,[3] Generic Java, Mesa,[4] Modula- Influenced by 3,[5] Oberon,[6] Objective-C,[7] UCSD Pascal,[8][9] Smalltalk Ada 2005, BeanShell, C#, Clojure, D, ECMAScript, Influenced Groovy, J#, JavaScript, Kotlin, PHP, Python, Scala, Seed7, Vala Implementation C and C++ language OS Cross-platform (multi-platform) GNU General Public License, License Java CommuniCommunity Process Filename .java , .class, .jar extension(s) Website For Java Developers Java Programming at Wikibooks Java is a computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few impimplementation dependencies as possible.ble. It is intended to let application developers "write once, run ananywhere" (WORA), meaning that code that runs on one platform does not need to be recompiled to rurun on another. Java applications ns are typically compiled to bytecode (class file) that can run on anany Java virtual machine (JVM)) regardless of computer architecture. Java is, as of 2014, one of tthe most popular programming ng languages in use, particularly for client-server web applications, witwith a reported 9 million developers.[10][11] Java was originallyy developed by James Gosling at Sun Microsystems (which has since merged into Oracle Corporation) and released in 1995 as a core component of Sun Microsystems'Micros Java platform.
    [Show full text]
  • WEP12 Writing TINE Servers in Java
    Proceedings of PCaPAC2005, Hayama, Japan WRITING TINE SERVERS IN JAVA Philip Duval and Josef Wilgen Deutsches Elektronen Synchrotron /MST Abstract that the TINE protocol does not deal so much with ‘puts’ The TINE Control System [1] is used to some degree in and ‘gets’ as with data ‘links’. all accelerator facilities at DESY (Hamburg and Zeuthen) One’s first inclination when offering Java in the and plays a major role in HERA. It supports a wide Control System’s portfolio is to say that we don’t need to variety of platforms, which enables engineers and worry about a Java Server API since front-end servers machine physicists as well as professional programmers will always have to access their hardware and that is best to develop and integrate front-end server software into the left to code written in C. Furthermore, if there are real- control system using the operating system and platform of time requirements, Java would not be an acceptable their choice. User applications have largely been written platform owing to Java’s garbage collection kicking in at for Windows platforms (often in Visual Basic). In the next indeterminate intervals. generation of accelerators at DESY (PETRA III and Nevertheless, Java is a powerful language and offers VUV-FEL), it is planned to write the TINE user- numerous features and a wonderful framework for applications primarily in Java. Java control applications avoiding and catching nagging program errors. Thus have indeed enjoyed widespread acceptance within the there does in fact exist a strong desire to develop control controls community. The next step is then to offer Java as system servers using Java.
    [Show full text]
  • Bypassing Portability Pitfalls of High-Level Low-Level Programming
    Bypassing Portability Pitfalls of High-level Low-level Programming Yi Lin, Stephen M. Blackburn Australian National University [email protected], [email protected] Abstract memory-safety, encapsulation, and strong abstraction over hard- Program portability is an important software engineering consider- ware [12], which are desirable goals for system programming as ation. However, when high-level languages are extended to effec- well. Thus, high-level languages are potential candidates for sys- tively implement system projects for software engineering gain and tem programming. safety, portability is compromised—high-level code for low-level Prior research has focused on the feasibility and performance of programming cannot execute on a stock runtime, and, conversely, applying high-level languages to system programming [1, 7, 10, a runtime with special support implemented will not be portable 15, 16, 21, 22, 26–28]. The results showed that, with proper ex- across different platforms. tension and restriction, high-level languages are able to undertake We explore the portability pitfall of high-level low-level pro- the task of low-level programming, while preserving type-safety, gramming in the context of virtual machine implementation tasks. memory-safety, encapsulation and abstraction. Notwithstanding the Our approach is designing a restricted high-level language called cost for dynamic compilation and garbage collection, the perfor- RJava, with a flexible restriction model and effective low-level ex- mance of high-level languages when used to implement a virtual tensions, which is suitable for different scopes of virtual machine machine is still competitive with using a low-level language [2]. implementation, and also suitable for a low-level language bypass Using high-level languages to architect large systems is bene- for improved portability.
    [Show full text]
  • Accelerate Your Mobile Apps for Android On
    The Developer Summit at ARM® TechCon™ 2013 Accelerate your Mobile Apps and Games for Android™ on ARM Matthew Du Puy! Software Engineer, ARM The Developer Summit at ARM® TechCon™ 2013 Presenter Matthew Du Puy! Software Engineer, ARM! ! Matthew Du Puy is a software engineer at ARM and is currently working to ensuring mobile app performance on the latest ARM technologies. Previously a self employed embedded systems software contractor working primarily on the Linux Kernel and a mountain climber.! ! Contact Details: ! Email: [email protected] Title: Accelerate Your Mobile Apps and Games for Android on ARM Overview: Learn to perform Android application and systems level analysis on Android apps and platforms using tools from Google, ARM, AT&T and others. Find bottlenecks in both SDK and NDK activities and learn different approaches to fixing those bottlenecks and better utilize platform technologies and APIs. Problem: This is not a desktop ▪ Mobile apps require special design considerations that aren’t always clear and tools to solve increasingly complex systems are limited! ▪ Animations and games drop frames! ▪ Networking, display, real time audio and video processing eat battery! ▪ App won’t fit in memory constraints Analysis ▪ Fortunately Google, ARM and many others are developing analysis tools and solutions to these problems! ▪ Is my app … ?! ▪ CPU/GPGPU bound! ▪ I/O or memory constrained! ▪ Power efficient! ▪ What can I do to fix it?# (short of buying everyone who runs my app# a Quad-core ARM® Cortex™-A15 processor # & ARM Mali™-T604 processor or Octo phone) In emerging markets, not everyone has access to the latest and greatest devices but they still want to game, shop, socialize and learn with their mobiles.
    [Show full text]
  • Here I Led Subcommittee Reports Related to Data-Intensive Science and Post-Moore Computing) and in CRA’S Board of Directors Since 2015
    Vivek Sarkar Curriculum Vitae Contents 1 Summary 2 2 Education 3 3 Professional Experience 3 3.1 2017-present: College of Computing, Georgia Institute of Technology . 3 3.2 2007-present: Department of Computer Science, Rice University . 5 3.3 1987-2007: International Business Machines Corporation . 7 4 Professional Awards 11 5 Research Awards 12 6 Industry Gifts 15 7 Graduate Student and Other Mentoring 17 8 Professional Service 19 8.1 Conference Committees . 20 8.2 Advisory/Award/Review/Steering Committees . 25 9 Keynote Talks, Invited Talks, Panels (Selected) 27 10 Teaching 33 11 Publications 37 11.1 Refereed Conference and Journal Publications . 37 11.2 Refereed Workshop Publications . 51 11.3 Books, Book Chapters, and Edited Volumes . 58 12 Patents 58 13 Software Artifacts (Selected) 59 14 Personal Information 60 Page 1 of 60 01/06/2020 1 Summary Over thirty years of sustained contributions to programming models, compilers and runtime systems for high performance computing, which include: 1) Leading the development of ASTI during 1991{1996, IBM's first product compiler component for optimizing locality, parallelism, and the (then) new FORTRAN 90 high-productivity array language (ASTI has continued to ship as part of IBM's XL Fortran product compilers since 1996, and was also used as the foundation for IBM's High Performance Fortran compiler product); 2) Leading the research and development of the open source Jikes Research Virtual Machine at IBM during 1998{2001, a first-of-a-kind Java Virtual Machine (JVM) and dynamic compiler implemented
    [Show full text]
  • A Hardware Abstraction Layer in Java
    A Hardware Abstraction Layer in Java MARTIN SCHOEBERL Vienna University of Technology, Austria STEPHAN KORSHOLM Aalborg University, Denmark TOMAS KALIBERA Purdue University, USA and ANDERS P. RAVN Aalborg University, Denmark Embedded systems use specialized hardware devices to interact with their environment, and since they have to be dependable, it is attractive to use a modern, type-safe programming language like Java to develop programs for them. Standard Java, as a platform independent language, delegates access to devices, direct memory access, and interrupt handling to some underlying operating system or kernel, but in the embedded systems domain resources are scarce and a Java virtual machine (JVM) without an underlying middleware is an attractive architecture. The contribution of this paper is a proposal for Java packages with hardware objects and interrupt handlers that interface to such a JVM. We provide implementations of the proposal directly in hardware, as extensions of standard interpreters, and finally with an operating system middleware. The latter solution is mainly seen as a migration path allowing Java programs to coexist with legacy system components. An important aspect of the proposal is that it is compatible with the Real-Time Specification for Java (RTSJ). Categories and Subject Descriptors: D.4.7 [Operating Systems]: Organization and Design—Real-time sys- tems and embedded systems; D.3.3 [Programming Languages]: Language Classifications—Object-oriented languages; D.3.3 [Programming Languages]: Language Constructs and Features—Input/output General Terms: Languages, Design, Implementation Additional Key Words and Phrases: Device driver, embedded system, Java, Java virtual machine 1. INTRODUCTION When developing software for an embedded system, for instance an instrument, it is nec- essary to control specialized hardware devices, for instance a heating element or an inter- ferometer mirror.
    [Show full text]
  • Apache Harmony Project Tim Ellison Geir Magnusson Jr
    The Apache Harmony Project Tim Ellison Geir Magnusson Jr. Apache Harmony Project http://harmony.apache.org TS-7820 2007 JavaOneSM Conference | Session TS-7820 | Goal of This Talk In the next 45 minutes you will... Learn about the motivations, current status, and future plans of the Apache Harmony project 2007 JavaOneSM Conference | Session TS-7820 | 2 Agenda Project History Development Model Modularity VM Interface How Are We Doing? Relevance in the Age of OpenJDK Summary 2007 JavaOneSM Conference | Session TS-7820 | 3 Agenda Project History Development Model Modularity VM Interface How Are We Doing? Relevance in the Age of OpenJDK Summary 2007 JavaOneSM Conference | Session TS-7820 | 4 Apache Harmony In the Beginning May 2005—founded in the Apache Incubator Primary Goals 1. Compatible, independent implementation of Java™ Platform, Standard Edition (Java SE platform) under the Apache License 2. Community-developed, modular architecture allowing sharing and independent innovation 3. Protect IP rights of ecosystem 2007 JavaOneSM Conference | Session TS-7820 | 5 Apache Harmony Early history: 2005 Broad community discussion • Technical issues • Legal and IP issues • Project governance issues Goal: Consolidation and Consensus 2007 JavaOneSM Conference | Session TS-7820 | 6 Early History Early history: 2005/2006 Initial Code Contributions • Three Virtual machines ● JCHEVM, BootVM, DRLVM • Class Libraries ● Core classes, VM interface, test cases ● Security, beans, regex, Swing, AWT ● RMI and math 2007 JavaOneSM Conference | Session TS-7820 |
    [Show full text]