PJOS

Project page | Browse CVS | Download

Welcome to the PJOS project. The aim of this project is to create an open source and portable operating system based on the java virtual machine specification.

Goals

  • to have a simple, modular design
  • to provide a java execution environment compatible with Sun's JDK
  • to write as much as possible of the system code in java
  • to allow device drivers to be written in java
  • not to support execution of any platform-specific code

Project Status

SourceForge Logo The current status of the project is experimental with development hosted at SourceForge. PJOS is released under the GNU General Public License.

Emulator Architecture

The emulator implementation is written in java and emulates an abstract machine. Main memory and floppy disk are implemented as java byte arrays which are loaded from files. The processor is a java thread which executes instructions and manipulates the memory and devices as if it were a real processor. There is a Swing GUI debugger which allows the machine state to be observed during execution.

Currently the emulator performs the following actions:

  1. Performs some java vm initialisation (initialise classes, intern strings)
  2. Starts floppy disk, console and keyboard drivers
  3. Loads shell class from floppy and executes
  4. Runs shell with a few simple commands available

An executable jar file demo for the emulator can be downloaded from here.

Intel x86 Architecture

The x86 implementation is based on the emulator and written in x86 assembly using the NASM assembler. The code has been directly ported from the emulator, although not all of the functionality of the emulator has been implemented yet. The missing parts are keyboard and floppy drivers to enable the shell to function.

The intention is to write all x86 specific drivers in java using an API which provides interrupt handling and low level system calls.

GNU Classpath

PJOS uses the java library implementations from the GNU Classpath project.

Contact Information

Please send email to Simon Daniel.


Project page | Browse CVS | Download