E1 is a distributed operating system project, based on the following concepts:
- object replication
- component model support
To provide applications with transparent access to all resources of computer network, state and functionality of operating system components and application software are encapsulated by distributed objects.
Reliability and efficiency of access are achieved by means of object replication. In E1 a complete or partial copy of a distributed object's state is placed in each node where the object is used. The state of an object is synchronized (replicated) among nodes. For each object the most efficient replication algorithm can be selected on the basis of object's semantics. In most cases such algorithm can be found among existing replication strategies. Alternatively, it can be designed specifically for the given type of objects, which allows to maximize the efficiency of access by taking type-specific properties into account. >>
Following the current trend towards component software, E1 provides support for component-oriented programming. Development and use of components require a component model, defining a set of services, interfaces and conventions, all of which constitute the execution and communication environment for components. Current component models are usually implemented as middleware systems. In contrast, E1 implements component model by extending the distributed object model with component-oriented services and tools, thus avoiding the use of additional software layer. Besides being highly efficient, such architecture simplifies the development and use of components, since in E1 distributed objects (or components) are first-class citizen, like files in UNIX. The E1 component model provides services for object protection, global object naming, dynamic class loading, garbage collection, as well as component development tools like IDL compiler and replication strategy compiler. >>
Persistence is the ability of the objects to exist for unlimited time, irrespectively of whether a system functions continuously. For this purpose a copy of an object is maintained in nonvolatile storage. The stored object state is always correct, even in the face of hardware failures.
Among other E1 features are:
- microkernel-based architecture;
- a single virtual 64-bit address space;
- execution model, based on migrating threads;