The above diagram shows relationship of JavaOS to architecture
business cycle (ABC).
The end user being business users, customers etc. JavaOS is being jointly
being built by IBM and Sun Microsystem.
The OS should be portable, easily modifiable to support any requirement,
occupy minimum space and support networking facilities. Java has been used
in almost every part of the OS including building of device drivers.
Usage of C has been kept to minimum, most parts of the JVM, the thread scheduler
is in C.
The design of JavaOS must be such that it includes full JAVA libraries,
GUI applications, TCP/IP network stack for applications and applets.
Requirements and Qualities:
JOS is an Open, Portable, and Dynamically Extensible Java
based Object Operating System, based on a configurable layered architecture.
The Java programming language and platform, helps in creation of a portable,
extensible, and open object oriented operating system.
'Open' means that each layer of JOS is an implementation of a coherent
set of 'interfaces' which clearly define and provide a set of services
and functionality to a client object or application.
'Portable' operating system to the extent that only minimal host specific
implementation effort is required for the transition of JOS from any given
platform to another. And by fully utilizing the dynamic nature of Java,
JOS is designed to be fully extensible and configurable at run-time, making
it a Dynamically Extensible operating system.
Developing an operating system that grows as the user grows in proficiency
and sophistication is one of the goals of JOS. JOS is designed to be as
simple as possible, or as complex as necessary: an adaptable system.
JOS is designed to support networking and distributed computing at a fundamental
level. However, the support for this functionality is an extension of
the system. Fundamental to the success and utility of JOS are its deployability,
reliability, and accessibility.

JavaOS consists of both layered architecture and
the Microkernel.
The various layers are as follows:
The hardware is the lowest of all layers.
The interrupt, threads, boots being the next.
The memory architecture.
Java Virtual Machine, which converts the byte code, runs on top
of the interrupt, thread layer.
Device drivers, various networking protocols layer forms another
layer.
JavaOS platform interface.
JAVA API being the top most layer.
The JavaOS layered architecture can be broadly classified into:
Device drivers.
JavaOS platform interface.
Micorkernel and memory architecture and
Stand-alone JDK runtime environment.
The Microkernel supports the following:
Booting.
Interrupt handling.
multiple threads and
Traps and DMA handling.
The Microkernel enables running multiple applets at the same time or downloading
information while running a Java application.
Microkernel and the JAVA VIRTUAL MACHINE (JVM) are platform
specific codes that are complied with native codes.
JVM mainly written in C supports the following functions:
Memory management.
Threads.
Class loading.
Bytecode verifier and
Bytecode interpreter.
JavaOS components:
JavaOS Device Driver: The device drivers are written in
Java and are both extensible and portable. New primitives to handle interrupts,
load/store operations have been used on top of synchronization primitive.
The JavaOS core has two main APIs for construction of device drivers:
Interrupt class which manage interrupt handlers and
Memory class used to access device and bus registers.
The interrupt class provides register/deregister management for Java interrupt
handlers. The register() native method registers an InterruptHandler object
with the microkernel's machine level interrupt vector processing. The
interrupt() method then services the device as required.
The memory class provides drivers with primitive access to mapped device
registers. [ http://csl.cs.iit.edu/~dmm/papers/system_java.pdf]
JavaOS Network Classes includes standard networking protocols
such as TCP/IP for basic transport and routing. DNS and INS both are used
for looking up host names and user authentication during log-in. RARP
and DHCP both are supported for discovering network addresses and eliminating
client administration.
JavaOS Window and Graphics systems: The JavaOS Window
system controls all drawings made on to the screen. Implementation of
the GUI components like the buttons, menus, scrollbars etc. and management
of overlapping windows. Common graphic calls like drawing of arcs, polygon
etc are all done by the JavaOS Graphics. Both subsystems support the Java
Abstract Windowing Toolkit (AWT).
The address space for all components is same, including the Microkernel.
The Microkernel exports a set of process management. Multiple process
shares the same address space.
Every process is assigned a memory space and thread. Process
is created without assignment of any resources. Resources are assigned
to process dynamically over the lifetime of the process.Once a process
is over the Microkernel takes its allocated resources.
Microkernel exports threads management services that
help JVM fix up the Java thread semantics. Java threads are layered on
the Microkernel threads. Microkernel exports a set of memory management
services that let the JDK Runtime allocate virtual address space for I/O.
We also looked into the different aspects of JavaOS in comparison with
conventional OS.
JavaOS different from conventional Operating System:
Single programming language: JavaOS supports only one programming
language unlike other operating systems support, which supports different
programming languages.
No system calls: JavaOS has no system calls are specific for
each OS, their usage would conflict with the goals of 100% Pure Java,
because the created software is limited to specific environments.
Integrated networking: JavaOS provides powerful server-side administration
for low-cost computing platforms eliminating the need for client administration
such as data backups and new software updates.
Layered architecture: JavaOS has a layered architecture each
of these layers are removable and can be modified independent of the other
layers according to the need of the user.
JavaOS same as an operating system:
Provides a programming interface in the form of the Java API
Is bootable and executes directly on the hardware platform
Provides context switching between multiple Java applications
Supports software traps, exceptions and interrupt handling
Includes support for device drivers
Supports various networking protocols
Has its own windowing system in the form of the AWT class
Architectural Study by
- Indranil Sanyal
and Dr Sripathy Bhat
(Instructed by Prof. Ralph E.Johnson)

Advanced Software
Engineering,
Department of Computer Science,
Univeristy of Illinois Urbana Champaign (UIUC), USA.
|