DistOS 2015W Session 3: Difference between revisions
Mohamedahmed (talk | contribs) No edit summary |
|||
(13 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
= Multics = | |||
'''Team:''' Sameer, Shivjot, Ambalica, Veena | '''Team:''' Sameer, Shivjot, Ambalica, Veena | ||
It came into being in the 1960s and it completely vanished in 2000s. It was started by Bell, General Electric and MIT but Bell backed out of the project in 1969. | It came into being in the 1960s and it completely vanished in 2000s. It was started by Bell, General Electric and MIT but Bell backed out of the project in 1969. | ||
Multics is a time sharing OS which provides | Multics is a time sharing OS which provides multitasking and multiprogramming. It is not a distributed OS but it a centralized system which was written in machine-specific assembly. | ||
It provides following features: | It provides the following features: | ||
# Utility Computing | # Utility Computing | ||
# Access Control Lists | # Access Control Lists | ||
# Single level storage | # Single level storage | ||
# Dynamic linking | # Dynamic linking | ||
#* Sharded libraries or files can be loaded and linked to Random Access Memory at run time | #* Sharded libraries or files can be loaded and linked to Random Access Memory at run time | ||
# Hot swapping | # Hot swapping | ||
# Multiprocessing System | # Multiprocessing System | ||
# Ring oriented Security | # Ring oriented Security | ||
#* It provides number of levels of authorization within the computer | #* It provides number of levels of authorization within the computer system | ||
#* Still present in some form today, inside both processors (like x86) and operating systems | |||
= Unix = | |||
* general purpose multi-user interactive operating system | |||
* relatively inexpensive | |||
* includes text editors, interpreters and compilers | |||
The | Unix in its original conception is a small, minimal API system designed by two guys from Bell Labs. It was essentially an OS that was optimized for the needs of programmers but not much beyond that. The UNIX OS ran on one computer, and terminals ran from that one computer. Thus it is not a distributed operating system as it is centralized and implements time sharing. In fact, it didn't even have support for networking in the first version. | ||
The C language was created specifically for Unix, as the creators wanted to create a machine-agnostic language for the operating system. | |||
Most features from Unix are still available in present day Unix-based systems. For example, the shell, with its piping capabilities, is still used today in its original form. | |||
= NFS = | |||
NFS is a protocol for working with distributed file systems transparently using RPC. These connections are not secure. Sun wanted to encrypt these RPC connections but encryption would result in government regulations that Sun wanted to avoid in order to sell NFS over seas. | |||
<blockquote> | |||
Sun wanted to secure their NFS with encryption, but at the time encryption was regulated like munitions in the United States. Exporting any product that had encryption was impossible, but Sun needed those sales abroad. To avoid these regulations, Sun decided to sell the insecure NFS version of the system. | |||
</blockquote> | |||
'''Team''': Mert | |||
*Sun used "open protocol" approach to develop NFS | |||
** Simply specified the exact message formats that clients and servers would use to communicate. | |||
** Different groups could develop their own NFS servers and thus compete in an NFS marketplace. | |||
** ex. Sun, NetApp, EMC, IBM, etc. | |||
*NFSv2, simple and fast server crash recovery | |||
**Any minute that the server is down (or unavailable) makes all the clients unproductive. | |||
**The protocol is designed to deliver in each protocol request all the information that is needed in order to complete the request. | |||
**stateless approach: the server does not track anything about what clients are doing | |||
**no fancy crash recovery is needed, the server just starts running again, and a client, at worst, might have to retry a request. | |||
= Locus = | |||
# Not scalable | |||
#* The synchronization algorithms were so slow, they only managed to run it on five computers | |||
#* Every computer stores a copy of every file | #* Every computer stores a copy of every file | ||
#* Also used CAS to manage files | #* Also used CAS to manage files | ||
Line 40: | Line 63: | ||
#Transparency | #Transparency | ||
#* It provided network transparency to “disguise” its distributed context. | #* It provided network transparency to “disguise” its distributed context. | ||
#Dynamic reconfiguration. (It adapts topology changes.) | |||
Locus has lots of similarities with the today's systems. It uses replication and partitioning which are employed in cloud and distributed systems. | Locus has lots of similarities with the today's systems. It uses replication and partitioning which are employed in cloud and distributed systems. | ||
'''Team''': Eric | |||
''' Team | *LOCUS was capable of distribute file and processes among the nodes but not the computing power. | ||
* distributed operating system which supports transparent access to data through a network wide filesystem | |||
* upward compatible with Unix | |||
* automatic replication of storage (backups), distributed process execution (cloud computing?) | |||
= Sprite = | |||
Mohamed | |||
* OS for networked uniprocessor and multiprocessor workstations with large physical memories | |||
*shared memory and processes between work stations | |||
*The motivation for building a new operating system came from three general trends in computer technology: networks, large memories, and multiprocessors. | |||
''' Team''': Jamie, Hassan, Khaled | |||
Sprite had the following Design Features: | Sprite had the following Design Features: | ||
# Network Transparency | # Network Transparency | ||
# Process Migration, file transfer between computers | # Process Migration, file transfer between computers | ||
#* User could initiate a process migration to an idle machine, and if the machine was no longer idle; due to it being used | #* User could initiate a process migration to an idle machine, and if the machine was no longer idle; due to it being used by another user, the system would take care of the process migration to another machine | ||
# Handling Cache Consistency | # Handling Cache Consistency | ||
#* Sequential file sharing ==> By using a version number for each file | #* Sequential file sharing ==> By using a version number for each file | ||
Line 57: | Line 96: | ||
# Implemented a caching system that sped up performance | # Implemented a caching system that sped up performance | ||
# Implemented a log structured file system | # Implemented a log structured file system | ||
#* Log structured file systems are optimized for writes | #* They realized that with increasing amounts of RAM in computers which can be used for caching, writes to the disk were the main bottleneck, not reads. | ||
#* Log structured file-systems are optimized for writes, as changes to previous data are appended at the current position. | |||
#* This allows for very fast, sequential writes. | |||
#* Example: SSD (Solid-state disks) | #* Example: SSD (Solid-state disks) | ||
The | The main features to take away from the Sprite system is that it implemented a log structured file system, and implemented caching to increase performance. | ||
= Sprite = | |||
Mohamed | |||
* transparent remote access to filesystems | |||
* portable to other operating systems and machine architectures | |||
* can add new file systems dynamically the same way that device drivers are added | |||
* most flexible method of remote file access available then. |
Latest revision as of 05:14, 28 April 2015
Multics
Team: Sameer, Shivjot, Ambalica, Veena
It came into being in the 1960s and it completely vanished in 2000s. It was started by Bell, General Electric and MIT but Bell backed out of the project in 1969. Multics is a time sharing OS which provides multitasking and multiprogramming. It is not a distributed OS but it a centralized system which was written in machine-specific assembly.
It provides the following features:
- Utility Computing
- Access Control Lists
- Single level storage
- Dynamic linking
- Sharded libraries or files can be loaded and linked to Random Access Memory at run time
- Hot swapping
- Multiprocessing System
- Ring oriented Security
- It provides number of levels of authorization within the computer system
- Still present in some form today, inside both processors (like x86) and operating systems
Unix
- general purpose multi-user interactive operating system
- relatively inexpensive
- includes text editors, interpreters and compilers
Unix in its original conception is a small, minimal API system designed by two guys from Bell Labs. It was essentially an OS that was optimized for the needs of programmers but not much beyond that. The UNIX OS ran on one computer, and terminals ran from that one computer. Thus it is not a distributed operating system as it is centralized and implements time sharing. In fact, it didn't even have support for networking in the first version.
The C language was created specifically for Unix, as the creators wanted to create a machine-agnostic language for the operating system.
Most features from Unix are still available in present day Unix-based systems. For example, the shell, with its piping capabilities, is still used today in its original form.
NFS
NFS is a protocol for working with distributed file systems transparently using RPC. These connections are not secure. Sun wanted to encrypt these RPC connections but encryption would result in government regulations that Sun wanted to avoid in order to sell NFS over seas.
Sun wanted to secure their NFS with encryption, but at the time encryption was regulated like munitions in the United States. Exporting any product that had encryption was impossible, but Sun needed those sales abroad. To avoid these regulations, Sun decided to sell the insecure NFS version of the system.
Team: Mert
- Sun used "open protocol" approach to develop NFS
- Simply specified the exact message formats that clients and servers would use to communicate.
- Different groups could develop their own NFS servers and thus compete in an NFS marketplace.
- ex. Sun, NetApp, EMC, IBM, etc.
- NFSv2, simple and fast server crash recovery
- Any minute that the server is down (or unavailable) makes all the clients unproductive.
- The protocol is designed to deliver in each protocol request all the information that is needed in order to complete the request.
- stateless approach: the server does not track anything about what clients are doing
- no fancy crash recovery is needed, the server just starts running again, and a client, at worst, might have to retry a request.
Locus
- Not scalable
- The synchronization algorithms were so slow, they only managed to run it on five computers
- Every computer stores a copy of every file
- Also used CAS to manage files
- Not efficient with abstractions
- Trying to distribute files and processes
- Allowed for process migration
- Transparency
- It provided network transparency to “disguise” its distributed context.
- Dynamic reconfiguration. (It adapts topology changes.)
Locus has lots of similarities with the today's systems. It uses replication and partitioning which are employed in cloud and distributed systems.
Team: Eric
- LOCUS was capable of distribute file and processes among the nodes but not the computing power.
- distributed operating system which supports transparent access to data through a network wide filesystem
- upward compatible with Unix
- automatic replication of storage (backups), distributed process execution (cloud computing?)
Sprite
Mohamed
- OS for networked uniprocessor and multiprocessor workstations with large physical memories
- shared memory and processes between work stations
- The motivation for building a new operating system came from three general trends in computer technology: networks, large memories, and multiprocessors.
Team: Jamie, Hassan, Khaled
Sprite had the following Design Features:
- Network Transparency
- Process Migration, file transfer between computers
- User could initiate a process migration to an idle machine, and if the machine was no longer idle; due to it being used by another user, the system would take care of the process migration to another machine
- Handling Cache Consistency
- Sequential file sharing ==> By using a version number for each file
- Concurrent write sharing ==> Disable cache to clients, enable write-blocking and other methods
- Implemented a caching system that sped up performance
- Implemented a log structured file system
- They realized that with increasing amounts of RAM in computers which can be used for caching, writes to the disk were the main bottleneck, not reads.
- Log structured file-systems are optimized for writes, as changes to previous data are appended at the current position.
- This allows for very fast, sequential writes.
- Example: SSD (Solid-state disks)
The main features to take away from the Sprite system is that it implemented a log structured file system, and implemented caching to increase performance.
Sprite
Mohamed
- transparent remote access to filesystems
- portable to other operating systems and machine architectures
- can add new file systems dynamically the same way that device drivers are added
- most flexible method of remote file access available then.