JOP: a Java Optimized Processor for Embedded Real-Time Systems

Total Page:16

File Type:pdf, Size:1020Kb

JOP: a Java Optimized Processor for Embedded Real-Time Systems DISSERTATION JOP: A Java Optimized Processor for Embedded Real-Time Systems ausgef¨uhrt zum Zwecke der Erlangung des akademischen Grades eines Doktors der technischen Wissenschaften unter der Leitung von AO.UNIV.PROF. DIPL.-ING. DR.TECHN. ANDREAS STEININGER und AO.UNIV.PROF. DIPL.-ING. DR.TECHN. PETER PUSCHNER Inst.-Nr. E182 Institut f¨ur Technische Informatik eingereicht an der Technischen Universit¨at Wien Fakult¨at f¨ur Informatik von DIPL.-ING. MARTIN SCHOBERL¨ Matr.-Nr. 8625440 Straußengasse 2-10/2/55 1050 Wien Wien, im J¨anner 2005 Abstract Compared to software development for desktop systems, current software design practice for embedded systems is still archaic. C/C++ and even assembler are used on top of a small real-time operating system. Many of the benefits of Java, such as safe object references, the notion of concurrency as a first-class language construct, and its portability, have the potential to make embedded systems much safer and simpler to program. However, Java technology is seldom used in embedded systems, due to the lack of acceptable real-time performance. This thesis presents a Java processor designed for time-predictable execution of real-time tasks. JOP (Java Optimized Processor) is the implementation of the Java virtual machine in hardware. JOP is intended for applications in embedded real-time systems and the primary implementation technology is in a field programmable gate array. This research demonstrates that a hardware implementation of the Java virtual machine results in a small design for resource-constrained devices. Architectural advancements in modern processor designs increase average perfor- mance with features such as pipelines, caches and branch prediction. However, these features complicate worst-case execution time (WCET) analysis and lead to very conservative WCET estimates. This thesis tackles this problem from the architec- tural perspective – by introducing a processor architecture in which simpler and more accurate WCET analysis is more important than average case performance. This thesis evaluates the issues surrounding the use of standard Java for real-time applications. In order to overcome some of the issues with standard Java, a profile for real-time Java is defined. Tight integration of the real-time scheduler with the supporting processor result in an efficient platform for Java in embedded real-time systems. The proposed processor and the Java real-time profile have been used with success to implement several commercial real-time applications. Kurzfassung Eingebettete Systeme werden zur Zeit vorwiegend in C/C++ oder auch noch in Assembler programmiert. Viele Vorteile der Programmiersprache Java, wie z.B. sichere Objektreferenzen, die Notation von Nebenl¨aufigkeit in der Sprache und auch die Portabilit¨at der Sprache, k¨onnten die Entwicklung dieser Systeme vereinfachen und auch die Sicherheit dieser Systeme erh¨ohen. Jedoch erschwert die mangelnde Echtzeitf¨ahigkeit von Standard Java den Einsatz in eingebetteten Systemen. Diese Arbeit beschreibt den Entwurf eines echtzeitf¨ahigen Java Prozessors. JOP (Java Optimized Processor) ist die Realisierung der Java virtual machine in Hard- ware. JOP ist f¨ur den Einsatz in eingebetteten, echtzeitf¨ahigen Systemen entworfen und ist in einem ‘Field Programmable Gate Array’ implementiert. Diese Arbeit zeigt, dass eine Hardwarerealisierung der Java virtual machine zu einem kleinen System f¨uhrt, das auch f¨ur Applikationen mit rigiden Ressourcebeschr¨ankungen geeignet ist. Moderne Prozessoren weisen Architekturmerkmale auf (wie z.B. Parallelverar- beitung, Cachespeicher und Sprungvorhersage), die vor allem die durchschnittliche Rechenleistung erh¨ohen. Diese Architekturmerkmale erschweren jedoch die ‘Worst- Case Execution Time’ (WCET) Analyse und f¨uhren zu pessimistischen WCET Ab- sch¨atzungen. Diese Arbeit geht einen anderen Weg – Es wird eine Prozessorarchitek- tur vorgestellt, f¨ur die eine einfache und genauere WCET Analyse wichtiger ist als die durchschnittliche Rechenleistung. Diese Arbeit untersucht die Probleme, die sich bei der Verwendung von Java in Echtzeitsystemen ergeben. Standard Java wird um eine Spezifikation f¨ur Echtzeit- systeme erweitert. Die Integration des echtzeitf¨ahigen Schedulers mit dem Prozessor f¨uhrt zu einer effizienten Plattform f¨ur Java in eingebetteten Echtzeitsystemen. Der vorgestellte Prozessor und die Spezifikation f¨ur echtzeitf¨ahiges Java wurden erfolgreich in mehreren kommerziellen Echtzeitsystemen eingesetzt. Contents 1 Introduction 1 1.1 Justification for Development . 1 1.2 Embedded Real-Time Systems . 2 1.3 Research Objectives and Contributions . 3 1.4 OutlineoftheThesis ......................... 6 2 Java and the Java Virtual Machine 7 2.1 Java .................................. 7 2.1.1 History ............................ 9 2.1.2 The Java Programming Language . 9 2.2 The Java Virtual Machine . 11 2.2.1 MemoryAreas ........................ 11 2.2.2 JVM Instruction Set . 12 2.2.3 Methods ........................... 13 2.2.4 Implementation of the JVM . 14 2.3 Summary ............................... 16 3 Related Work 17 3.1 Hardware Translation and Coprocessors . 17 3.1.1 Hard-Int............................ 19 3.1.2 DELFT-JAVAEngine. 19 3.1.3 JIFFY............................. 19 3.1.4 Jazelle............................. 20 3.1.5 JSTAR,JA108 ........................ 21 3.1.6 A Co-Designed Virtual Machine . 21 3.2 JavaProcessors ............................ 22 3.2.1 picoJava............................ 22 3.2.2 aJileJEMCore ........................ 25 3.2.3 Cjip.............................. 26 3.2.4 Ignite,PSC1000 ....................... 26 II CONTENTS 3.2.5 Moon............................. 27 3.2.6 Lightfoot ........................... 27 3.2.7 LavaCORE .......................... 28 3.2.8 Komodo............................ 28 3.2.9 FemtoJava .......................... 28 3.3 AdditionalComments. 29 3.4 Research Objectives . 30 4 Restrictions of Java for Embedded Real-Time Systems 33 4.1 Java Support for Embedded Systems . 33 4.2 Issues with Java in Embedded Systems . 34 4.3 JavaMicroEdition .......................... 37 4.3.1 Connected Limited Device Configuration (CLDC) . 37 4.3.2 Connected Device Configuration (CDC) . 39 4.3.3 Additional Specifications . 40 4.3.4 Discussion .......................... 40 4.4 Real-Time Extensions . 41 4.4.1 Real-Time Core Extension . 41 4.4.2 Discussion of the RT Core . 42 4.4.3 Real-Time Specification for Java . 43 4.4.4 Discussion of the RTSJ . 45 4.4.5 SubsetsoftheRTSJ ... ..... ...... ..... .. 51 4.4.6 Extensions to the RTSJ . 53 4.5 Summary ............................... 53 5 JOP Architecture 55 5.1 BenchmarkingtheJVM. 55 5.1.1 Bytecode Frequency . 55 5.1.2 Methods Types and Length . 60 5.1.3 Summary ........................... 64 5.2 OverviewofJOP ........................... 64 5.3 Microcode............................... 66 5.3.1 Translation of Bytecodes to Microcode . 66 5.3.2 Compact Microcode . 68 5.3.3 Instruction Set . 69 5.3.4 BytecodeExample .... ..... ...... ..... .. 70 5.3.5 Flexible Implementation of Bytecodes . 70 5.3.6 Summary ........................... 71 5.4 The Processor Pipeline . 71 CONTENTS III 5.4.1 Java Bytecode Fetch . 72 5.4.2 JOP Instruction Fetch . 73 5.4.3 Decode and Address Generation . 74 5.4.4 Execute............................ 75 5.4.5 Interrupt Logic . 77 5.4.6 Summary ........................... 77 5.5 AnEfficientStackMachine. 78 5.5.1 Java Computing Model . 78 5.5.2 Access Patterns on the Java Stack . 81 5.5.3 Common Realizations of a Stack Cache . 82 5.5.4 A Two-Level Stack Cache . 85 5.5.5 Resource Usage Compared . 91 5.5.6 Summary ........................... 93 5.6 HW/SWCodesign .......................... 93 5.7 Real-Time Predictability . 98 5.7.1 Interrupts ........................... 98 5.7.2 TaskSwitch.......................... 99 5.7.3 Architectural Design Decisions . 101 5.7.4 Summary ........................... 103 5.8 A Time-Predictable Instruction Cache . 103 5.8.1 Cache Performance . 104 5.8.2 Proposed Cache Solution . 107 5.8.3 WCETAnalysis ....................... 112 5.8.4 CachesCompared . 113 5.8.5 Summary ........................... 119 6 JOP Runtime System 121 6.1 A Real-Time Profile for Embedded Java . 121 6.1.1 Application Structure . 122 6.1.2 Threads............................ 122 6.1.3 Scheduling .......................... 123 6.1.4 Memory............................ 125 6.1.5 Restriction of Java . 125 6.1.6 Implementation Results . 128 6.2 User-Defined Scheduler . 128 6.2.1 Schedule Events . 129 6.2.2 DataStructures . 129 6.2.3 Services for the Scheduler . 130 6.2.4 ClassScheduler. 130 IV CONTENTS 6.2.5 ClassTask .......................... 132 6.2.6 A Simple Example Scheduler . 133 6.2.7 Interaction of Task, Scheduler and the JVM . 135 6.2.8 Predictability . 137 6.2.9 RelatedWork......................... 140 6.2.10 Summary ........................... 140 6.3 JVMArchitecture... ...... ..... ...... ..... .. 141 6.3.1 Runtime Data Structures . 141 7 Results 147 7.1 HardwarePlatforms. 148 7.2 ResourceUsage............................ 149 7.3 Performance.............................. 152 7.3.1 General Performance . 152 7.3.2 Real-Time Performance . 159 7.4 WCET................................. 164 7.4.1 Microcode Path Analysis . 165 7.4.2 Microcode Low-level Analysis . 166 7.4.3 Bytecode Independency . 166 7.4.4 WCETofBytecodes . 167 7.4.5 Evaluation .......................... 167 7.5 Applications.............................. 172 7.5.1 MotorControl ........................ 172 7.5.2 Further Projects .
Recommended publications
  • Tampering with Java Card Exceptions the Exception Proves the Rule
    Tampering with Java Card Exceptions The Exception Proves the Rule Guillaume Barbu1,2, Philippe Hoogvorst1 and Guillaume Duc1 1Institut Mines-T´el´ecom / T´el´ecom ParisTech, CNRS LTCI, D´epartement COMELEC, 46 rue Barrault, 75634 Paris Cedex 13, France 2Oberthur Technologies, Innovation Group, Parc Scientifique Unitec 1 - Porte 2, 4 all´ee du Doyen George Brus, 33600 Pessac, France Keywords: Java Card, Java Exceptions, Software Attacks, Fault Attacks, Combined Attacks. Abstract: Many publications have studied the various issues concerning Java Cards security regarding software and/or hardware attacks. However, it is surprising to notice that the particular case of exception-related mechanisms has not been tackled yet in the literature. In this article, we fill this gap by proposing several attacks against Java Card platforms based on both exception handling and exception throwing. In addition, this study allows us to point out that a weakness known by the web-oriented Java community for more than a decade still passes the different steps of the state-of-the-art Java Card application deployment process (namely conversion and verification). This appears all the more important as the Java Card 3 Connected Edition specifications have started to bridge the gap between the two worlds that are Java Cards and Java web services. 1 INTRODUCTION that no pointer arithmetic is used in a Java Card ap- plication and that objects behave according to a given The Java Card technology is, as of today, the world’s contract defined by their Java class, superclasses and leading technology in the smart card field. This lead- interfaces.
    [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]
  • Real-Time Java for Embedded Devices: the Javamen Project*
    REAL-TIME JAVA FOR EMBEDDED DEVICES: THE JAVAMEN PROJECT* A. Borg, N. Audsley, A. Wellings The University of York, UK ABSTRACT: Hardware Java-specific processors have been shown to provide the performance benefits over their software counterparts that make Java a feasible environment for executing even the most computationally expensive systems. In most cases, the core of these processors is a simple stack machine on which stack operations and logic and arithmetic operations are carried out. More complex bytecodes are implemented either in microcode through a sequence of stack and memory operations or in Java and therefore through a set of bytecodes. This paper investigates the Figure 1: Three alternatives for executing Java code (take from (6)) state-of-the-art in Java processors and identifies two areas of improvement for specialising these processors timeliness as a key issue. The language therefore fails to for real-time applications. This is achieved through a allow more advanced temporal requirements of threads combination of the implementation of real-time Java to be expressed and virtual machine implementations components in hardware and by using application- may behave unpredictably in this context. For example, specific characteristics expressed at the Java level to whereas a basic thread priority can be specified, it is not drive a co-design strategy. An implementation of these required to be observed by a virtual machine and there propositions will provide a flexible Ravenscar- is no guarantee that the highest priority thread will compliant virtual machine that provides better preempt lower priority threads. In order to address this performance while still guaranteeing real-time shortcoming, two competing specifications have been requirements.
    [Show full text]
  • Cost-Effective Compilation Techniques for Java Just-In-Time Compilers 3
    IEICE TRANS. ??, VOL.Exx–??, NO.xx XXXX 200x 1 PAPER Cost-Effective Compilation Techniques for Java Just-in-Time Compilers Kazuyuki SHUDO†, Satoshi SEKIGUCHI†, Nonmembers, and Yoichi MURAOKA ††, Fel low SUMMARY Java Just-in-Time compilers have to satisfy a policies. number of requirements in conflict with each other. Effective execution of a generated code is not the only requirement, but 1. Ease of use as a base of researches. compilation time, memory consumption and compliance with the 2. Cost-effective development. Less labor and rela- Java Virtual Machine specification are also important. We have tively much effect. developed a Java Just-in-Time compiler keeping implementation 3. Adequate quality and performance for practical labor little. Another important objective is developing an ad- equate base of following researches which utilize this compiler. use. The proposed compilation techniques take low compilation cost and low development cost. This paper also describes optimization Compiler development involves much work on a methods implemented in the compiler, for instance, instruction parser, intermediate representations and a number of folding, exception handling with signals and code patching. optimizations. Because of it, we have to consider those key words: Runtime compilation, Java Virtual Machine, Stack human and engineering factor seriously in addition to caching, Instruction folding, Code patching technical requirements like performance. Our plan on the development of the JIT compiler was to have a prac- 1. Introduction tical compiler with work several man-month. Our an- other goal was specifically having a research base on Just-in-Time (JIT) compilers for Java bytecode have which we do following researches with less labor while to satisfy a number of requirements, which are differ- developing it with less work.
    [Show full text]
  • S32 Design Studio for S32 Platform 3.4 Installation Guide
    S32 Design Studio for S32 Platform 3.4 Installation Guide Document Number: S32DSIG Rev. 1.0, 12/2020 Contents System Requirements......................................................................................................................3 Installation prerequisites for Linux platforms.............................................................................5 Downloading S32DS 3.4................................................................................................................12 Downloading the S32DS 3.4 installer................................................................................................................12 Obtaining the activation code.............................................................................................................................12 Installing S32DS 3.4......................................................................................................................14 Debian 8 post-installation settings..................................................................................................................... 20 Installing product updates and packages................................................................................... 23 Installing Synopsys tools...............................................................................................................25 Installing VP Explorer........................................................................................................................................25 Post-installation settings....................................................................................................................................
    [Show full text]
  • Picojava-II™ Programmer's Reference Manual
    picoJava-II™ Programmer’s Reference Manual Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303 USA 650 960-1300 Part No.: 805-2800-06 March 1999 Copyright 1999 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California 94303 U.S.A. All rights reserved. The contents of this document are subject to the current version of the Sun Community Source License, picoJava Core (“the License”). You may not use this document except in compliance with the License. You may obtain a copy of the License by searching for “Sun Community Source License” on the World Wide Web at http://www.sun.com. See the License for the rights, obligations, and limitations governing use of the contents of this document. Sun, Sun Microsystems, the Sun logo and all Sun-based trademarks and logos, Java, picoJava, and all Java-based trademarks and logos are trademarks, registered trademarks, or service marks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc. DOCUMENTATION IS PROVIDED “AS IS” AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. THIS PUBLICATION COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS. CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE CHANGES WILL BE INCORPORATED IN NEW EDITIONS OF THE PUBLICATION.
    [Show full text]
  • 1 Introduction
    User Customization of Virtual Network Interfaces with U-Net/SLE David Opp enheimer and Matt Welsh fdavidopp,[email protected] Decemb er 9, 1997 Abstract We describ e U-Net/SLE Safe Language Extensions, a user-level network interface architecture which enables p er-application customization of communication semantics through downloading of user extension applets, imple- mented as Java class les, into the network interface. This architecture p ermits application s to safely sp ecify co de to b e executed within the NI on message transmission and reception. By leveraging the existing U-Net mo del, applications may implement proto col co de at the user level, within the NI, or using some combination of the two. Our current implementation, using the Myricom Myrinet interface and a small Java Virtual Machine subset, obtains go o d p erformance, allowing host communication overhead to b e reduced and improving the overlap of communication and computation during proto col pro cessing. 1 Intro duction Recentwork in high-sp eed interconnects for distributed and parallel computing architectures, particularly workstation clusters, has fo cused on developmentofnetwork interfaces enabling low-latency and high-bandwidth communication. Often, these systems bypass the op erating system kernel to achieve high p erformance; however the features and functionality provided by these di erent systems vary widely. Several systems, such as U-Net [26] and Active Messages [27], virtualize the network interface to provide multiple applications on the same host with direct, protected network access. Other systems, including Fast Messages [16] and BIP [17], eschew sharing the network in lieu of design simplicity and high p erformance.
    [Show full text]
  • Optimizing for Jazelle DBX and Java Hotspot™ Technology Case Study
    Optimizing Midlets for Size and Performance Simon Robinson Innaworks www.innaworks.com TS-5109 2007 JavaOneSM Conference | Session TS-5109 | Goal of This Talk Pushing the size and performance of Java™ Platform, Micro Edition (Java ME platform) applications on today’s handsets 2007 JavaOneSM Conference | Session TS-5109 | 2 Agenda Why size and performance matters Under the bonnet of a Java ME Platform MIDlet Optimization strategy Optimization techniques Optimizing for Jazelle DBX and Java HotSpot™ technology Case study 2007 JavaOneSM Conference | Session TS-5109 | 3 Agenda Why size and performance matters Under the bonnet of a Java ME Platform MIDlet Optimization strategy Optimization techniques Optimizing for Jazelle DBX and Java HotSpot™ technology Case study 2007 JavaOneSM Conference | Session TS-5109 | 4 Why Size and Performance Matters Adoption = Potential market size × How much fun ×Marketing 2007 JavaOneSM Conference | Session TS-5109 | 5 Why Size and Performance Matters Adoption = Potential market size × How much fun ×Marketing Handset coverage matters 2007 JavaOneSM Conference | Session TS-5109 | 6 Why Size and Performance Matters Adoption = Potential market size × How much fun ×Marketing How fun is your game? Perceived quality matters 2007 JavaOneSM Conference | Session TS-5109 | 7 Constraints of Consumer Handsets JAR size Heap memory Nokia S40 v1 (3300, etc.) 64 kB 370 kB Nokia S40 v2 (6230, etc.) 128 kB 512 kB Sharp GX22 100 kB 512 kB DoJa 2.5 (m420i) 30 B 1.5 MB 15% game sales for handsets < 64 kB Java Archive (JAR) file size
    [Show full text]
  • Návrh Zásobníkového Procesoru Pro Vestavěné Systémy a Implementace Podpůrných Nástrojů
    České vysoké učení technické v Praze Fakulta elektrotechnická Katedra řídicí techniky Návrh zásobníkového procesoru pro vestavěné systémy a implementace podpůrných nástrojů DIPLOMOVÁ PRÁCE Vypracoval: Jan Procházka Vedoucí práce: Ing. Pavel Píša PhD. Rok: 2012 zadani Prohlášení Prohlašuji, že jsem svou diplomovou práci vypracoval samostatně a použil jsem pouze podklady (literaturu, projekty, SW atd.) uvedené v přiloženém seznamu. V Praze dne .................... .….............................. Jan Procházka Poděkování Na tomto místě bych chtěl poděkovat Ing. Pavlu Píšovi Ph.D. za vedení mé práce, za poskytnutí podkladů k vypracování, a za cenné rady. Také bych chtěl poděkovat rodině za podporu v době psaní této práce. Jan Procházka Abstrakt Obsahem této práce je v teoretické části analýza virtuálních strojů založených jak na registrové, tak na zásobníkové technologii. Hlavním cílem bude navrhnout interpret typu Forth a zásobníkovou mikroprocesorovou architekturu vhodnou pro vestavěné aplikace řídicích systémů jako řízení, například číslicových systémů, s požadavkem na jednoduchost nejen celé architektury, ale i diagnostiky systému. Následně bude vytvořen interpret portovatelný na cizí platformy. Nakonec bude provedena diskuse aplikace synchronní a asynchronní architektury při návrhu mikroprocesoru. Abstract Content of this thesis is, in the first, theoretical part, virtual machine analysis based on register as well as stack technology. Main goal will be to design Forth style interpreter and stack microprocessor architecture which would
    [Show full text]
  • Picojava-II™ Microarchitecture Guide
    picoJava-II™ Microarchitecture Guide Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303 USA 650 960-1300 Part No.: 960-1160-11 March 1999 Copyright 1999 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California 94303 U.S.A. All rights reserved. The contents of this document are subject to the current version of the Sun Community Source License, picoJava Core (“the License”). You may not use this document except in compliance with the License. You may obtain a copy of the License by searching for “Sun Community Source License” on the World Wide Web at http://www.sun.com. See the License for the rights, obligations, and limitations governing use of the contents of this document. Sun, Sun Microsystems, the Sun logo and all Sun-based trademarks and logos, Java, picoJava, and all Java-based trademarks and logos are trademarks, registered trademarks, or service marks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc. DOCUMENTATION IS PROVIDED “AS IS” AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. THIS PUBLICATION COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS. CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE CHANGES WILL BE INCORPORATED IN NEW EDITIONS OF THE PUBLICATION.
    [Show full text]
  • C:\Andrzej\PDF\ABC Nagrywania P³yt CD\1 Strona.Cdr
    IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TREFCI Wielka encyklopedia komputerów KATALOG KSI¥¯EK Autor: Alan Freedman KATALOG ONLINE T³umaczenie: Micha³ Dadan, Pawe³ Gonera, Pawe³ Koronkiewicz, Rados³aw Meryk, Piotr Pilch ZAMÓW DRUKOWANY KATALOG ISBN: 83-7361-136-3 Tytu³ orygina³u: ComputerDesktop Encyclopedia Format: B5, stron: 1118 TWÓJ KOSZYK DODAJ DO KOSZYKA Wspó³czesna informatyka to nie tylko komputery i oprogramowanie. To setki technologii, narzêdzi i urz¹dzeñ umo¿liwiaj¹cych wykorzystywanie komputerów CENNIK I INFORMACJE w ró¿nych dziedzinach ¿ycia, jak: poligrafia, projektowanie, tworzenie aplikacji, sieci komputerowe, gry, kinowe efekty specjalne i wiele innych. Rozwój technologii ZAMÓW INFORMACJE komputerowych, trwaj¹cy stosunkowo krótko, wniós³ do naszego ¿ycia wiele nowych O NOWOFCIACH mo¿liwoYci. „Wielka encyklopedia komputerów” to kompletne kompendium wiedzy na temat ZAMÓW CENNIK wspó³czesnej informatyki. Jest lektur¹ obowi¹zkow¹ dla ka¿dego, kto chce rozumieæ dynamiczny rozwój elektroniki i technologii informatycznych. Opisuje wszystkie zagadnienia zwi¹zane ze wspó³czesn¹ informatyk¹; przedstawia zarówno jej historiê, CZYTELNIA jak i trendy rozwoju. Zawiera informacje o firmach, których produkty zrewolucjonizowa³y FRAGMENTY KSI¥¯EK ONLINE wspó³czesny Ywiat, oraz opisy technologii, sprzêtu i oprogramowania. Ka¿dy, niezale¿nie od stopnia zaawansowania swojej wiedzy, znajdzie w niej wyczerpuj¹ce wyjaYnienia interesuj¹cych go terminów z ró¿nych bran¿ dzisiejszej informatyki. • Komunikacja pomiêdzy systemami informatycznymi i sieci komputerowe • Grafika komputerowa i technologie multimedialne • Internet, WWW, poczta elektroniczna, grupy dyskusyjne • Komputery osobiste — PC i Macintosh • Komputery typu mainframe i stacje robocze • Tworzenie oprogramowania i systemów komputerowych • Poligrafia i reklama • Komputerowe wspomaganie projektowania • Wirusy komputerowe Wydawnictwo Helion JeYli szukasz ]ród³a informacji o technologiach informatycznych, chcesz poznaæ ul.
    [Show full text]
  • Java Virtual Machines
    ch01.qxd 12/5/2001 9:16 AM Page xxiv The Basics of J2ME Topics in this Chapter • Java Editions • Why J2ME? • Configurations • Profiles • Java Virtual Machines • Big Picture View of the Architecture • Compatibility between Java Editions • Putting all the Pieces Together ch01.qxd 12/5/2001 9:16 AM Page 1 1 ChapterChapter t all started with one version of Java—now known as Java 2 Standard Edi- tion (J2SE)—and the tagline “Write Once, Run Anywhere ™.” The idea Iwas to develop a language in which you would write your code once, and then it would run on any platform supporting a Java Virtual Machine. Since its launch in 1995, the landscape has changed significantly. Java has extended its reach far beyond desktop machines. Two years after the intro- duction of Java, a new edition was released, Java 2 Enterprise Edition, pro- viding support for large-scale, enterprise-wide applications. The most recent addition to the family is the Micro Edition, targeting “information appli- ances,” ranging from Internet-enabled TV set-top boxes to cellular phones. Java Editions Let’s begin with a quick summary of the Java platforms currently available: • Standard Edition (J2SE): Designed to run on desktop and workstations computers. 1 ch01.qxd 12/5/2001 9:16 AM Page 2 2 Chapter 1 The Basics of J2ME • Enterprise Edition (J2EE): With built-in support for Servlets, JSP, and XML, this edition is aimed at server-based applications. • Micro Edition (J2ME): Designed for devices with limited memory, display and processing power. Note In December of 1998, Sun introduced the name “Java 2” (J2) to coincide with the release of Java 1.2.This new naming convention applies to all edi- tions of Java, Standard Edition (J2SE), Enterprise Edition (J2EE), and Micro Edition (J2ME).
    [Show full text]