<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dwils098</id>
	<title>Soma-notes - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dwils098"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php/Special:Contributions/Dwils098"/>
	<updated>2026-05-12T18:06:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_10&amp;diff=20036</id>
		<title>DistOS 2015W Session 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_10&amp;diff=20036"/>
		<updated>2015-03-24T17:30:06Z</updated>

		<summary type="html">&lt;p&gt;Dwils098: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Feel free to tweak the questions!&lt;br /&gt;
&lt;br /&gt;
==Kademlia==&lt;br /&gt;
Members: Kirill, Deep, Jason, Hassan&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Why are DHTs relevant to distributed OSs?&#039;&#039;&#039;&lt;br /&gt;
** Using many system, having repetition&lt;br /&gt;
** DHT to distributed content over  multiple nodes&lt;br /&gt;
** Decentralized therefore peer-to-peer&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;How is content divided?&#039;&#039;&#039;&lt;br /&gt;
** File hashes&lt;br /&gt;
** Node ID to locate the value&lt;br /&gt;
** 160 bit key space, binary tree for partition and searching down the tree&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;How is the network traversed?&#039;&#039;&#039;&lt;br /&gt;
** Highest prefix and increase the number of digit it used to get close to the target nodes&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;What trust assumptions does the system make?&#039;&#039;&#039;&lt;br /&gt;
** DHT by itself is insecure&lt;br /&gt;
** The academic and practitioner communities have realized that all current DHT designs suffer from a security weakness, known as the Sybil attack&lt;br /&gt;
** K-buckets&lt;br /&gt;
*** Binary tree with each node having k-buckets as leaf&lt;br /&gt;
*** Any given k-node is very unlikely to fail within an hour of each other&lt;br /&gt;
*** New nodes are only inserted when there is room in the bucket or the oldest node doesn&#039;t respond&lt;br /&gt;
** Uses UDP therefore packets are often lost&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Performance constraints?&#039;&#039;&#039;&lt;br /&gt;
** Binary tree traversing, therefore traversing is maximum O(log n)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;What non-DHT internet infrastructure would you replace with a DHT?  How suitable is Kademlia for this purpose?&#039;&#039;&#039;&lt;br /&gt;
** DNS&lt;br /&gt;
** Any kind of meta-data service&lt;br /&gt;
&lt;br /&gt;
==Comet==&lt;br /&gt;
Members: Mohamed Ahmed, Apoorv Sangal, Ambalica Sharma&lt;br /&gt;
&lt;br /&gt;
* Why are DHTs relevant to distributed OSs?&lt;br /&gt;
DHT is an infrastructure than enables many clients to share information, and scale to handle node arrival, departure and failure. DHT&#039;s serve many of the design goals of disbtributed operating systems. The paper states that &amp;quot;DHTs are increasingly used to support a variety of distributed applications, such as file-sharing, distributed resource tracking, end-system multicast, publish-subscribe systems, distributed search engines&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* How is content divided?&lt;br /&gt;
One of the three main components of the comet system is a routing substrate which&lt;br /&gt;
implements the value/node mapping. This allows a client to find the node htat stores&lt;br /&gt;
a specific data item. Since Comet uses a DHT implementation, routing occurs by applying&lt;br /&gt;
a hash function to the key to compute node ID&#039;s that store the associated value.&lt;br /&gt;
&lt;br /&gt;
* How is the network traversed?&lt;br /&gt;
&lt;br /&gt;
* What trust assumptions does the system make?&lt;br /&gt;
Assumes clients re untrusted autonomous nodes. &lt;br /&gt;
&lt;br /&gt;
A client node running Comet should be protected from the execution of handlers &lt;br /&gt;
e.g. an executing handler cannot corrupt the node or use unlimited resources. &lt;br /&gt;
Handlers should not be able to mount messaging attacks on other nodes.&lt;br /&gt;
&lt;br /&gt;
Users downloading Comet must trust it and have guarantees about its behavior. For this reason, Comet enforces four important restrictions:&lt;br /&gt;
1. Limited knowledge: an ASO is not aware of other objects&lt;br /&gt;
or resources stored on the same node and has no&lt;br /&gt;
direct way to learn about them.&lt;br /&gt;
2. Limited access: an object handler can manipulate only its own value and cannot modify the values of other objects on its storage node.&lt;br /&gt;
3. Limited communication: an active storage object cannot&lt;br /&gt;
send arbitrary messages over the network.&lt;br /&gt;
4. Limited resource consumption: an ASO’s resource usage is strictly bounded, e.g., the system limits the amount of computation and memory it can consume.&lt;br /&gt;
&lt;br /&gt;
* Performance constraints?&lt;br /&gt;
&lt;br /&gt;
* What non-DHT internet infrastructure would you replace with a DHT?  How suitable is Comet for this purpose?&lt;br /&gt;
&lt;br /&gt;
==Tapestry==&lt;br /&gt;
Members: Ashley, Dany, Alexis, Khaled&lt;br /&gt;
&lt;br /&gt;
* Why are DHTs relevant to distributed OSs?&lt;br /&gt;
&lt;br /&gt;
Because they provide a way to distribute information over large networks (distributed key/value store).&lt;br /&gt;
&lt;br /&gt;
* How is content divided?&lt;br /&gt;
&lt;br /&gt;
Uses consistent hashing (SHA-1), upon node creation (join) creates optimal routing table.&lt;br /&gt;
&lt;br /&gt;
* How is the network traversed?&lt;br /&gt;
&lt;br /&gt;
You look at your neighbours, you see which neighbour is closest to your destination, and recurse.&lt;br /&gt;
&lt;br /&gt;
* What trust assumptions does the system make?&lt;br /&gt;
&lt;br /&gt;
It assumes the system is entirely trustworthy from adversaries. While network failures may happen and nodes may go down, no node will explicitly try to mess with the network.&lt;br /&gt;
&lt;br /&gt;
* Performance constraints?&lt;br /&gt;
&lt;br /&gt;
O(log n) access times to any given node. Best effort publishing/unpublishing via decentralized object location routing.&lt;br /&gt;
&lt;br /&gt;
* What non-DHT internet infrastructure would you replace with a DHT?  How suitable is Tapestry for this purpose?&lt;br /&gt;
&lt;br /&gt;
== Other Resources == &lt;br /&gt;
*[http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1610546&amp;amp;tag=1 A survey and comparison of peer-to-peer overlay network schemes]&lt;br /&gt;
*[http://link.springer.com/article/10.1007/s12083-012-0157-3 Collaborative Applications over Peer-to-Peer Systems – Challenges and Solutions]&lt;/div&gt;</summary>
		<author><name>Dwils098</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_10&amp;diff=20009</id>
		<title>DistOS 2015W Session 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_10&amp;diff=20009"/>
		<updated>2015-03-16T19:16:12Z</updated>

		<summary type="html">&lt;p&gt;Dwils098: /* Tapestry */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Feel free to tweak the questions!&lt;br /&gt;
&lt;br /&gt;
==Kademlia==&lt;br /&gt;
Members: Kirill, Deep, Jason, Hassan&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Why are DHTs relevant to distributed OSs?&#039;&#039;&#039;&lt;br /&gt;
** Using many system, having repetition&lt;br /&gt;
** DHT to distributed content over  multiple nodes&lt;br /&gt;
** Decentralized therefore peer-to-peer&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;How is content divided?&#039;&#039;&#039;&lt;br /&gt;
** File hashes&lt;br /&gt;
** Node ID to locate the value&lt;br /&gt;
** 160 bit key space, binary tree for partition and searching down the tree&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;How is the network traversed?&#039;&#039;&#039;&lt;br /&gt;
** Highest prefix and increase the number of digit it used to get close to the target nodes&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;What trust assumptions does the system make?&#039;&#039;&#039;&lt;br /&gt;
** DHT by itself is insecure&lt;br /&gt;
** The academic and practitioner communities have realized that all current DHT designs suffer from a security weakness, known as the Sybil attack&lt;br /&gt;
** K-buckets&lt;br /&gt;
*** Binary tree with each node having k-buckets as leaf&lt;br /&gt;
*** Any given k-node is very unlikely to fail within an hour of each other&lt;br /&gt;
*** New nodes are only inserted when there is room in the bucket or the oldest node doesn&#039;t respond&lt;br /&gt;
** Uses UDP therefore packets are often lost&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Performance constraints?&#039;&#039;&#039;&lt;br /&gt;
** Binary tree traversing, therefore traversing is maximum O(log n)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;What non-DHT internet infrastructure would you replace with a DHT?  How suitable is Kademlia for this purpose?&#039;&#039;&#039;&lt;br /&gt;
** DNS&lt;br /&gt;
** Any kind of meta-data service&lt;br /&gt;
&lt;br /&gt;
==Comet==&lt;br /&gt;
Members: Mohamed Ahmed, Apoorv Sangal, Ambalica Sharma&lt;br /&gt;
&lt;br /&gt;
* Why are DHTs relevant to distributed OSs?&lt;br /&gt;
DHT is an infrastructure than enables many clients to share information, and scale to handle node arrival, departure and failure. DHT&#039;s serve many of the design goals of disbtributed operating systems. The paper states that &amp;quot;DHTs are increasingly used to support a variety of distributed applications, such as file-sharing, distributed resource tracking, end-system multicast, publish-subscribe systems, distributed search engines&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* How is content divided?&lt;br /&gt;
One of the three main components of the comet system is a routing substrate which&lt;br /&gt;
implements the value/node mapping. This allows a client to find the node htat stores&lt;br /&gt;
a specific data item. Since Comet uses a DHT implementation, routing occurs by applying&lt;br /&gt;
a hash function to the key to compute node ID&#039;s that store the associated value.&lt;br /&gt;
&lt;br /&gt;
* How is the network traversed?&lt;br /&gt;
&lt;br /&gt;
* What trust assumptions does the system make?&lt;br /&gt;
A client node running Comet should be protected from the execution of handlers &lt;br /&gt;
e.g. an executing handler cannot corrupt the node or use unlimited resources. &lt;br /&gt;
Handlers should not be able to mount messaging attacks on other nodes.&lt;br /&gt;
&lt;br /&gt;
Users downloading Comet must trust it and have guarantees about its behavior. For this reason, Comet enforces four important restrictions:&lt;br /&gt;
1. Limited knowledge: an ASO is not aware of other objects&lt;br /&gt;
or resources stored on the same node and has no&lt;br /&gt;
direct way to learn about them.&lt;br /&gt;
2. Limited access: an object handler can manipulate only its own value and cannot modify the values of other objects on its storage node.&lt;br /&gt;
3. Limited communication: an active storage object cannot&lt;br /&gt;
send arbitrary messages over the network.&lt;br /&gt;
4. Limited resource consumption: an ASO’s resource usage is strictly bounded, e.g., the system limits the amount of computation and memory it can consume.&lt;br /&gt;
&lt;br /&gt;
* Performance constraints?&lt;br /&gt;
&lt;br /&gt;
* What non-DHT internet infrastructure would you replace with a DHT?  How suitable is Kademlia for this purpose?&lt;br /&gt;
&lt;br /&gt;
==Tapestry==&lt;br /&gt;
Members: Ashley, Dany, Alexis&lt;br /&gt;
&lt;br /&gt;
* Why are DHTs relevant to distributed OSs?&lt;br /&gt;
&lt;br /&gt;
Because they provide a way to distribute information over large networks (distributed key/value store).&lt;br /&gt;
&lt;br /&gt;
* How is content divided?&lt;br /&gt;
&lt;br /&gt;
Uses consistent hashing (SHA-1), upon node creation (join) creates optimal routing table.&lt;br /&gt;
&lt;br /&gt;
* How is the network traversed?&lt;br /&gt;
&lt;br /&gt;
You look at your neighbours, you see which neighbour is closest to your destination, and recurse.&lt;br /&gt;
&lt;br /&gt;
* What trust assumptions does the system make?&lt;br /&gt;
&lt;br /&gt;
It assumes the system is entirely trustworthy from adversaries. While network failures may happen and nodes may go down, no node will explicitly try to mess with the network.&lt;br /&gt;
&lt;br /&gt;
* Performance constraints?&lt;br /&gt;
&lt;br /&gt;
O(log n) access times to any given node. Best effort publishing/unpublishing via decentralized object location routing.&lt;br /&gt;
&lt;br /&gt;
* What non-DHT internet infrastructure would you replace with a DHT?  How suitable is Tapestry for this purpose?&lt;/div&gt;</summary>
		<author><name>Dwils098</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_10&amp;diff=20002</id>
		<title>DistOS 2015W Session 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_10&amp;diff=20002"/>
		<updated>2015-03-16T19:11:09Z</updated>

		<summary type="html">&lt;p&gt;Dwils098: /* Tapestry */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Feel free to tweak the questions!&lt;br /&gt;
&lt;br /&gt;
==Kademlia==&lt;br /&gt;
Members: Kirill, Deep, Jason, Hassan&lt;br /&gt;
&lt;br /&gt;
* Why are DHTs relevant to distributed OSs?&lt;br /&gt;
&lt;br /&gt;
* How is content divided?&lt;br /&gt;
&lt;br /&gt;
* How is the network traversed?&lt;br /&gt;
&lt;br /&gt;
* What trust assumptions does the system make?&lt;br /&gt;
&lt;br /&gt;
* Performance constraints?&lt;br /&gt;
&lt;br /&gt;
* What non-DHT internet infrastructure would you replace with a DHT?  How suitable is Kademlia for this purpose?&lt;br /&gt;
&lt;br /&gt;
==Comet==&lt;br /&gt;
Members: Mohamed Ahmed, Apoorv Sangal, Ambalica Sharma&lt;br /&gt;
&lt;br /&gt;
* Why are DHTs relevant to distributed OSs?&lt;br /&gt;
DHT is an infrastructure than enables many clients to share information, and scale to handle node arrival, departure and failure. DHT&#039;s serve many of the design goals of disbtributed operating systems. The paper states that &amp;quot;DHTs are increasingly used to support a variety of distributed applications, such as file-sharing, distributed resource tracking, end-system multicast, publish-subscribe systems, distributed search engines&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* How is content divided?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One of the three main components of the comet system is a routing substrate which&lt;br /&gt;
implements the value/node mapping. This allows a client to find the node htat stores&lt;br /&gt;
a specific data item. Since Comet uses a DHT implementation, routing occurs by applying&lt;br /&gt;
a hash function to the key to compute node ID&#039;s that store the associated value.&lt;br /&gt;
&lt;br /&gt;
* How is the network traversed?&lt;br /&gt;
&lt;br /&gt;
* What trust assumptions does the system make?&lt;br /&gt;
&lt;br /&gt;
A client node running COmet should be protected from the execution of handlers &lt;br /&gt;
e.g. an executing handler cannot corrupt the node or use unlimited resources. &lt;br /&gt;
Handlers should not be able to mount messaging attacks on other nodes&lt;br /&gt;
&lt;br /&gt;
* Performance constraints?&lt;br /&gt;
&lt;br /&gt;
* What non-DHT internet infrastructure would you replace with a DHT?  How suitable is Kademlia for this purpose?&lt;br /&gt;
&lt;br /&gt;
==Tapestry==&lt;br /&gt;
Members:&lt;br /&gt;
&lt;br /&gt;
* Why are DHTs relevant to distributed OSs?&lt;br /&gt;
&lt;br /&gt;
Because they provide a way to distribute information over large networks (distributed key/value store).&lt;br /&gt;
&lt;br /&gt;
* How is content divided?&lt;br /&gt;
&lt;br /&gt;
Uses consistent hashing (SHA-1), upon node creation (join) creates optimal routing table.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* How is the network traversed?&lt;br /&gt;
&lt;br /&gt;
You look at your neighbours, you see which neighbour is closest to your destination, and recurse.&lt;br /&gt;
&lt;br /&gt;
* What trust assumptions does the system make?&lt;br /&gt;
&lt;br /&gt;
It assumes the system is entirely trustworthy from adversaries. While network failures may happen and nodes may go down, no node will explicitly try to mess with the network.&lt;br /&gt;
&lt;br /&gt;
* Performance constraints?&lt;br /&gt;
&lt;br /&gt;
O(log n) access times to any given node. Best effort publishing/unpublishing via decentralized object location routing.&lt;br /&gt;
&lt;br /&gt;
* What non-DHT internet infrastructure would you replace with a DHT?  How suitable is Tapestry for this purpose?&lt;/div&gt;</summary>
		<author><name>Dwils098</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_10&amp;diff=19998</id>
		<title>DistOS 2015W Session 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_10&amp;diff=19998"/>
		<updated>2015-03-16T18:59:50Z</updated>

		<summary type="html">&lt;p&gt;Dwils098: /* Tapestry */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Feel free to tweak the questions!&lt;br /&gt;
&lt;br /&gt;
==Kademlia==&lt;br /&gt;
Members:&lt;br /&gt;
&lt;br /&gt;
* Why are DHTs relevant to distributed OSs?&lt;br /&gt;
&lt;br /&gt;
* How is content divided?&lt;br /&gt;
&lt;br /&gt;
* How is the network traversed?&lt;br /&gt;
&lt;br /&gt;
* What trust assumptions does the system make?&lt;br /&gt;
&lt;br /&gt;
* Performance constraints?&lt;br /&gt;
&lt;br /&gt;
* What non-DHT internet infrastructure would you replace with a DHT?  How suitable is Kademlia for this purpose?&lt;br /&gt;
&lt;br /&gt;
==Comet==&lt;br /&gt;
Members: Mohamed Ahmed, Apoorv Sangal, Ambalica Sharma&lt;br /&gt;
&lt;br /&gt;
* Why are DHTs relevant to distributed OSs?&lt;br /&gt;
&lt;br /&gt;
* How is content divided?&lt;br /&gt;
&lt;br /&gt;
* How is the network traversed?&lt;br /&gt;
&lt;br /&gt;
* What trust assumptions does the system make?&lt;br /&gt;
&lt;br /&gt;
* Performance constraints?&lt;br /&gt;
&lt;br /&gt;
* What non-DHT internet infrastructure would you replace with a DHT?  How suitable is Kademlia for this purpose?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tapestry==&lt;br /&gt;
Members:&lt;br /&gt;
&lt;br /&gt;
* Why are DHTs relevant to distributed OSs?&lt;br /&gt;
&lt;br /&gt;
Because they provide a way to distribute information over large networks (distributed key/value store).&lt;br /&gt;
&lt;br /&gt;
* How is content divided?&lt;br /&gt;
&lt;br /&gt;
* How is the network traversed?&lt;br /&gt;
&lt;br /&gt;
* What trust assumptions does the system make?&lt;br /&gt;
&lt;br /&gt;
* Performance constraints?&lt;br /&gt;
&lt;br /&gt;
* What non-DHT internet infrastructure would you replace with a DHT?  How suitable is Tapestry for this purpose?&lt;/div&gt;</summary>
		<author><name>Dwils098</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19739</id>
		<title>DistOS 2015W Session 4</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19739"/>
		<updated>2015-01-29T16:25:16Z</updated>

		<summary type="html">&lt;p&gt;Dwils098: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Amebo Operating System =&lt;br /&gt;
&lt;br /&gt;
=== Capablities: ===&lt;br /&gt;
* Pointer to the object&lt;br /&gt;
* Capability assigning right to perform to some operation to the object ticket &lt;br /&gt;
* Communicate wide area network &lt;br /&gt;
* a kind of ticket or key that allows the holder of the capa- bility to perform some (not neces- sarily all) &lt;br /&gt;
* Each user process owns some collection of capabilities, which together define the set of objects it may access and the types of operations that my ne performed on each &lt;br /&gt;
* After the server has performed the operation, it sends back a reply message that unblocks the client &lt;br /&gt;
* Sending messages, blocking and accepting forms the remote procedure call that can be encapsulate using to make entire remote operation look like local procedure &lt;br /&gt;
* Second field:  used by the sever to identify which of its objects is being addressed server port and object number identify object which operation to performed  &lt;br /&gt;
* Generates 48-bit random number     &lt;br /&gt;
* The third field is the right field which contains a bit map telling which operation the holder of the capability  may performed &lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
=== Thread Management: ===&lt;br /&gt;
* Same process have multiple thread and each process has its own registered counter and stack &lt;br /&gt;
* Behave like process&lt;br /&gt;
* It can synchronized using mutex semaphore &lt;br /&gt;
* File: Multiple thread, &lt;br /&gt;
* Blocked when there&#039;s multiple threads &lt;br /&gt;
* Buttlet thread the mutex&lt;br /&gt;
* The careful reader may have noticed that user process can pull 813kbytes/sec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The V Distributed System = &lt;br /&gt;
&lt;br /&gt;
* First tent in V design: High Performance communication is the most critical facility for distributed systems.&lt;br /&gt;
* Second; The protocols, not the software, define the system.&lt;br /&gt;
* Third; a relatively small operating system kernel can implement the basic protocols and services providing a simple network-transparent process, address space &amp;amp; communication model.&lt;br /&gt;
&lt;br /&gt;
=== Ideas that significantly affected the design ===&lt;br /&gt;
* Shared Memory.&lt;br /&gt;
* Dealing with group of entities same as they deal w/individual entities.&lt;br /&gt;
* Efficient file caching mechanism using the virtual memory caching mechanism.&lt;br /&gt;
&lt;br /&gt;
=== Design Decisions ===&lt;br /&gt;
* Designed for a cluster of workstations with high speed network access ( only really supports LAN ).&lt;br /&gt;
* Abstract the physical architecture of the participating workstations, by defining common protocols providing well-defined interfaces.&lt;/div&gt;</summary>
		<author><name>Dwils098</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19738</id>
		<title>DistOS 2015W Session 4</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_4&amp;diff=19738"/>
		<updated>2015-01-29T16:22:31Z</updated>

		<summary type="html">&lt;p&gt;Dwils098: /* The V Distributed System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Amebo Operating System: Capablities&#039;&#039;&#039; &lt;br /&gt;
	* Pointer to the object&lt;br /&gt;
	* Capability assigning right to perform to some operation to the object ticket &lt;br /&gt;
	* Communicate wide area network &lt;br /&gt;
	* a kind of ticket or key that allows the holder of the capa- bility to perform some (not neces- sarily all) &lt;br /&gt;
	* Each user process owns some collection of capabilities, which together define the set of objects it may access and the types of operations that my ne performed on each &lt;br /&gt;
	* After the server has performed the operation, it sends back a reply message that unblocks the client &lt;br /&gt;
	* Sending messages, blocking and accepting forms the remote procedure call that can be encapsulate using to make entire remote operation look like local procedure &lt;br /&gt;
	* Second field:  used by the sever to identify which of its objects is being addressed server port and object number identify object which operation to performed  &lt;br /&gt;
	* Generates 48-bit random number     &lt;br /&gt;
	* The third field is the right field which contains a bit map telling which operation the holder of the capability  may performed &lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Thread Management:&#039;&#039;&#039;&lt;br /&gt;
	• Same process have multiple thread and each process has its own registered counter and stack &lt;br /&gt;
	• Behave like process&lt;br /&gt;
	• It can synchronized using mutex semaphore &lt;br /&gt;
	• File: Multiple thread, &lt;br /&gt;
	• Blocked when there&#039;s multiple threads &lt;br /&gt;
	• Buttlet thread the mutex&lt;br /&gt;
	• The careful reader may have noticed that user process can pull 813kbytes/sec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The V Distributed System = &lt;br /&gt;
&lt;br /&gt;
* First tent in V design: High Performance communication is the most critical facility for distributed systems.&lt;br /&gt;
* Second; The protocols, not the software, define the system.&lt;br /&gt;
* Third; a relatively small operating system kernel can implement the basic protocols and services providing a simple network-transparent process, address space &amp;amp; communication model.&lt;br /&gt;
&lt;br /&gt;
=== Ideas that significantly affected the design ===&lt;br /&gt;
* Shared Memory.&lt;br /&gt;
* Dealing with group of entities same as they deal w/individual entities.&lt;br /&gt;
* Efficient file caching mechanism using the virtual memory caching mechanism.&lt;br /&gt;
&lt;br /&gt;
=== Design Decisions ===&lt;br /&gt;
* Designed for a cluster of workstations with high speed network access ( only really supports LAN ).&lt;br /&gt;
* Abstract the physical architecture of the participating workstations, by defining common protocols providing well-defined interfaces.&lt;/div&gt;</summary>
		<author><name>Dwils098</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_1&amp;diff=19728</id>
		<title>DistOS 2015W Session 1</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_1&amp;diff=19728"/>
		<updated>2015-01-27T16:40:16Z</updated>

		<summary type="html">&lt;p&gt;Dwils098: /* Operating System Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes for the first session that happened on Jan. 5th, 2015.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Outline =&lt;br /&gt;
&lt;br /&gt;
Undergrad Grading Scheme&lt;br /&gt;
* 15% Class Participation &lt;br /&gt;
* 15% Reading Responses&lt;br /&gt;
* 10% lecture Notes/Wiki Contributions &lt;br /&gt;
* 25% Midterm &lt;br /&gt;
* 35% Final Exam &lt;br /&gt;
&lt;br /&gt;
Grads Grading Scheme&lt;br /&gt;
* 15% Class Participation &lt;br /&gt;
* 15% Reading Responses&lt;br /&gt;
* 10% Lectures Notes/Wiki contributions&lt;br /&gt;
* 10% Project Proposal &lt;br /&gt;
* 15% Project Presentation &lt;br /&gt;
* 35% Final Project &lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
* A literature review of distributing operations&lt;br /&gt;
* Research proposal on a problem related to distributed systems &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Discussion =&lt;br /&gt;
&lt;br /&gt;
== Q: What do you think of when you hear &#039;Distributed System&#039;? ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
* Sharing Resources&lt;br /&gt;
* Spreading Work Loads&lt;br /&gt;
* Scheduling&lt;br /&gt;
* Process migration&lt;br /&gt;
* Different nodes have different purpose&lt;br /&gt;
* Google&lt;br /&gt;
* Parallel running processes&lt;br /&gt;
* Nodes&lt;br /&gt;
* Resource Allocation across multiple nodes&lt;br /&gt;
* Scheduling multiple nodes&lt;br /&gt;
* Resources availability among nodes&lt;br /&gt;
* Problem: across multiple machine&lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
* Request comes from (usually) one computer and processing is usually handled by more than one computer&lt;br /&gt;
* Tasks are divided into small parts which can be processed individually before coming back together&lt;br /&gt;
* Usually deals with large scale data sets&lt;br /&gt;
* Globalization&lt;br /&gt;
* Fault tolerance&lt;br /&gt;
* Usually emphasize distributed agents to not work on certain schedule&lt;br /&gt;
* Examples: Map Reduce, cloud, cloud software (Google Drive)&lt;br /&gt;
&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
* Separated, networked machines&lt;br /&gt;
* Coordinated by similar or identical software &lt;br /&gt;
* Error recovery/redundancy &lt;br /&gt;
* No controlled storage &lt;br /&gt;
* Coordinated communication facilitating operation on coordinated task &lt;br /&gt;
* Leader/hierarchy for task delegation&lt;br /&gt;
&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
* Distributed, multiple systems&lt;br /&gt;
* OS: The root level system that operates a computer system &lt;br /&gt;
* Dist. OS more complexity &lt;br /&gt;
&lt;br /&gt;
=== Prof Discussion Notes ===&lt;br /&gt;
Key words: network, parallel, fault tolerant, redundancy, complexity&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
== Distributed OS is kind of OS ==&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;But what is an OS in the first place?&#039;&#039;&#039;&lt;br /&gt;
* Connection software and hardware&lt;br /&gt;
* Resource allocation&lt;br /&gt;
* Abstraction layers&lt;br /&gt;
* Makes it easy to run higher level programs on different computers&lt;br /&gt;
* Sharing: resources are split up and each process is isolated, this improves security and programming (no need to worry about sharing)&lt;br /&gt;
* Virtual memory, process scheduling&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is a distributed system?&#039;&#039;&#039;&lt;br /&gt;
* Focused on &amp;quot;network transparency&amp;quot;, in order to provide to the user the sense that he/she interacts with a single machine as if all the resources were local. &lt;br /&gt;
* Do the things users take for granted on regular computers&lt;br /&gt;
* Does not scale relatively to the number of resources in the system (i.e.: 100 computers, does not equal a distributed system that is 100 times faster than a single computer)&lt;br /&gt;
* In a way, opposite of an operating system: instead of splitting up a single computer into many, it takes many and tries to merge into one&lt;br /&gt;
* Resources can be divided as you want &lt;br /&gt;
* Centralized control solves some issues, but has issues of its own&lt;br /&gt;
* Since it cannot truly act as a single computer, we fake it as much as possible - and it works in some scenarios&lt;br /&gt;
* The more specialized the task, the better it will scale (i.e.: grid computing with very specific computations that are heavily parallel in nature) &lt;br /&gt;
* Interact it, process update, callback, &lt;br /&gt;
* Gmail so responsible   - it perfected , downloads in your browser &lt;br /&gt;
* Cache  - they predict what the processor going to do&lt;br /&gt;
&lt;br /&gt;
[[File:Dos.png|frame|center|Distributed Operating System represented as a Venn diagram. OS denotes an operating system, and DS denotes a distributed system. The black center represents a distributed operating system; a system with properties of an operating system and a distributed system.]]&lt;br /&gt;
&lt;br /&gt;
== Operating System Examples ==&lt;br /&gt;
&#039;&#039;&#039;Mobile devices - Phones&#039;&#039;&#039;&lt;br /&gt;
* iOS&lt;br /&gt;
* Android&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Embedded OS&#039;&#039;&#039; &lt;br /&gt;
* Linux&lt;br /&gt;
* QNX&lt;br /&gt;
* xBSD firewalls &lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Desktop&#039;&#039;&#039;&lt;br /&gt;
* Windows &lt;br /&gt;
* OSX&lt;br /&gt;
* Chrome OS&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Server&#039;&#039;&#039;&lt;br /&gt;
* Windows&lt;br /&gt;
* Linux&lt;br /&gt;
* BSD&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Main Frames&#039;&#039;&#039;&lt;br /&gt;
* OS/400&lt;br /&gt;
	&lt;br /&gt;
Is the cloud an OS? Important question.&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Cloud&#039;&#039;&#039;&lt;br /&gt;
* MPI&lt;br /&gt;
* AWS&lt;br /&gt;
* Google App Engine &lt;br /&gt;
	&lt;br /&gt;
No, they are at best proto-OSs because the abstractions they provide are very leaky. They only provide limited APIs.&lt;br /&gt;
&lt;br /&gt;
[[File:C_ontology.png|thumb|center|400px|This showcases the possible services that clouds can provide, to an extent we can consider the whole as being an &amp;quot;OS&amp;quot;.]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; I do not agree, it really depends on how expansive is your definition of cloud... (i.e.:  IaaS provides the ability to the user to spin a full fledged OS on a VM (for which you have no explicit idea of the physical architecture, it could be part of a 96 SBC server-rack connected to dedicated HDD/SDD server-rack, etc.) ) Again this is semantics, but I feel we need to clarify the terminology.&lt;br /&gt;
&lt;br /&gt;
== Pick a system and show how it is and is not an OS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;BOINC&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Very parallel&lt;br /&gt;
| Can handle only very specific (trivially parallelizable) types of problems&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| Abstraction layer is poor&lt;br /&gt;
|-&lt;br /&gt;
| Scheduling&lt;br /&gt;
|-&lt;br /&gt;
| Networked&lt;br /&gt;
|-&lt;br /&gt;
| Nodes may come and leave as they like (it is active when the computer is idle)&lt;br /&gt;
|-&lt;br /&gt;
| Same problem at the same time&lt;br /&gt;
|-&lt;br /&gt;
| Redundant/Fault tolerant&lt;br /&gt;
|-&lt;br /&gt;
| Allocation can be handle by system&lt;br /&gt;
|-&lt;br /&gt;
| Large problem managed by one system&lt;br /&gt;
|-&lt;br /&gt;
| Anyone can submit projects&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Facebook&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| OK abstraction (for human communication/control)&lt;br /&gt;
| Doesn&#039;t really take a single resources and split it up into smaller ones &lt;br /&gt;
|-&lt;br /&gt;
| The programming API is stable&lt;br /&gt;
| The human API (user interface) is not stable&lt;br /&gt;
|-&lt;br /&gt;
| Able to separate resources such as wall posts, photos, etc&lt;br /&gt;
| Limited control&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Google Docs (Drive)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Has a file system&lt;br /&gt;
| Somehow still not a true OS&lt;br /&gt;
|-&lt;br /&gt;
| Provides hardware abstraction (users don&#039;t care how the requests are carried out)&lt;br /&gt;
|-&lt;br /&gt;
| Has an API&lt;br /&gt;
|}&lt;br /&gt;
	&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;LinkedIn&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Supports multiple location/users&lt;br /&gt;
| Specific functionality (not abstract)&lt;br /&gt;
|-&lt;br /&gt;
| Multiple servers around the world&lt;br /&gt;
|-&lt;br /&gt;
| Resource/Security management&lt;br /&gt;
|-&lt;br /&gt;
| Networked&lt;br /&gt;
|-&lt;br /&gt;
| Cross-platform (Desktop/Mobile)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dwils098</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_1&amp;diff=19727</id>
		<title>DistOS 2015W Session 1</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_1&amp;diff=19727"/>
		<updated>2015-01-27T16:38:18Z</updated>

		<summary type="html">&lt;p&gt;Dwils098: /* Operating System Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes for the first session that happened on Jan. 5th, 2015.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Outline =&lt;br /&gt;
&lt;br /&gt;
Undergrad Grading Scheme&lt;br /&gt;
* 15% Class Participation &lt;br /&gt;
* 15% Reading Responses&lt;br /&gt;
* 10% lecture Notes/Wiki Contributions &lt;br /&gt;
* 25% Midterm &lt;br /&gt;
* 35% Final Exam &lt;br /&gt;
&lt;br /&gt;
Grads Grading Scheme&lt;br /&gt;
* 15% Class Participation &lt;br /&gt;
* 15% Reading Responses&lt;br /&gt;
* 10% Lectures Notes/Wiki contributions&lt;br /&gt;
* 10% Project Proposal &lt;br /&gt;
* 15% Project Presentation &lt;br /&gt;
* 35% Final Project &lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
* A literature review of distributing operations&lt;br /&gt;
* Research proposal on a problem related to distributed systems &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Discussion =&lt;br /&gt;
&lt;br /&gt;
== Q: What do you think of when you hear &#039;Distributed System&#039;? ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
* Sharing Resources&lt;br /&gt;
* Spreading Work Loads&lt;br /&gt;
* Scheduling&lt;br /&gt;
* Process migration&lt;br /&gt;
* Different nodes have different purpose&lt;br /&gt;
* Google&lt;br /&gt;
* Parallel running processes&lt;br /&gt;
* Nodes&lt;br /&gt;
* Resource Allocation across multiple nodes&lt;br /&gt;
* Scheduling multiple nodes&lt;br /&gt;
* Resources availability among nodes&lt;br /&gt;
* Problem: across multiple machine&lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
* Request comes from (usually) one computer and processing is usually handled by more than one computer&lt;br /&gt;
* Tasks are divided into small parts which can be processed individually before coming back together&lt;br /&gt;
* Usually deals with large scale data sets&lt;br /&gt;
* Globalization&lt;br /&gt;
* Fault tolerance&lt;br /&gt;
* Usually emphasize distributed agents to not work on certain schedule&lt;br /&gt;
* Examples: Map Reduce, cloud, cloud software (Google Drive)&lt;br /&gt;
&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
* Separated, networked machines&lt;br /&gt;
* Coordinated by similar or identical software &lt;br /&gt;
* Error recovery/redundancy &lt;br /&gt;
* No controlled storage &lt;br /&gt;
* Coordinated communication facilitating operation on coordinated task &lt;br /&gt;
* Leader/hierarchy for task delegation&lt;br /&gt;
&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
* Distributed, multiple systems&lt;br /&gt;
* OS: The root level system that operates a computer system &lt;br /&gt;
* Dist. OS more complexity &lt;br /&gt;
&lt;br /&gt;
=== Prof Discussion Notes ===&lt;br /&gt;
Key words: network, parallel, fault tolerant, redundancy, complexity&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
== Distributed OS is kind of OS ==&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;But what is an OS in the first place?&#039;&#039;&#039;&lt;br /&gt;
* Connection software and hardware&lt;br /&gt;
* Resource allocation&lt;br /&gt;
* Abstraction layers&lt;br /&gt;
* Makes it easy to run higher level programs on different computers&lt;br /&gt;
* Sharing: resources are split up and each process is isolated, this improves security and programming (no need to worry about sharing)&lt;br /&gt;
* Virtual memory, process scheduling&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is a distributed system?&#039;&#039;&#039;&lt;br /&gt;
* Focused on &amp;quot;network transparency&amp;quot;, in order to provide to the user the sense that he/she interacts with a single machine as if all the resources were local. &lt;br /&gt;
* Do the things users take for granted on regular computers&lt;br /&gt;
* Does not scale relatively to the number of resources in the system (i.e.: 100 computers, does not equal a distributed system that is 100 times faster than a single computer)&lt;br /&gt;
* In a way, opposite of an operating system: instead of splitting up a single computer into many, it takes many and tries to merge into one&lt;br /&gt;
* Resources can be divided as you want &lt;br /&gt;
* Centralized control solves some issues, but has issues of its own&lt;br /&gt;
* Since it cannot truly act as a single computer, we fake it as much as possible - and it works in some scenarios&lt;br /&gt;
* The more specialized the task, the better it will scale (i.e.: grid computing with very specific computations that are heavily parallel in nature) &lt;br /&gt;
* Interact it, process update, callback, &lt;br /&gt;
* Gmail so responsible   - it perfected , downloads in your browser &lt;br /&gt;
* Cache  - they predict what the processor going to do&lt;br /&gt;
&lt;br /&gt;
[[File:Dos.png|frame|center|Distributed Operating System represented as a Venn diagram. OS denotes an operating system, and DS denotes a distributed system. The black center represents a distributed operating system; a system with properties of an operating system and a distributed system.]]&lt;br /&gt;
&lt;br /&gt;
== Operating System Examples ==&lt;br /&gt;
&#039;&#039;&#039;Mobile devices - Phones&#039;&#039;&#039;&lt;br /&gt;
* iOS&lt;br /&gt;
* Android&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Embedded OS&#039;&#039;&#039; &lt;br /&gt;
* Linux&lt;br /&gt;
* QNX&lt;br /&gt;
* xBSD firewalls &lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Desktop&#039;&#039;&#039;&lt;br /&gt;
* Windows &lt;br /&gt;
* OSX&lt;br /&gt;
* Chrome OS&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Server&#039;&#039;&#039;&lt;br /&gt;
* Windows&lt;br /&gt;
* Linux&lt;br /&gt;
* BSD&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Main Frames&#039;&#039;&#039;&lt;br /&gt;
* OS/400&lt;br /&gt;
	&lt;br /&gt;
Is the cloud an OS? Important question.&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Cloud&#039;&#039;&#039;&lt;br /&gt;
* MPI&lt;br /&gt;
* AWS&lt;br /&gt;
* Google App Engine &lt;br /&gt;
	&lt;br /&gt;
No, they are at best proto-OSs because the abstractions they provide are very leaky. They only provide limited APIs.&lt;br /&gt;
&lt;br /&gt;
[[File:C_ontology.png|frame|center|This showcases the possible services that clouds can provide, to an extent we can consider the whole as being an &amp;quot;OS&amp;quot;.]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; I do not agree, it really depends on how expansive is your definition of cloud... (i.e.:  IaaS provides the ability to the user to spin a full fledged OS on a VM (for which you have no explicit idea of the physical architecture, it could be part of a 96 SBC server-rack connected to dedicated HDD/SDD server-rack, etc.) ) Again this is semantics, but I feel we need to clarify the terminology.&lt;br /&gt;
&lt;br /&gt;
== Pick a system and show how it is and is not an OS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;BOINC&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Very parallel&lt;br /&gt;
| Can handle only very specific (trivially parallelizable) types of problems&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| Abstraction layer is poor&lt;br /&gt;
|-&lt;br /&gt;
| Scheduling&lt;br /&gt;
|-&lt;br /&gt;
| Networked&lt;br /&gt;
|-&lt;br /&gt;
| Nodes may come and leave as they like (it is active when the computer is idle)&lt;br /&gt;
|-&lt;br /&gt;
| Same problem at the same time&lt;br /&gt;
|-&lt;br /&gt;
| Redundant/Fault tolerant&lt;br /&gt;
|-&lt;br /&gt;
| Allocation can be handle by system&lt;br /&gt;
|-&lt;br /&gt;
| Large problem managed by one system&lt;br /&gt;
|-&lt;br /&gt;
| Anyone can submit projects&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Facebook&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| OK abstraction (for human communication/control)&lt;br /&gt;
| Doesn&#039;t really take a single resources and split it up into smaller ones &lt;br /&gt;
|-&lt;br /&gt;
| The programming API is stable&lt;br /&gt;
| The human API (user interface) is not stable&lt;br /&gt;
|-&lt;br /&gt;
| Able to separate resources such as wall posts, photos, etc&lt;br /&gt;
| Limited control&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Google Docs (Drive)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Has a file system&lt;br /&gt;
| Somehow still not a true OS&lt;br /&gt;
|-&lt;br /&gt;
| Provides hardware abstraction (users don&#039;t care how the requests are carried out)&lt;br /&gt;
|-&lt;br /&gt;
| Has an API&lt;br /&gt;
|}&lt;br /&gt;
	&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;LinkedIn&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Supports multiple location/users&lt;br /&gt;
| Specific functionality (not abstract)&lt;br /&gt;
|-&lt;br /&gt;
| Multiple servers around the world&lt;br /&gt;
|-&lt;br /&gt;
| Resource/Security management&lt;br /&gt;
|-&lt;br /&gt;
| Networked&lt;br /&gt;
|-&lt;br /&gt;
| Cross-platform (Desktop/Mobile)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dwils098</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_1&amp;diff=19726</id>
		<title>DistOS 2015W Session 1</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_1&amp;diff=19726"/>
		<updated>2015-01-27T16:36:31Z</updated>

		<summary type="html">&lt;p&gt;Dwils098: /* Operating System Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes for the first session that happened on Jan. 5th, 2015.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Outline =&lt;br /&gt;
&lt;br /&gt;
Undergrad Grading Scheme&lt;br /&gt;
* 15% Class Participation &lt;br /&gt;
* 15% Reading Responses&lt;br /&gt;
* 10% lecture Notes/Wiki Contributions &lt;br /&gt;
* 25% Midterm &lt;br /&gt;
* 35% Final Exam &lt;br /&gt;
&lt;br /&gt;
Grads Grading Scheme&lt;br /&gt;
* 15% Class Participation &lt;br /&gt;
* 15% Reading Responses&lt;br /&gt;
* 10% Lectures Notes/Wiki contributions&lt;br /&gt;
* 10% Project Proposal &lt;br /&gt;
* 15% Project Presentation &lt;br /&gt;
* 35% Final Project &lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
* A literature review of distributing operations&lt;br /&gt;
* Research proposal on a problem related to distributed systems &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Discussion =&lt;br /&gt;
&lt;br /&gt;
== Q: What do you think of when you hear &#039;Distributed System&#039;? ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
* Sharing Resources&lt;br /&gt;
* Spreading Work Loads&lt;br /&gt;
* Scheduling&lt;br /&gt;
* Process migration&lt;br /&gt;
* Different nodes have different purpose&lt;br /&gt;
* Google&lt;br /&gt;
* Parallel running processes&lt;br /&gt;
* Nodes&lt;br /&gt;
* Resource Allocation across multiple nodes&lt;br /&gt;
* Scheduling multiple nodes&lt;br /&gt;
* Resources availability among nodes&lt;br /&gt;
* Problem: across multiple machine&lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
* Request comes from (usually) one computer and processing is usually handled by more than one computer&lt;br /&gt;
* Tasks are divided into small parts which can be processed individually before coming back together&lt;br /&gt;
* Usually deals with large scale data sets&lt;br /&gt;
* Globalization&lt;br /&gt;
* Fault tolerance&lt;br /&gt;
* Usually emphasize distributed agents to not work on certain schedule&lt;br /&gt;
* Examples: Map Reduce, cloud, cloud software (Google Drive)&lt;br /&gt;
&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
* Separated, networked machines&lt;br /&gt;
* Coordinated by similar or identical software &lt;br /&gt;
* Error recovery/redundancy &lt;br /&gt;
* No controlled storage &lt;br /&gt;
* Coordinated communication facilitating operation on coordinated task &lt;br /&gt;
* Leader/hierarchy for task delegation&lt;br /&gt;
&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
* Distributed, multiple systems&lt;br /&gt;
* OS: The root level system that operates a computer system &lt;br /&gt;
* Dist. OS more complexity &lt;br /&gt;
&lt;br /&gt;
=== Prof Discussion Notes ===&lt;br /&gt;
Key words: network, parallel, fault tolerant, redundancy, complexity&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
== Distributed OS is kind of OS ==&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;But what is an OS in the first place?&#039;&#039;&#039;&lt;br /&gt;
* Connection software and hardware&lt;br /&gt;
* Resource allocation&lt;br /&gt;
* Abstraction layers&lt;br /&gt;
* Makes it easy to run higher level programs on different computers&lt;br /&gt;
* Sharing: resources are split up and each process is isolated, this improves security and programming (no need to worry about sharing)&lt;br /&gt;
* Virtual memory, process scheduling&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is a distributed system?&#039;&#039;&#039;&lt;br /&gt;
* Focused on &amp;quot;network transparency&amp;quot;, in order to provide to the user the sense that he/she interacts with a single machine as if all the resources were local. &lt;br /&gt;
* Do the things users take for granted on regular computers&lt;br /&gt;
* Does not scale relatively to the number of resources in the system (i.e.: 100 computers, does not equal a distributed system that is 100 times faster than a single computer)&lt;br /&gt;
* In a way, opposite of an operating system: instead of splitting up a single computer into many, it takes many and tries to merge into one&lt;br /&gt;
* Resources can be divided as you want &lt;br /&gt;
* Centralized control solves some issues, but has issues of its own&lt;br /&gt;
* Since it cannot truly act as a single computer, we fake it as much as possible - and it works in some scenarios&lt;br /&gt;
* The more specialized the task, the better it will scale (i.e.: grid computing with very specific computations that are heavily parallel in nature) &lt;br /&gt;
* Interact it, process update, callback, &lt;br /&gt;
* Gmail so responsible   - it perfected , downloads in your browser &lt;br /&gt;
* Cache  - they predict what the processor going to do&lt;br /&gt;
&lt;br /&gt;
[[File:Dos.png|frame|center|Distributed Operating System represented as a Venn diagram. OS denotes an operating system, and DS denotes a distributed system. The black center represents a distributed operating system; a system with properties of an operating system and a distributed system.]]&lt;br /&gt;
&lt;br /&gt;
== Operating System Examples ==&lt;br /&gt;
&#039;&#039;&#039;Mobile devices - Phones&#039;&#039;&#039;&lt;br /&gt;
* iOS&lt;br /&gt;
* Android&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Embedded OS&#039;&#039;&#039; &lt;br /&gt;
* Linux&lt;br /&gt;
* QNX&lt;br /&gt;
* xBSD firewalls &lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Desktop&#039;&#039;&#039;&lt;br /&gt;
* Windows &lt;br /&gt;
* OSX&lt;br /&gt;
* Chrome OS&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Server&#039;&#039;&#039;&lt;br /&gt;
* Windows&lt;br /&gt;
* Linux&lt;br /&gt;
* BSD&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Main Frames&#039;&#039;&#039;&lt;br /&gt;
* OS/400&lt;br /&gt;
	&lt;br /&gt;
Is the cloud an OS? Important question.&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Cloud&#039;&#039;&#039;&lt;br /&gt;
* MPI&lt;br /&gt;
* AWS&lt;br /&gt;
* Google App Engine &lt;br /&gt;
	&lt;br /&gt;
No, they are at best proto-OSs because the abstractions they provide are very leaky. They only provide limited APIs.&lt;br /&gt;
&lt;br /&gt;
[[File:C_ontology.png|center]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; I do not agree, it really depends on how expansive is your definition of cloud... (i.e.:  IaaS provides the ability to the user to spin a full fledged OS on a VM (for which you have no explicit idea of the physical architecture, it could be part of a 96 SBC server-rack connected to dedicated HDD/SDD server-rack, etc.) ) Again this is semantics, but I feel we need to clarify the terminology.&lt;br /&gt;
&lt;br /&gt;
== Pick a system and show how it is and is not an OS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;BOINC&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Very parallel&lt;br /&gt;
| Can handle only very specific (trivially parallelizable) types of problems&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| Abstraction layer is poor&lt;br /&gt;
|-&lt;br /&gt;
| Scheduling&lt;br /&gt;
|-&lt;br /&gt;
| Networked&lt;br /&gt;
|-&lt;br /&gt;
| Nodes may come and leave as they like (it is active when the computer is idle)&lt;br /&gt;
|-&lt;br /&gt;
| Same problem at the same time&lt;br /&gt;
|-&lt;br /&gt;
| Redundant/Fault tolerant&lt;br /&gt;
|-&lt;br /&gt;
| Allocation can be handle by system&lt;br /&gt;
|-&lt;br /&gt;
| Large problem managed by one system&lt;br /&gt;
|-&lt;br /&gt;
| Anyone can submit projects&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Facebook&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| OK abstraction (for human communication/control)&lt;br /&gt;
| Doesn&#039;t really take a single resources and split it up into smaller ones &lt;br /&gt;
|-&lt;br /&gt;
| The programming API is stable&lt;br /&gt;
| The human API (user interface) is not stable&lt;br /&gt;
|-&lt;br /&gt;
| Able to separate resources such as wall posts, photos, etc&lt;br /&gt;
| Limited control&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Google Docs (Drive)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Has a file system&lt;br /&gt;
| Somehow still not a true OS&lt;br /&gt;
|-&lt;br /&gt;
| Provides hardware abstraction (users don&#039;t care how the requests are carried out)&lt;br /&gt;
|-&lt;br /&gt;
| Has an API&lt;br /&gt;
|}&lt;br /&gt;
	&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;LinkedIn&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Supports multiple location/users&lt;br /&gt;
| Specific functionality (not abstract)&lt;br /&gt;
|-&lt;br /&gt;
| Multiple servers around the world&lt;br /&gt;
|-&lt;br /&gt;
| Resource/Security management&lt;br /&gt;
|-&lt;br /&gt;
| Networked&lt;br /&gt;
|-&lt;br /&gt;
| Cross-platform (Desktop/Mobile)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dwils098</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=File:C_ontology.png&amp;diff=19725</id>
		<title>File:C ontology.png</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=File:C_ontology.png&amp;diff=19725"/>
		<updated>2015-01-27T16:35:29Z</updated>

		<summary type="html">&lt;p&gt;Dwils098: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dwils098</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_1&amp;diff=19724</id>
		<title>DistOS 2015W Session 1</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_1&amp;diff=19724"/>
		<updated>2015-01-27T16:30:56Z</updated>

		<summary type="html">&lt;p&gt;Dwils098: /* Operating System Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes for the first session that happened on Jan. 5th, 2015.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Outline =&lt;br /&gt;
&lt;br /&gt;
Undergrad Grading Scheme&lt;br /&gt;
* 15% Class Participation &lt;br /&gt;
* 15% Reading Responses&lt;br /&gt;
* 10% lecture Notes/Wiki Contributions &lt;br /&gt;
* 25% Midterm &lt;br /&gt;
* 35% Final Exam &lt;br /&gt;
&lt;br /&gt;
Grads Grading Scheme&lt;br /&gt;
* 15% Class Participation &lt;br /&gt;
* 15% Reading Responses&lt;br /&gt;
* 10% Lectures Notes/Wiki contributions&lt;br /&gt;
* 10% Project Proposal &lt;br /&gt;
* 15% Project Presentation &lt;br /&gt;
* 35% Final Project &lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
* A literature review of distributing operations&lt;br /&gt;
* Research proposal on a problem related to distributed systems &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Discussion =&lt;br /&gt;
&lt;br /&gt;
== Q: What do you think of when you hear &#039;Distributed System&#039;? ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
* Sharing Resources&lt;br /&gt;
* Spreading Work Loads&lt;br /&gt;
* Scheduling&lt;br /&gt;
* Process migration&lt;br /&gt;
* Different nodes have different purpose&lt;br /&gt;
* Google&lt;br /&gt;
* Parallel running processes&lt;br /&gt;
* Nodes&lt;br /&gt;
* Resource Allocation across multiple nodes&lt;br /&gt;
* Scheduling multiple nodes&lt;br /&gt;
* Resources availability among nodes&lt;br /&gt;
* Problem: across multiple machine&lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
* Request comes from (usually) one computer and processing is usually handled by more than one computer&lt;br /&gt;
* Tasks are divided into small parts which can be processed individually before coming back together&lt;br /&gt;
* Usually deals with large scale data sets&lt;br /&gt;
* Globalization&lt;br /&gt;
* Fault tolerance&lt;br /&gt;
* Usually emphasize distributed agents to not work on certain schedule&lt;br /&gt;
* Examples: Map Reduce, cloud, cloud software (Google Drive)&lt;br /&gt;
&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
* Separated, networked machines&lt;br /&gt;
* Coordinated by similar or identical software &lt;br /&gt;
* Error recovery/redundancy &lt;br /&gt;
* No controlled storage &lt;br /&gt;
* Coordinated communication facilitating operation on coordinated task &lt;br /&gt;
* Leader/hierarchy for task delegation&lt;br /&gt;
&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
* Distributed, multiple systems&lt;br /&gt;
* OS: The root level system that operates a computer system &lt;br /&gt;
* Dist. OS more complexity &lt;br /&gt;
&lt;br /&gt;
=== Prof Discussion Notes ===&lt;br /&gt;
Key words: network, parallel, fault tolerant, redundancy, complexity&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
== Distributed OS is kind of OS ==&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;But what is an OS in the first place?&#039;&#039;&#039;&lt;br /&gt;
* Connection software and hardware&lt;br /&gt;
* Resource allocation&lt;br /&gt;
* Abstraction layers&lt;br /&gt;
* Makes it easy to run higher level programs on different computers&lt;br /&gt;
* Sharing: resources are split up and each process is isolated, this improves security and programming (no need to worry about sharing)&lt;br /&gt;
* Virtual memory, process scheduling&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is a distributed system?&#039;&#039;&#039;&lt;br /&gt;
* Focused on &amp;quot;network transparency&amp;quot;, in order to provide to the user the sense that he/she interacts with a single machine as if all the resources were local. &lt;br /&gt;
* Do the things users take for granted on regular computers&lt;br /&gt;
* Does not scale relatively to the number of resources in the system (i.e.: 100 computers, does not equal a distributed system that is 100 times faster than a single computer)&lt;br /&gt;
* In a way, opposite of an operating system: instead of splitting up a single computer into many, it takes many and tries to merge into one&lt;br /&gt;
* Resources can be divided as you want &lt;br /&gt;
* Centralized control solves some issues, but has issues of its own&lt;br /&gt;
* Since it cannot truly act as a single computer, we fake it as much as possible - and it works in some scenarios&lt;br /&gt;
* The more specialized the task, the better it will scale (i.e.: grid computing with very specific computations that are heavily parallel in nature) &lt;br /&gt;
* Interact it, process update, callback, &lt;br /&gt;
* Gmail so responsible   - it perfected , downloads in your browser &lt;br /&gt;
* Cache  - they predict what the processor going to do&lt;br /&gt;
&lt;br /&gt;
[[File:Dos.png|frame|center|Distributed Operating System represented as a Venn diagram. OS denotes an operating system, and DS denotes a distributed system. The black center represents a distributed operating system; a system with properties of an operating system and a distributed system.]]&lt;br /&gt;
&lt;br /&gt;
== Operating System Examples ==&lt;br /&gt;
&#039;&#039;&#039;Mobile devices - Phones&#039;&#039;&#039;&lt;br /&gt;
* iOS&lt;br /&gt;
* Android&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Embedded OS&#039;&#039;&#039; &lt;br /&gt;
* Linux&lt;br /&gt;
* QNX&lt;br /&gt;
* xBSD firewalls &lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Desktop&#039;&#039;&#039;&lt;br /&gt;
* Windows &lt;br /&gt;
* OSX&lt;br /&gt;
* Chrome OS&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Server&#039;&#039;&#039;&lt;br /&gt;
* Windows&lt;br /&gt;
* Linux&lt;br /&gt;
* BSD&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Main Frames&#039;&#039;&#039;&lt;br /&gt;
* OS/400&lt;br /&gt;
	&lt;br /&gt;
Is the cloud an OS? Important question.&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Cloud&#039;&#039;&#039;&lt;br /&gt;
* MPI&lt;br /&gt;
* AWS&lt;br /&gt;
* Google App Engine &lt;br /&gt;
	&lt;br /&gt;
No, they are at best proto-OSs because the abstractions they provide are very leaky. They only provide limited APIs.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; I do not agree, it really depends on how expansive is your definition of cloud... (i.e.:  IaaS provides the ability to the user to spin a full fledged OS on a VM (for which you have no explicit idea of the physical architecture, it could be part of a 96 SBC server-rack connected to dedicated HDD/SDD server-rack, etc.) ) Again this is semantics, but I feel we need to clarify the terminology.&lt;br /&gt;
&lt;br /&gt;
== Pick a system and show how it is and is not an OS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;BOINC&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Very parallel&lt;br /&gt;
| Can handle only very specific (trivially parallelizable) types of problems&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| Abstraction layer is poor&lt;br /&gt;
|-&lt;br /&gt;
| Scheduling&lt;br /&gt;
|-&lt;br /&gt;
| Networked&lt;br /&gt;
|-&lt;br /&gt;
| Nodes may come and leave as they like (it is active when the computer is idle)&lt;br /&gt;
|-&lt;br /&gt;
| Same problem at the same time&lt;br /&gt;
|-&lt;br /&gt;
| Redundant/Fault tolerant&lt;br /&gt;
|-&lt;br /&gt;
| Allocation can be handle by system&lt;br /&gt;
|-&lt;br /&gt;
| Large problem managed by one system&lt;br /&gt;
|-&lt;br /&gt;
| Anyone can submit projects&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Facebook&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| OK abstraction (for human communication/control)&lt;br /&gt;
| Doesn&#039;t really take a single resources and split it up into smaller ones &lt;br /&gt;
|-&lt;br /&gt;
| The programming API is stable&lt;br /&gt;
| The human API (user interface) is not stable&lt;br /&gt;
|-&lt;br /&gt;
| Able to separate resources such as wall posts, photos, etc&lt;br /&gt;
| Limited control&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Google Docs (Drive)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Has a file system&lt;br /&gt;
| Somehow still not a true OS&lt;br /&gt;
|-&lt;br /&gt;
| Provides hardware abstraction (users don&#039;t care how the requests are carried out)&lt;br /&gt;
|-&lt;br /&gt;
| Has an API&lt;br /&gt;
|}&lt;br /&gt;
	&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;LinkedIn&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Supports multiple location/users&lt;br /&gt;
| Specific functionality (not abstract)&lt;br /&gt;
|-&lt;br /&gt;
| Multiple servers around the world&lt;br /&gt;
|-&lt;br /&gt;
| Resource/Security management&lt;br /&gt;
|-&lt;br /&gt;
| Networked&lt;br /&gt;
|-&lt;br /&gt;
| Cross-platform (Desktop/Mobile)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dwils098</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_1&amp;diff=19723</id>
		<title>DistOS 2015W Session 1</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_1&amp;diff=19723"/>
		<updated>2015-01-27T16:24:21Z</updated>

		<summary type="html">&lt;p&gt;Dwils098: /* Distributed OS is kind of OS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes for the first session that happened on Jan. 5th, 2015.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Outline =&lt;br /&gt;
&lt;br /&gt;
Undergrad Grading Scheme&lt;br /&gt;
* 15% Class Participation &lt;br /&gt;
* 15% Reading Responses&lt;br /&gt;
* 10% lecture Notes/Wiki Contributions &lt;br /&gt;
* 25% Midterm &lt;br /&gt;
* 35% Final Exam &lt;br /&gt;
&lt;br /&gt;
Grads Grading Scheme&lt;br /&gt;
* 15% Class Participation &lt;br /&gt;
* 15% Reading Responses&lt;br /&gt;
* 10% Lectures Notes/Wiki contributions&lt;br /&gt;
* 10% Project Proposal &lt;br /&gt;
* 15% Project Presentation &lt;br /&gt;
* 35% Final Project &lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
* A literature review of distributing operations&lt;br /&gt;
* Research proposal on a problem related to distributed systems &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Discussion =&lt;br /&gt;
&lt;br /&gt;
== Q: What do you think of when you hear &#039;Distributed System&#039;? ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
* Sharing Resources&lt;br /&gt;
* Spreading Work Loads&lt;br /&gt;
* Scheduling&lt;br /&gt;
* Process migration&lt;br /&gt;
* Different nodes have different purpose&lt;br /&gt;
* Google&lt;br /&gt;
* Parallel running processes&lt;br /&gt;
* Nodes&lt;br /&gt;
* Resource Allocation across multiple nodes&lt;br /&gt;
* Scheduling multiple nodes&lt;br /&gt;
* Resources availability among nodes&lt;br /&gt;
* Problem: across multiple machine&lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
* Request comes from (usually) one computer and processing is usually handled by more than one computer&lt;br /&gt;
* Tasks are divided into small parts which can be processed individually before coming back together&lt;br /&gt;
* Usually deals with large scale data sets&lt;br /&gt;
* Globalization&lt;br /&gt;
* Fault tolerance&lt;br /&gt;
* Usually emphasize distributed agents to not work on certain schedule&lt;br /&gt;
* Examples: Map Reduce, cloud, cloud software (Google Drive)&lt;br /&gt;
&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
* Separated, networked machines&lt;br /&gt;
* Coordinated by similar or identical software &lt;br /&gt;
* Error recovery/redundancy &lt;br /&gt;
* No controlled storage &lt;br /&gt;
* Coordinated communication facilitating operation on coordinated task &lt;br /&gt;
* Leader/hierarchy for task delegation&lt;br /&gt;
&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
* Distributed, multiple systems&lt;br /&gt;
* OS: The root level system that operates a computer system &lt;br /&gt;
* Dist. OS more complexity &lt;br /&gt;
&lt;br /&gt;
=== Prof Discussion Notes ===&lt;br /&gt;
Key words: network, parallel, fault tolerant, redundancy, complexity&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
== Distributed OS is kind of OS ==&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;But what is an OS in the first place?&#039;&#039;&#039;&lt;br /&gt;
* Connection software and hardware&lt;br /&gt;
* Resource allocation&lt;br /&gt;
* Abstraction layers&lt;br /&gt;
* Makes it easy to run higher level programs on different computers&lt;br /&gt;
* Sharing: resources are split up and each process is isolated, this improves security and programming (no need to worry about sharing)&lt;br /&gt;
* Virtual memory, process scheduling&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is a distributed system?&#039;&#039;&#039;&lt;br /&gt;
* Focused on &amp;quot;network transparency&amp;quot;, in order to provide to the user the sense that he/she interacts with a single machine as if all the resources were local. &lt;br /&gt;
* Do the things users take for granted on regular computers&lt;br /&gt;
* Does not scale relatively to the number of resources in the system (i.e.: 100 computers, does not equal a distributed system that is 100 times faster than a single computer)&lt;br /&gt;
* In a way, opposite of an operating system: instead of splitting up a single computer into many, it takes many and tries to merge into one&lt;br /&gt;
* Resources can be divided as you want &lt;br /&gt;
* Centralized control solves some issues, but has issues of its own&lt;br /&gt;
* Since it cannot truly act as a single computer, we fake it as much as possible - and it works in some scenarios&lt;br /&gt;
* The more specialized the task, the better it will scale (i.e.: grid computing with very specific computations that are heavily parallel in nature) &lt;br /&gt;
* Interact it, process update, callback, &lt;br /&gt;
* Gmail so responsible   - it perfected , downloads in your browser &lt;br /&gt;
* Cache  - they predict what the processor going to do&lt;br /&gt;
&lt;br /&gt;
[[File:Dos.png|frame|center|Distributed Operating System represented as a Venn diagram. OS denotes an operating system, and DS denotes a distributed system. The black center represents a distributed operating system; a system with properties of an operating system and a distributed system.]]&lt;br /&gt;
&lt;br /&gt;
== Operating System Examples ==&lt;br /&gt;
&#039;&#039;&#039;Mobile devices - Phones&#039;&#039;&#039;&lt;br /&gt;
* iOS&lt;br /&gt;
* Android&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Embedded OS&#039;&#039;&#039; &lt;br /&gt;
* Linux&lt;br /&gt;
* QNX&lt;br /&gt;
* xBSD firewalls &lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Desktop&#039;&#039;&#039;&lt;br /&gt;
* Windows &lt;br /&gt;
* OSX&lt;br /&gt;
* Chrome OS&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Server&#039;&#039;&#039;&lt;br /&gt;
* Windows&lt;br /&gt;
* Linux&lt;br /&gt;
* BSD&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Main Frames&#039;&#039;&#039;&lt;br /&gt;
* OS/400&lt;br /&gt;
	&lt;br /&gt;
Is the cloud an OS? Important question.&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Cloud&#039;&#039;&#039;&lt;br /&gt;
* MPI&lt;br /&gt;
* AWS&lt;br /&gt;
* Google App Engine &lt;br /&gt;
	&lt;br /&gt;
No, they are at best proto-OSs because the abstractions they provide are very leaky. They only provide limited APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pick a system and show how it is and is not an OS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;BOINC&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Very parallel&lt;br /&gt;
| Can handle only very specific (trivially parallelizable) types of problems&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| Abstraction layer is poor&lt;br /&gt;
|-&lt;br /&gt;
| Scheduling&lt;br /&gt;
|-&lt;br /&gt;
| Networked&lt;br /&gt;
|-&lt;br /&gt;
| Nodes may come and leave as they like (it is active when the computer is idle)&lt;br /&gt;
|-&lt;br /&gt;
| Same problem at the same time&lt;br /&gt;
|-&lt;br /&gt;
| Redundant/Fault tolerant&lt;br /&gt;
|-&lt;br /&gt;
| Allocation can be handle by system&lt;br /&gt;
|-&lt;br /&gt;
| Large problem managed by one system&lt;br /&gt;
|-&lt;br /&gt;
| Anyone can submit projects&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Facebook&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| OK abstraction (for human communication/control)&lt;br /&gt;
| Doesn&#039;t really take a single resources and split it up into smaller ones &lt;br /&gt;
|-&lt;br /&gt;
| The programming API is stable&lt;br /&gt;
| The human API (user interface) is not stable&lt;br /&gt;
|-&lt;br /&gt;
| Able to separate resources such as wall posts, photos, etc&lt;br /&gt;
| Limited control&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Google Docs (Drive)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Has a file system&lt;br /&gt;
| Somehow still not a true OS&lt;br /&gt;
|-&lt;br /&gt;
| Provides hardware abstraction (users don&#039;t care how the requests are carried out)&lt;br /&gt;
|-&lt;br /&gt;
| Has an API&lt;br /&gt;
|}&lt;br /&gt;
	&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;LinkedIn&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Supports multiple location/users&lt;br /&gt;
| Specific functionality (not abstract)&lt;br /&gt;
|-&lt;br /&gt;
| Multiple servers around the world&lt;br /&gt;
|-&lt;br /&gt;
| Resource/Security management&lt;br /&gt;
|-&lt;br /&gt;
| Networked&lt;br /&gt;
|-&lt;br /&gt;
| Cross-platform (Desktop/Mobile)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dwils098</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_1&amp;diff=19722</id>
		<title>DistOS 2015W Session 1</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2015W_Session_1&amp;diff=19722"/>
		<updated>2015-01-27T16:23:49Z</updated>

		<summary type="html">&lt;p&gt;Dwils098: /* Distributed OS is kind of OS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes for the first session that happened on Jan. 5th, 2015.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Outline =&lt;br /&gt;
&lt;br /&gt;
Undergrad Grading Scheme&lt;br /&gt;
* 15% Class Participation &lt;br /&gt;
* 15% Reading Responses&lt;br /&gt;
* 10% lecture Notes/Wiki Contributions &lt;br /&gt;
* 25% Midterm &lt;br /&gt;
* 35% Final Exam &lt;br /&gt;
&lt;br /&gt;
Grads Grading Scheme&lt;br /&gt;
* 15% Class Participation &lt;br /&gt;
* 15% Reading Responses&lt;br /&gt;
* 10% Lectures Notes/Wiki contributions&lt;br /&gt;
* 10% Project Proposal &lt;br /&gt;
* 15% Project Presentation &lt;br /&gt;
* 35% Final Project &lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
* A literature review of distributing operations&lt;br /&gt;
* Research proposal on a problem related to distributed systems &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Discussion =&lt;br /&gt;
&lt;br /&gt;
== Q: What do you think of when you hear &#039;Distributed System&#039;? ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
* Sharing Resources&lt;br /&gt;
* Spreading Work Loads&lt;br /&gt;
* Scheduling&lt;br /&gt;
* Process migration&lt;br /&gt;
* Different nodes have different purpose&lt;br /&gt;
* Google&lt;br /&gt;
* Parallel running processes&lt;br /&gt;
* Nodes&lt;br /&gt;
* Resource Allocation across multiple nodes&lt;br /&gt;
* Scheduling multiple nodes&lt;br /&gt;
* Resources availability among nodes&lt;br /&gt;
* Problem: across multiple machine&lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
* Request comes from (usually) one computer and processing is usually handled by more than one computer&lt;br /&gt;
* Tasks are divided into small parts which can be processed individually before coming back together&lt;br /&gt;
* Usually deals with large scale data sets&lt;br /&gt;
* Globalization&lt;br /&gt;
* Fault tolerance&lt;br /&gt;
* Usually emphasize distributed agents to not work on certain schedule&lt;br /&gt;
* Examples: Map Reduce, cloud, cloud software (Google Drive)&lt;br /&gt;
&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
* Separated, networked machines&lt;br /&gt;
* Coordinated by similar or identical software &lt;br /&gt;
* Error recovery/redundancy &lt;br /&gt;
* No controlled storage &lt;br /&gt;
* Coordinated communication facilitating operation on coordinated task &lt;br /&gt;
* Leader/hierarchy for task delegation&lt;br /&gt;
&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
* Distributed, multiple systems&lt;br /&gt;
* OS: The root level system that operates a computer system &lt;br /&gt;
* Dist. OS more complexity &lt;br /&gt;
&lt;br /&gt;
=== Prof Discussion Notes ===&lt;br /&gt;
Key words: network, parallel, fault tolerant, redundancy, complexity&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
== Distributed OS is kind of OS ==&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;But what is an OS in the first place?&#039;&#039;&#039;&lt;br /&gt;
* Connection software and hardware&lt;br /&gt;
* Resource allocation&lt;br /&gt;
* Abstraction layers&lt;br /&gt;
* Makes it easy to run higher level programs on different computers&lt;br /&gt;
* Sharing: resources are split up and each process is isolated, this improves security and programming (no need to worry about sharing)&lt;br /&gt;
* Virtual memory, process scheduling&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is a distributed system?&#039;&#039;&#039;&lt;br /&gt;
* Focused on &amp;quot;network transparency&amp;quot;, in order to provide to the user the sense that he/she interacts with a single machine as if all the resources were local. &lt;br /&gt;
* Do the things users take for granted on regular computers&lt;br /&gt;
* Does not scale relatively to the number of resources in the system (i.e.: 100 computers, does not equal a distributed system that is 100 times faster than a single computer)&lt;br /&gt;
* In a way, opposite of an operating system: instead of splitting up a single computer into many, it takes many and tries to merge into one&lt;br /&gt;
* Resources can be divided as you want &lt;br /&gt;
* Centralized control solves some issues, but has issues of its own&lt;br /&gt;
* Since it cannot truly act as a single computer, we fake it as much as possible - and it works in some scenarios&lt;br /&gt;
* The more specialized the task, the better it will scale (i.e.: grid computing with very specific computation that are heavily parallel in nature) &lt;br /&gt;
* Interact it, process update, callback, &lt;br /&gt;
* Gmail so responsible   - it perfected , downloads in your browser &lt;br /&gt;
* Cache  - they predict what the processor going to do&lt;br /&gt;
&lt;br /&gt;
[[File:Dos.png|frame|center|Distributed Operating System represented as a Venn diagram. OS denotes an operating system, and DS denotes a distributed system. The black center represents a distributed operating system; a system with properties of an operating system and a distributed system.]]&lt;br /&gt;
&lt;br /&gt;
== Operating System Examples ==&lt;br /&gt;
&#039;&#039;&#039;Mobile devices - Phones&#039;&#039;&#039;&lt;br /&gt;
* iOS&lt;br /&gt;
* Android&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Embedded OS&#039;&#039;&#039; &lt;br /&gt;
* Linux&lt;br /&gt;
* QNX&lt;br /&gt;
* xBSD firewalls &lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Desktop&#039;&#039;&#039;&lt;br /&gt;
* Windows &lt;br /&gt;
* OSX&lt;br /&gt;
* Chrome OS&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Server&#039;&#039;&#039;&lt;br /&gt;
* Windows&lt;br /&gt;
* Linux&lt;br /&gt;
* BSD&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Main Frames&#039;&#039;&#039;&lt;br /&gt;
* OS/400&lt;br /&gt;
	&lt;br /&gt;
Is the cloud an OS? Important question.&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;Cloud&#039;&#039;&#039;&lt;br /&gt;
* MPI&lt;br /&gt;
* AWS&lt;br /&gt;
* Google App Engine &lt;br /&gt;
	&lt;br /&gt;
No, they are at best proto-OSs because the abstractions they provide are very leaky. They only provide limited APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pick a system and show how it is and is not an OS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;BOINC&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Very parallel&lt;br /&gt;
| Can handle only very specific (trivially parallelizable) types of problems&lt;br /&gt;
|-&lt;br /&gt;
| Availability&lt;br /&gt;
| Abstraction layer is poor&lt;br /&gt;
|-&lt;br /&gt;
| Scheduling&lt;br /&gt;
|-&lt;br /&gt;
| Networked&lt;br /&gt;
|-&lt;br /&gt;
| Nodes may come and leave as they like (it is active when the computer is idle)&lt;br /&gt;
|-&lt;br /&gt;
| Same problem at the same time&lt;br /&gt;
|-&lt;br /&gt;
| Redundant/Fault tolerant&lt;br /&gt;
|-&lt;br /&gt;
| Allocation can be handle by system&lt;br /&gt;
|-&lt;br /&gt;
| Large problem managed by one system&lt;br /&gt;
|-&lt;br /&gt;
| Anyone can submit projects&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Facebook&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| OK abstraction (for human communication/control)&lt;br /&gt;
| Doesn&#039;t really take a single resources and split it up into smaller ones &lt;br /&gt;
|-&lt;br /&gt;
| The programming API is stable&lt;br /&gt;
| The human API (user interface) is not stable&lt;br /&gt;
|-&lt;br /&gt;
| Able to separate resources such as wall posts, photos, etc&lt;br /&gt;
| Limited control&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Google Docs (Drive)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Has a file system&lt;br /&gt;
| Somehow still not a true OS&lt;br /&gt;
|-&lt;br /&gt;
| Provides hardware abstraction (users don&#039;t care how the requests are carried out)&lt;br /&gt;
|-&lt;br /&gt;
| Has an API&lt;br /&gt;
|}&lt;br /&gt;
	&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;LinkedIn&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! Similarities to a traditional OS&lt;br /&gt;
! Differences from a traditional OS&lt;br /&gt;
|-&lt;br /&gt;
| Supports multiple location/users&lt;br /&gt;
| Specific functionality (not abstract)&lt;br /&gt;
|-&lt;br /&gt;
| Multiple servers around the world&lt;br /&gt;
|-&lt;br /&gt;
| Resource/Security management&lt;br /&gt;
|-&lt;br /&gt;
| Networked&lt;br /&gt;
|-&lt;br /&gt;
| Cross-platform (Desktop/Mobile)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dwils098</name></author>
	</entry>
</feed>