0 - JOS
JOS is an Operating System based on the Java (tm) platform. The rapid ubiquity and acceptance of Java(tm), the extensive worldwide momentum towards its convergence as an international standard, and the inherent dynamic nature of the Java (tm) programming language and platform, has presented a unique and timely opportunity for the creation of a portable, extensible, and open object oriented operating system. An operating system capable of deployment on a variety of host platforms, ranging from personal and embedded computing devices, up to and beyond multi-user workstations and servers.
The JOS Project [http://jos.org] is a collaborative undertaking by an international group of Java(tm) programmers and enthusiasts aimed at the creation of a free and open Java(tm) Operating System (JOS).
This white paper describes one possible design for an Open, Portable, and Dynamically Extensible Java Object Operating System (JOS), and is presented for consideration by the JOS Project group.
JOS is an Open, Portable, and Dynamically Extensible Java(tm) based Object Operating System, based on a configurable layered architecture.
By 'Open', it is meant 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. As a system composed mainly of Java(tm) components, JOS is a '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 the Java(tm) platform, JOS is designed to be fully extensible and configurable at run-time, making it a Dynamically Extensible operating system. Finally, as an operating system, JOS is not merely a system implemented using an object oriented language; JOS presents an 'Object Oriented' personality from its lowest layers, up to the application developer, and beyond to the user.
0.1 Why is it necessary?
The fascination of corporate consumers with the prevalent DOS based OStechnologies not withstanding, there currently exist many affordable operating systems for use on Personal Computers and larger systems. Many are available as little cost (compared with the cost of the host platform), and one (Linux(r)) is essentially free, providing an advanced and robust OS for a variety of platforms. But as incompatible systems, the choice of an operating system selectively narrows the range of applications available for use by its user. This fact alone has been greatly responsible for the accelerated trend towards the convergence of the personal computing market to a single family of operating systems. A fate not entirely favorable to both the developer or the user community.
Overcoming the strangle hold of the prevalent OS has been a great contributing factor in the wild (and sometimes emotional) embrace of Java(tm) by the software development community. As an interpreted byte code system, Java applications can run with little or no modification on any platform which supports an implementation of the Java(tm) Virtual Machine. As long as the integrity of the Java(tm) platform can be maintained and its virtual machine and APIs widely distributed, the choice of an operating system no longer limits the user to a host specific set of applications.
Another trend contributing to the loosening of the grasp of theprevalent OS is the gradual transition of informational systems to the global Internet and its standards for the presentation and transfer of information. This has given rise to the acceptance of a 'browser' as the nominal user environment.
So why is JOS necessary?
With the possible exception of the MacOS, none of today's operating systems are truly designed for 'personal' use. These OSs are mainly systems written by technologist for consumption for other technologist. They are big, complex, and over loaded with features of no real utility to an average user. So in a very real sense, there is an acute shortage of 'approachable' and 'usable' operating systems for the average person. Even the possibility that the Internet browser could become such a platform has been squandered by the 'arms race' which the vendors of the two primary browsers are currently engaged in.
Thus, creating an operating system that grows as the user grows in proficiency and sophistication is one of the goals of the operating system that is presented in this paper. JOS is designed to be as simple as possible, or as complex as necessary: an adaptable system.
Another credible motivation for JOS is the realization that most modern operating systems extract a cost, in terms of a reduction in performance, from the user of a Java(tm) application. So even though the user has (potentially) more choices in terms of what to use, she pays a price for this freedom in utility. Availability of widely portable applications is not enough. There is also a very real for the availability of a widely portable operating system designed for the efficient execution of Java(tm) applications. There are surprising, but credible, reports from current research and production efforts on experimental Java based operating systems that such systems actually promote a much more efficient computational environment for Java (tm) applications. This is superficially counter intuitive, but becomes more self evident if it is considered that toady's operating systems are essentially legacy systems covered with layer after layer of abstraction to support rapidly changing programming needs.
Thus, the availability of an operating system designed specifically to provide a maximally efficient computational environment for Java(tm) applications will address a real concern. Further, as a system incorporating Java(tm) from its very core, JOS is highly suited to address the rapidly (and sometimes unexpectedly) evolving forces bearing on computing systems.
The rapid integration of networking in everyday life (at least in the West) is a wildly transformative force on modern society. This trend is still in its nascent stage, but even now is poised to affect a societal reorganization as fundamental as the Automobile and the Television. From this point forward, the distinction between communication and computation will quickly lose its meaning. The appearance of the Java(tm) 'Applet' marked the time at which Software became Information. System distribution and object mobility are no longer merely the subject of academic consideration, but will most certainly form the structure and pattern of the next generation software systems. Inherent in this trend is the necessity for providing and employing the same measures and safeguards that we would normally apply to information to software.
Thus, the availability of a free and open operating system designed from the ground-up for secure networking is more than an opportunity. It is also a vital necessity. The Java(tm) platform is ideally suited as security is one of the formative forces on its development. However, one factor which is generally overlooked in the analysis of Java(tm) as a secure computational platform is its fundamental vulnerability to attack by Hostile Virtual Machines. Almost all of the design features of Java(tm) are placed to protect the 'host' from attack by the information (software) obtained from the open network. Very little can be done as of today to protect the 'mobile object' (or Agent) from the host, but there are some remedies and the opportunity to implement JOS's embedded Virtual Machine will allow for the integration of possible (but limited) tactical safeguards.
Needless to say, 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 is its deployability, reliability, and accessibility. These virtues are not sacrificed to satisfy the technologist's hunger for complexity. Not all users of JOS will require (not to say can afford the resource requirements of) the middle ware required for distribution and object mobility. The remembrance that Java(tm) is the fruit of the nurture of an Oak seedling by a loving Sun has been an influence in the design of JOS.
Lastly, while there exist many freely available operating system 'kits' and assemblable micro kernels, (almost?) all such tool kits are targeted at the creation of traditional operating systems, and are intended for a select audience of 'wizards' of low-level programming.
JOS has been designed to address the desire of what is probably a great many software designers who have always wanted to design and build their own object operating systems. As a object oriented tool kit for creation of specialized or experimental object operating systems, JOS will also provide an invaluable educational tool For this reason, the lowest layer of JOS is intended to function as a Open Virtual Platform (tm), with a fully functional Java virtual machine, an open byte code instruction set, and a 'native' interface to core resources expressed in Java(tm).
0.2 Who is going to use JOS?
JOS is intended by use by the personal (average) user, the hobbyist, the technologist, educational groups, and potentially the corporate IS user. The intended target platforms of JOS range from (if possible) embedded systems, PDAs, to personal computers, and beyond.
Keeping true to the original impulse of the JOS collaborative effort, JOS is intended to grow from a functional operating system bootable from a portable storage medium no greater than 1.4 MB in size to greater functionality.
The essential initial development is the specification, design, and implementation of the JOS Open Virtual Platform(tm), which is the platform specific lower layer of JOS. The proposed initial host platform is the 486 microprocessor family.
If technically possible, it is desirable that the JOS Open Virtual Platform(tm) interface APIs be specified as soon as it is possible, allowing for the possibility that the JOS System Services Layer effort can be undertaken concurrent with the core layer implementation.
(written by email@example.com)
Last changed: 17 Oct 1997 by firstname.lastname@example.org
Open Virtual Platform(tm) should be futher defined with an article of its own. -- GilbertHerschberger (12 July 2000).