Chapter 47

The Scoop on JavaOS, Java Microprocessors,and JAR Files

by Michael Morrison


CONTENTS


This chapter picks up where the previous chapter left off by peering into the crystal ball and taking a look at some of the emerging new Java technologies. More specifically, this chapter discusses JavaOS, Java microprocessors, and the new JAR file format. JavaOS is a new compact operating system based on and fully supporting the Java platform. Java microprocessors are full-blown microprocessors geared toward supporting the Java virtual machine. JAR files are compact archive files designed to package complete Java applets for more efficient storage and transfer.

The Java technologies you learn about in this chapter are still in their early stages as of this writing, which means that I can give you only a preliminary look at what they have to offer. Nevertheless, you should be able to take from this chapter a better understanding of where Java is headed and what it might mean to your own development efforts.

JavaOS

Even though Java has been touted largely as a neat new programming language, it is, in fact, much more than that. Java is also a very powerful and compact runtime system that in many ways mimics the facilities provided by a full-blown operating system. Knowing this, it wasn't a complete surprise to some that JavaSoft decided to build a complete operating system around the Java technology. This new operating system is called JavaOS and is described by JavaSoft as "a highly compact operating system designed to run Java applications directly on micro-processors in anything from net computers to pagers."

The status of the JavaOS project is still largely under wraps as of this writing, but there is enough information out to at least give you an idea of where JavaSoft is headed with it. First and foremost, JavaOS is no doubt planned to ride the wave created by Java and its insanely rapid success. However, don't let that statement mislead you into thinking that JavaOS is any less legitimate than the technology on which it is built. The idea of building a complete operating system on top of the existing Java technology makes perfect sense. If JavaSoft puts as much thought into JavaOS as it did into Java, JavaOS will no doubt be a very interesting and useful operating system-to say the least.

The applications of a compact, efficient operating system that can natively run Java programs are far and wide. In fact, JavaSoft has already made mention of a variety of devices to which the JavaOS technology could be easily applied. These devices include everything from networked computers to cellular telephones; basically any device that could benefit from a compact operating system and support for a powerful programming language like Java.

Overhead

JavaOS has been described by JavaSoft as just enough of an operating system to run the Java virtual machine. With this minimal design goal, it only stands to reason that JavaSoft is largely targeting consumer electronic devices with the JavaOS technology. As part of this approach, JavaOS is specifically designed to be fully ROMable, meaning that it will work well in the embedded systems common to electronic devices. A ROMable software technology is one that can be implemented in Read-Only Memory (ROM). ROM is commonly used in electronic devices to store executable system code because there is typically no other storage means beyond Random Access Memory (RAM), which is temporary.

JavaSoft has made mention of JavaOS being able to run with as little as 512K of ROM and 256K of RAM in an embedded environment. Likewise, an entire JavaOS system running on a networked computer requires only 3M of ROM and 4M of RAM. These last figures include space for JavaOS, the HotJava Web browser, and a cache for downloading Web content and applets. JavaOS's minimal requirements set the stage for some unique products such as compact personal digital assistants (PDAs) with complete Internet support.

Industry Support

Because of the success of Java, JavaOS is able to enjoy industry support before its availability in even a preliminary form. An impressive group of technology companies have already announced plans to license JavaOS. Likewise, an equally important group of software tools companies have announced plans to provide development tools for JavaOS. These two areas of support provide the one-two punch necessary for JavaOS to be a success.

JavaSoft is already working with the software tools companies to define a set of APIs for developing applications for JavaOS. Major players on the Java development scene have already announced intentions to enhance their development environments to support JavaOS embedded systems development. This is a pretty major step in the embedded programming world, where many development tools are still fairly primitive compared to the visual tools used by computer applications developers.

Note
On a similar front, both the Solaris and Windows platforms are slated to include full support for Java at the operating system level. However, this support will be aimed more at supporting the Java runtime system than serving as an implementation of JavaOS.

Java Microprocessors

As if Sun isn't branching out enough with JavaOS, they recently surprised the microprocessor world by announcing the development of a line of microprocessors optimized for Java. Microprocessors aren't new to Sun, whose Sun Microelectronics division is responsible for the popular SPARC line of microprocessors. However, the idea of Sun Microelectronics developing microprocessors specifically to support Java no doubt caught a lot of people off guard, including other microprocessor companies!

Note
Just so you don't get confused, both JavaSoft and Sun Microelectronics are divisions of Sun Microsystems. Whenever I refer to Sun, I'm referring to the company as a whole.

Java microprocessors are quite obviously yet another move on Sun's part to capitalize on the success of Java. However, like JavaOS, Sun legitimately has an interesting and potentially lucrative angle in developing Java microprocessors. Also like JavaOS, the primary target application for Java microprocessors is embedded systems. Speed is a very critical factor in embedded systems, primarily because of the limited horsepower available in such small systems. Java microprocessors have the potential to significantly increase performance because they are being designed around the highly efficient Java technology. Contrast this with other embedded microprocessors that typically have a more generic design.

Sun is pushing Java microprocessors based on a new microprocessor product paradigm: simple, secure, and small. Add to this Sun's promise of delivering Java microprocessors at a fraction of the cost of traditional microprocessors. Sun is clearly appealing to the consumer electronics market, where a compact, low-cost microprocessor would probably rock a lot of boats. Sun has also announced the development of a full range of component-level and board-level products to support the microprocessors.

Although the prospect of a Java microprocessor may seem strange at first, it's not hard to see Sun's motivation. By 1999, the average American home is expected to contain between 50 and 100 microcontrollers. Worldwide, there are also expected to be more than 145 million cellular phone users, with each phone containing at least one microcontroller. And each microcontroller contains at least one microprocessor. Are you starting to get the picture?

Note
A microcontroller is a miniature computer system, usually implemented on a single circuit board, scaled down to support a limited function such as those required by consumer electronic devices.

The Java processor family is slated to consist of three lines of microprocessors:

The next few sections describe these different processor lines and the application for which each is targeted.

picoJAVA

The specification for a minimal Java microprocessor is called picoJAVA and serves as the basic design on which all the microprocessors are based. picoJAVA isn't a physical processor that Sun intends to manufacture and sell; rather, it is the core specification on which all Java microprocessors will be designed and built. The picoJAVA specification will be made readily available for licensing to other chip manufacturers who want to develop their own Java microprocessors. The picoJAVA specification is geared toward a microprocessor with the best price/performance ratio that fully supports the Java virtual machine.

microJAVA

The first physical microprocessor in the works at Sun is microJAVA, which builds application-specific I/O, memory, communications and control functions onto the picoJAVA core. microJAVA processors are expected to cost anywhere from $25 to $100, which makes them good candidates for a wide range of electronic devices such as telecommunications equipment and other nonnetwork applications such as printers and video games.

UltraJAVA

Sun's high-end Java microprocessor offering is called UltraJAVA. It is designed to encompass the very fastest Java processors available. The UltraJAVA processor line includes support
for advanced graphics by virtue of Sun's Visual Instruction Set (VIS), which defines high-
performance hardware graphics extensions. Not surprisingly, the UltraJAVA line of processors is primarily targeting high-end 3D graphics and multimedia applications. With a projected cost starting at $100, the UltraJAVA processor line may still be a bargain.

JAR Files

Another interesting Java technology in the works at Sun is the JAR file format, which is an archive file format aimed at grouping all the files that comprise an applet and its resources. By combining all an applet's resources into one compact file, both local storage and transfer overhead time are reduced. This is a technology that will have huge implications as Java applets gain acceptance and become more widespread because the task of managing a bunch of files over an Internet connection is something that would be nice to avoid.

The JAR file format is being designed to meet the following criteria:

By being compact, JAR files can better meet their goal of minimizing the storage space and transfer times associated with Java applets and their resources. Part of the compactness of JAR files is attributable to their support for compression, which can greatly reduce the size of applet resources. Platform independence is a crucial requirement because Java applets are expected to run on a wide range of systems. Unicode support is important so that there is consistency regarding textual information stored in JAR file headers. Finally, the JAR file format must be extensible so that new features such as code signing can be easily incorporated. For more information on the JAR file format, check out JavaSoft's JAR File Format Specification Web site at http://www.javasoft.com/security/codesign/jar-format.html.

Note
The JAR file format is slated to be included in the upcoming 1.1 release of Java. Java 1.1 will not only include built-in support for JAR files, but also an API for working with and managing JAR files.

Summary

In this chapter, you broke away from the programming aspects of Java and learned about some new technologies that are based on the Java framework. Although these technologies may not directly impact your Java development efforts in the immediate future, they will no doubt play a significant role in Java reaching maturity as a technology with widespread application.

You began the chapter by learning about JavaOS, which is a new operating system based entirely on the Java virtual machine. You followed this up with a look at the new Java microprocessors, which aim to be the first physical Java implementation on silicon. You finished up the chapter by learning about the JAR file format, which provides a means to combine an applet and all its resources into one compact file.

Hopefully, this chapter has sparked your interest in some of the applications of Java beyond the traditional programming areas. If you're still hungry for more applied Java, Chapter 48, "Serving the Net with Jeeves," delves into a new Java Internet server technology called Jeeves.