PHASE II
  Home  | Phase I | Phase II | Phase III | RJQ | Favorite Links | Contact  | What's New | Photo Page | Guest Book  

Introduction:

JOS is an efficient, small operating system that runs JAVA applications with minimum support from the host hardware.
It has been designed specifically to suit purposes, which have memory constraint.
JavaOS needs to be as compact as possible to fit into devices with small memory capacity like mobile phones
.


Relationship to the Architecture Business Cycle
 


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.











Site built and maintained by Dr Sripathy Bhat and Indranil Sanyal