ac6-tools, un département d'Ac6 SAS
Site displayed in English (USA)
Site affiché en English (USA)View the site in FrenchVoir le site en English (GB)
go-up
ac6 >> ac6-tools >> Java >> J9 Download as PDF Write us

J9

The IBM Java virtual machine for embedded systems

At the core of all our Java solutions is the IBM J9™ virtual machine, which interprets bytecodes. The J9 virtual machine implements a configurable, compact, fast, and predictable architectural layer that provides a common interface for application programs regardless of the underlying device hardware or operating system. J9 runs on an operating system (PalmOS, PocketPC, QNX, embedded Linux, OSE, ITRON, etc.) and manages the specific interfaces with the operating system and device hardware. For this reason, the virtual machine is carefully designed with portability in mind. It is implemented through an operating-system-independent layer that uses the most appropriate resources from the underlying RTOS.

J9 has been optimized for each of the supported reference platforms (critical when every byte of memory is tracked and the need for application performance is paramount). Based on 15-years experience in the embedded virtual machine business, J9 is already used in production and proven in independent testing to provide a fast runtime environment for embedded systems.

For engineers who need to know every line of code that is deployed to their device, this offers the maximum flexibility and the ultimate control over the resources used. The J9 virtual machine is configurable over a wide range of settings, including the following:

  • Supported function (like dynamic class loading).
  • Memory usage and stack size.
  • Incremental allocation sizes of memory, ROM and RAM sizes for class loading.

Moreover, the class libraries included provide the engineer with maximum flexibility over the function-versus-footprint tradeoff. To keep the application and the runtime environment as small as possible, applications can use SmartLinker™ technology to eliminate up to 30% of unneeded classes, methods, and fields from the application and runtime class libraries.

The J9 virtual machine uses a single source code base for all implementations. When porting an application to cover as many devices as possible, having a consistent virtual machine implementation across the different environments makes porting the application easier and faster. The virtual machine then can buffer the application developer from the nuances of each different environment. Other competitors have one virtual machine for CLDC, a second for CDC, and so on: Each time an application is ported between the various virtual machines, problems will be found, because of the differing implementations.

IBM single-sources its J9 virtual machine across multiple platforms (PPC, SH4, x86, etc.), across multiple operating systems (PalmOS, WinCE, QNX, OSE, Linux, etc.), and multiple configurations/profiles (MIDP, CLDC, CDC, etc.) so that the behavior of the virtual machine is consistent. Porting applications from one configuration to another configuration and from device to device is easier.