Case Study: The E1 Distributed Operating System Chris Krentz 3/20/2007
What is the E1 Operating System? A distributed operating system with a single-system image A transparent user experience based on distributed object abstraction Efficient and reliable due to object replication
History of E1 Designed by Anton Burtsev and Leonid Ryzhik, PhD students of the Institute of Applied System Analysis at National Technical University of Ukraine Design completed in 2003 and implementation began Prototype released in 2005
Goals of E1 Provide a convenient interface for users and software developers Maximize efficiency by minimizing the influence of remote communication bottlenecks Ensure reliability by providing redundant storage and execution, as well as fault recovery.
Features of E1 Transparent Access, based on distributed object abstraction Implements Single System Image paradigm Distributed system looks like a centralized one Allows developers to ignore the physical layout of resources and focus on functionality Based on Distributed Object concept
Features of E1 Object Replication for access efficiency and reliability Complete or partial copy of each distributed object's state can be placed in each node where it is used State of the object is synchronized (replicated) among nodes No particular replication strategy is enforced: different replication strategies can used depending on which is best suited for the situation
Features of E1 Component Model Support Prefabricated, reusable components make software deployment easier The component model specifies the environment in which components operate, including: Method invocation mechanism Naming service Garbage collection Extending the component model across the network provides a convenient environment for distributed application development
Structure of E1: Microkernel Architecture Microkernel architecture moves vital system-wide processes to a user level Microkernel operates in a single node (user's machine, etc) Handles operations such as Address Spaces, Threads, Interrupt Dispatching Prevents one massive kernel from handling all system processes over the network
Structure of E1: Design Overview oe
Structure of E1 System consists of interacting modules located in different network nodes Replication objects store synchronized state data in one or more nodes on the network Replicating data over the network provides error- handling and recovery Semantics object implements the functionality of the replicated object, so that it can run independent from the object communicating with the network
Structure of E1: Distributed Objects and Replication No
Structure of E1: Object Registry Object Registry is the heart of E1 Maintains information about all local replicas and distributed objects Coordinates execution of operations such as creation and deletion
How to Use E1 E1 exists as a prototype but no applications are available yet Distributed objects (programs) can be written in C++ as long as they conform to the documented component model Interface Definition Language and Replication Strategies Compiler exist for integrating programs into the operating system
Applications of E1 Robust distributed system for developing distributed applications Safe and efficient due to object replication for multiple user use Convenient object-oriented development environment
Summary – E1 is: A distributed operating system with a single-system image A transparent user experience based on distributed object abstraction Efficient and reliable due to object replication and microkernel operation
References: - L. B. Ryzhik, A.Y. Burtsev. E1 Distributed Operating System. < March 18, L. B. Ryzhik, A.Y. Burtsev. Architectural design of E1 distributed operating system B. Ford, J. Lepreau. Microkernels Should Support Passive Objects, Proc. I- WOOOS'93, December R. Golding. Weak-Consistency Group Communication and Membership. PhD thesis, University of California, Santa Cruz, Li Gong. A Secure Identity-Based Capability System. Proc. IEEE Symposium on Security and Privacy, pp.56-65, 1989.