Openjdk & What It Means for the Java Developer

Total Page:16

File Type:pdf, Size:1020Kb

Openjdk & What It Means for the Java Developer OpenJDK & What it means for the Java Developer Dalibor Topić Java F/OSS Ambassador Sun Microsystems http://twitter.com/robilad [email protected] Java 2 Programming Language 3 Virtual Machine 4 Cross- platform Programming Environment 5 Community Of Communities 6 Pretty successful 7 ~1B LOC of Open Source Code written in it (acc. to ohloh.net) 8 That's just the visible space 9 What else happened in the last 10 years? 10 Open Source 11 From fringe to mainstream 12 Open Innovation across organizational boundaries 13 Remember shipping containers? 14 Changed the world 15 Radically reduced transaction costs 16 For material goods 17 Standardized measures 18 Optimization opportunities 19 Open Source does the same 20 For software components 21 Standardized Legal Containers 22 Permeable development 23 Lowered barrier to participation 24 Collaborative User Innovation 25 What else happened? 26 Linux 27 From fringe to mainstream 28 Cloud, Cluster, Server, Netbook, TV, Phone, ... 29 Anyone can create a Linux- based software platform 30 shipping yard, fleet & port in one 31 Organic growth 32 Cambrian explosion of Linux distros 33 Selective Pressure On Development Tools on Linux Strongly Favors Open Source 34 Manifests itself around: availability, integration, ease of use 35 Example: sudo aptitude install openjdk-6-jdk vs. many minutes of manual work 36 Example: sudo aptitude build-dep openjdk-6 vs. many hours of manual work 37 Open Source + Java + Linux 38 39 OpenJDK 7 40 JDK 7 41 Open Source 42 GPL v2 43 Classpath Exception 44 2006: From closed to open 45 First Step: Get the code out 46 Putting the effort in perspective 47 Mozilla 1.2M SLOCs 48 Eclipse 2.2M SLOCs 49 OpenJDK 3.5M SLOCs 50 Done within one year 51 Managing expectations 52 Pessimist extremists: Java will be forked to death! 53 Well, no. Didn't happen. 54 Optimist extremists: I want a feature! And I want it now! 55 Well, probably no. You can have a go at it yourself, though. 56 Culture change 57 2007: Cleaning up 58 Second Step: 100 % Open Source 59 Replacing encumbered third-party code 60 Removing structural barriers to innovation 61 Fully open source bootstrap 62 IcedTea 63 Gervill Sound Synthesizer 64 64-Bit Plugin 65 Packaging 66 OpenJDK 6 67 2008: Infrastructure & Adoption 68 Third Step: Put it to use 69 Mercurial 70 External Committers 71 JDK 7 mainline 72 Sidestreams of development 73 Feature Projects 74 Like NIO2, MLVM & Jigsaw 75 Making JDK & JVM suitable for more problems 76 Porting Projects 77 Like Zero, Shark, BSD Port 78 Putting OpenJDK in more places 79 Gentoo, Debian, Fedora, Ubuntu, OpenSUSE, Mandriva, Simply MEPIS, Linux Mint Red Hat Enterprise Linux, CentOS, Oracle Enterprise Linux FreeBSD, OpenBSD, NetBSD, MacPorts Poky Linux, Angstrom, OLPC XO 80 Removing social barriers to innovation 81 2009: JDK 7 Milestones 82 Fourth step: Create more opportunities to innovate 83 Code going from closed to open often has a tough learning curve 84 Private conversations 85 Insider knowledge 86 Easier to learn the ropes writing new code 87 Public knowledge 88 Searchable knowledge 89 In practice: Modularize the code base 90 Reducing complexity 91 Removing intrinsic barriers to innovation 92 Where are we now? 93 Gradually growing, diverse Community 94 Individual Developers 95 BSD Port Landon Fuller Greg Lewis Kurt Miller Christos Zoulas 96 Academia 97 Type Annotations Mahmood Ali Michael Ernst 98 Corporate Contributors 99 Sun, Red Hat, Google, AMD 100 Total: 180 ! @Sun.com: 47 101 25 Projects 102 Both Incremental Innovation 103 XRender Pipeline 104 And Disruptive Innovation 105 Dynamic language support 106 Larger Community 107 IcedTea 108 Jalimo 109 Cacao VM 110 Maxine VM 111 JNode OS 112 IKVM.NET 113 What about the language? 114 Size matters 115 Big changes harder then small ones 116 Project Coin 117 small language changes 118 Strings in switch 119 String s = ... switch(s) { case "foo": processFoo(s); break; } 120 Improved Type Inference for Generic Instance Creation 121 AKA: Diamond 122 // type less: Map<String, List<String>> map = new HashMap<>(); 123 Language support for JSR 292 124 Object x = InvokeDynamic.getMeSomething(); MethodHandle mh = ...; mh.invoke(); int #"strange variable name" = 42; System.out.println(#"strange variable name"); // prints 42 125 … and more 126 http://openjdk.java.net/projects/coin 127 Not so small changes 128 Type Annotations 129 JSR 308 130 Checker framework 131 @NonNull 132 @Nullable 133 javac -processor NullnessChecker MyFile.java 134 @ReadOnly 135 http://openjdk.java.net/projects/type-annotations 136 JSR 294 137 Improved modularity support in the language 138 Independent of a module system 139 Explicit Dependencies + Versioning + Accessibility 140 module-info.java 141 src/org/openjdk/SomeTool.java src/module-info.java 142 module org.openjdk.SomeTool @ 1.0 { requires module SomeLib @ 1.2; requires module AnotherLib @ 2.1; requires module jdk-swing @ 7.0; class org.openjdk.SomeTool; } 143 understood by javac 144 understood by java 145 $CLASSPATH is dead 146 Jigsaw 147 modularity for the JDK 148 Size matters 149 well-defined subsets 150 Just-enough JDK 151 simple & static 152 low level 153 native packaging 154 jpkg 155 Now: deb 156 Soon: RPM SVR4 IPS 157 Add your format: [email protected] 158 http://openjdk.java.net/projects/jigsaw/ 159 JDK 7 160 8 milestones 161 M1 (finished) 162 Compressed OOPs 163 Garbage First Garbage Collector 164 M2 (finished) 165 NIO2 166 URLClassLoader.close() 167 M3 (finished) 168 InvokeDynamic 169 Stream Control Transmission Protocol 170 Sockets Direct Protocol 171 Unicode 5.1 172 ClassLoader Architecture Update 173 M4 (finished) 174 Forward-port 6u10 features 175 Type Annotations 176 M5 (ongoing) 177 Update the XML stack 178 Elliptic Curve Cryptography 179 Swing Updates 180 Concurrency & Collections Updates 181 Project Coin 182 http://openjdk.java.net/projects/jdk7/ 183 Contribute 184 http://openjdk.java.net 185 Patches for JDK 7 186 http://bugs.openjdk.java.net 187 Stay up to date 188 http://planetjdk.org 189 Discuss development 190 [email protected] 191 [email protected] 192 Q & A [email protected] 193.
Recommended publications
  • Introduction to Java
    Introduction to Java James Brucker What is Java? Java is a language for writing computer programs. it runs on almost any "computer". desktop mobile phones game box web server & web apps smart devices What Uses Java? OpenOffice & LibreOffice (like Microsoft Office) Firefox Google App Engine Android MindCraft & Greenfoot IDE: Eclipse, IntelliJ, NetBeans How Java Works: Compiling 1. You (programmer) write source code in Java. 2. A compiler (javac) checks the code and translates it into "byte code" for a "virtual machine". Java Java source Hello.java javac Hello.class byte code code compiler public class Hello { public Hello(); aload_0 public static void main( String [ ] args ) { invokespecial #1; //Method java/ System.out.println( "I LOVE programming" ); lang/Object."<init>":()V return } main(java.lang.String[]); } getstatic #2; //Field ... How Java Works: Run the Bytecode 3. Run the byte code in a Java Virtual Machine (JVM). 4. The JVM (java command) interprets the byte code and loads other code from libraries as needed. Java I LOVE programming byte Hello.class java code java virtual public Hello(); aload_0 machine invokespecial #1; //Method java/lang/Object."<init>":()V return main(java.lang.String[]); Other java classes, getstatic #2; //Field ... saved in libraries. Summary: How Java Works 1. You (programmer) write program source code in Java. 2. Java compiler checks the code and translates it into "byte code". 3. A Java virtual machine (JVM) runs the byte code. Libraries Hello, javac Hello.class java Hello.java World! Java compiler byte code JVM: Program source - load byte code execution program - verify the code - runs byte code - enforce security model How to Write Source Code? You can use any editor to write the Java source code.
    [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]
  • Configuring & Using Apache Tomcat 4 a Tutorial on Installing and Using
    Configuring & Using Apache Tomcat 4 A Tutorial on Installing and Using Tomcat for Servlet and JSP Development Taken from Using-Tomcat-4 found on http://courses.coreservlets.com Following is a summary of installing and configuring Apache Tomcat 4 for use as a standalone Web server that supports servlets 2.3 and JSP 1.2. Integrating Tomcat as a plugin within the regular Apache server or a commercial Web server is more complicated (for details, see http://jakarta.apache.org/tomcat/tomcat-4.0-doc/). Integrating Tomcat with a regular Web server is valuable for a deployment scenario, but my goal here is to show how to use Tomcat as a development server on your desktop. Regardless of what deployment server you use, you'll want a standalone server on your desktop to use for development. (Note: Tomcat is sometimes referred to as Jakarta Tomcat since the Apache Java effort is known as "The Jakarta Project"). The examples here assume you are using Windows, but they can be easily adapted for Solaris, Linux, and other versions of Unix. I've gotten reports of successful use on MacOS X, but don't know the setup details. Except when I refer to specific Windows paths (e.g., C:\blah\blah), I use URL-style forward slashes for path separators (e.g., install_dir/webapps/ROOT). Adapt as necessary. The information here is adapted from More Servlets and JavaServer Pages from Sun Microsystems Press. For the book table of contents, index, source code, etc., please see http://www.moreservlets.com/. For information on servlet and JSP training courses (either at public venues or on-site at your company), please see http://courses.coreservlets.com.
    [Show full text]
  • Solutions to Exercises
    533 Appendix Solutions to Exercises Chapters 1 through 10 close with an “Exercises” section that tests your understanding of the chapter’s material through various exercises. Solutions to these exercises are presented in this appendix. Chapter 1: Getting Started with Java 1. Java is a language and a platform. The language is partly patterned after the C and C++ languages to shorten the learning curve for C/C++ developers. The platform consists of a virtual machine and associated execution environment. 2. A virtual machine is a software-based processor that presents its own instruction set. 3. The purpose of the Java compiler is to translate source code into instructions (and associated data) that are executed by the virtual machine. 4. The answer is true: a classfile’s instructions are commonly referred to as bytecode. 5. When the virtual machine’s interpreter learns that a sequence of bytecode instructions is being executed repeatedly, it informs the virtual machine’s Just In Time (JIT) compiler to compile these instructions into native code. 6. The Java platform promotes portability by providing an abstraction over the underlying platform. As a result, the same bytecode runs unchanged on Windows-based, Linux-based, Mac OS X–based, and other platforms. 7. The Java platform promotes security by providing a secure environment in which code executes. It accomplishes this task in part by using a bytecode verifier to make sure that the classfile’s bytecode is valid. 8. The answer is false: Java SE is the platform for developing applications and applets. 533 534 APPENDIX: Solutions to Exercises 9.
    [Show full text]
  • A Post-Apocalyptic Sun.Misc.Unsafe World
    A Post-Apocalyptic sun.misc.Unsafe World http://www.superbwallpapers.com/fantasy/post-apocalyptic-tower-bridge-london-26546/ Chris Engelbert Twitter: @noctarius2k Jatumba! 2014, 2015, 2016, … Disclaimer This talk is not going to be negative! Disclaimer But certain things are highly speculative and APIs or ideas might change by tomorrow! sun.misc.Scissors http://www.underwhelmedcomic.com/wp-content/uploads/2012/03/runningdude.jpg sun.misc.Unsafe - What you (don’t) know sun.misc.Unsafe - What you (don’t) know • Internal class (sun.misc Package) sun.misc.Unsafe - What you (don’t) know • Internal class (sun.misc Package) sun.misc.Unsafe - What you (don’t) know • Internal class (sun.misc Package) • Used inside the JVM / JRE sun.misc.Unsafe - What you (don’t) know • Internal class (sun.misc Package) • Used inside the JVM / JRE // Unsafe mechanics private static final sun.misc.Unsafe U; private static final long QBASE; private static final long QLOCK; private static final int ABASE; private static final int ASHIFT; static { try { U = sun.misc.Unsafe.getUnsafe(); Class<?> k = WorkQueue.class; Class<?> ak = ForkJoinTask[].class; example: QBASE = U.objectFieldOffset (k.getDeclaredField("base")); java.util.concurrent.ForkJoinPool QLOCK = U.objectFieldOffset (k.getDeclaredField("qlock")); ABASE = U.arrayBaseOffset(ak); int scale = U.arrayIndexScale(ak); if ((scale & (scale - 1)) != 0) throw new Error("data type scale not a power of two"); ASHIFT = 31 - Integer.numberOfLeadingZeros(scale); } catch (Exception e) { throw new Error(e); } } } sun.misc.Unsafe
    [Show full text]
  • Openjdk – the Future of Open Source Java on GNU/Linux
    OpenJDK – The Future of Open Source Java on GNU/Linux Dalibor Topić Java F/OSS Ambassador Blog aggregated on http://planetjdk.org Java Implementations Become Open Source Java ME, Java SE, and Java EE 2 Why now? Maturity Java is everywhere Adoption F/OSS growing globally Innovation Faster progress through participation 3 Why GNU/Linux? Values Freedom as a core value Stack Free Software above and below the JVM Demand Increasing demand for Java integration 4 Who profits? Developers New markets, new possibilities Customers More innovations, reduced risk Sun Mindshare, anchoring Java in GNU/Linux 5 License + Classpath GPL v2 Exception • No proprietary forks (for SE, EE) • Popular & trusted • Programs can have license any license • Compatible with • Improvements GNU/Linux remain in the community • Fostering adoption • FSFs license for GNU Classpath 6 A Little Bit Of History Jun 1996: Work on gcj starts Nov 1996: Work on Kaffe starts Feb 1998: First GNU Classpath Release Mar 2000: GNU Classpath and libgcj merge Dec 2002: Eclipse runs on gcj/Classpath Oct 2003: Kaffe switches to GNU Classpath Feb 2004: First FOSDEM Java Libre track Apr 2004: Richard Stallman on the 'Java Trap' Jan 2005: OpenOffice.org runs on gcj Mai 2005: Work on Harmony starts 7 Sun & Open Source Java RIs Juni 2005: Java EE RI Glassfish goes Open Source Mai 2006: First Glassfish release Mai 2006: Java announced to go Open Source November 2006: Java ME RI PhoneME goes Open Source November 2006: Java SE RI Hotspot und Javac go Open Source Mai 2007: The rest of Java SE follows suit 8 Status: JavaOne, Mai 2007 OpenJDK can be fully built from source, 'mostly' Open Source 25,169 Source code files 894 (4%) Binary files (“plugs”) 1,885 (8%) Open Source, though not GPLv2 The rest is GPLv2 (+ CP exception) Sun couldn't release the 4% back then as free software.
    [Show full text]
  • Free Java Developer Room
    Room: AW1.121 Free Java Developer Room Saturday 2008-02-23 14:00-15:00 Welcome to the Free Java Meeting Welcome and introduction to the projects, people and themes that make Rich Sands – Mark Reinhold – Mark up the Free Java Meeting at Fosdem. ~ GNU Classpath ~ OpenJDK Wielaard – Tom Marble 15:00-16:00 Mobile Java Take your freedom to the max! Make your Free Java mobile. Christian Thalinger - Guillaume ~ CACAO Embedded ~ PhoneME ~ Midpath Legris - Ray Gans 16:00-16:40 Women in Java Technology Female programmers are rare. Female Java programmers are even more Clara Ko - Linda van der Pal rare. ~ Duchess, Ladies in Java Break 17:00-17:30 Hacking OpenJDK & Friends Hear about directions in hacking Free Java from the front lines. Roman Kennke - Andrew Hughes ~ OpenJDK ~ BrandWeg ~ IcePick 17:30-19:00 VM Rumble, Porting and Architectures Dalibor Topic - Robert Lougher - There are lots of runtimes able to execute your java byte code. But which Peter Kessler - Ian Rogers - one is the best, coolest, smartest, easiest portable or just simply the most fun? ~ Kaffe ~ JamVM ~ HotSpot ~ JikesRVM ~ CACAO ~ ikvm ~ Zero- Christian Thalinger - Jeroen Frijters assembler Port ~ Mika - Gary Benson - Chris Gray Sunday 2008-02-24 9:00-10:00 Distro Rumble So which GNU/Linux distribution integrates java packages best? Find out Petteri Raty - Tom Fitzsimmons - during this distro shootout! ~ Gentoo ~ Fedora ~ Debian ~ Ubuntu Matthias Klose 10:00-11:30 The Free Java Factory OpenJDK and IcedTea, how are they made and how do you test them? David Herron - Lillian Angel - Tom ~ OpenJDK ~ IcedTea Fitzsimmons 11:30-13:00 JIT Session: Discussion Topics Dynamically Loaded Want to hear about -- or talk about -- something the Free Java world and don't see a topic on the agenda? This time is reserved for late binding Tom Marble discussion.
    [Show full text]
  • Eclipse (Software) 1 Eclipse (Software)
    Eclipse (software) 1 Eclipse (software) Eclipse Screenshot of Eclipse 3.6 Developer(s) Free and open source software community Stable release 3.6.2 Helios / 25 February 2011 Preview release 3.7M6 / 10 March 2011 Development status Active Written in Java Operating system Cross-platform: Linux, Mac OS X, Solaris, Windows Platform Java SE, Standard Widget Toolkit Available in Multilingual Type Software development License Eclipse Public License Website [1] Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, Ruby (including Ruby on Rails framework), Scala, Clojure, and Scheme. The IDE is often called Eclipse ADT for Ada, Eclipse CDT for C/C++, Eclipse JDT for Java, and Eclipse PDT for PHP. The initial codebase originated from VisualAge.[2] In its default form it is meant for Java developers, consisting of the Java Development Tools (JDT). Users can extend its abilities by installing plug-ins written for the Eclipse software framework, such as development toolkits for other programming languages, and can write and contribute their own plug-in modules. Released under the terms of the Eclipse Public License, Eclipse is free and open source software. It was one of the first IDEs to run under GNU Classpath and it runs without issues under IcedTea. Eclipse (software) 2 Architecture Eclipse employs plug-ins in order to provide all of its functionality on top of (and including) the runtime system, in contrast to some other applications where functionality is typically hard coded.
    [Show full text]
  • Installing Open Java Development Kit – Ojdkbuild for Windows
    Installing Open Java Development Kit – ojdkbuild for Windows © IZUM, 2019 IZUM, COBISS, COMARC, COBIB, COLIB, CONOR, SICRIS, E-CRIS are registered trademarks owned by IZUM. CONTENTS 1 Introduction ......................................................................................................... 1 2 OpenJDK distribution .......................................................................................... 1 3 Removing Oracle Java ......................................................................................... 2 4 Installing OJDK – 32bit or 64bit, IcedTea Java .................................................. 3 5 Installing the COBISS3 interface ........................................................................ 7 6 Launching the COBISS3 interface .................................................................... 11 7 COBISS3 interface as a trusted source in IcedTea ojdkbuild ........................... 11 © IZUM, 16. 7. 2019, VOS-NA-EN-380, V1.0 i VOS Installing Open Java Development Kit – ojdkbuild for Windows 1 Introduction At the end of 2018 Oracle announced a new business policy for Java SE which entered into force in April 2019. That is why when you install Java a notification and warning window appears. All versions of Java from 8 u201 onwards not intended for personal use are payable. For this reason, we suggest you do not update Java 8 to a newer version for work purposes. If you want a newer version of Java 8, install OpenJDK 8 and IcedTea. Also, do not install Java 8 on new computers (clients), but install OpenJDK 8 with IcedTea support. 2 OpenJDK distribution OpenJDK 1.8. build for Windows and Linux is available at the link https://github.com/ojdkbuild/ojdkbuild. There you will find versions for the installation. The newest version is always at the top, example from 7 May 2019: © IZUM, 16. 7. 2019, VOS-NA-EN-380, V1.0 1/11 Installing Open Java Development Kit – ojdkbuild for Windows VOS 3 Removing Oracle Java First remove the Oracle Java 1.8 software in Control Panel, Programs and Features.
    [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]
  • EINLADUNG Zum Gastvortrag Am Freitag, 26
    Fachbereich Computerwissenschaften EINLADUNG zum Gastvortrag am Freitag, 26. Nov. 2010, 15:15 Uhr, T01 Institutsgebäude Jakob-Haringer-Str. 2, Itzling von Doug Simon Sun Microsystems Laboratories zum Thema: “What a meta-circular JVM buys you - and what not!” Abstract: Since the open source release of the Maxine VM, it has progressed to the point where it can now run application servers such as Glassfish and WebLogic. With the recent addition of a new compiler that leverages the mature design behind the HotSpot client compiler (aka C1), the VM is on track to deliver performance on par with the HotSpot client compiler and better. At the same time, its adoption by VM researchers and enthusiasts is increasing. That is, we believe the productivity advantages of system level programming in Java are being realized. This talk will highlight and demonstrate the advantages of both the Maxine architecture and of meta-circular JVM development in general. Bio: Doug Simon is a Principle Member of Technical Staff at Oracle working in Sun Labs and is currently leading the Maxine project, an open source Virtual Machine for the JavaTM platform written in Java. Prior to Maxine, Doug co-developed Squawk, a CLDC compliant JVM implemented also in Java. His first project at the labs was investigating secure, fine-grained dynamic provisioning of applications on small devices. Once again, this work was in the context of a VM, this time a modified version of the KVM, which was the last non-Java-in-Java VM Doug hacked on! Doug obtained a Bachelors in Information Technology from the University of Queensland in 1997, graduating with first class honors.
    [Show full text]
  • Openjdk 11 Getting Started with Openjdk 11 Legal Notice
    OpenJDK 11 Getting started with OpenJDK 11 Last Updated: 2021-07-21 OpenJDK 11 Getting started with OpenJDK 11 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]