Chorus Vs Unix Operating Systems

Download Report

Transcript Chorus Vs Unix Operating Systems

Chorus Vs Unix Operating Systems
Overview
Introduction
Design Principles
Programmer Interface
User Interface
Process Management
Memory Management
File System
Inter Process Communication
Summary – Conclusions
References
Introduction
Unix Operating System
Originally developed in a laboratory at AT&T’s Bell Labs.
Unix is a mature, technically superior group of operating systems
with extremely powerful multiprocessor server hardware.
Unix is a monolithic operating system.
Chorus Operating System
Chorus was a research project on distributed systems at INIRA in
France. It was bought by Sun Microsystems in 1997.
The Chorus operating system is a highly scalable and reliable
embedded operating system.
Chorus is a micro kernel-based operating system.
Design Principles - Unix
Unix is a layered operating system.
The operating system, referred to in Unix as the kernel, interacts with
the hardware and provides the services to the user programs.
It is a multi-user, multi-tasking operating system.
Design Principle - Chorus
A Chorus system is composed of a small nucleus and a set of system
servers, which cooperate in the context of subsystems.
Chorus Nucleus is not the core of a specific operating system; rather it
provides generic tools designed to support a variety of host
subsystems, which can coexist on top of the Nucleus.
This structure supports application programs, which already run on an
existing operating system, by reproducing the operating system’s
interface within a subsystem.
Process Management
Unix
Every process running under UNIX is identified by a process- id
(pid), an integer value. Each process is identified with the owner
of the process, simply called uid.
Processes are arranged in a tree structure link.
Unix is a timesharing system. Each turn is a called a timeslice.
Chorus
A process in Chorus defines a protected address space.
Every process has a protection identifier associated with it.
There are three kinds of processes in Chorus, each having different
execution privileges. Supervisor processes, System processes and
User processes.
Memory Management
Unix
All memory assigned as pages
Each user process works in a virtual 4GB memory
space
Multi-User nature of UNIX requires that no memory be
allocated to absolute locations
Unix memory management is based on Demand-paged
virtual memory system.
It employs the Least Recently Used algorithm.
Memory Management
Chorus
Abstract memory objects are typically provided to protect regions of
memory. Virtual memory management may be implemented as part of the
kernel or user-level process.
The Unit of data abstraction in Chorus is called the segment. Segments
generally represent some form of secondary storage such as a file.
Each process address space is divided into regions. A region is a
contiguous range of virtual addresses within a process, which maps a
portion of a segment to a given virtual address.
System processes known as mappers are responsible for mapping
segments onto regions. If a process makes a request to read or modify data
within a region, the mapper returns the appropriate segment containing the
data.
File System
Unix
The UNIX file system is one of the simplest tree structured file
systems to use.
There are no syntax extensions for accessing system files, files
belonging to other users, or files on network mounted file systems.
The file system is one place where UNIX has a friendlier user
interface than most systems.
Chorus
The Chorus file system is very familiar to the Unix file system but
it provides a file manager.
The file manager acts as a mapper for the Chorus kernel and also
performs Unix file system management.
The Chorus file system has the standard Unix code, code to
support Chorus segment mapper, and codes to catch hardware
interrupts and map them onto hardware device drivers.
Inter-Process Communication
Unix
Processes in Unix based systems communicate between themselves
through IPC constructs. Among these are:
Pipes
FIFO (named pipes)
Streams (Files)
Sockets
Messages: Exchange messages with any process or server.
Semaphores: Allow unrelated processes to synchronize execution.
Shared memory: Allow unrelated processes to share memory.
Chorus
Communication services provided by Chorus are:
• Asynchronous Message-passing
 Does not guarantee delivery of message.
 No notification to sender.
• Synchronous RPC
 Client-Server model.
 Guarantees delivery of message.
 Notification send to sender
Protection and Security
Unix
Physical Security
Network Security
Account Security
File System Security
Chorus
Security in Chorus is offered by the application level.
There is no security in the Chorus nucleus.
Chorus has provisions for the development of secure distributed
systems through support for access control and authentication.
Security is offered in Chorus by the concept of unique identifiers.
Knowledge of Unique Identifier gives full privileges to manipulate
the object.
Conclusion
Unix cannot fulfill the expectations of
system builders if it continues to increase in
complexity without a well-defined modular
architecture, based on simple concepts, to
manage its growth.
Therefore micro-kernel based distributed
operating systems such as Chorus came into
existence.