<?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=Sjoy</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=Sjoy"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php/Special:Contributions/Sjoy"/>
	<updated>2026-05-18T21:34:31Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_23&amp;diff=18993</id>
		<title>DistOS 2014W Lecture 23</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_23&amp;diff=18993"/>
		<updated>2014-04-07T20:16:39Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: /* Survey on Control Plane Frameworks for Software Defined Networking - Sijo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Presentations&#039;&#039;&#039;&lt;br /&gt;
===Distributed Shared Memory Systems - Mojgan===&lt;br /&gt;
* Introduction to DSM systems&lt;br /&gt;
* Advantages and Disadvantages&lt;br /&gt;
* Classification of DSM systems&lt;br /&gt;
* Design considerations&lt;br /&gt;
* Examples of DSM systems&lt;br /&gt;
 - OpenSSI&lt;br /&gt;
 - Mermaid&lt;br /&gt;
 - MOSIX&lt;br /&gt;
 - DDM&lt;br /&gt;
&lt;br /&gt;
===Survey: Fault Tolerance in Distributed File System - Mohammed===&lt;br /&gt;
* Abstract&lt;br /&gt;
* Introductions&lt;br /&gt;
** About fault tolerance in any distributed system. Comparison between different file systems. &lt;br /&gt;
** Whats more suitable for Mobile based systems. &lt;br /&gt;
** Why satisfaction high for fault tolerance is one of the main issues for DFS&#039;s ?  &lt;br /&gt;
* Replication and fault tolerance&lt;br /&gt;
** What is the Replica and Placement policy? What is the synchronization? What is its benefit? &lt;br /&gt;
   - Synchronous Method&lt;br /&gt;
   - Asynchronous Method&lt;br /&gt;
   - Semi-Asynchronous Method&lt;br /&gt;
* Cache consistency and fault tolerance&lt;br /&gt;
** What is the cache? What is its benefit? Cache consistency? &lt;br /&gt;
  - Write only Read Many (WORM)&lt;br /&gt;
  - Transactional Locking - Read and write locks&lt;br /&gt;
  - Leasing&lt;br /&gt;
* Example DFS mentioned in the paper&lt;br /&gt;
** Google File Systems&lt;br /&gt;
** HDFS &lt;br /&gt;
** MOOSEFS&lt;br /&gt;
** iRODS&lt;br /&gt;
** GlusterFS&lt;br /&gt;
** Lustre&lt;br /&gt;
** Ceph&lt;br /&gt;
** PARADISE for mobile&lt;br /&gt;
* Conclusion&lt;br /&gt;
&lt;br /&gt;
===Survey on Control Plane Frameworks for Software Defined Networking - Sijo===&lt;br /&gt;
* Introduction&lt;br /&gt;
** Traditional Networks - Control Plane and Forwarding Plane&lt;br /&gt;
** Software Defined Networking&lt;br /&gt;
 - Proposes decoupling of layers into independent layers&lt;br /&gt;
 - Network entities or nodes are specialized elements which does the forwarding &lt;br /&gt;
 - Control applications works on the logical view of the network provided by the controller with out having to worry about &lt;br /&gt;
   managing state distribution, toplogy discovery etc.&lt;br /&gt;
* Theme, Argument Outline&lt;br /&gt;
 - Need for using distributed systems design principles, tools in SDN controller design to achieve scalability and reliability &lt;br /&gt;
* Controller Platforms&lt;br /&gt;
 - Centralized and Distributed approaches&lt;br /&gt;
 - Identify the need to use in controller platforms&lt;br /&gt;
 - For centralized it started with NOX - Maestro - Beacon - Floodlight - POX - OpenDayLight&lt;br /&gt;
 - For Distributed : ONIX - Hyperflow - YANC - ONOS&lt;br /&gt;
 - Leverage parallel processing capabilities&lt;br /&gt;
* In detail about two systems: &lt;br /&gt;
** ONIX&lt;br /&gt;
** ONOS &lt;br /&gt;
* References&lt;br /&gt;
&lt;br /&gt;
===Metadata management in Distributed File System - Sandarbh===&lt;br /&gt;
* What is metadata? &lt;br /&gt;
- Define by bare-minimum functions for MDS (Metadata Server)&lt;br /&gt;
- Monitor the performance of DFS so that it can be used further&lt;br /&gt;
- Structure of metadata in Paper&lt;br /&gt;
* Why is Metadata management difficult? &lt;br /&gt;
- 50% file operations are metadata operations&lt;br /&gt;
- Size of metadata&lt;br /&gt;
- Distribute the load evenly across all MDS&lt;br /&gt;
- Be able to handle thousands of clients &lt;br /&gt;
- Be able to handle file/directory permission change&lt;br /&gt;
- Recover data if some MDS goes down&lt;br /&gt;
- Be POSIX compliant&lt;br /&gt;
- Be able to scale- addition of new MDS shoudn&#039;t cause ripples&lt;br /&gt;
- Contrasting goals - replication and consistency - Average case improvements vs guaranteed performance for each access&lt;br /&gt;
* Static sub-tree partitioning&lt;br /&gt;
- Advantage - Clients know which MDS to contact for the file - Prefix caching &lt;br /&gt;
- Disadvantage - Directory hot spot formation&lt;br /&gt;
* Static hashing based partitioning &lt;br /&gt;
- Hash the filename or File identifier and assign to MDS&lt;br /&gt;
- Advantage  - Distributes load evenly - Gets rid of hotpsot info&lt;br /&gt;
- Disadvantage &lt;br /&gt;
* Don&#039;t ask me where your server is approach&lt;br /&gt;
- Ex : Ceph , GlusterFS, OceanStore, Hierarchical Bloom filters, Cassandra&lt;br /&gt;
- Responsibilities - Replica mgmt, Consistency, Access control, Recover metadata in case of crash, Talk to each other to handle the load dynamically &lt;br /&gt;
* What&#039;s not in the slides &lt;br /&gt;
- Not focused on replication of metadata&lt;br /&gt;
- Semantic based search&lt;br /&gt;
* Structure of the survey&lt;br /&gt;
- Conventional metadata systems&lt;br /&gt;
- No-metadata approach&lt;br /&gt;
- Metadata approach of the file systems designed for specific goals 0  GFS, Haystack etcs&lt;br /&gt;
- Evolution history&lt;br /&gt;
- Comparison with in ctageory&lt;br /&gt;
- Cover reliability and consistency part&lt;br /&gt;
- Summarize learnings with expected trends&lt;br /&gt;
&lt;br /&gt;
===Distributed Stream Processing - Ronak Chaudhari===&lt;br /&gt;
* About Stream processing&lt;br /&gt;
- Data streams &lt;br /&gt;
- DBMS vs Stream processing &lt;br /&gt;
* Applications&lt;br /&gt;
- Monitoring applications&lt;br /&gt;
- Militia applications&lt;br /&gt;
- Financial analysis&lt;br /&gt;
- Tracking applications&lt;br /&gt;
* Aurora &lt;br /&gt;
- Process incoming streams&lt;br /&gt;
- It has its own query algebra&lt;br /&gt;
- System Model - Query Model - Runtime Architecture &lt;br /&gt;
- QOS criteria&lt;br /&gt;
- SQuAL - Query algebra&lt;br /&gt;
- Aurora GUI&lt;br /&gt;
- Challenges in distribute operation&lt;br /&gt;
* Aurora vs Medusa&lt;br /&gt;
* Medusa&lt;br /&gt;
- Architecture&lt;br /&gt;
- Addition to Aurora - Lookup and Brain&lt;br /&gt;
- Failure detection&lt;br /&gt;
- Transfer of processing &lt;br /&gt;
- System API&lt;br /&gt;
- Load management &lt;br /&gt;
- High availability &lt;br /&gt;
- Benefits&lt;br /&gt;
* References&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_23&amp;diff=18992</id>
		<title>DistOS 2014W Lecture 23</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_23&amp;diff=18992"/>
		<updated>2014-04-07T20:16:17Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: /* Survey on Control Plane Frameworks for Software Defined Networking - Sijo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Presentations&#039;&#039;&#039;&lt;br /&gt;
===Distributed Shared Memory Systems - Mojgan===&lt;br /&gt;
* Introduction to DSM systems&lt;br /&gt;
* Advantages and Disadvantages&lt;br /&gt;
* Classification of DSM systems&lt;br /&gt;
* Design considerations&lt;br /&gt;
* Examples of DSM systems&lt;br /&gt;
 - OpenSSI&lt;br /&gt;
 - Mermaid&lt;br /&gt;
 - MOSIX&lt;br /&gt;
 - DDM&lt;br /&gt;
&lt;br /&gt;
===Survey: Fault Tolerance in Distributed File System - Mohammed===&lt;br /&gt;
* Abstract&lt;br /&gt;
* Introductions&lt;br /&gt;
** About fault tolerance in any distributed system. Comparison between different file systems. &lt;br /&gt;
** Whats more suitable for Mobile based systems. &lt;br /&gt;
** Why satisfaction high for fault tolerance is one of the main issues for DFS&#039;s ?  &lt;br /&gt;
* Replication and fault tolerance&lt;br /&gt;
** What is the Replica and Placement policy? What is the synchronization? What is its benefit? &lt;br /&gt;
   - Synchronous Method&lt;br /&gt;
   - Asynchronous Method&lt;br /&gt;
   - Semi-Asynchronous Method&lt;br /&gt;
* Cache consistency and fault tolerance&lt;br /&gt;
** What is the cache? What is its benefit? Cache consistency? &lt;br /&gt;
  - Write only Read Many (WORM)&lt;br /&gt;
  - Transactional Locking - Read and write locks&lt;br /&gt;
  - Leasing&lt;br /&gt;
* Example DFS mentioned in the paper&lt;br /&gt;
** Google File Systems&lt;br /&gt;
** HDFS &lt;br /&gt;
** MOOSEFS&lt;br /&gt;
** iRODS&lt;br /&gt;
** GlusterFS&lt;br /&gt;
** Lustre&lt;br /&gt;
** Ceph&lt;br /&gt;
** PARADISE for mobile&lt;br /&gt;
* Conclusion&lt;br /&gt;
&lt;br /&gt;
===Survey on Control Plane Frameworks for Software Defined Networking - Sijo===&lt;br /&gt;
* Introduction&lt;br /&gt;
** Traditional Networks - Control Plane and Forwarding Plane&lt;br /&gt;
** Software Defined Networking&lt;br /&gt;
 - Proposes decoupling of layers into independent layers&lt;br /&gt;
 - Network entities or nodes are specialized elements which does the forwarding &lt;br /&gt;
 - Control applications works on the logical view of the network provided by the controller with out having to worry about managing state distribution, toplogy discovery etc.&lt;br /&gt;
* Theme, Argument Outline&lt;br /&gt;
 - Need for using distributed systems design principles, tools in SDN controller design to achieve scalability and reliability &lt;br /&gt;
* Controller Platforms&lt;br /&gt;
 - Centralized and Distributed approaches&lt;br /&gt;
 - Identify the need to use in controller platforms&lt;br /&gt;
 - For centralized it started with NOX - Maestro - Beacon - Floodlight - POX - OpenDayLight&lt;br /&gt;
 - For Distributed : ONIX - Hyperflow - YANC - ONOS&lt;br /&gt;
 - Leverage parallel processing capabilities&lt;br /&gt;
* In detail about two systems: &lt;br /&gt;
** ONIX&lt;br /&gt;
** ONOS &lt;br /&gt;
* References&lt;br /&gt;
&lt;br /&gt;
===Metadata management in Distributed File System - Sandarbh===&lt;br /&gt;
* What is metadata? &lt;br /&gt;
- Define by bare-minimum functions for MDS (Metadata Server)&lt;br /&gt;
- Monitor the performance of DFS so that it can be used further&lt;br /&gt;
- Structure of metadata in Paper&lt;br /&gt;
* Why is Metadata management difficult? &lt;br /&gt;
- 50% file operations are metadata operations&lt;br /&gt;
- Size of metadata&lt;br /&gt;
- Distribute the load evenly across all MDS&lt;br /&gt;
- Be able to handle thousands of clients &lt;br /&gt;
- Be able to handle file/directory permission change&lt;br /&gt;
- Recover data if some MDS goes down&lt;br /&gt;
- Be POSIX compliant&lt;br /&gt;
- Be able to scale- addition of new MDS shoudn&#039;t cause ripples&lt;br /&gt;
- Contrasting goals - replication and consistency - Average case improvements vs guaranteed performance for each access&lt;br /&gt;
* Static sub-tree partitioning&lt;br /&gt;
- Advantage - Clients know which MDS to contact for the file - Prefix caching &lt;br /&gt;
- Disadvantage - Directory hot spot formation&lt;br /&gt;
* Static hashing based partitioning &lt;br /&gt;
- Hash the filename or File identifier and assign to MDS&lt;br /&gt;
- Advantage  - Distributes load evenly - Gets rid of hotpsot info&lt;br /&gt;
- Disadvantage &lt;br /&gt;
* Don&#039;t ask me where your server is approach&lt;br /&gt;
- Ex : Ceph , GlusterFS, OceanStore, Hierarchical Bloom filters, Cassandra&lt;br /&gt;
- Responsibilities - Replica mgmt, Consistency, Access control, Recover metadata in case of crash, Talk to each other to handle the load dynamically &lt;br /&gt;
* What&#039;s not in the slides &lt;br /&gt;
- Not focused on replication of metadata&lt;br /&gt;
- Semantic based search&lt;br /&gt;
* Structure of the survey&lt;br /&gt;
- Conventional metadata systems&lt;br /&gt;
- No-metadata approach&lt;br /&gt;
- Metadata approach of the file systems designed for specific goals 0  GFS, Haystack etcs&lt;br /&gt;
- Evolution history&lt;br /&gt;
- Comparison with in ctageory&lt;br /&gt;
- Cover reliability and consistency part&lt;br /&gt;
- Summarize learnings with expected trends&lt;br /&gt;
&lt;br /&gt;
===Distributed Stream Processing - Ronak Chaudhari===&lt;br /&gt;
* About Stream processing&lt;br /&gt;
- Data streams &lt;br /&gt;
- DBMS vs Stream processing &lt;br /&gt;
* Applications&lt;br /&gt;
- Monitoring applications&lt;br /&gt;
- Militia applications&lt;br /&gt;
- Financial analysis&lt;br /&gt;
- Tracking applications&lt;br /&gt;
* Aurora &lt;br /&gt;
- Process incoming streams&lt;br /&gt;
- It has its own query algebra&lt;br /&gt;
- System Model - Query Model - Runtime Architecture &lt;br /&gt;
- QOS criteria&lt;br /&gt;
- SQuAL - Query algebra&lt;br /&gt;
- Aurora GUI&lt;br /&gt;
- Challenges in distribute operation&lt;br /&gt;
* Aurora vs Medusa&lt;br /&gt;
* Medusa&lt;br /&gt;
- Architecture&lt;br /&gt;
- Addition to Aurora - Lookup and Brain&lt;br /&gt;
- Failure detection&lt;br /&gt;
- Transfer of processing &lt;br /&gt;
- System API&lt;br /&gt;
- Load management &lt;br /&gt;
- High availability &lt;br /&gt;
- Benefits&lt;br /&gt;
* References&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_23&amp;diff=18991</id>
		<title>DistOS 2014W Lecture 23</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_23&amp;diff=18991"/>
		<updated>2014-04-07T20:14:09Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: /* Survey on Control Plane Frameworks for Software Defined Networking - Sijo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Presentations&#039;&#039;&#039;&lt;br /&gt;
===Distributed Shared Memory Systems - Mojgan===&lt;br /&gt;
* Introduction to DSM systems&lt;br /&gt;
* Advantages and Disadvantages&lt;br /&gt;
* Classification of DSM systems&lt;br /&gt;
* Design considerations&lt;br /&gt;
* Examples of DSM systems&lt;br /&gt;
 - OpenSSI&lt;br /&gt;
 - Mermaid&lt;br /&gt;
 - MOSIX&lt;br /&gt;
 - DDM&lt;br /&gt;
&lt;br /&gt;
===Survey: Fault Tolerance in Distributed File System - Mohammed===&lt;br /&gt;
* Abstract&lt;br /&gt;
* Introductions&lt;br /&gt;
** About fault tolerance in any distributed system. Comparison between different file systems. &lt;br /&gt;
** Whats more suitable for Mobile based systems. &lt;br /&gt;
** Why satisfaction high for fault tolerance is one of the main issues for DFS&#039;s ?  &lt;br /&gt;
* Replication and fault tolerance&lt;br /&gt;
** What is the Replica and Placement policy? What is the synchronization? What is its benefit? &lt;br /&gt;
   - Synchronous Method&lt;br /&gt;
   - Asynchronous Method&lt;br /&gt;
   - Semi-Asynchronous Method&lt;br /&gt;
* Cache consistency and fault tolerance&lt;br /&gt;
** What is the cache? What is its benefit? Cache consistency? &lt;br /&gt;
  - Write only Read Many (WORM)&lt;br /&gt;
  - Transactional Locking - Read and write locks&lt;br /&gt;
  - Leasing&lt;br /&gt;
* Example DFS mentioned in the paper&lt;br /&gt;
** Google File Systems&lt;br /&gt;
** HDFS &lt;br /&gt;
** MOOSEFS&lt;br /&gt;
** iRODS&lt;br /&gt;
** GlusterFS&lt;br /&gt;
** Lustre&lt;br /&gt;
** Ceph&lt;br /&gt;
** PARADISE for mobile&lt;br /&gt;
* Conclusion&lt;br /&gt;
&lt;br /&gt;
===Survey on Control Plane Frameworks for Software Defined Networking - Sijo===&lt;br /&gt;
* Introduction&lt;br /&gt;
** Traditional Networks - Control Plane and Forwarding Plane&lt;br /&gt;
** Software Defined Networking&lt;br /&gt;
 - Proposes decoupling of layers into independent layers&lt;br /&gt;
 - Network entities or nodes are specialized elements which does the forwarding &lt;br /&gt;
 - Control applications do not need to worry about installation of the underlying network&lt;br /&gt;
* Theme, Argument Outline&lt;br /&gt;
 - Need for using distributed systems design principles, tools in SDN controller design to achieve scalability and reliability &lt;br /&gt;
* Controller Platforms&lt;br /&gt;
 - Centralized and Distributed approaches&lt;br /&gt;
 - Identify the need to use in controller platforms&lt;br /&gt;
 - For centralized it started with NOX - Maestro - Beacon - Floodlight - POX - OpenDayLight&lt;br /&gt;
 - For Distributed : ONIX - Hyperflow - YANC - ONOS&lt;br /&gt;
 - Leverage parallel processing capabilities&lt;br /&gt;
* In detail about two systems: &lt;br /&gt;
** ONIX&lt;br /&gt;
** ONOS &lt;br /&gt;
* References&lt;br /&gt;
&lt;br /&gt;
===Metadata management in Distributed File System - Sandarbh===&lt;br /&gt;
* What is metadata? &lt;br /&gt;
- Define by bare-minimum functions for MDS (Metadata Server)&lt;br /&gt;
- Monitor the performance of DFS so that it can be used further&lt;br /&gt;
- Structure of metadata in Paper&lt;br /&gt;
* Why is Metadata management difficult? &lt;br /&gt;
- 50% file operations are metadata operations&lt;br /&gt;
- Size of metadata&lt;br /&gt;
- Distribute the load evenly across all MDS&lt;br /&gt;
- Be able to handle thousands of clients &lt;br /&gt;
- Be able to handle file/directory permission change&lt;br /&gt;
- Recover data if some MDS goes down&lt;br /&gt;
- Be POSIX compliant&lt;br /&gt;
- Be able to scale- addition of new MDS shoudn&#039;t cause ripples&lt;br /&gt;
- Contrasting goals - replication and consistency - Average case improvements vs guaranteed performance for each access&lt;br /&gt;
* Static sub-tree partitioning&lt;br /&gt;
- Advantage - Clients know which MDS to contact for the file - Prefix caching &lt;br /&gt;
- Disadvantage - Directory hot spot formation&lt;br /&gt;
* Static hashing based partitioning &lt;br /&gt;
- Hash the filename or File identifier and assign to MDS&lt;br /&gt;
- Advantage  - Distributes load evenly - Gets rid of hotpsot info&lt;br /&gt;
- Disadvantage &lt;br /&gt;
* Don&#039;t ask me where your server is approach&lt;br /&gt;
- Ex : Ceph , GlusterFS, OceanStore, Hierarchical Bloom filters, Cassandra&lt;br /&gt;
- Responsibilities - Replica mgmt, Consistency, Access control, Recover metadata in case of crash, Talk to each other to handle the load dynamically &lt;br /&gt;
* What&#039;s not in the slides &lt;br /&gt;
- Not focused on replication of metadata&lt;br /&gt;
- Semantic based search&lt;br /&gt;
* Structure of the survey&lt;br /&gt;
- Conventional metadata systems&lt;br /&gt;
- No-metadata approach&lt;br /&gt;
- Metadata approach of the file systems designed for specific goals 0  GFS, Haystack etcs&lt;br /&gt;
- Evolution history&lt;br /&gt;
- Comparison with in ctageory&lt;br /&gt;
- Cover reliability and consistency part&lt;br /&gt;
- Summarize learnings with expected trends&lt;br /&gt;
&lt;br /&gt;
===Distributed Stream Processing - Ronak Chaudhari===&lt;br /&gt;
* About Stream processing&lt;br /&gt;
- Data streams &lt;br /&gt;
- DBMS vs Stream processing &lt;br /&gt;
* Applications&lt;br /&gt;
- Monitoring applications&lt;br /&gt;
- Militia applications&lt;br /&gt;
- Financial analysis&lt;br /&gt;
- Tracking applications&lt;br /&gt;
* Aurora &lt;br /&gt;
- Process incoming streams&lt;br /&gt;
- It has its own query algebra&lt;br /&gt;
- System Model - Query Model - Runtime Architecture &lt;br /&gt;
- QOS criteria&lt;br /&gt;
- SQuAL - Query algebra&lt;br /&gt;
- Aurora GUI&lt;br /&gt;
- Challenges in distribute operation&lt;br /&gt;
* Aurora vs Medusa&lt;br /&gt;
* Medusa&lt;br /&gt;
- Architecture&lt;br /&gt;
- Addition to Aurora - Lookup and Brain&lt;br /&gt;
- Failure detection&lt;br /&gt;
- Transfer of processing &lt;br /&gt;
- System API&lt;br /&gt;
- Load management &lt;br /&gt;
- High availability &lt;br /&gt;
- Benefits&lt;br /&gt;
* References&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_12&amp;diff=18673</id>
		<title>DistOS 2014W Lecture 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_12&amp;diff=18673"/>
		<updated>2014-02-24T22:26:41Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: Additional notes from the class discussion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Chubby (Feb 13)=&lt;br /&gt;
[https://www.usenix.org/legacy/events/osdi06/tech/burrows.html Burrows, The Chubby Lock Service for Loosely-Coupled Distributed Systems (OSDI 2006)]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Distributed_lock_manager#Google.27s_Chubby_lock_service Chubby], developed at Google, was designed to be a coarse-grained locking service for use within loosely coupled distributed systems (i.e., a network consisting of a high number of small machines). The key contribution was the implementation of Chubby (i.e., there were no new algorithms designed/introduced).&lt;br /&gt;
&lt;br /&gt;
Its purpose is to allow clients to synchronize their activities and to agree on basic information about their environment. It is used to varying degrees by other Google project such as the GFS, MapReduce, and BigTable.&lt;br /&gt;
&lt;br /&gt;
By course grained locking, we mean locking resources for extended lengths of time. For example, electing a primary would handle all access to given data for hours or days.&lt;br /&gt;
&lt;br /&gt;
It is basically a ultra reliable and available file system for very small files that is used as a locking service.&lt;br /&gt;
&lt;br /&gt;
Anil: &amp;quot;Once implemented, Chubby abstracts away all the crazy complicated stuff so you can more easily build your distributed system&amp;quot;. Chubby is a tool that gives Google devs important guarantees to build on.&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
&lt;br /&gt;
The funny thing is that Chubby is essentially a filesystem (with files, file permissions, reading/writing, a hierarchal structure, etc.) with a few caveats. Mainly that any file can act as a reader/writer lock and that only whole file operations are performed (i.e., the whole file is written or read), as the files are quite small (256K max). The main reason for implementing the distributed lock service (Chubby) using file system rather than using may be a library based approach was because of the need to make it an easier to use system.&lt;br /&gt;
&lt;br /&gt;
All the locks are fully advisory, meaning others can &amp;quot;go around&amp;quot; whoever has the lock to access the resource (for reading and, sometimes, writing), as opposed to mandatory, mandatory locks giving completely exclusive access to a resource. The reason why chubby goes for advisory locks is that if a client having a lock ends in a problem for some reason there should be a way to release the lock graciously rather than requiring the entire system to be brought down or rebooted. &lt;br /&gt;
&lt;br /&gt;
It can be noted that Linux also utilizes advisory locks as opposed to Windows, which only utilizes mandatory locks. This could be a shortcoming of Windows as, when anything changes regarding the system, the system must be completely rebooted as the locks on files are never broken. With advisory locks, as in Linux, the system need only be rebooted when the kernel is modified/updated.&lt;br /&gt;
&lt;br /&gt;
Chubby also functions as a name server, but only really for functional names/roles , such as for the mail server or a GFS server (i.e., Chubby is mainly used as a name server for logical/symbolic names for roles). It is a centralized place that maps names to resources. A unified interface to do so. The name-value mappings in Chubby allow for a consistent, real-time, overall view of the entire system.&lt;br /&gt;
&lt;br /&gt;
As a name server, Chubby provides guarantees not given with DNS (e.g., DNS is subject to a stale cache) as Chubby provides a unified view of the way things are in the system. &lt;br /&gt;
&lt;br /&gt;
Chubby was made coarse-grained for scalability as coarse-grained locks give the ability to create a distributed system while the fine-grained locks wouldn&#039;t scale well. It can also be noted that a fine-grained lock could be implemented on top of the coarse-grained locks. The entire point of Chubby was to give ultra-high availability and integrity.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
* Uses [http://en.wikipedia.org/wiki/Paxos_(computer_science) paxos], which is an insanely complicated way of solving the distributed consensus problem.&lt;br /&gt;
** Given many proposed values, it chooses one to be agreed upon.&lt;br /&gt;
&lt;br /&gt;
* Master chubby server with 4 slaves (5 servers total make up a Chubby Cell)&lt;br /&gt;
** Master and slaves have all the data.&lt;br /&gt;
** Nothing particularity special about the master&lt;br /&gt;
** If the master fails, one slave is elected as a new master&lt;br /&gt;
&lt;br /&gt;
==use cases==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Discussion==&lt;br /&gt;
&lt;br /&gt;
Where else do we see things such as Chubby? Where would you want this consistent, overall view?&lt;br /&gt;
&lt;br /&gt;
You would want this consistent view in any sort of synchronized set of files across a set of systems, such as Dropbox. The main tenants of Chubby&#039;s design would hold where you would want to make sure there was an online consensus. It should be noted that this is not like version control as, with version control, everyone has their own copy which are all merged later. However, in this type of system, there is only one version available throughout the distributed system. Chubby&#039;s design would differ from Dropbox in that Dropbox is designed so that you can work offline and then synchronize your changes once you are online again (i.e., there can sometimes be more than one version of a file meaning you lack the consistent, overall view given by Chubby).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Anil&#039;s opinion we can think about Chubby as an example of bootstrapping, based on the idea of having/building one good thing to realize your needs rather than adding mechanisms to existing systems.  It is nice to have consistency in the world of distributed systems but it comes with a cost, are you willing to pay for it?  is one main question distributed system designers, users often encounters. In Anil&#039;s view chubby brings down this cost a bit lower. Anil mentioned that one of the main ideas of the Distributed Operating systems course is to understand why you need different algorithms/mechanisms to build a Distributed System rather than looking at the internals of each algorithm in depth.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_12&amp;diff=18672</id>
		<title>DistOS 2014W Lecture 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_12&amp;diff=18672"/>
		<updated>2014-02-24T22:22:36Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: additional notes from the lecture&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Chubby (Feb 13)=&lt;br /&gt;
[https://www.usenix.org/legacy/events/osdi06/tech/burrows.html Burrows, The Chubby Lock Service for Loosely-Coupled Distributed Systems (OSDI 2006)]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Distributed_lock_manager#Google.27s_Chubby_lock_service Chubby], developed at Google, was designed to be a coarse-grained locking service for use within loosely coupled distributed systems (i.e., a network consisting of a high number of small machines). The key contribution was the implementation of Chubby (i.e., there were no new algorithms designed/introduced).&lt;br /&gt;
&lt;br /&gt;
Its purpose is to allow clients to synchronize their activities and to agree on basic information about their environment. It is used to varying degrees by other Google project such as the GFS, MapReduce, and BigTable.&lt;br /&gt;
&lt;br /&gt;
By course grained locking, we mean locking resources for extended lengths of time. For example, electing a primary would handle all access to given data for hours or days.&lt;br /&gt;
&lt;br /&gt;
It is basically a ultra reliable and available file system for very small files that is used as a locking service.&lt;br /&gt;
&lt;br /&gt;
Anil: &amp;quot;Once implemented, Chubby abstracts away all the crazy complicated stuff so you can more easily build your distributed system&amp;quot;. Chubby is a tool that gives Google devs important guarantees to build on.&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
&lt;br /&gt;
The funny thing is that Chubby is essentially a filesystem (with files, file permissions, reading/writing, a hierarchal structure, etc.) with a few caveats. Mainly that any file can act as a reader/writer lock and that only whole file operations are performed (i.e., the whole file is written or read), as the files are quite small (256K max). The main reason for implementing the distributed lock service (Chubby) using file system rather than using may be a library based approach was because of the need to make it an easier to use system.&lt;br /&gt;
&lt;br /&gt;
All the locks are fully advisory, meaning others can &amp;quot;go around&amp;quot; whoever has the lock to access the resource (for reading and, sometimes, writing), as opposed to mandatory, mandatory locks giving completely exclusive access to a resource. The reason why chubby goes for advisory locks is that if a client having a lock ends in a problem for some reason there should be a way to release the lock graciously rather than requiring the entire system to be brought down or rebooted. &lt;br /&gt;
&lt;br /&gt;
It can be noted that Linux also utilizes advisory locks as opposed to Windows, which only utilizes mandatory locks. This could be a shortcoming of Windows as, when anything changes regarding the system, the system must be completely rebooted as the locks on files are never broken. With advisory locks, as in Linux, the system need only be rebooted when the kernel is modified/updated.&lt;br /&gt;
&lt;br /&gt;
Chubby also functions as a name server, but only really for functional names/roles , such as for the mail server or a GFS server (i.e., Chubby is mainly used as a name server for logical/symbolic names for roles). It is a centralized place that maps names to resources. A unified interface to do so. The name-value mappings in Chubby allow for a consistent, real-time, overall view of the entire system.&lt;br /&gt;
&lt;br /&gt;
As a name server, Chubby provides guarantees not given with DNS (e.g., DNS is subject to a stale cache) as Chubby provides a unified view of the way things are in the system. &lt;br /&gt;
&lt;br /&gt;
Chubby was made coarse-grained for scalability as coarse-grained locks give the ability to create a distributed system while the fine-grained locks wouldn&#039;t scale well. It can also be noted that a fine-grained lock could be implemented on top of the coarse-grained locks. The entire point of Chubby was to give ultra-high availability and integrity.&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
&lt;br /&gt;
* Uses [http://en.wikipedia.org/wiki/Paxos_(computer_science) paxos], which is an insanely complicated way of solving the distributed consensus problem.&lt;br /&gt;
** Given many proposed values, it chooses one to be agreed upon.&lt;br /&gt;
&lt;br /&gt;
* Master chubby server with 4 slaves (5 servers total make up a Chubby Cell)&lt;br /&gt;
** Master and slaves have all the data.&lt;br /&gt;
** Nothing particularity special about the master&lt;br /&gt;
** If the master fails, one slave is elected as a new master&lt;br /&gt;
&lt;br /&gt;
==use cases==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Discussion==&lt;br /&gt;
&lt;br /&gt;
Where else do we see things such as Chubby? Where would you want this consistent, overall view?&lt;br /&gt;
&lt;br /&gt;
You would want this consistent view in any sort of synchronized set of files across a set of systems, such as Dropbox. The main tenants of Chubby&#039;s design would hold where you would want to make sure there was an online consensus. It should be noted that this is not like version control as, with version control, everyone has their own copy which are all merged later. However, in this type of system, there is only one version available throughout the distributed system. Chubby&#039;s design would differ from Dropbox in that Dropbox is designed so that you can work offline and then synchronize your changes once you are online again (i.e., there can sometimes be more than one version of a file meaning you lack the consistent, overall view given by Chubby).&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_8&amp;diff=18602</id>
		<title>DistOS 2014W Lecture 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_8&amp;diff=18602"/>
		<updated>2014-02-08T20:48:10Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Group 1==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) per operating traffic&lt;br /&gt;
&lt;br /&gt;
2) rpc based&lt;br /&gt;
&lt;br /&gt;
3) unreliable&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) design for 5000 clients&lt;br /&gt;
&lt;br /&gt;
2) high integrity.&lt;br /&gt;
&lt;br /&gt;
==Group 2==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) designed to share disks over a network, not files&lt;br /&gt;
&lt;br /&gt;
2) more UNIX like&lt;br /&gt;
&lt;br /&gt;
3) portable&lt;br /&gt;
&lt;br /&gt;
4) use UDP&lt;br /&gt;
&lt;br /&gt;
5) it is not minimize network traffic.&lt;br /&gt;
&lt;br /&gt;
6) used VNODE&lt;br /&gt;
&lt;br /&gt;
7) not have much hardware equipment&lt;br /&gt;
&lt;br /&gt;
8) later versions took on features of AFS&lt;br /&gt;
&lt;br /&gt;
9) stateless protocol conflicts with files being state-full by nature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) designed to share files over a network, not disks&lt;br /&gt;
&lt;br /&gt;
2) better scalability&lt;br /&gt;
&lt;br /&gt;
3) better security.&lt;br /&gt;
&lt;br /&gt;
4) minimize network traffic.&lt;br /&gt;
&lt;br /&gt;
5) less UNIX like&lt;br /&gt;
&lt;br /&gt;
6) plugin authentication&lt;br /&gt;
&lt;br /&gt;
7) needs more kernel storage due to complex commands&lt;br /&gt;
&lt;br /&gt;
8) inode concept replaced with fid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Group 3==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) cache assumption invalid.&lt;br /&gt;
&lt;br /&gt;
2) no locking&lt;br /&gt;
&lt;br /&gt;
3) bad security&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) cache assumption valid&lt;br /&gt;
&lt;br /&gt;
2) locking&lt;br /&gt;
&lt;br /&gt;
3) good security.&lt;br /&gt;
&lt;br /&gt;
==Group 4==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Additional notes from the class discussion: Capturing some of Anil&#039;s Observations about NFS and AFS: The reason why NFS does not try to share at block level instead of file level is that sharing at block level is complicated from the implementation point of view. NFS use UDP as the transport protocol since UDP being a stateless protocol is in-line with the NFS design philosophy of not maintaining state information.  Security and unreliability issues in NFS are an implication of using RPC. RPC is a nice way for programming but RPC is not designed for networks (where flakiness is an inherent characteristic) which is better explained by the analogy that you never expect from a programming point of view your function call to fail(not to return) because of communication error.  AFS designers considered network as a bottle neck and tried to reduce the number of chatter over network by using caching. In Anil&#039;s opinion &#039;open&#039; and &#039;close&#039; operations in AFS were critical and the &#039;close&#039; operation assumes importance to the same proportions of a &#039;commit&#039; operation in a well-designed database system. Anil mentioned that security model of AFS is interesting in that rather than going for the UNIX access list based implementation AFS used a single sign on system based on Kerberos. In Anil&#039;s opinion cool thing about Kerberos is that idea of using tickets to get access. Another interesting fact that was mentioned was that irrespective of having better features compared to NFS, AFS did not get widely adopted. The reason for this was that the administrative mechanism for AFS was complex and it required highly trained/skilled people to setup AFS and it also required quite a number of day’s effort to set it up and maintain.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_10&amp;diff=18601</id>
		<title>DistOS 2014W Lecture 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_10&amp;diff=18601"/>
		<updated>2014-02-08T20:47:01Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Context==&lt;br /&gt;
&lt;br /&gt;
== GFS ==&lt;br /&gt;
&lt;br /&gt;
* Very different because of the workload that it is desgined for.&lt;br /&gt;
** Because of the number of small files that have to be indexed for the web, etc., it is no longer practical to have a filesystem that stores these individually. Too much overhead. Punts problem to userspace, incl. record delimitation.&lt;br /&gt;
* Don&#039;t care about latency, surprising considering it&#039;s Google, the guys who change the TCP IW standard recommendations for latency.&lt;br /&gt;
* Mostly seeking through entire file.&lt;br /&gt;
* Paper from 2003, mentions still using 100BASE-T links.&lt;br /&gt;
* Data-heavy, metadata light. Contacting the metadata server is a rare event.&lt;br /&gt;
* Really good that they designed for unreliable hardware:&lt;br /&gt;
** All the replication&lt;br /&gt;
** Data checksumming&lt;br /&gt;
* Performance degrades for small random access workload; use other filesystem.&lt;br /&gt;
* Path of least resistance to scale, not to do something super CS-smart.&lt;br /&gt;
* Google used to re-index every month, swapping out indexes. Now, it&#039;s much more online. GFS is now just a layer to support a more dynamic layer.&lt;br /&gt;
&lt;br /&gt;
=== Segue on drives ===&lt;br /&gt;
&lt;br /&gt;
* Structure of GFS does match some other modern systems:&lt;br /&gt;
** Hard drives are like parallel tapes, very suited for streaming.&lt;br /&gt;
** Flash devices are log-structured too, but have an abstracting firmware. You want to do erasure in bulk, in the &#039;&#039;&#039;background&#039;&#039;&#039;. Used to be we needed specialized FS for MTDs to get better performance; though now we have better microcontrollers in some embedded systems to abstract away the hardware.&lt;br /&gt;
* Architectures that start big, often end up in the smallest things.&lt;br /&gt;
&lt;br /&gt;
== How other filesystems compare to GFS and Ceph ==&lt;br /&gt;
&lt;br /&gt;
* Other File Systems: AFS, NFS, Plan 9, traditional Unix&lt;br /&gt;
&lt;br /&gt;
* Data and metadata are held together.&lt;br /&gt;
** They did not optimize for different access patterns:&lt;br /&gt;
*** Data → big, long transfers&lt;br /&gt;
*** Metadata → small, low latency&lt;br /&gt;
** Can&#039;t scale separately&lt;br /&gt;
&lt;br /&gt;
* Designed for lower latency&lt;br /&gt;
&lt;br /&gt;
* (Mostly) designed for POSIX semantics&lt;br /&gt;
** how the requirements that lead to the ‘standard’ evolved&lt;br /&gt;
&lt;br /&gt;
* Assumed that a file is a fraction of the size of a server&lt;br /&gt;
** eg. files on a Unix system were meant to be text files.&lt;br /&gt;
** Huge files spread over many servers not even in the cards for NFS&lt;br /&gt;
** Meant for small problems, not web-scale&lt;br /&gt;
*** Google has a copy of the publicly accessible internet&lt;br /&gt;
**** Their strategy is to copy the internet to index it&lt;br /&gt;
**** Insane → insane filesystem&lt;br /&gt;
**** One file may span multiple servers&lt;br /&gt;
&lt;br /&gt;
* Even mainframes, scale-up solutions, ultra-reliable systems, with data sets bigger than RAM don&#039;t have the scale of GFS or CEPH.&lt;br /&gt;
&lt;br /&gt;
* Point-to-point access; much less load-balancing, even in AFS&lt;br /&gt;
** One server to service multiple clients.&lt;br /&gt;
** Single point of entry, single point of failure, bottleneck&lt;br /&gt;
&lt;br /&gt;
* Less focus on fault tolerance&lt;br /&gt;
** No notion of data replication.&lt;br /&gt;
&lt;br /&gt;
* Reliability was a property of the host, not the network&lt;br /&gt;
&lt;br /&gt;
==Ceph==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ceph is crazy and tries to do everything&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unlike GFS, distributes metadata, not just for read-only copies&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unlike GFS, the OSDs have some intelligence, and autonomously distribute the data, rather than being controlled by a master.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Uses hashing in the distribution process to &#039;&#039;&#039;uniformly&#039;&#039;&#039; distribute data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;The actual algorithm for distributing data is as follows:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;file + offset → hash(object ID) → CRUSH(placement group) → OSD&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Each client has knowledge of the entire storage network.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Tracks failure groups (same breaker, switch, etc.), hot data, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Number of replicas is changeable on the fly, but the placement group is not&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For example, if every client on the planet is accessing the same file, you can scale out for that data.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You don&#039;t ask where to go, you just go, which makes this very scalable&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;CRUSH is sufficiently advanced to be called magic.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;math&amp;gt;O(log n)&amp;lt;/math&amp;gt; of the size of the data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;CPUs stupidly fast, so the above is of minimal overhead, whereas the network, despite being fast, has latency, etc. Computation scales much better than communication.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Storage is composed of variable-length atoms&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Additional notes from the class discussion: In Anil’s opinion “how file system size compares to the server storage size?” is a key parameter that distinguishes GFS, NFS designs from the early file systems NFS, AFS, Plan 9. In the early files system designs, file system size was a fraction of the server storage size where as in GFS and Ceph the file system size can be of several times magnitude than that of the server. One key aspect in the Ceph design is the attempt to replace communication with computation by using hashing based mechanism CRUSH. Following line from Anil epitomizes the general approach that is followed in the field of Computer Science “If one abstraction does not work stick another one in”.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_10&amp;diff=18600</id>
		<title>DistOS 2014W Lecture 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_10&amp;diff=18600"/>
		<updated>2014-02-08T20:46:33Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Context==&lt;br /&gt;
&lt;br /&gt;
== GFS ==&lt;br /&gt;
&lt;br /&gt;
* Very different because of the workload that it is desgined for.&lt;br /&gt;
** Because of the number of small files that have to be indexed for the web, etc., it is no longer practical to have a filesystem that stores these individually. Too much overhead. Punts problem to userspace, incl. record delimitation.&lt;br /&gt;
* Don&#039;t care about latency, surprising considering it&#039;s Google, the guys who change the TCP IW standard recommendations for latency.&lt;br /&gt;
* Mostly seeking through entire file.&lt;br /&gt;
* Paper from 2003, mentions still using 100BASE-T links.&lt;br /&gt;
* Data-heavy, metadata light. Contacting the metadata server is a rare event.&lt;br /&gt;
* Really good that they designed for unreliable hardware:&lt;br /&gt;
** All the replication&lt;br /&gt;
** Data checksumming&lt;br /&gt;
* Performance degrades for small random access workload; use other filesystem.&lt;br /&gt;
* Path of least resistance to scale, not to do something super CS-smart.&lt;br /&gt;
* Google used to re-index every month, swapping out indexes. Now, it&#039;s much more online. GFS is now just a layer to support a more dynamic layer.&lt;br /&gt;
&lt;br /&gt;
=== Segue on drives ===&lt;br /&gt;
&lt;br /&gt;
* Structure of GFS does match some other modern systems:&lt;br /&gt;
** Hard drives are like parallel tapes, very suited for streaming.&lt;br /&gt;
** Flash devices are log-structured too, but have an abstracting firmware. You want to do erasure in bulk, in the &#039;&#039;&#039;background&#039;&#039;&#039;. Used to be we needed specialized FS for MTDs to get better performance; though now we have better microcontrollers in some embedded systems to abstract away the hardware.&lt;br /&gt;
* Architectures that start big, often end up in the smallest things.&lt;br /&gt;
&lt;br /&gt;
== How other filesystems compare to GFS and Ceph ==&lt;br /&gt;
&lt;br /&gt;
* Other File Systems: AFS, NFS, Plan 9, traditional Unix&lt;br /&gt;
&lt;br /&gt;
* Data and metadata are held together.&lt;br /&gt;
** They did not optimize for different access patterns:&lt;br /&gt;
*** Data → big, long transfers&lt;br /&gt;
*** Metadata → small, low latency&lt;br /&gt;
** Can&#039;t scale separately&lt;br /&gt;
&lt;br /&gt;
* Designed for lower latency&lt;br /&gt;
&lt;br /&gt;
* (Mostly) designed for POSIX semantics&lt;br /&gt;
** how the requirements that lead to the ‘standard’ evolved&lt;br /&gt;
&lt;br /&gt;
* Assumed that a file is a fraction of the size of a server&lt;br /&gt;
** eg. files on a Unix system were meant to be text files.&lt;br /&gt;
** Huge files spread over many servers not even in the cards for NFS&lt;br /&gt;
** Meant for small problems, not web-scale&lt;br /&gt;
*** Google has a copy of the publicly accessible internet&lt;br /&gt;
**** Their strategy is to copy the internet to index it&lt;br /&gt;
**** Insane → insane filesystem&lt;br /&gt;
**** One file may span multiple servers&lt;br /&gt;
&lt;br /&gt;
* Even mainframes, scale-up solutions, ultra-reliable systems, with data sets bigger than RAM don&#039;t have the scale of GFS or CEPH.&lt;br /&gt;
&lt;br /&gt;
* Point-to-point access; much less load-balancing, even in AFS&lt;br /&gt;
** One server to service multiple clients.&lt;br /&gt;
** Single point of entry, single point of failure, bottleneck&lt;br /&gt;
&lt;br /&gt;
* Less focus on fault tolerance&lt;br /&gt;
** No notion of data replication.&lt;br /&gt;
&lt;br /&gt;
* Reliability was a property of the host, not the network&lt;br /&gt;
&lt;br /&gt;
==Ceph==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ceph is crazy and tries to do everything&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unlike GFS, distributes metadata, not just for read-only copies&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unlike GFS, the OSDs have some intelligence, and autonomously distribute the data, rather than being controlled by a master.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Uses hashing in the distribution process to &#039;&#039;&#039;uniformly&#039;&#039;&#039; distribute data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;The actual algorithm for distributing data is as follows:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;file + offset → hash(object ID) → CRUSH(placement group) → OSD&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Each client has knowledge of the entire storage network.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Tracks failure groups (same breaker, switch, etc.), hot data, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Number of replicas is changeable on the fly, but the placement group is not&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For example, if every client on the planet is accessing the same file, you can scale out for that data.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You don&#039;t ask where to go, you just go, which makes this very scalable&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;CRUSH is sufficiently advanced to be called magic.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;math&amp;gt;O(log n)&amp;lt;/math&amp;gt; of the size of the data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;CPUs stupidly fast, so the above is of minimal overhead, whereas the network, despite being fast, has latency, etc. Computation scales much better than communication.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Storage is composed of variable-length atoms&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Additional notes from the class discussion:&lt;br /&gt;
&lt;br /&gt;
In Anil’s opinion “how file system size compares to the server storage size?” is a key parameter that distinguishes GFS, NFS designs from the early file systems NFS, AFS, Plan 9. In the early files system designs, file system size was a fraction of the server storage size where as in GFS and Ceph the file system size can be of several times magnitude than that of the server. One key aspect in the Ceph design is the attempt to replace communication with computation by using hashing based mechanism CRUSH. Following line from Anil epitomizes the general approach that is followed in the field of Computer Science “If one abstraction does not work stick another one in”.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_10&amp;diff=18599</id>
		<title>DistOS 2014W Lecture 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_10&amp;diff=18599"/>
		<updated>2014-02-08T20:45:07Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: formatting change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Context==&lt;br /&gt;
&lt;br /&gt;
== GFS ==&lt;br /&gt;
&lt;br /&gt;
* Very different because of the workload that it is desgined for.&lt;br /&gt;
** Because of the number of small files that have to be indexed for the web, etc., it is no longer practical to have a filesystem that stores these individually. Too much overhead. Punts problem to userspace, incl. record delimitation.&lt;br /&gt;
* Don&#039;t care about latency, surprising considering it&#039;s Google, the guys who change the TCP IW standard recommendations for latency.&lt;br /&gt;
* Mostly seeking through entire file.&lt;br /&gt;
* Paper from 2003, mentions still using 100BASE-T links.&lt;br /&gt;
* Data-heavy, metadata light. Contacting the metadata server is a rare event.&lt;br /&gt;
* Really good that they designed for unreliable hardware:&lt;br /&gt;
** All the replication&lt;br /&gt;
** Data checksumming&lt;br /&gt;
* Performance degrades for small random access workload; use other filesystem.&lt;br /&gt;
* Path of least resistance to scale, not to do something super CS-smart.&lt;br /&gt;
* Google used to re-index every month, swapping out indexes. Now, it&#039;s much more online. GFS is now just a layer to support a more dynamic layer.&lt;br /&gt;
&lt;br /&gt;
=== Segue on drives ===&lt;br /&gt;
&lt;br /&gt;
* Structure of GFS does match some other modern systems:&lt;br /&gt;
** Hard drives are like parallel tapes, very suited for streaming.&lt;br /&gt;
** Flash devices are log-structured too, but have an abstracting firmware. You want to do erasure in bulk, in the &#039;&#039;&#039;background&#039;&#039;&#039;. Used to be we needed specialized FS for MTDs to get better performance; though now we have better microcontrollers in some embedded systems to abstract away the hardware.&lt;br /&gt;
* Architectures that start big, often end up in the smallest things.&lt;br /&gt;
&lt;br /&gt;
== How other filesystems compare to GFS and Ceph ==&lt;br /&gt;
&lt;br /&gt;
* Other File Systems: AFS, NFS, Plan 9, traditional Unix&lt;br /&gt;
&lt;br /&gt;
* Data and metadata are held together.&lt;br /&gt;
** They did not optimize for different access patterns:&lt;br /&gt;
*** Data → big, long transfers&lt;br /&gt;
*** Metadata → small, low latency&lt;br /&gt;
** Can&#039;t scale separately&lt;br /&gt;
&lt;br /&gt;
* Designed for lower latency&lt;br /&gt;
&lt;br /&gt;
* (Mostly) designed for POSIX semantics&lt;br /&gt;
** how the requirements that lead to the ‘standard’ evolved&lt;br /&gt;
&lt;br /&gt;
* Assumed that a file is a fraction of the size of a server&lt;br /&gt;
** eg. files on a Unix system were meant to be text files.&lt;br /&gt;
** Huge files spread over many servers not even in the cards for NFS&lt;br /&gt;
** Meant for small problems, not web-scale&lt;br /&gt;
*** Google has a copy of the publicly accessible internet&lt;br /&gt;
**** Their strategy is to copy the internet to index it&lt;br /&gt;
**** Insane → insane filesystem&lt;br /&gt;
**** One file may span multiple servers&lt;br /&gt;
&lt;br /&gt;
* Even mainframes, scale-up solutions, ultra-reliable systems, with data sets bigger than RAM don&#039;t have the scale of GFS or CEPH.&lt;br /&gt;
&lt;br /&gt;
* Point-to-point access; much less load-balancing, even in AFS&lt;br /&gt;
** One server to service multiple clients.&lt;br /&gt;
** Single point of entry, single point of failure, bottleneck&lt;br /&gt;
&lt;br /&gt;
* Less focus on fault tolerance&lt;br /&gt;
** No notion of data replication.&lt;br /&gt;
&lt;br /&gt;
* Reliability was a property of the host, not the network&lt;br /&gt;
&lt;br /&gt;
==Ceph==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ceph is crazy and tries to do everything&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unlike GFS, distributes metadata, not just for read-only copies&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unlike GFS, the OSDs have some intelligence, and autonomously distribute the data, rather than being controlled by a master.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Uses hashing in the distribution process to &#039;&#039;&#039;uniformly&#039;&#039;&#039; distribute data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;The actual algorithm for distributing data is as follows:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;file + offset → hash(object ID) → CRUSH(placement group) → OSD&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Each client has knowledge of the entire storage network.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Tracks failure groups (same breaker, switch, etc.), hot data, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Number of replicas is changeable on the fly, but the placement group is not&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For example, if every client on the planet is accessing the same file, you can scale out for that data.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You don&#039;t ask where to go, you just go, which makes this very scalable&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;CRUSH is sufficiently advanced to be called magic.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;math&amp;gt;O(log n)&amp;lt;/math&amp;gt; of the size of the data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;CPUs stupidly fast, so the above is of minimal overhead, whereas the network, despite being fast, has latency, etc. Computation scales much better than communication.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Storage is composed of variable-length atoms&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Additional notes from the class discussion=&lt;br /&gt;
&lt;br /&gt;
In Anil’s opinion “how file system size compares to the server storage size?” is a key parameter that distinguishes GFS, NFS designs from the early file systems NFS, AFS, Plan 9. In the early files system designs, file system size was a fraction of the server storage size where as in GFS and Ceph the file system size can be of several times magnitude than that of the server. One key aspect in the Ceph design is the attempt to replace communication with computation by using hashing based mechanism CRUSH. Following line from Anil epitomizes the general approach that is followed in the field of Computer Science “If one abstraction does not work stick another one in”.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_8&amp;diff=18598</id>
		<title>DistOS 2014W Lecture 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_8&amp;diff=18598"/>
		<updated>2014-02-08T20:43:31Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: formatting change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Group 1==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) per operating traffic&lt;br /&gt;
&lt;br /&gt;
2) rpc based&lt;br /&gt;
&lt;br /&gt;
3) unreliable&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) design for 5000 clients&lt;br /&gt;
&lt;br /&gt;
2) high integrity.&lt;br /&gt;
&lt;br /&gt;
==Group 2==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) designed to share disks over a network, not files&lt;br /&gt;
&lt;br /&gt;
2) more UNIX like&lt;br /&gt;
&lt;br /&gt;
3) portable&lt;br /&gt;
&lt;br /&gt;
4) use UDP&lt;br /&gt;
&lt;br /&gt;
5) it is not minimize network traffic.&lt;br /&gt;
&lt;br /&gt;
6) used VNODE&lt;br /&gt;
&lt;br /&gt;
7) not have much hardware equipment&lt;br /&gt;
&lt;br /&gt;
8) later versions took on features of AFS&lt;br /&gt;
&lt;br /&gt;
9) stateless protocol conflicts with files being state-full by nature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) designed to share files over a network, not disks&lt;br /&gt;
&lt;br /&gt;
2) better scalability&lt;br /&gt;
&lt;br /&gt;
3) better security.&lt;br /&gt;
&lt;br /&gt;
4) minimize network traffic.&lt;br /&gt;
&lt;br /&gt;
5) less UNIX like&lt;br /&gt;
&lt;br /&gt;
6) plugin authentication&lt;br /&gt;
&lt;br /&gt;
7) needs more kernel storage due to complex commands&lt;br /&gt;
&lt;br /&gt;
8) inode concept replaced with fid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Group 3==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) cache assumption invalid.&lt;br /&gt;
&lt;br /&gt;
2) no locking&lt;br /&gt;
&lt;br /&gt;
3) bad security&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) cache assumption valid&lt;br /&gt;
&lt;br /&gt;
2) locking&lt;br /&gt;
&lt;br /&gt;
3) good security.&lt;br /&gt;
&lt;br /&gt;
==Group 4==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional notes from the class discussion==&lt;br /&gt;
&lt;br /&gt;
Capturing some of Anil&#039;s Observations about NFS and AFS: The reason why NFS does not try to share at block level instead of file level is that sharing at block level is complicated from the implementation point of view. NFS use UDP as the transport protocol since UDP being a stateless protocol is in-line with the NFS design philosophy of not maintaining state information.  Security and unreliability issues in NFS are an implication of using RPC. RPC is a nice way for programming but RPC is not designed for networks (where flakiness is an inherent characteristic) which is better explained by the analogy that you never expect from a programming point of view your function call to fail(not to return) because of communication error.  AFS designers considered network as a bottle neck and tried to reduce the number of chatter over network by using caching. In Anil&#039;s opinion &#039;open&#039; and &#039;close&#039; operations in AFS were critical and the &#039;close&#039; operation assumes importance to the same proportions of a &#039;commit&#039; operation in a well-designed database system. Anil mentioned that security model of AFS is interesting in that rather than going for the UNIX access list based implementation AFS used a single sign on system based on Kerberos. In Anil&#039;s opinion cool thing about Kerberos is that idea of using tickets to get access. Another interesting fact that was mentioned was that irrespective of having better features compared to NFS, AFS did not get widely adopted. The reason for this was that the administrative mechanism for AFS was complex and it required highly trained/skilled people to setup AFS and it also required quite a number of day’s effort to set it up and maintain.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_8&amp;diff=18597</id>
		<title>DistOS 2014W Lecture 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_8&amp;diff=18597"/>
		<updated>2014-02-08T20:42:02Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: formatting change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Group 1==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) per operating traffic&lt;br /&gt;
&lt;br /&gt;
2) rpc based&lt;br /&gt;
&lt;br /&gt;
3) unreliable&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) design for 5000 clients&lt;br /&gt;
&lt;br /&gt;
2) high integrity.&lt;br /&gt;
&lt;br /&gt;
==Group 2==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) designed to share disks over a network, not files&lt;br /&gt;
&lt;br /&gt;
2) more UNIX like&lt;br /&gt;
&lt;br /&gt;
3) portable&lt;br /&gt;
&lt;br /&gt;
4) use UDP&lt;br /&gt;
&lt;br /&gt;
5) it is not minimize network traffic.&lt;br /&gt;
&lt;br /&gt;
6) used VNODE&lt;br /&gt;
&lt;br /&gt;
7) not have much hardware equipment&lt;br /&gt;
&lt;br /&gt;
8) later versions took on features of AFS&lt;br /&gt;
&lt;br /&gt;
9) stateless protocol conflicts with files being state-full by nature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) designed to share files over a network, not disks&lt;br /&gt;
&lt;br /&gt;
2) better scalability&lt;br /&gt;
&lt;br /&gt;
3) better security.&lt;br /&gt;
&lt;br /&gt;
4) minimize network traffic.&lt;br /&gt;
&lt;br /&gt;
5) less UNIX like&lt;br /&gt;
&lt;br /&gt;
6) plugin authentication&lt;br /&gt;
&lt;br /&gt;
7) needs more kernel storage due to complex commands&lt;br /&gt;
&lt;br /&gt;
8) inode concept replaced with fid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Group 3==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) cache assumption invalid.&lt;br /&gt;
&lt;br /&gt;
2) no locking&lt;br /&gt;
&lt;br /&gt;
3) bad security&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) cache assumption valid&lt;br /&gt;
&lt;br /&gt;
2) locking&lt;br /&gt;
&lt;br /&gt;
3) good security.&lt;br /&gt;
&lt;br /&gt;
==Group 4==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional notes from the class discussion:&lt;br /&gt;
&lt;br /&gt;
Capturing some of Anil&#039;s Observations about NFS and AFS: The reason why NFS does not try to share at block level instead of file level is that sharing at block level is complicated from the implementation point of view. NFS use UDP as the transport protocol since UDP being a stateless protocol is in-line with the NFS design philosophy of not maintaining state information.  Security and unreliability issues in NFS are an implication of using RPC. RPC is a nice way for programming but RPC is not designed for networks (where flakiness is an inherent characteristic) which is better explained by the analogy that you never expect from a programming point of view your function call to fail(not to return) because of communication error.  AFS designers considered network as a bottle neck and tried to reduce the number of chatter over network by using caching. In Anil&#039;s opinion &#039;open&#039; and &#039;close&#039; operations in AFS were critical and the &#039;close&#039; operation assumes importance to the same proportions of a &#039;commit&#039; operation in a well-designed database system. Anil mentioned that security model of AFS is interesting in that rather than going for the UNIX access list based implementation AFS used a single sign on system based on Kerberos. In Anil&#039;s opinion cool thing about Kerberos is that idea of using tickets to get access. Another interesting fact that was mentioned was that irrespective of having better features compared to NFS, AFS did not get widely adopted. The reason for this was that the administrative mechanism for AFS was complex and it required highly trained/skilled people to setup AFS and it also required quite a number of day’s effort to set it up and maintain.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_8&amp;diff=18596</id>
		<title>DistOS 2014W Lecture 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_8&amp;diff=18596"/>
		<updated>2014-02-08T20:40:58Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: formatting change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Group 1==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) per operating traffic&lt;br /&gt;
&lt;br /&gt;
2) rpc based&lt;br /&gt;
&lt;br /&gt;
3) unreliable&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) design for 5000 clients&lt;br /&gt;
&lt;br /&gt;
2) high integrity.&lt;br /&gt;
&lt;br /&gt;
==Group 2==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) designed to share disks over a network, not files&lt;br /&gt;
&lt;br /&gt;
2) more UNIX like&lt;br /&gt;
&lt;br /&gt;
3) portable&lt;br /&gt;
&lt;br /&gt;
4) use UDP&lt;br /&gt;
&lt;br /&gt;
5) it is not minimize network traffic.&lt;br /&gt;
&lt;br /&gt;
6) used VNODE&lt;br /&gt;
&lt;br /&gt;
7) not have much hardware equipment&lt;br /&gt;
&lt;br /&gt;
8) later versions took on features of AFS&lt;br /&gt;
&lt;br /&gt;
9) stateless protocol conflicts with files being state-full by nature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) designed to share files over a network, not disks&lt;br /&gt;
&lt;br /&gt;
2) better scalability&lt;br /&gt;
&lt;br /&gt;
3) better security.&lt;br /&gt;
&lt;br /&gt;
4) minimize network traffic.&lt;br /&gt;
&lt;br /&gt;
5) less UNIX like&lt;br /&gt;
&lt;br /&gt;
6) plugin authentication&lt;br /&gt;
&lt;br /&gt;
7) needs more kernel storage due to complex commands&lt;br /&gt;
&lt;br /&gt;
8) inode concept replaced with fid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Group 3==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) cache assumption invalid.&lt;br /&gt;
&lt;br /&gt;
2) no locking&lt;br /&gt;
&lt;br /&gt;
3) bad security&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) cache assumption valid&lt;br /&gt;
&lt;br /&gt;
2) locking&lt;br /&gt;
&lt;br /&gt;
3) good security.&lt;br /&gt;
&lt;br /&gt;
==Group 4==&lt;br /&gt;
&lt;br /&gt;
==&lt;br /&gt;
Additional notes from the class discussion:&lt;br /&gt;
&lt;br /&gt;
Capturing some of Anil&#039;s Observations about NFS and AFS: The reason why NFS does not try to share at block level instead of file level is that sharing at block level is complicated from the implementation point of view. NFS use UDP as the transport protocol since UDP being a stateless protocol is in-line with the NFS design philosophy of not maintaining state information.  Security and unreliability issues in NFS are an implication of using RPC. RPC is a nice way for programming but RPC is not designed for networks (where flakiness is an inherent characteristic) which is better explained by the analogy that you never expect from a programming point of view your function call to fail(not to return) because of communication error.  AFS designers considered network as a bottle neck and tried to reduce the number of chatter over network by using caching. In Anil&#039;s opinion &#039;open&#039; and &#039;close&#039; operations in AFS were critical and the &#039;close&#039; operation assumes importance to the same proportions of a &#039;commit&#039; operation in a well-designed database system. Anil mentioned that security model of AFS is interesting in that rather than going for the UNIX access list based implementation AFS used a single sign on system based on Kerberos. In Anil&#039;s opinion cool thing about Kerberos is that idea of using tickets to get access. Another interesting fact that was mentioned was that irrespective of having better features compared to NFS, AFS did not get widely adopted. The reason for this was that the administrative mechanism for AFS was complex and it required highly trained/skilled people to setup AFS and it also required quite a number of day’s effort to set it up and maintain.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_10&amp;diff=18589</id>
		<title>DistOS 2014W Lecture 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_10&amp;diff=18589"/>
		<updated>2014-02-06T21:02:14Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: Additional notes from the class discussion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Context==&lt;br /&gt;
&lt;br /&gt;
== GFS ==&lt;br /&gt;
&lt;br /&gt;
* Very different because of the workload that it is desgined for.&lt;br /&gt;
** Because of the number of small files that have to be indexed for the web, etc., it is no longer practical to have a filesystem that stores these individually. Too much overhead. Punts problem to userspace, incl. record delimitation.&lt;br /&gt;
* Don&#039;t care about latency, surprising considering it&#039;s Google, the guys who change the TCP IW standard recommendations for latency.&lt;br /&gt;
* Mostly seeking through entire file.&lt;br /&gt;
* Paper from 2003, mentions still using 100BASE-T links.&lt;br /&gt;
* Data-heavy, metadata light. Contacting the metadata server is a rare event.&lt;br /&gt;
* Really good that they designed for unreliable hardware:&lt;br /&gt;
** All the replication&lt;br /&gt;
** Data checksumming&lt;br /&gt;
* Performance degrades for small random access workload; use other filesystem.&lt;br /&gt;
* Path of least resistance to scale, not to do something super CS-smart.&lt;br /&gt;
* Google used to re-index every month, swapping out indexes. Now, it&#039;s much more online. GFS is now just a layer to support a more dynamic layer.&lt;br /&gt;
&lt;br /&gt;
=== Segue on drives ===&lt;br /&gt;
&lt;br /&gt;
* Structure of GFS does match some other modern systems:&lt;br /&gt;
** Hard drives are like parallel tapes, very suited for streaming.&lt;br /&gt;
** Flash devices are log-structured too, but have an abstracting firmware. You want to do erasure in bulk, in the &#039;&#039;&#039;background&#039;&#039;&#039;. Used to be we needed specialized FS for MTDs to get better performance; though now we have better microcontrollers in some embedded systems to abstract away the hardware.&lt;br /&gt;
* Architectures that start big, often end up in the smallest things.&lt;br /&gt;
&lt;br /&gt;
== How other filesystems compare to GFS and Ceph ==&lt;br /&gt;
&lt;br /&gt;
* Data and metadata are held together.&lt;br /&gt;
** Doesn&#039;t account for different access patterns:&lt;br /&gt;
*** Data → big, long transfers&lt;br /&gt;
*** Metadata → small, low latency&lt;br /&gt;
** Can&#039;t scale separately&lt;br /&gt;
* By design, a file is a fraction of the size of a server&lt;br /&gt;
** Huge files spread over many servers not even in the cards for NFS&lt;br /&gt;
** Meant for small problems, not web-scale&lt;br /&gt;
*** Google has a copy of the publicly accessible internet&lt;br /&gt;
**** Their strategy is to copy the internet to index it&lt;br /&gt;
**** Insane → insane filesystem&lt;br /&gt;
* Designed for lower latency&lt;br /&gt;
* Designed for POSIX semantics; how the requirements that lead to the ‘standard’ evolved&lt;br /&gt;
* Even mainframes, scale-up solutions, ultra-reliable systems, with data sets bigger than RAM don&#039;t have this scale.&lt;br /&gt;
* Reliability was a property of the host, not the network&lt;br /&gt;
* Point-to-point access; much less load-balancing, even in AFS&lt;br /&gt;
** Single point of entry, single point of failure, bottleneck&lt;br /&gt;
* No notion of data replication.&lt;br /&gt;
&lt;br /&gt;
==Ceph==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ceph is crazy and tries to do everything&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unlike GFS, distributes metadata, not just for read-only copies&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unlike GFS, the OSDs have some intelligence, and autonomously distribute the data, rather than being controlled by a master.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Uses hashing in the distribution process to &#039;&#039;&#039;uniformly&#039;&#039;&#039; distribute data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;The actual algorithm for distributing data is as follows:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;math&amp;gt;file + offset → hash(object ID) → CRUSH(placement group) → OSD&amp;lt;/math&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Each client has knowledge of the entire storage network.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Tracks failure groups (same breaker, switch, etc.), hot data, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Number of replicas is changeable on the fly, but the placement group is not&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For example, if every client on the planet is accessing the same file, you can scale out for that data.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You don&#039;t ask where to go, you just go, which makes this very scalable&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;CRUSH is sufficiently advanced to be called magic.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;math&amp;gt;O(log n)&amp;lt;/math&amp;gt; of the size of the data&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;CPUs stupidly fast, so the above is of minimal overhead, whereas the network, despite being fast, has latency, etc. Computation scales much better than communication.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Storage is composed of variable-length atoms&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ==&lt;br /&gt;
Additional notes from the class discussion:&lt;br /&gt;
&lt;br /&gt;
In Anil’s opinion “how file system size compares to the server storage size?” is a key parameter that distinguishes GFS, NFS designs from the early file systems NFS, AFS, Plan 9. In the early files system designs, file system size was a fraction of the server storage size where as in GFS and Ceph the file system size can be of several times magnitude than that of the server. One key aspect in the Ceph design is the attempt to replace communication with computation by using hashing based mechanism CRUSH. Following line from Anil epitomizes the general approach that is followed in the field of Computer Science “If one abstraction does not work stick another one in”.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_8&amp;diff=18588</id>
		<title>DistOS 2014W Lecture 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_8&amp;diff=18588"/>
		<updated>2014-02-06T20:40:38Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: formatting change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Group 1==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) per operating traffic&lt;br /&gt;
&lt;br /&gt;
2) rpc based&lt;br /&gt;
&lt;br /&gt;
3) unreliable&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) design for 5000 clients&lt;br /&gt;
&lt;br /&gt;
2) high integrity.&lt;br /&gt;
&lt;br /&gt;
==Group 2==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) designed to share disks over a network, not files&lt;br /&gt;
&lt;br /&gt;
2) more UNIX like&lt;br /&gt;
&lt;br /&gt;
3) portable&lt;br /&gt;
&lt;br /&gt;
4) use UDP&lt;br /&gt;
&lt;br /&gt;
5) it is not minimize network traffic.&lt;br /&gt;
&lt;br /&gt;
6) used VNODE&lt;br /&gt;
&lt;br /&gt;
7) not have much hardware equipment&lt;br /&gt;
&lt;br /&gt;
8) later versions took on features of AFS&lt;br /&gt;
&lt;br /&gt;
9) stateless protocol conflicts with files being state-full by nature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) designed to share files over a network, not disks&lt;br /&gt;
&lt;br /&gt;
2) better scalability&lt;br /&gt;
&lt;br /&gt;
3) better security.&lt;br /&gt;
&lt;br /&gt;
4) minimize network traffic.&lt;br /&gt;
&lt;br /&gt;
5) less UNIX like&lt;br /&gt;
&lt;br /&gt;
6) plugin authentication&lt;br /&gt;
&lt;br /&gt;
7) needs more kernel storage due to complex commands&lt;br /&gt;
&lt;br /&gt;
8) inode concept replaced with fid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Group 3==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) cache assumption invalid.&lt;br /&gt;
&lt;br /&gt;
2) no locking&lt;br /&gt;
&lt;br /&gt;
3) bad security&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) cache assumption valid&lt;br /&gt;
&lt;br /&gt;
2) locking&lt;br /&gt;
&lt;br /&gt;
3) good security.&lt;br /&gt;
&lt;br /&gt;
==Group 4==&lt;br /&gt;
&lt;br /&gt;
== ==&lt;br /&gt;
Additional notes from the class discussion:&lt;br /&gt;
&lt;br /&gt;
Capturing some of Anil&#039;s Observations about NFS and AFS: The reason why NFS does not try to share at block level instead of file level is that sharing at block level is complicated from the implementation point of view. NFS use UDP as the transport protocol since UDP being a stateless protocol is in-line with the NFS design philosophy of not maintaining state information.  Security and unreliability issues in NFS are an implication of using RPC. RPC is a nice way for programming but RPC is not designed for networks (where flakiness is an inherent characteristic) which is better explained by the analogy that you never expect from a programming point of view your function call to fail(not to return) because of communication error.  AFS designers considered network as a bottle neck and tried to reduce the number of chatter over network by using caching. In Anil&#039;s opinion &#039;open&#039; and &#039;close&#039; operations in AFS were critical and the &#039;close&#039; operation assumes importance to the same proportions of a &#039;commit&#039; operation in a well-designed database system. Anil mentioned that security model of AFS is interesting in that rather than going for the UNIX access list based implementation AFS used a single sign on system based on Kerberos. In Anil&#039;s opinion cool thing about Kerberos is that idea of using tickets to get access. Another interesting fact that was mentioned was that irrespective of having better features compared to NFS, AFS did not get widely adopted. The reason for this was that the administrative mechanism for AFS was complex and it required highly trained/skilled people to setup AFS and it also required quite a number of day’s effort to set it up and maintain.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_8&amp;diff=18587</id>
		<title>DistOS 2014W Lecture 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_8&amp;diff=18587"/>
		<updated>2014-02-06T20:40:02Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: formatting change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Group 1==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) per operating traffic&lt;br /&gt;
&lt;br /&gt;
2) rpc based&lt;br /&gt;
&lt;br /&gt;
3) unreliable&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) design for 5000 clients&lt;br /&gt;
&lt;br /&gt;
2) high integrity.&lt;br /&gt;
&lt;br /&gt;
==Group 2==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) designed to share disks over a network, not files&lt;br /&gt;
&lt;br /&gt;
2) more UNIX like&lt;br /&gt;
&lt;br /&gt;
3) portable&lt;br /&gt;
&lt;br /&gt;
4) use UDP&lt;br /&gt;
&lt;br /&gt;
5) it is not minimize network traffic.&lt;br /&gt;
&lt;br /&gt;
6) used VNODE&lt;br /&gt;
&lt;br /&gt;
7) not have much hardware equipment&lt;br /&gt;
&lt;br /&gt;
8) later versions took on features of AFS&lt;br /&gt;
&lt;br /&gt;
9) stateless protocol conflicts with files being state-full by nature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) designed to share files over a network, not disks&lt;br /&gt;
&lt;br /&gt;
2) better scalability&lt;br /&gt;
&lt;br /&gt;
3) better security.&lt;br /&gt;
&lt;br /&gt;
4) minimize network traffic.&lt;br /&gt;
&lt;br /&gt;
5) less UNIX like&lt;br /&gt;
&lt;br /&gt;
6) plugin authentication&lt;br /&gt;
&lt;br /&gt;
7) needs more kernel storage due to complex commands&lt;br /&gt;
&lt;br /&gt;
8) inode concept replaced with fid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Group 3==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) cache assumption invalid.&lt;br /&gt;
&lt;br /&gt;
2) no locking&lt;br /&gt;
&lt;br /&gt;
3) bad security&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) cache assumption valid&lt;br /&gt;
&lt;br /&gt;
2) locking&lt;br /&gt;
&lt;br /&gt;
3) good security.&lt;br /&gt;
&lt;br /&gt;
==Group 4==&lt;br /&gt;
&lt;br /&gt;
==&lt;br /&gt;
Additional notes from the class discussion:&lt;br /&gt;
&lt;br /&gt;
Capturing some of Anil&#039;s Observations about NFS and AFS: The reason why NFS does not try to share at block level instead of file level is that sharing at block level is complicated from the implementation point of view. NFS use UDP as the transport protocol since UDP being a stateless protocol is in-line with the NFS design philosophy of not maintaining state information.  Security and unreliability issues in NFS are an implication of using RPC. RPC is a nice way for programming but RPC is not designed for networks (where flakiness is an inherent characteristic) which is better explained by the analogy that you never expect from a programming point of view your function call to fail(not to return) because of communication error.  AFS designers considered network as a bottle neck and tried to reduce the number of chatter over network by using caching. In Anil&#039;s opinion &#039;open&#039; and &#039;close&#039; operations in AFS were critical and the &#039;close&#039; operation assumes importance to the same proportions of a &#039;commit&#039; operation in a well-designed database system. Anil mentioned that security model of AFS is interesting in that rather than going for the UNIX access list based implementation AFS used a single sign on system based on Kerberos. In Anil&#039;s opinion cool thing about Kerberos is that idea of using tickets to get access. Another interesting fact that was mentioned was that irrespective of having better features compared to NFS, AFS did not get widely adopted. The reason for this was that the administrative mechanism for AFS was complex and it required highly trained/skilled people to setup AFS and it also required quite a number of day’s effort to set it up and maintain.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_8&amp;diff=18586</id>
		<title>DistOS 2014W Lecture 8</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_8&amp;diff=18586"/>
		<updated>2014-02-06T20:39:27Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: Additional notes from the class discussion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Group 1==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) per operating traffic&lt;br /&gt;
&lt;br /&gt;
2) rpc based&lt;br /&gt;
&lt;br /&gt;
3) unreliable&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) design for 5000 clients&lt;br /&gt;
&lt;br /&gt;
2) high integrity.&lt;br /&gt;
&lt;br /&gt;
==Group 2==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) designed to share disks over a network, not files&lt;br /&gt;
&lt;br /&gt;
2) more UNIX like&lt;br /&gt;
&lt;br /&gt;
3) portable&lt;br /&gt;
&lt;br /&gt;
4) use UDP&lt;br /&gt;
&lt;br /&gt;
5) it is not minimize network traffic.&lt;br /&gt;
&lt;br /&gt;
6) used VNODE&lt;br /&gt;
&lt;br /&gt;
7) not have much hardware equipment&lt;br /&gt;
&lt;br /&gt;
8) later versions took on features of AFS&lt;br /&gt;
&lt;br /&gt;
9) stateless protocol conflicts with files being state-full by nature.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) designed to share files over a network, not disks&lt;br /&gt;
&lt;br /&gt;
2) better scalability&lt;br /&gt;
&lt;br /&gt;
3) better security.&lt;br /&gt;
&lt;br /&gt;
4) minimize network traffic.&lt;br /&gt;
&lt;br /&gt;
5) less UNIX like&lt;br /&gt;
&lt;br /&gt;
6) plugin authentication&lt;br /&gt;
&lt;br /&gt;
7) needs more kernel storage due to complex commands&lt;br /&gt;
&lt;br /&gt;
8) inode concept replaced with fid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Group 3==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) cache assumption invalid.&lt;br /&gt;
&lt;br /&gt;
2) no locking&lt;br /&gt;
&lt;br /&gt;
3) bad security&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AFS:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1) cache assumption valid&lt;br /&gt;
&lt;br /&gt;
2) locking&lt;br /&gt;
&lt;br /&gt;
3) good security.&lt;br /&gt;
&lt;br /&gt;
==Group 4==&lt;br /&gt;
&lt;br /&gt;
====&lt;br /&gt;
Additional notes from the class discussion:&lt;br /&gt;
&lt;br /&gt;
Capturing some of Anil&#039;s Observations about NFS and AFS: The reason why NFS does not try to share at block level instead of file level is that sharing at block level is complicated from the implementation point of view. NFS use UDP as the transport protocol since UDP being a stateless protocol is in-line with the NFS design philosophy of not maintaining state information.  Security and unreliability issues in NFS are an implication of using RPC. RPC is a nice way for programming but RPC is not designed for networks (where flakiness is an inherent characteristic) which is better explained by the analogy that you never expect from a programming point of view your function call to fail(not to return) because of communication error.  AFS designers considered network as a bottle neck and tried to reduce the number of chatter over network by using caching. In Anil&#039;s opinion &#039;open&#039; and &#039;close&#039; operations in AFS were critical and the &#039;close&#039; operation assumes importance to the same proportions of a &#039;commit&#039; operation in a well-designed database system. Anil mentioned that security model of AFS is interesting in that rather than going for the UNIX access list based implementation AFS used a single sign on system based on Kerberos. In Anil&#039;s opinion cool thing about Kerberos is that idea of using tickets to get access. Another interesting fact that was mentioned was that irrespective of having better features compared to NFS, AFS did not get widely adopted. The reason for this was that the administrative mechanism for AFS was complex and it required highly trained/skilled people to setup AFS and it also required quite a number of day’s effort to set it up and maintain.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_6&amp;diff=18526</id>
		<title>DistOS 2014W Lecture 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_6&amp;diff=18526"/>
		<updated>2014-01-29T22:07:07Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: minor edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;the point form notes for this lecture could be turned into full sentences/paragraphs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Group Discussion on &amp;quot;The Early Web&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Questions to discuss:&lt;br /&gt;
&lt;br /&gt;
# How do you think the web would have been if not like the present way? &lt;br /&gt;
# What kind of infrastructure changes would you like to make? &lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
: Relatively satisfied with the present structure of the web some changes suggested are in the below areas: &lt;br /&gt;
* Make use of the greater potential of Protocols &lt;br /&gt;
* More communication and interaction capabilities.&lt;br /&gt;
* Implementation changes in the present payment method systems. Example usage of &amp;quot;Micro-computation&amp;quot; - a discussion we would get back to in future classes. Also, Cryptographic currencies.&lt;br /&gt;
* Augmented reality.&lt;br /&gt;
* More towards individual privacy. &lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
==== Problem of unstructured information ====&lt;br /&gt;
A large portion of the web serves content that is overwhelmingly concerned about presentation rather than structuring content. Tim Berner-Lees himself bemoaned the death of the semantic web. His original vision of it was as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Code from Wikipedia&#039;s article on the semantic web, except for the block quoting form, which this MediaWiki instance doens&#039;t seem to support. --&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;I have a dream for the Web [in which computers] become capable of analyzing all the data on the Web&amp;amp;nbsp;– the content, links, and transactions between people and computers. A &amp;quot;Semantic Web&amp;quot;, which makes this possible, has yet to emerge, but when it does, the day-to-day mechanisms of trade, bureaucracy and our daily lives will be handled by machines talking to machines. The &amp;quot;intelligent agents&amp;quot; people have touted for ages will finally materialize.&amp;lt;ref&amp;gt;{{cite book |last=Berners-Lee |first=Tim |authorlink=Tim Berners-Lee |coauthors=Fischetti, Mark |title=Weaving the Web |publisher=HarperSanFrancisco |year=1999 |pages=chapter 12 |isbn=978-0-06-251587-2 |nopp=true }}&amp;lt;/ref&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For this vision to be true, information arguably needs to be structured, maybe even classified. The idea of a universal information classification system has been floated. The modern web is mostly developed by software developers and similar, not librarians and the like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TODO: Yahoo blurb. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, how does one differentiate satire from fact?&lt;br /&gt;
&lt;br /&gt;
==== Valuation and deduplication of information ====&lt;br /&gt;
Another problem common with the current wwww is the duplication of information. Redundancy is not in itself harmful to increase the availability of information, but is ad-hoc duplication of the information itself?&lt;br /&gt;
&lt;br /&gt;
One then comes to the problem of assigning a value to the information found therein. How does one rate information, and according to what criteria? How does one authenticate the information? Often, popularity is used as an indicator of veracity, almost in a sophistic manner. See excessive reliance on Google page ranking or Reddit score for various types of information consumption for research or news consumption respectively.&lt;br /&gt;
&lt;br /&gt;
=== On the current infrastructure ===&lt;br /&gt;
The current &amp;lt;em&amp;gt;internet&amp;lt;/em&amp;gt; infrastructure should remain as is, at least in countries with not just a modicum of freedom of access to information. Centralization of of control of access to information is a terrible power. See China and parts of the Middle-East. On that note, what can be said of popular sites, such as Google or Wikipedia that serve as the main entry point for many access patterns?&lt;br /&gt;
&lt;br /&gt;
The problem, if any, in the current web infrastructure is of the web itself, not the internet.&lt;br /&gt;
&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
* What we want to keep &lt;br /&gt;
** Linking mechanisms&lt;br /&gt;
** Minimum permissions to publish&lt;br /&gt;
* What we don&#039;t like&lt;br /&gt;
** Relying on one source for document &lt;br /&gt;
** Privacy links for security&lt;br /&gt;
* Proposal &lt;br /&gt;
** Peer-peer to distributed mechanisms for documenting&lt;br /&gt;
** Reverse links with caching - distributed cache&lt;br /&gt;
** More availability for user - what happens when system fails? &lt;br /&gt;
** Key management to be considered - Is it good to have centralized or distributed mechanism? &lt;br /&gt;
&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
* An idea of web searching for us &lt;br /&gt;
* A suggestion of a different web if it would have been implemented by &amp;quot;AI&amp;quot; people&lt;br /&gt;
** AI programs searching for data - A notion already being implemented by Google slowly.&lt;br /&gt;
* Generate report forums&lt;br /&gt;
* HTML equivalent is inspired by the AI communication&lt;br /&gt;
* Higher semantics apart from just indexing the data&lt;br /&gt;
** Problem : &amp;quot;How to bridge the semantic gap?&amp;quot;&lt;br /&gt;
** Search for more data patterns&lt;br /&gt;
&lt;br /&gt;
== Group design exercise — The web that could be ==&lt;br /&gt;
&lt;br /&gt;
* “The web that wasn&#039;t” mentioned the moans of librarians.&lt;br /&gt;
* A universal classification system is needed.&lt;br /&gt;
* The training overhead of classifiers (e.g., librarians) is high. See the master&#039;s that a librarian would need.&lt;br /&gt;
* More structured content, both classification, and organization&lt;br /&gt;
* Current indexing by crude brute-force searching for words, etc., rather than searching metadata&lt;br /&gt;
* Information doesn&#039;t have the same persistence, see bitrot and Vint Cerf&#039;s talk.&lt;br /&gt;
* Too concerned with presentation now.&lt;br /&gt;
* Tim Berner-Lees bemoaning the death of the semantic web.&lt;br /&gt;
* The problem of information duplication when information gets redistributed across the web. However, we do want redundancy.&lt;br /&gt;
* Too much developed by software developers&lt;br /&gt;
* Too reliant on Google for web structure&lt;br /&gt;
** See search-engine optimization&lt;br /&gt;
* Problem of authentication (of the information, not the presenter)&lt;br /&gt;
** Too dependent at times on the popularity of a site, almost in a sophistic manner.&lt;br /&gt;
** See Reddit&lt;br /&gt;
* How do you programmatically distinguish satire from fact&lt;br /&gt;
* The web&#039;s structure is also “shaped by inbound links but would be nice a bit more”&lt;br /&gt;
* Infrastructure doesn&#039;t need to change per se.&lt;br /&gt;
** The distributed architecture should still stay. Centralization of control of allowed information and access is terrible power. See China and the Middle-East.&lt;br /&gt;
** Information, for the most part, in itself, exists centrally (as per-page), though communities (to use a generic term) are distributed.&lt;br /&gt;
* Need more sophisticated natural language processing.&lt;br /&gt;
&lt;br /&gt;
== Class discussion ==&lt;br /&gt;
&lt;br /&gt;
Focusing on vision, not the mechanism.&lt;br /&gt;
&lt;br /&gt;
* Reverse linking&lt;br /&gt;
* Distributed content distribution (glorified cache)&lt;br /&gt;
** Both for privacy and redunancy reasons&lt;br /&gt;
** Suggested centralized content certification, but doesn&#039;t address the problem of root of trust and distributed consistency checking.&lt;br /&gt;
*** Distributed key management is a holy grail&lt;br /&gt;
*** What about detecting large-scale subversion attempts, like in China&lt;br /&gt;
* What is the new revenue model?&lt;br /&gt;
** What was TBL&#039;s revenue model (tongue-in-cheek, none)?&lt;br /&gt;
** Organisations like Google monetized the internet, and this mechanism could destroy their ability to do so.&lt;br /&gt;
* Search work is semi-distributed. Suggested letting the web do the work for you.&lt;br /&gt;
* Trying to structure content in a manner simultaneously palatable to both humans and machines.&lt;br /&gt;
* Using spare CPU time on servers for natural language processing (or other AI) of cached or locally available resources.&lt;br /&gt;
* Imagine a smushed Wolfram Alpha, Google, Wikipedia, and Watson, and then distributed over the net.&lt;br /&gt;
* The document was TBL&#039;s idea of the atom of content, whereas nowaday we really need something more granular.&lt;br /&gt;
* We want to extract higher-level semantics.&lt;br /&gt;
* Google may not be pure keyword search anymore. It is essentially AI now, but we still struggle with expressing what we want to Google.&lt;br /&gt;
* What about the adversarial aspect of content hosters, vying for attention?&lt;br /&gt;
* People do actively try to fool you.&lt;br /&gt;
* Compare to Google News, though that is very specific to that domain. Their vision is a semantic web, but they are incrementally building it.&lt;br /&gt;
* In a scary fashion, Google is one of the central points of failure of the web. Even scarier is less technically competent people who depend on Facebook for that.&lt;br /&gt;
* There is a semantic gap between how we express and query information, and how AI understands it.&lt;br /&gt;
* Can think of Facebook as a distributed human search infrastructure.&lt;br /&gt;
* A core service of an operating system is locating information. &#039;&#039;&#039;Search is infrastructure.&#039;&#039;&#039;&lt;br /&gt;
* The problem is not purely technical. There are political and social aspects.&lt;br /&gt;
** Searching for a file on a local filesystem should have a unambiguous answer.&lt;br /&gt;
** Asking the web is a different thing. “What is the best chocolate bar?”&lt;br /&gt;
* Is the web a network database, as understood in COMP 3005, which we consider harmful.&lt;br /&gt;
* For two-way links, there is the problem of restructuring data and all the dependencies.&lt;br /&gt;
* Privacy issues when tracing paths across the web.&lt;br /&gt;
* What about the problem of information revocation?&lt;br /&gt;
* Need more augmented reality and distributed and micro payment systems.&lt;br /&gt;
* We need distributed, mutually untrusting social networks.&lt;br /&gt;
** Now we have the problem of storage and computation, but also take away some of of the monetizationable aspect.&lt;br /&gt;
* Distribution is not free. It is very expensive in very funny ways.&lt;br /&gt;
* The dream of harvesting all the computational power of the internet is not new.&lt;br /&gt;
** Startups have come and gone many times over that problem.&lt;br /&gt;
* Google&#039;s indexers understands quite well many documents on the web. However, it only &#039;&#039;&#039;presents&#039;&#039;&#039; a primitive keyword-like interface. It doesn&#039;t expose the ontology.&lt;br /&gt;
* Organising information does not necessarily mean applying an ontology to it.&lt;br /&gt;
* The organisational methods we now use don&#039;t use ontologies, but rather are supplemented by them.&lt;br /&gt;
&lt;br /&gt;
Adding couple of related points Anil mentioned during the discussion:&lt;br /&gt;
Distributed key management is a holy grail no one has ever managed to get it working. Now a days databases have become important building blocks of the Distributed Operating System. Anil stressed the fact that Databases can in fact be considered as an OS service these days. The question “How you navigate the complex information space?” has remained a prominent question that The Web have always faced.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_7&amp;diff=18524</id>
		<title>DistOS 2014W Lecture 7</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_7&amp;diff=18524"/>
		<updated>2014-01-28T19:10:17Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: minor edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project ==&lt;br /&gt;
&lt;br /&gt;
We discussed moving the proposal due date back a week. We also discussed spending the class prior to that date discussing the primary papers people had chosen in order to provide preliminary feedback. Anil spent some time going through the papers from OSDI12 and discussing which ones would make good projects and why.&lt;br /&gt;
&lt;br /&gt;
* Pick a primary paper.&lt;br /&gt;
* Find papers that cite that paper, papers it cites, etc. to collect a body of related work.&lt;br /&gt;
* Don&#039;t just give a history, tell a story!&lt;br /&gt;
* Do not try to summarize papers.&lt;br /&gt;
* Try to identify a pattern, a common ground between the papers.&lt;br /&gt;
&lt;br /&gt;
== Unix and Plan 9 ==&lt;br /&gt;
&lt;br /&gt;
UNIX was built as &amp;quot;a castrated version of Multics&amp;quot;, which was a very complex system. Multics was, arguably, so far ahead of its time that we are only just achieving their ambitions now. Unix was much more modest, and therefore much more achievable and successful. Just enough infrastructure to avoid reinventing the wheel. Just a couple of programmers making something for their own use. Unix was not designed as product or commercial entity at all. It was licensed out because AT&amp;amp;T was under severe antitrust scrutiny at the time.&lt;br /&gt;
&lt;br /&gt;
They wanted few, simple abstractions so they made everything a file. Berkeley promptly broke this abstraction by introducing sockets for networking. Plan 9 finally introduced networking using the right abstractions, but was too late. Arguably the reason the BSD folks didn&#039;t use the file abstraction was because of the difference in reliability. SUN microsystems licensed Berkeley Unix and commercialized it. Files are generally reliable, and failures with them are catastrophic so many applications simply didn&#039;t include logic to handle such IO errors. Networks are much less reliable and applications have to be able to deal gracefully with timeouts and other errors.&lt;br /&gt;
&lt;br /&gt;
In Anil&#039;s opinion Plan 9&#039;s design of using file abstraction to represent Network was n&#039;t a good design idea. The reason being file I/O breaking is uncommon but Network has an inherent flakiness and loss of connectivity is normal in networks. Using file system abstractions to represent Network does n&#039;t properly takes care of the flakiness inherent in the Network. Put in other words Network does n&#039;t have the reliability characteristics of mass storage and how to deal with this fact while using the file abstraction to deal with network was a major question which was left unanswered by the Plan 9 designers. Anil also added that Plan 9 was a elegant attempt at representing everything using file abstraction but they were trying too hard with this approach as pointed out above. In distributed systems the best approach to use is - if things have different semantics then they should have abstractions that reflect their characteristics, the APIs should reflect their characteristics rather than hide it away and try to pretend or treat them as if they were having characteristics of something else in an attempt towards too much generalizations. In Anil&#039;s opinion another reason why Plan 9 was not widely adopted was that it was a bit late to the scene, by the time Plan 9 came out in the 90s systems running UNIX with networking was widely adopted driven by the success of Internet.&lt;br /&gt;
&lt;br /&gt;
Another valuable point Anil mentioned was that for a technology to get adopted and become successful it should serve or address a niche area for which there are no successful incumbents.&lt;br /&gt;
&lt;br /&gt;
== Simon&#039;s Notes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* project proposal&lt;br /&gt;
** We will discuss the primary papers we&#039;ve chosen on Thursday, February 6th&lt;br /&gt;
* possible papers, remember to pick a topic you have some chance of understanding&lt;br /&gt;
** OSDI 2012 &lt;br /&gt;
*** datacenter (filesystems for doing X, heat management, etc...)&lt;br /&gt;
*** web stuff&lt;br /&gt;
*** distributed shared memory&lt;br /&gt;
*** distributed network I/O infrastructure&lt;br /&gt;
*** distributed databases (potentially)&lt;br /&gt;
*** anonymity systems&lt;br /&gt;
** Pick a conference (usenix is pretty systems oriented, maybe Lisa), go through their papers and find something interesting&lt;br /&gt;
** tell a story that connects several papers in the topic you choose&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* UNIX&lt;br /&gt;
** Relation to multics&lt;br /&gt;
*** Multics was a complex system which was bad because it was used less, slower, etc...&lt;br /&gt;
*** Multics was not for end users, it was designed to support &amp;quot;utility computing&amp;quot; wherein computation was a service to be charged for&lt;br /&gt;
** What?&lt;br /&gt;
*** Just enough infrastructure to run my programs&lt;br /&gt;
*** It was really just supposed to be used by programmers&lt;br /&gt;
*** &amp;quot;By programmers for programmers&amp;quot;&lt;br /&gt;
*** Software and source licensed for a nominal fee&lt;br /&gt;
*** &amp;quot;Everything is a file&amp;quot;&lt;br /&gt;
*** only difference was files that you could use seek or ones you couldn&#039;t&lt;br /&gt;
*** simple abstractions&lt;br /&gt;
** Networking&lt;br /&gt;
*** Berkeley folks made sockets, not files which upset the folks at Bell labs&lt;br /&gt;
*** Networks aren&#039;t exactly like files because they&#039;re unreliable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Plan 9&lt;br /&gt;
** major ideas&lt;br /&gt;
*** procfs, later adopted by linux&lt;br /&gt;
** summary&lt;br /&gt;
*** a very elegant attempt to follow the philosophy &amp;quot;everything is a file&amp;quot;&lt;br /&gt;
*** trying too hard&lt;br /&gt;
** opinions&lt;br /&gt;
*** things that have different failure modes deserve different APIs&lt;br /&gt;
** niche?&lt;br /&gt;
*** they never found one&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Tangent about programming languages&lt;br /&gt;
** C was for system programming&lt;br /&gt;
** Java was for enterprise programming&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_7&amp;diff=18523</id>
		<title>DistOS 2014W Lecture 7</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_7&amp;diff=18523"/>
		<updated>2014-01-28T19:08:54Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: additional notes from the lecture&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project ==&lt;br /&gt;
&lt;br /&gt;
We discussed moving the proposal due date back a week. We also discussed spending the class prior to that date discussing the primary papers people had chosen in order to provide preliminary feedback. Anil spent some time going through the papers from OSDI12 and discussing which ones would make good projects and why.&lt;br /&gt;
&lt;br /&gt;
* Pick a primary paper.&lt;br /&gt;
* Find papers that cite that paper, papers it cites, etc. to collect a body of related work.&lt;br /&gt;
* Don&#039;t just give a history, tell a story!&lt;br /&gt;
* Do not try to summarize papers.&lt;br /&gt;
* Try to identify a pattern, a common ground between the papers.&lt;br /&gt;
&lt;br /&gt;
== Unix and Plan 9 ==&lt;br /&gt;
&lt;br /&gt;
UNIX was built as &amp;quot;a castrated version of Multics&amp;quot;, which was a very complex system. Multcs was, arguably, so far ahead of its time that we are only just achieving their ambitions now. Unix was much more modest, and therefore much more achievable and successful. Just enough infrastructure to avoid reinventing the wheel. Just a couple of programmers making something for their own use. Unix was not designed as product or commercial entity at all. It was licensed out because AT&amp;amp;T was under severe antitrust scrutiny at the time.&lt;br /&gt;
&lt;br /&gt;
They wanted few, simple abstractions so they made everything a file. Berkeley promptly broke this abstraction by introducing sockets for networking. Plan 9 finally introduced networking using the right abstractions, but was too late. Arguably the reason the BSD folks didn&#039;t use the file abstraction was because of the difference in reliability. SUN microsystems licensed Berkeley Unix and commercialized it. Files are generally reliable, and failures with them are catastrophic so many applications simply didn&#039;t include logic to handle such IO errors. Networks are much less reliable and applications have to be able to deal gracefully with timeouts and other errors.&lt;br /&gt;
&lt;br /&gt;
In Anil&#039;s opinion Plan 9&#039;s design of using file abstraction to represent Network was n&#039;t a good design idea. The reason being file I/O breaking is uncommon but Network has an inherent flakiness and loss of connectivity is normal in networks. Using file system abstractions to represent Network does n&#039;t properly takes care of the flakiness inherent in the Network. Put in other words Network does n&#039;t have the reliability characteristics of mass storage and how to deal with this fact while using the file abstraction to deal with network was a major question which was left unanswered by the Plan 9 designers. Anil also added that Plan 9 was a elegant attempt at representing everything using file abstraction but they were trying too hard with this approach as pointed out above. In distributed systems the best approach to use is - if things have different semantics then they should have abstractions that reflect their characteristics, the APIs should reflect their characteristics rather than hide it away and try to pretend or treat them as if they were having characteristics of something else in an attempt towards too much generalizations. In Anil&#039;s opinion another reason why Plan 9 was not widely adopted was that it was a bit late to the scene, by the time Plan 9 came out in the 90s systems running UNIX with networking was widely adopted driven by the success of Internet.&lt;br /&gt;
&lt;br /&gt;
Another valuable point Anil mentioned was that for a technology to get adopted and become successful it should serve or address a niche area for which there are no successful incumbents.&lt;br /&gt;
&lt;br /&gt;
== Simon&#039;s Notes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* project proposal&lt;br /&gt;
** We will discuss the primary papers we&#039;ve chosen on Thursday, February 6th&lt;br /&gt;
* possible papers, remember to pick a topic you have some chance of understanding&lt;br /&gt;
** OSDI 2012 &lt;br /&gt;
*** datacenter (filesystems for doing X, heat management, etc...)&lt;br /&gt;
*** web stuff&lt;br /&gt;
*** distributed shared memory&lt;br /&gt;
*** distributed network I/O infrastructure&lt;br /&gt;
*** distributed databases (potentially)&lt;br /&gt;
*** anonymity systems&lt;br /&gt;
** Pick a conference (usenix is pretty systems oriented, maybe Lisa), go through their papers and find something interesting&lt;br /&gt;
** tell a story that connects several papers in the topic you choose&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* UNIX&lt;br /&gt;
** Relation to multics&lt;br /&gt;
*** Multics was a complex system which was bad because it was used less, slower, etc...&lt;br /&gt;
*** Multics was not for end users, it was designed to support &amp;quot;utility computing&amp;quot; wherein computation was a service to be charged for&lt;br /&gt;
** What?&lt;br /&gt;
*** Just enough infrastructure to run my programs&lt;br /&gt;
*** It was really just supposed to be used by programmers&lt;br /&gt;
*** &amp;quot;By programmers for programmers&amp;quot;&lt;br /&gt;
*** Software and source licensed for a nominal fee&lt;br /&gt;
*** &amp;quot;Everything is a file&amp;quot;&lt;br /&gt;
*** only difference was files that you could use seek or ones you couldn&#039;t&lt;br /&gt;
*** simple abstractions&lt;br /&gt;
** Networking&lt;br /&gt;
*** Berkeley folks made sockets, not files which upset the folks at Bell labs&lt;br /&gt;
*** Networks aren&#039;t exactly like files because they&#039;re unreliable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Plan 9&lt;br /&gt;
** major ideas&lt;br /&gt;
*** procfs, later adopted by linux&lt;br /&gt;
** summary&lt;br /&gt;
*** a very elegant attempt to follow the philosophy &amp;quot;everything is a file&amp;quot;&lt;br /&gt;
*** trying too hard&lt;br /&gt;
** opinions&lt;br /&gt;
*** things that have different failure modes deserve different APIs&lt;br /&gt;
** niche?&lt;br /&gt;
*** they never found one&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Tangent about programming languages&lt;br /&gt;
** C was for system programming&lt;br /&gt;
** Java was for enterprise programming&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_7&amp;diff=18522</id>
		<title>DistOS 2014W Lecture 7</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_7&amp;diff=18522"/>
		<updated>2014-01-28T18:59:26Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: additional notes from the lecture&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project ==&lt;br /&gt;
&lt;br /&gt;
We discussed moving the proposal due date back a week. We also discussed spending the class prior to that date discussing the primary papers people had chosen in order to provide preliminary feedback. Anil spent some time going through the papers from OSDI12 and discussing which ones would make good projects and why.&lt;br /&gt;
&lt;br /&gt;
* Pick a primary paper.&lt;br /&gt;
* Find papers that cite that paper, papers it cites, etc. to collect a body of related work.&lt;br /&gt;
* Don&#039;t just give a history, tell a story!&lt;br /&gt;
* Do not try to summarize papers.&lt;br /&gt;
* Try to identify a pattern, a common ground between the papers.&lt;br /&gt;
&lt;br /&gt;
== Unix and Plan 9 ==&lt;br /&gt;
&lt;br /&gt;
UNIX was built as &amp;quot;a castrated version of Multics&amp;quot;, which was a very complex system. Multcs was, arguably, so far ahead of its time that we are only just achieving their ambitions now. Unix was much more modest, and therefore much more achievable and successful. Just enough infrastructure to avoid reinventing the wheel. Just a couple of programmers making something for their own use. Unix was not designed as product or commercial entity at all. It was licensed out because AT&amp;amp;T was under severe antitrust scrutiny at the time.&lt;br /&gt;
&lt;br /&gt;
They wanted few, simple abstractions so they made everything a file. Berkeley promptly broke this abstraction by introducing sockets for networking. Plan 9 finally introduced networking using the right abstractions, but was too late. Arguably the reason the BSD folks didn&#039;t use the file abstraction was because of the difference in reliability. SUN microsystems licensed Berkeley Unix and commercialized it. Files are generally reliable, and failures with them are catastrophic so many applications simply didn&#039;t include logic to handle such IO errors. Networks are much less reliable and applications have to be able to deal gracefully with timeouts and other errors.&lt;br /&gt;
&lt;br /&gt;
In Anil&#039;s opinion Plan 9&#039;s design of using file abstraction to represent Network was n&#039;t a good design idea. The reason being file I/O breaking is uncommon but Network has an inherent flakiness and loss of connectivity is normal in networks. Using file system abstractions to represent Network does n&#039;t properly takes care of the flakiness inherent in the Network. Put in other words Network does n&#039;t have the reliability characteristics of mass storage and how to deal with this fact while using the file abstraction to deal with network was a major question which was left unanswered by the Plan 9 designers. Anil also added that Plan 9 was a elegant attempt at representing everything using file abstraction but they were trying too hard with this approach as pointed out above. In distributed systems the best approach to use is - if things have different semantics then they should have abstractions that reflect their characteristics, the APIs should reflect their characteristics rather than hide it away and try to pretend or treat them as if they were having characteristics of something else in an attempt towards too much generalizations. In Anil&#039;s opinion another reason why Plan 9 was not widely adopted was that it was a bit late to the scene, by the time Plan 9 came out in the 90s systems running UNIX with networking was widely adopted driven by the success of Internet.&lt;br /&gt;
&lt;br /&gt;
== Simon&#039;s Notes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* project proposal&lt;br /&gt;
** We will discuss the primary papers we&#039;ve chosen on Thursday, February 6th&lt;br /&gt;
* possible papers, remember to pick a topic you have some chance of understanding&lt;br /&gt;
** OSDI 2012 &lt;br /&gt;
*** datacenter (filesystems for doing X, heat management, etc...)&lt;br /&gt;
*** web stuff&lt;br /&gt;
*** distributed shared memory&lt;br /&gt;
*** distributed network I/O infrastructure&lt;br /&gt;
*** distributed databases (potentially)&lt;br /&gt;
*** anonymity systems&lt;br /&gt;
** Pick a conference (usenix is pretty systems oriented, maybe Lisa), go through their papers and find something interesting&lt;br /&gt;
** tell a story that connects several papers in the topic you choose&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* UNIX&lt;br /&gt;
** Relation to multics&lt;br /&gt;
*** Multics was a complex system which was bad because it was used less, slower, etc...&lt;br /&gt;
*** Multics was not for end users, it was designed to support &amp;quot;utility computing&amp;quot; wherein computation was a service to be charged for&lt;br /&gt;
** What?&lt;br /&gt;
*** Just enough infrastructure to run my programs&lt;br /&gt;
*** It was really just supposed to be used by programmers&lt;br /&gt;
*** &amp;quot;By programmers for programmers&amp;quot;&lt;br /&gt;
*** Software and source licensed for a nominal fee&lt;br /&gt;
*** &amp;quot;Everything is a file&amp;quot;&lt;br /&gt;
*** only difference was files that you could use seek or ones you couldn&#039;t&lt;br /&gt;
*** simple abstractions&lt;br /&gt;
** Networking&lt;br /&gt;
*** Berkeley folks made sockets, not files which upset the folks at Bell labs&lt;br /&gt;
*** Networks aren&#039;t exactly like files because they&#039;re unreliable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Plan 9&lt;br /&gt;
** major ideas&lt;br /&gt;
*** procfs, later adopted by linux&lt;br /&gt;
** summary&lt;br /&gt;
*** a very elegant attempt to follow the philosophy &amp;quot;everything is a file&amp;quot;&lt;br /&gt;
*** trying too hard&lt;br /&gt;
** opinions&lt;br /&gt;
*** things that have different failure modes deserve different APIs&lt;br /&gt;
** niche?&lt;br /&gt;
*** they never found one&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Tangent about programming languages&lt;br /&gt;
** C was for system programming&lt;br /&gt;
** Java was for enterprise programming&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_5&amp;diff=18506</id>
		<title>DistOS 2014W Lecture 5</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_5&amp;diff=18506"/>
		<updated>2014-01-26T04:35:12Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: additional notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Anil set the theme of the discussion for the week as - to try and understand what the early visionaries/researchers wanted the computer to be and what it has become. Putting in other words what was considered fundamental those days and where those stands today. It is to be noted that features that were easier to implement using simple mechanisms were carried forward where as the ones which demanded more complex systems or the one which were found out to add not much value in the near feature were pegged down in the order. In the same context following observations were made: (1) truly distributed computational infrastructure really makes sense only when we have something to distribute (2) use cases drive the large distributed systems, a good example is The Web. Another key observation from Anil was that there was always a Utopian aspect to the early systems be it NLS, ARPANET or Alto. One good example is that security aspects were never considered essential in those systems assuming them to operate in a trusted environment. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Operating system&lt;br /&gt;
: The software that turns the computer you have into the one you want (Anil)&lt;br /&gt;
&lt;br /&gt;
* What sort of computer did we want to have?&lt;br /&gt;
* What sort of abstractions did they want to be easy? Hard?&lt;br /&gt;
* What could we build with the internet (not just WAN, but also LAN)?&lt;br /&gt;
* Most dreams people had of their computers smacked into the wall of reality.&lt;br /&gt;
&lt;br /&gt;
= MOAD review in groups =&lt;br /&gt;
&lt;br /&gt;
* Chorded keyboard unfortunately obscure, partly because the attendees disagreed with the long-term investment of training the user.&lt;br /&gt;
* View control → hyperlinking system, but in a lightweight (more like nanoweight) markup language.&lt;br /&gt;
* Ad-hoc ticketing system&lt;br /&gt;
* Ad-hoc messaging system&lt;br /&gt;
** Used on a time-sharing systme with shared storage,&lt;br /&gt;
* Primitive revision control system&lt;br /&gt;
* Different vocabulary:&lt;br /&gt;
** Bug and bug smear (mouse and trail)&lt;br /&gt;
** Point rather than click&lt;br /&gt;
&lt;br /&gt;
= Class review =&lt;br /&gt;
&lt;br /&gt;
* Doug died Jul 2 2013&lt;br /&gt;
* Doug himself called it an “online system”, rather than offline composition of code using card punchers as was common in the day.&lt;br /&gt;
* What became of the tech:&lt;br /&gt;
** Chorded keyboards:&lt;br /&gt;
*** Exist but obscure&lt;br /&gt;
** Pre-ARPANET network:&lt;br /&gt;
*** Time-sharing mainframe&lt;br /&gt;
*** 13 workstations&lt;br /&gt;
*** Telephone and television circuit&lt;br /&gt;
** Mouse&lt;br /&gt;
*** “I sometimes apologize for calling it a mouse”&lt;br /&gt;
** Collaborative document editing integrated with screen sharing&lt;br /&gt;
** Videoconferencing&lt;br /&gt;
*** Part of the vision, but more for the demo at the time,&lt;br /&gt;
** Hyperlinks&lt;br /&gt;
*** The web on a mainframe&lt;br /&gt;
** Languages&lt;br /&gt;
*** Metalanguages&lt;br /&gt;
**** “Part and parcel of their entire vision of augmenting human intelligence.”&lt;br /&gt;
**** You must teach the computer about the language you are using.&lt;br /&gt;
**** They were the use case. It was almost designed more for augmenting programmer intelligence rather than human intelligence.&lt;br /&gt;
*** It was normal for the time to build new languages (domain-specific) for new systems. Nowadays, we standardize on one but develop large APIs, at the expense of conciseness. We look for short-term benefits; we minimize programmer effort.&lt;br /&gt;
*** Compiler compiler&lt;br /&gt;
** Freeze-pane&lt;br /&gt;
** Folding—Zoomable UI (ZUI)&lt;br /&gt;
*** Lots of systems do it, but not the default&lt;br /&gt;
*** Much easier to just present everything.&lt;br /&gt;
** Technologies the required further investment got left behind.&lt;br /&gt;
* The NLS had little to no security&lt;br /&gt;
** There was a minimal notion of a user&lt;br /&gt;
** There was a utopian aspect. Meanwhile, the Mac had no utopian aspect. Data exchange was through floppies. Any network was small, local, ad-hoc, and among trusted peers.&lt;br /&gt;
** The system wasn&#039;t envisioned to scale up to masses of people who didn&#039;t trust each other.&lt;br /&gt;
** How do you enforce secrecy.&lt;br /&gt;
* Part of the reason for lack of adoption of some of the tech was hardware. We can posit that a bigger reason would be infrastructure.&lt;br /&gt;
* Differentiate usability of system from usability of vision&lt;br /&gt;
** What was missing was the polish, the ‘sexiness’, and the intuitiveness of later systems like the Apple II and the Lisa.&lt;br /&gt;
** The usability of the later Alto is still less than commercial systems.&lt;br /&gt;
*** The word processor was modal, which is apt to confuse unmotivated and untrained users.&lt;br /&gt;
* In the context of the Mother of All Demos, the Alto doesn&#039;t seem entirely revolutionary. Xerox PARC raided his team. They almost had a GUI; rather they had what we call today a virtual console, with a few things above.&lt;br /&gt;
* What happens with visionaries that present a big vision is that the spectators latch onto specific aspects.&lt;br /&gt;
* To be comfortable with not adopting the vision, one must ostracize the visionary. People pay attention to things that fit into their world view.&lt;br /&gt;
* Use cases of networking have changed little, though the means did&lt;br /&gt;
* Fundamentally a resource-sharing system; everything is shared, unlike later systems where you would need to explicitly do so. Resources shared fundamentally sense to share: documents, printers, etc.&lt;br /&gt;
* Resource sharing was never enough. &#039;&#039;&#039;Information-sharing&#039;&#039;&#039; was the focus.&lt;br /&gt;
&lt;br /&gt;
“Mother of all demos” is nickname for Engelbart who could make the computers help humans become smarter. &lt;br /&gt;
&lt;br /&gt;
*More interesting in this works that:&lt;br /&gt;
&amp;quot;His idea included seeing computing devices as a means to communicate and retrieve information, rather than just crunch numbers. This idea is represented in NLS”On-Line system”.&lt;br /&gt;
&lt;br /&gt;
*Some information about  NLS system:&lt;br /&gt;
1) NLS was a revolutionary computer collaboration system from the 1960s. &lt;br /&gt;
2) Designed by Douglas Engelbart and implemented by researchers at the Augmentation Research Center (ARC) at the Stanford Research Institute (SRI). &lt;br /&gt;
3) The NLS system was the first to employ the practical use of :&lt;br /&gt;
  a) hypertext links,&lt;br /&gt;
  b) the mouse, &lt;br /&gt;
  c) raster-scan video monitors, &lt;br /&gt;
  d) information organized by relevance, &lt;br /&gt;
  e) screen windowing, &lt;br /&gt;
  f) presentation programs, &lt;br /&gt;
  g) and other modern computing concepts.&lt;br /&gt;
&lt;br /&gt;
= Alto review =&lt;br /&gt;
&lt;br /&gt;
* Fundamentally a personal computer&lt;br /&gt;
* Applications:&lt;br /&gt;
** Drawing program with curves and arcs for drawing&lt;br /&gt;
** Hardware design tools (mostly logic boards)&lt;br /&gt;
** Time server&lt;br /&gt;
* Less designed for reading than the NLS. More designed around paper. Xerox had a laser printer, and you would read what you printed. Hypertext was deprioritized, unlike the NLS vision had focused on what could not be expressed on paper.&lt;br /&gt;
* Xerox had almost an obsession with making documents print beautifully.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_6&amp;diff=18505</id>
		<title>DistOS 2014W Lecture 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_6&amp;diff=18505"/>
		<updated>2014-01-26T02:32:19Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Group Discussion on &amp;quot;The Early Web&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Questions to discuss:&lt;br /&gt;
&lt;br /&gt;
# How do you think the web would have been if not like the present way? &lt;br /&gt;
# What kind of infrastructure changes would you like to make? &lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
: Relatively satisfied with the present structure of the web some changes suggested are in the below areas: &lt;br /&gt;
* Make use of the greater potential of Protocols &lt;br /&gt;
* More communication and interaction capabilities.&lt;br /&gt;
* Implementation changes in the present payment method systems. Example usage of &amp;quot;Micro-computation&amp;quot; - a discussion we would get back to in future classes. Also, Cryptographic currencies.&lt;br /&gt;
* Augmented reality.&lt;br /&gt;
* More towards individual privacy. &lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
==== Problem of unstructured information ====&lt;br /&gt;
A large portion of the web serves content that is overwhelmingly concerned about presentation rather than structuring content. Tim Berner-Lees himself bemoaned the death of the semantic web. His original vision of it was as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Code from Wikipedia&#039;s article on the semantic web, except for the block quoting form, which this MediaWiki instance doens&#039;t seem to support. --&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;I have a dream for the Web [in which computers] become capable of analyzing all the data on the Web&amp;amp;nbsp;– the content, links, and transactions between people and computers. A &amp;quot;Semantic Web&amp;quot;, which makes this possible, has yet to emerge, but when it does, the day-to-day mechanisms of trade, bureaucracy and our daily lives will be handled by machines talking to machines. The &amp;quot;intelligent agents&amp;quot; people have touted for ages will finally materialize.&amp;lt;ref&amp;gt;{{cite book |last=Berners-Lee |first=Tim |authorlink=Tim Berners-Lee |coauthors=Fischetti, Mark |title=Weaving the Web |publisher=HarperSanFrancisco |year=1999 |pages=chapter 12 |isbn=978-0-06-251587-2 |nopp=true }}&amp;lt;/ref&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For this vision to be true, information arguably needs to be structured, maybe even classified. The idea of a universal information classification system has been floated. The modern web is mostly developed by software developers and similar, not librarians and the like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TODO: Yahoo blurb. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, how does one differentiate satire from fact?&lt;br /&gt;
&lt;br /&gt;
==== Valuation and deduplication of information ====&lt;br /&gt;
Another problem common with the current wwww is the duplication of information. Redundancy is not in itself harmful to increase the availability of information, but is ad-hoc duplication of the information itself?&lt;br /&gt;
&lt;br /&gt;
One then comes to the problem of assigning a value to the information found therein. How does one rate information, and according to what criteria? How does one authenticate the information? Often, popularity is used as an indicator of veracity, almost in a sophistic manner. See excessive reliance on Google page ranking or Reddit score for various types of information consumption for research or news consumption respectively.&lt;br /&gt;
&lt;br /&gt;
=== On the current infrastructure ===&lt;br /&gt;
The current &amp;lt;em&amp;gt;internet&amp;lt;/em&amp;gt; infrastructure should remain as is, at least in countries with not just a modicum of freedom of access to information. Centralization of of control of access to information is a terrible power. See China and parts of the Middle-East. On that note, what can be said of popular sites, such as Google or Wikipedia that serve as the main entry point for many access patterns?&lt;br /&gt;
&lt;br /&gt;
The problem, if any, in the current web infrastructure is of the web itself, not the internet.&lt;br /&gt;
&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
* What we want to keep &lt;br /&gt;
** Linking mechanisms&lt;br /&gt;
** Minimum permissions to publish&lt;br /&gt;
* What we don&#039;t like&lt;br /&gt;
** Relying on one source for document &lt;br /&gt;
** Privacy links for security&lt;br /&gt;
* Proposal &lt;br /&gt;
** Peer-peer to distributed mechanisms for documenting&lt;br /&gt;
** Reverse links with caching - distributed cache&lt;br /&gt;
** More availability for user - what happens when system fails? &lt;br /&gt;
** Key management to be considered - Is it good to have centralized or distributed mechanism? &lt;br /&gt;
&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
* An idea of web searching for us &lt;br /&gt;
* A suggestion of a different web if it would have been implemented by &amp;quot;AI&amp;quot; people&lt;br /&gt;
** AI programs searching for data - A notion already being implemented by Google slowly.&lt;br /&gt;
* Generate report forums&lt;br /&gt;
* HTML equivalent is inspired by the AI communication&lt;br /&gt;
* Higher semantics apart from just indexing the data&lt;br /&gt;
** Problem : &amp;quot;How to bridge the semantic gap?&amp;quot;&lt;br /&gt;
** Search for more data patterns&lt;br /&gt;
&lt;br /&gt;
== Group design exercise — The web that could be ==&lt;br /&gt;
&lt;br /&gt;
* “The web that wasn&#039;t” mentioned the moans of librarians.&lt;br /&gt;
* A universal classification system is needed.&lt;br /&gt;
* The training overhead of classifiers (e.g., librarians) is high. See the master&#039;s that a librarian would need.&lt;br /&gt;
* More structured content, both classification, and organization&lt;br /&gt;
* Current indexing by crude brute-force searching for words, etc., rather than searching metadata&lt;br /&gt;
* Information doesn&#039;t have the same persistence, see bitrot and Vint Cerf&#039;s talk.&lt;br /&gt;
* Too concerned with presentation now.&lt;br /&gt;
* Tim Berner-Lees bemoaning the death of the semantic web.&lt;br /&gt;
* The problem of information duplication when information gets redistributed across the web. However, we do want redundancy.&lt;br /&gt;
* Too much developed by software developers&lt;br /&gt;
* Too reliant on Google for web structure&lt;br /&gt;
** See search-engine optimization&lt;br /&gt;
* Problem of authentication (of the information, not the presenter)&lt;br /&gt;
** Too dependent at times on the popularity of a site, almost in a sophistic manner.&lt;br /&gt;
** See Reddit&lt;br /&gt;
* How do you programmatically distinguish satire from fact&lt;br /&gt;
* The web&#039;s structure is also “shaped by inbound links but would be nice a bit more”&lt;br /&gt;
* Infrastructure doesn&#039;t need to change per se.&lt;br /&gt;
** The distributed architecture should still stay. Centralization of control of allowed information and access is terrible power. See China and the Middle-East.&lt;br /&gt;
** Information, for the most part, in itself, exists centrally (as per-page), though communities (to use a generic term) are distributed.&lt;br /&gt;
* Need more sophisticated natural language processing.&lt;br /&gt;
&lt;br /&gt;
== Class discussion ==&lt;br /&gt;
&lt;br /&gt;
Focusing on vision, not the mechanism.&lt;br /&gt;
&lt;br /&gt;
* Reverse linking&lt;br /&gt;
* Distributed content distribution (glorified cache)&lt;br /&gt;
** Both for privacy and redunancy reasons&lt;br /&gt;
** Suggested centralized content certification, but doesn&#039;t address the problem of root of trust and distributed consistency checking.&lt;br /&gt;
*** Distributed key management is a holy grail&lt;br /&gt;
*** What about detecting large-scale subversion attempts, like in China&lt;br /&gt;
* What is the new revenue model?&lt;br /&gt;
** What was TBL&#039;s revenue model (tongue-in-cheek, none)?&lt;br /&gt;
** Organisations like Google monetized the internet, and this mechanism could destroy their ability to do so.&lt;br /&gt;
* Search work is semi-distributed. Suggested letting the web do the work for you.&lt;br /&gt;
* Trying to structure content in a manner simultaneously palatable to both humans and machines.&lt;br /&gt;
* Using spare CPU time on servers for natural language processing (or other AI) of cached or locally available resources.&lt;br /&gt;
* Imagine a smushed Wolfram Alpha, Google, Wikipedia, and Watson, and then distributed over the net.&lt;br /&gt;
* The document was TBL&#039;s idea of the atom of content, whereas nowaday we really need something more granular.&lt;br /&gt;
* We want to extract higher-level semantics.&lt;br /&gt;
* Google may not be pure keyword search anymore. It is essentially AI now, but we still struggle with expressing what we want to Google.&lt;br /&gt;
* What about the adversarial aspect of content hosters, vying for attention?&lt;br /&gt;
* People do actively try to fool you.&lt;br /&gt;
* Compare to Google News, though that is very specific to that domain. Their vision is a semantic web, but they are incrementally building it.&lt;br /&gt;
* In a scary fashion, Google is one of the central points of failure of the web. Even scarier is less technically competent people who depend on Facebook for that.&lt;br /&gt;
* There is a semantic gap between how we express and query information, and how AI understands it.&lt;br /&gt;
* Can think of Facebook as a distributed human search infrastructure.&lt;br /&gt;
* A core service of an operating system is locating information. &#039;&#039;&#039;Search is infrastructure.&#039;&#039;&#039;&lt;br /&gt;
* The problem is not purely technical. There are political and social aspects.&lt;br /&gt;
** Searching for a file on a local filesystem should have a unambiguous answer.&lt;br /&gt;
** Asking the web is a different thing. “What is the best chocolate bar?”&lt;br /&gt;
* Is the web a network database, as understood in COMP 3005, which we consider harmful.&lt;br /&gt;
* For two-way links, there is the problem of restructuring data and all the dependencies.&lt;br /&gt;
* Privacy issues when tracing paths across the web.&lt;br /&gt;
* What about the problem of information revocation?&lt;br /&gt;
* Need more augmented reality and distributed and micro payment systems.&lt;br /&gt;
* We need distributed, mutually untrusting social networks.&lt;br /&gt;
** Now we have the problem of storage and computation, but also take away some of of the monetizationable aspect.&lt;br /&gt;
* Distribution is not free. It is very expensive in very funny ways.&lt;br /&gt;
* The dream of harvesting all the computational power of the internet is not new.&lt;br /&gt;
** Startups have come and gone many times over that problem.&lt;br /&gt;
* Google&#039;s indexers understands quite well many documents on the web. However, it only &#039;&#039;&#039;presents&#039;&#039;&#039; a primitive keyword-like interface. It doesn&#039;t expose the ontology.&lt;br /&gt;
* Organising information does not necessarily mean applying an ontology to it.&lt;br /&gt;
* The organisational methods we now use don&#039;t use ontologies, but rather are supplemented by them.&lt;br /&gt;
&lt;br /&gt;
Adding couple of related points Anil mentioned during the discussion:&lt;br /&gt;
*Distributed key management is a holy grail no one has ever managed to get it working.&lt;br /&gt;
*Now a days databases have become important building blocks of the Distributed Operating System. Anil stressed the fact that Databases can in fact be considered as an OS service these days.&lt;br /&gt;
*The question “How you navigate the complex information space?” has remained a prominent question that The Web have always faced.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_6&amp;diff=18504</id>
		<title>DistOS 2014W Lecture 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_6&amp;diff=18504"/>
		<updated>2014-01-26T02:31:00Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Group Discussion on &amp;quot;The Early Web&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Questions to discuss:&lt;br /&gt;
&lt;br /&gt;
# How do you think the web would have been if not like the present way? &lt;br /&gt;
# What kind of infrastructure changes would you like to make? &lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
: Relatively satisfied with the present structure of the web some changes suggested are in the below areas: &lt;br /&gt;
* Make use of the greater potential of Protocols &lt;br /&gt;
* More communication and interaction capabilities.&lt;br /&gt;
* Implementation changes in the present payment method systems. Example usage of &amp;quot;Micro-computation&amp;quot; - a discussion we would get back to in future classes. Also, Cryptographic currencies.&lt;br /&gt;
* Augmented reality.&lt;br /&gt;
* More towards individual privacy. &lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
==== Problem of unstructured information ====&lt;br /&gt;
A large portion of the web serves content that is overwhelmingly concerned about presentation rather than structuring content. Tim Berner-Lees himself bemoaned the death of the semantic web. His original vision of it was as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Code from Wikipedia&#039;s article on the semantic web, except for the block quoting form, which this MediaWiki instance doens&#039;t seem to support. --&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;I have a dream for the Web [in which computers] become capable of analyzing all the data on the Web&amp;amp;nbsp;– the content, links, and transactions between people and computers. A &amp;quot;Semantic Web&amp;quot;, which makes this possible, has yet to emerge, but when it does, the day-to-day mechanisms of trade, bureaucracy and our daily lives will be handled by machines talking to machines. The &amp;quot;intelligent agents&amp;quot; people have touted for ages will finally materialize.&amp;lt;ref&amp;gt;{{cite book |last=Berners-Lee |first=Tim |authorlink=Tim Berners-Lee |coauthors=Fischetti, Mark |title=Weaving the Web |publisher=HarperSanFrancisco |year=1999 |pages=chapter 12 |isbn=978-0-06-251587-2 |nopp=true }}&amp;lt;/ref&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For this vision to be true, information arguably needs to be structured, maybe even classified. The idea of a universal information classification system has been floated. The modern web is mostly developed by software developers and similar, not librarians and the like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TODO: Yahoo blurb. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, how does one differentiate satire from fact?&lt;br /&gt;
&lt;br /&gt;
==== Valuation and deduplication of information ====&lt;br /&gt;
Another problem common with the current wwww is the duplication of information. Redundancy is not in itself harmful to increase the availability of information, but is ad-hoc duplication of the information itself?&lt;br /&gt;
&lt;br /&gt;
One then comes to the problem of assigning a value to the information found therein. How does one rate information, and according to what criteria? How does one authenticate the information? Often, popularity is used as an indicator of veracity, almost in a sophistic manner. See excessive reliance on Google page ranking or Reddit score for various types of information consumption for research or news consumption respectively.&lt;br /&gt;
&lt;br /&gt;
=== On the current infrastructure ===&lt;br /&gt;
The current &amp;lt;em&amp;gt;internet&amp;lt;/em&amp;gt; infrastructure should remain as is, at least in countries with not just a modicum of freedom of access to information. Centralization of of control of access to information is a terrible power. See China and parts of the Middle-East. On that note, what can be said of popular sites, such as Google or Wikipedia that serve as the main entry point for many access patterns?&lt;br /&gt;
&lt;br /&gt;
The problem, if any, in the current web infrastructure is of the web itself, not the internet.&lt;br /&gt;
&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
* What we want to keep &lt;br /&gt;
** Linking mechanisms&lt;br /&gt;
** Minimum permissions to publish&lt;br /&gt;
* What we don&#039;t like&lt;br /&gt;
** Relying on one source for document &lt;br /&gt;
** Privacy links for security&lt;br /&gt;
* Proposal &lt;br /&gt;
** Peer-peer to distributed mechanisms for documenting&lt;br /&gt;
** Reverse links with caching - distributed cache&lt;br /&gt;
** More availability for user - what happens when system fails? &lt;br /&gt;
** Key management to be considered - Is it good to have centralized or distributed mechanism? &lt;br /&gt;
&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
* An idea of web searching for us &lt;br /&gt;
* A suggestion of a different web if it would have been implemented by &amp;quot;AI&amp;quot; people&lt;br /&gt;
** AI programs searching for data - A notion already being implemented by Google slowly.&lt;br /&gt;
* Generate report forums&lt;br /&gt;
* HTML equivalent is inspired by the AI communication&lt;br /&gt;
* Higher semantics apart from just indexing the data&lt;br /&gt;
** Problem : &amp;quot;How to bridge the semantic gap?&amp;quot;&lt;br /&gt;
** Search for more data patterns&lt;br /&gt;
&lt;br /&gt;
== Group design exercise — The web that could be ==&lt;br /&gt;
&lt;br /&gt;
* “The web that wasn&#039;t” mentioned the moans of librarians.&lt;br /&gt;
* A universal classification system is needed.&lt;br /&gt;
* The training overhead of classifiers (e.g., librarians) is high. See the master&#039;s that a librarian would need.&lt;br /&gt;
* More structured content, both classification, and organization&lt;br /&gt;
* Current indexing by crude brute-force searching for words, etc., rather than searching metadata&lt;br /&gt;
* Information doesn&#039;t have the same persistence, see bitrot and Vint Cerf&#039;s talk.&lt;br /&gt;
* Too concerned with presentation now.&lt;br /&gt;
* Tim Berner-Lees bemoaning the death of the semantic web.&lt;br /&gt;
* The problem of information duplication when information gets redistributed across the web. However, we do want redundancy.&lt;br /&gt;
* Too much developed by software developers&lt;br /&gt;
* Too reliant on Google for web structure&lt;br /&gt;
** See search-engine optimization&lt;br /&gt;
* Problem of authentication (of the information, not the presenter)&lt;br /&gt;
** Too dependent at times on the popularity of a site, almost in a sophistic manner.&lt;br /&gt;
** See Reddit&lt;br /&gt;
* How do you programmatically distinguish satire from fact&lt;br /&gt;
* The web&#039;s structure is also “shaped by inbound links but would be nice a bit more”&lt;br /&gt;
* Infrastructure doesn&#039;t need to change per se.&lt;br /&gt;
** The distributed architecture should still stay. Centralization of control of allowed information and access is terrible power. See China and the Middle-East.&lt;br /&gt;
** Information, for the most part, in itself, exists centrally (as per-page), though communities (to use a generic term) are distributed.&lt;br /&gt;
* Need more sophisticated natural language processing.&lt;br /&gt;
&lt;br /&gt;
== Class discussion ==&lt;br /&gt;
&lt;br /&gt;
Focusing on vision, not the mechanism.&lt;br /&gt;
&lt;br /&gt;
* Reverse linking&lt;br /&gt;
* Distributed content distribution (glorified cache)&lt;br /&gt;
** Both for privacy and redunancy reasons&lt;br /&gt;
** Suggested centralized content certification, but doesn&#039;t address the problem of root of trust and distributed consistency checking.&lt;br /&gt;
*** Distributed key management is a holy grail&lt;br /&gt;
*** What about detecting large-scale subversion attempts, like in China&lt;br /&gt;
* What is the new revenue model?&lt;br /&gt;
** What was TBL&#039;s revenue model (tongue-in-cheek, none)?&lt;br /&gt;
** Organisations like Google monetized the internet, and this mechanism could destroy their ability to do so.&lt;br /&gt;
* Search work is semi-distributed. Suggested letting the web do the work for you.&lt;br /&gt;
* Trying to structure content in a manner simultaneously palatable to both humans and machines.&lt;br /&gt;
* Using spare CPU time on servers for natural language processing (or other AI) of cached or locally available resources.&lt;br /&gt;
* Imagine a smushed Wolfram Alpha, Google, Wikipedia, and Watson, and then distributed over the net.&lt;br /&gt;
* The document was TBL&#039;s idea of the atom of content, whereas nowaday we really need something more granular.&lt;br /&gt;
* We want to extract higher-level semantics.&lt;br /&gt;
* Google may not be pure keyword search anymore. It is essentially AI now, but we still struggle with expressing what we want to Google.&lt;br /&gt;
* What about the adversarial aspect of content hosters, vying for attention?&lt;br /&gt;
* People do actively try to fool you.&lt;br /&gt;
* Compare to Google News, though that is very specific to that domain. Their vision is a semantic web, but they are incrementally building it.&lt;br /&gt;
* In a scary fashion, Google is one of the central points of failure of the web. Even scarier is less technically competent people who depend on Facebook for that.&lt;br /&gt;
* There is a semantic gap between how we express and query information, and how AI understands it.&lt;br /&gt;
* Can think of Facebook as a distributed human search infrastructure.&lt;br /&gt;
* A core service of an operating system is locating information. &#039;&#039;&#039;Search is infrastructure.&#039;&#039;&#039;&lt;br /&gt;
* The problem is not purely technical. There are political and social aspects.&lt;br /&gt;
** Searching for a file on a local filesystem should have a unambiguous answer.&lt;br /&gt;
** Asking the web is a different thing. “What is the best chocolate bar?”&lt;br /&gt;
* Is the web a network database, as understood in COMP 3005, which we consider harmful.&lt;br /&gt;
* For two-way links, there is the problem of restructuring data and all the dependencies.&lt;br /&gt;
* Privacy issues when tracing paths across the web.&lt;br /&gt;
* What about the problem of information revocation?&lt;br /&gt;
* Need more augmented reality and distributed and micro payment systems.&lt;br /&gt;
* We need distributed, mutually untrusting social networks.&lt;br /&gt;
** Now we have the problem of storage and computation, but also take away some of of the monetizationable aspect.&lt;br /&gt;
* Distribution is not free. It is very expensive in very funny ways.&lt;br /&gt;
* The dream of harvesting all the computational power of the internet is not new.&lt;br /&gt;
** Startups have come and gone many times over that problem.&lt;br /&gt;
* Google&#039;s indexers understands quite well many documents on the web. However, it only &#039;&#039;&#039;presents&#039;&#039;&#039; a primitive keyword-like interface. It doesn&#039;t expose the ontology.&lt;br /&gt;
* Organising information does not necessarily mean applying an ontology to it.&lt;br /&gt;
* The organisational methods we now use don&#039;t use ontologies, but rather are supplemented by them.&lt;br /&gt;
&lt;br /&gt;
Adding couple of related points Anil mentioned during the discussion:&lt;br /&gt;
&lt;br /&gt;
-Distributed key management is a holy grail no one has ever managed to get it working.&lt;br /&gt;
&lt;br /&gt;
-Now a days databases have become important building blocks of the Distributed Operating System. Anil stressed the fact that Databases can in fact be considered as an OS service these days.&lt;br /&gt;
&lt;br /&gt;
-The question “How you navigate the complex information space?” has remained a prominent question that The Web have always faced.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_6&amp;diff=18503</id>
		<title>DistOS 2014W Lecture 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_6&amp;diff=18503"/>
		<updated>2014-01-26T02:30:30Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: Undo revision 18502 by Sjoy (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Group Discussion on &amp;quot;The Early Web&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Questions to discuss:&lt;br /&gt;
&lt;br /&gt;
# How do you think the web would have been if not like the present way? &lt;br /&gt;
# What kind of infrastructure changes would you like to make? &lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
: Relatively satisfied with the present structure of the web some changes suggested are in the below areas: &lt;br /&gt;
* Make use of the greater potential of Protocols &lt;br /&gt;
* More communication and interaction capabilities.&lt;br /&gt;
* Implementation changes in the present payment method systems. Example usage of &amp;quot;Micro-computation&amp;quot; - a discussion we would get back to in future classes. Also, Cryptographic currencies.&lt;br /&gt;
* Augmented reality.&lt;br /&gt;
* More towards individual privacy. &lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
==== Problem of unstructured information ====&lt;br /&gt;
A large portion of the web serves content that is overwhelmingly concerned about presentation rather than structuring content. Tim Berner-Lees himself bemoaned the death of the semantic web. His original vision of it was as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Code from Wikipedia&#039;s article on the semantic web, except for the block quoting form, which this MediaWiki instance doens&#039;t seem to support. --&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;I have a dream for the Web [in which computers] become capable of analyzing all the data on the Web&amp;amp;nbsp;– the content, links, and transactions between people and computers. A &amp;quot;Semantic Web&amp;quot;, which makes this possible, has yet to emerge, but when it does, the day-to-day mechanisms of trade, bureaucracy and our daily lives will be handled by machines talking to machines. The &amp;quot;intelligent agents&amp;quot; people have touted for ages will finally materialize.&amp;lt;ref&amp;gt;{{cite book |last=Berners-Lee |first=Tim |authorlink=Tim Berners-Lee |coauthors=Fischetti, Mark |title=Weaving the Web |publisher=HarperSanFrancisco |year=1999 |pages=chapter 12 |isbn=978-0-06-251587-2 |nopp=true }}&amp;lt;/ref&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For this vision to be true, information arguably needs to be structured, maybe even classified. The idea of a universal information classification system has been floated. The modern web is mostly developed by software developers and similar, not librarians and the like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TODO: Yahoo blurb. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, how does one differentiate satire from fact?&lt;br /&gt;
&lt;br /&gt;
==== Valuation and deduplication of information ====&lt;br /&gt;
Another problem common with the current wwww is the duplication of information. Redundancy is not in itself harmful to increase the availability of information, but is ad-hoc duplication of the information itself?&lt;br /&gt;
&lt;br /&gt;
One then comes to the problem of assigning a value to the information found therein. How does one rate information, and according to what criteria? How does one authenticate the information? Often, popularity is used as an indicator of veracity, almost in a sophistic manner. See excessive reliance on Google page ranking or Reddit score for various types of information consumption for research or news consumption respectively.&lt;br /&gt;
&lt;br /&gt;
=== On the current infrastructure ===&lt;br /&gt;
The current &amp;lt;em&amp;gt;internet&amp;lt;/em&amp;gt; infrastructure should remain as is, at least in countries with not just a modicum of freedom of access to information. Centralization of of control of access to information is a terrible power. See China and parts of the Middle-East. On that note, what can be said of popular sites, such as Google or Wikipedia that serve as the main entry point for many access patterns?&lt;br /&gt;
&lt;br /&gt;
The problem, if any, in the current web infrastructure is of the web itself, not the internet.&lt;br /&gt;
&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
* What we want to keep &lt;br /&gt;
** Linking mechanisms&lt;br /&gt;
** Minimum permissions to publish&lt;br /&gt;
* What we don&#039;t like&lt;br /&gt;
** Relying on one source for document &lt;br /&gt;
** Privacy links for security&lt;br /&gt;
* Proposal &lt;br /&gt;
** Peer-peer to distributed mechanisms for documenting&lt;br /&gt;
** Reverse links with caching - distributed cache&lt;br /&gt;
** More availability for user - what happens when system fails? &lt;br /&gt;
** Key management to be considered - Is it good to have centralized or distributed mechanism? &lt;br /&gt;
&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
* An idea of web searching for us &lt;br /&gt;
* A suggestion of a different web if it would have been implemented by &amp;quot;AI&amp;quot; people&lt;br /&gt;
** AI programs searching for data - A notion already being implemented by Google slowly.&lt;br /&gt;
* Generate report forums&lt;br /&gt;
* HTML equivalent is inspired by the AI communication&lt;br /&gt;
* Higher semantics apart from just indexing the data&lt;br /&gt;
** Problem : &amp;quot;How to bridge the semantic gap?&amp;quot;&lt;br /&gt;
** Search for more data patterns&lt;br /&gt;
&lt;br /&gt;
== Group design exercise — The web that could be ==&lt;br /&gt;
&lt;br /&gt;
* “The web that wasn&#039;t” mentioned the moans of librarians.&lt;br /&gt;
* A universal classification system is needed.&lt;br /&gt;
* The training overhead of classifiers (e.g., librarians) is high. See the master&#039;s that a librarian would need.&lt;br /&gt;
* More structured content, both classification, and organization&lt;br /&gt;
* Current indexing by crude brute-force searching for words, etc., rather than searching metadata&lt;br /&gt;
* Information doesn&#039;t have the same persistence, see bitrot and Vint Cerf&#039;s talk.&lt;br /&gt;
* Too concerned with presentation now.&lt;br /&gt;
* Tim Berner-Lees bemoaning the death of the semantic web.&lt;br /&gt;
* The problem of information duplication when information gets redistributed across the web. However, we do want redundancy.&lt;br /&gt;
* Too much developed by software developers&lt;br /&gt;
* Too reliant on Google for web structure&lt;br /&gt;
** See search-engine optimization&lt;br /&gt;
* Problem of authentication (of the information, not the presenter)&lt;br /&gt;
** Too dependent at times on the popularity of a site, almost in a sophistic manner.&lt;br /&gt;
** See Reddit&lt;br /&gt;
* How do you programmatically distinguish satire from fact&lt;br /&gt;
* The web&#039;s structure is also “shaped by inbound links but would be nice a bit more”&lt;br /&gt;
* Infrastructure doesn&#039;t need to change per se.&lt;br /&gt;
** The distributed architecture should still stay. Centralization of control of allowed information and access is terrible power. See China and the Middle-East.&lt;br /&gt;
** Information, for the most part, in itself, exists centrally (as per-page), though communities (to use a generic term) are distributed.&lt;br /&gt;
* Need more sophisticated natural language processing.&lt;br /&gt;
&lt;br /&gt;
== Class discussion ==&lt;br /&gt;
&lt;br /&gt;
Focusing on vision, not the mechanism.&lt;br /&gt;
&lt;br /&gt;
* Reverse linking&lt;br /&gt;
* Distributed content distribution (glorified cache)&lt;br /&gt;
** Both for privacy and redunancy reasons&lt;br /&gt;
** Suggested centralized content certification, but doesn&#039;t address the problem of root of trust and distributed consistency checking.&lt;br /&gt;
*** Distributed key management is a holy grail&lt;br /&gt;
*** What about detecting large-scale subversion attempts, like in China&lt;br /&gt;
* What is the new revenue model?&lt;br /&gt;
** What was TBL&#039;s revenue model (tongue-in-cheek, none)?&lt;br /&gt;
** Organisations like Google monetized the internet, and this mechanism could destroy their ability to do so.&lt;br /&gt;
* Search work is semi-distributed. Suggested letting the web do the work for you.&lt;br /&gt;
* Trying to structure content in a manner simultaneously palatable to both humans and machines.&lt;br /&gt;
* Using spare CPU time on servers for natural language processing (or other AI) of cached or locally available resources.&lt;br /&gt;
* Imagine a smushed Wolfram Alpha, Google, Wikipedia, and Watson, and then distributed over the net.&lt;br /&gt;
* The document was TBL&#039;s idea of the atom of content, whereas nowaday we really need something more granular.&lt;br /&gt;
* We want to extract higher-level semantics.&lt;br /&gt;
* Google may not be pure keyword search anymore. It is essentially AI now, but we still struggle with expressing what we want to Google.&lt;br /&gt;
* What about the adversarial aspect of content hosters, vying for attention?&lt;br /&gt;
* People do actively try to fool you.&lt;br /&gt;
* Compare to Google News, though that is very specific to that domain. Their vision is a semantic web, but they are incrementally building it.&lt;br /&gt;
* In a scary fashion, Google is one of the central points of failure of the web. Even scarier is less technically competent people who depend on Facebook for that.&lt;br /&gt;
* There is a semantic gap between how we express and query information, and how AI understands it.&lt;br /&gt;
* Can think of Facebook as a distributed human search infrastructure.&lt;br /&gt;
* A core service of an operating system is locating information. &#039;&#039;&#039;Search is infrastructure.&#039;&#039;&#039;&lt;br /&gt;
* The problem is not purely technical. There are political and social aspects.&lt;br /&gt;
** Searching for a file on a local filesystem should have a unambiguous answer.&lt;br /&gt;
** Asking the web is a different thing. “What is the best chocolate bar?”&lt;br /&gt;
* Is the web a network database, as understood in COMP 3005, which we consider harmful.&lt;br /&gt;
* For two-way links, there is the problem of restructuring data and all the dependencies.&lt;br /&gt;
* Privacy issues when tracing paths across the web.&lt;br /&gt;
* What about the problem of information revocation?&lt;br /&gt;
* Need more augmented reality and distributed and micro payment systems.&lt;br /&gt;
* We need distributed, mutually untrusting social networks.&lt;br /&gt;
** Now we have the problem of storage and computation, but also take away some of of the monetizationable aspect.&lt;br /&gt;
* Distribution is not free. It is very expensive in very funny ways.&lt;br /&gt;
* The dream of harvesting all the computational power of the internet is not new.&lt;br /&gt;
** Startups have come and gone many times over that problem.&lt;br /&gt;
* Google&#039;s indexers understands quite well many documents on the web. However, it only &#039;&#039;&#039;presents&#039;&#039;&#039; a primitive keyword-like interface. It doesn&#039;t expose the ontology.&lt;br /&gt;
* Organising information does not necessarily mean applying an ontology to it.&lt;br /&gt;
* The organisational methods we now use don&#039;t use ontologies, but rather are supplemented by them.&lt;br /&gt;
&lt;br /&gt;
Adding couple of related points Anil mentioned during the discussion:&lt;br /&gt;
-Distributed key management is a holy grail no one has ever managed to get it working.&lt;br /&gt;
-Now a days databases have become important building blocks of the Distributed Operating System. Anil stressed the fact that Databases can in fact be considered as an OS service these days.&lt;br /&gt;
-The question “How you navigate the complex information space?” has remained a prominent question that The Web have always faced.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_6&amp;diff=18502</id>
		<title>DistOS 2014W Lecture 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_6&amp;diff=18502"/>
		<updated>2014-01-26T02:29:49Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: /* Class discussion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Group Discussion on &amp;quot;The Early Web&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Questions to discuss:&lt;br /&gt;
&lt;br /&gt;
# How do you think the web would have been if not like the present way? &lt;br /&gt;
# What kind of infrastructure changes would you like to make? &lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
: Relatively satisfied with the present structure of the web some changes suggested are in the below areas: &lt;br /&gt;
* Make use of the greater potential of Protocols &lt;br /&gt;
* More communication and interaction capabilities.&lt;br /&gt;
* Implementation changes in the present payment method systems. Example usage of &amp;quot;Micro-computation&amp;quot; - a discussion we would get back to in future classes. Also, Cryptographic currencies.&lt;br /&gt;
* Augmented reality.&lt;br /&gt;
* More towards individual privacy. &lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
==== Problem of unstructured information ====&lt;br /&gt;
A large portion of the web serves content that is overwhelmingly concerned about presentation rather than structuring content. Tim Berner-Lees himself bemoaned the death of the semantic web. His original vision of it was as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Code from Wikipedia&#039;s article on the semantic web, except for the block quoting form, which this MediaWiki instance doens&#039;t seem to support. --&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;I have a dream for the Web [in which computers] become capable of analyzing all the data on the Web&amp;amp;nbsp;– the content, links, and transactions between people and computers. A &amp;quot;Semantic Web&amp;quot;, which makes this possible, has yet to emerge, but when it does, the day-to-day mechanisms of trade, bureaucracy and our daily lives will be handled by machines talking to machines. The &amp;quot;intelligent agents&amp;quot; people have touted for ages will finally materialize.&amp;lt;ref&amp;gt;{{cite book |last=Berners-Lee |first=Tim |authorlink=Tim Berners-Lee |coauthors=Fischetti, Mark |title=Weaving the Web |publisher=HarperSanFrancisco |year=1999 |pages=chapter 12 |isbn=978-0-06-251587-2 |nopp=true }}&amp;lt;/ref&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For this vision to be true, information arguably needs to be structured, maybe even classified. The idea of a universal information classification system has been floated. The modern web is mostly developed by software developers and similar, not librarians and the like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TODO: Yahoo blurb. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, how does one differentiate satire from fact?&lt;br /&gt;
&lt;br /&gt;
==== Valuation and deduplication of information ====&lt;br /&gt;
Another problem common with the current wwww is the duplication of information. Redundancy is not in itself harmful to increase the availability of information, but is ad-hoc duplication of the information itself?&lt;br /&gt;
&lt;br /&gt;
One then comes to the problem of assigning a value to the information found therein. How does one rate information, and according to what criteria? How does one authenticate the information? Often, popularity is used as an indicator of veracity, almost in a sophistic manner. See excessive reliance on Google page ranking or Reddit score for various types of information consumption for research or news consumption respectively.&lt;br /&gt;
&lt;br /&gt;
=== On the current infrastructure ===&lt;br /&gt;
The current &amp;lt;em&amp;gt;internet&amp;lt;/em&amp;gt; infrastructure should remain as is, at least in countries with not just a modicum of freedom of access to information. Centralization of of control of access to information is a terrible power. See China and parts of the Middle-East. On that note, what can be said of popular sites, such as Google or Wikipedia that serve as the main entry point for many access patterns?&lt;br /&gt;
&lt;br /&gt;
The problem, if any, in the current web infrastructure is of the web itself, not the internet.&lt;br /&gt;
&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
* What we want to keep &lt;br /&gt;
** Linking mechanisms&lt;br /&gt;
** Minimum permissions to publish&lt;br /&gt;
* What we don&#039;t like&lt;br /&gt;
** Relying on one source for document &lt;br /&gt;
** Privacy links for security&lt;br /&gt;
* Proposal &lt;br /&gt;
** Peer-peer to distributed mechanisms for documenting&lt;br /&gt;
** Reverse links with caching - distributed cache&lt;br /&gt;
** More availability for user - what happens when system fails? &lt;br /&gt;
** Key management to be considered - Is it good to have centralized or distributed mechanism? &lt;br /&gt;
&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
* An idea of web searching for us &lt;br /&gt;
* A suggestion of a different web if it would have been implemented by &amp;quot;AI&amp;quot; people&lt;br /&gt;
** AI programs searching for data - A notion already being implemented by Google slowly.&lt;br /&gt;
* Generate report forums&lt;br /&gt;
* HTML equivalent is inspired by the AI communication&lt;br /&gt;
* Higher semantics apart from just indexing the data&lt;br /&gt;
** Problem : &amp;quot;How to bridge the semantic gap?&amp;quot;&lt;br /&gt;
** Search for more data patterns&lt;br /&gt;
&lt;br /&gt;
== Group design exercise — The web that could be ==&lt;br /&gt;
&lt;br /&gt;
* “The web that wasn&#039;t” mentioned the moans of librarians.&lt;br /&gt;
* A universal classification system is needed.&lt;br /&gt;
* The training overhead of classifiers (e.g., librarians) is high. See the master&#039;s that a librarian would need.&lt;br /&gt;
* More structured content, both classification, and organization&lt;br /&gt;
* Current indexing by crude brute-force searching for words, etc., rather than searching metadata&lt;br /&gt;
* Information doesn&#039;t have the same persistence, see bitrot and Vint Cerf&#039;s talk.&lt;br /&gt;
* Too concerned with presentation now.&lt;br /&gt;
* Tim Berner-Lees bemoaning the death of the semantic web.&lt;br /&gt;
* The problem of information duplication when information gets redistributed across the web. However, we do want redundancy.&lt;br /&gt;
* Too much developed by software developers&lt;br /&gt;
* Too reliant on Google for web structure&lt;br /&gt;
** See search-engine optimization&lt;br /&gt;
* Problem of authentication (of the information, not the presenter)&lt;br /&gt;
** Too dependent at times on the popularity of a site, almost in a sophistic manner.&lt;br /&gt;
** See Reddit&lt;br /&gt;
* How do you programmatically distinguish satire from fact&lt;br /&gt;
* The web&#039;s structure is also “shaped by inbound links but would be nice a bit more”&lt;br /&gt;
* Infrastructure doesn&#039;t need to change per se.&lt;br /&gt;
** The distributed architecture should still stay. Centralization of control of allowed information and access is terrible power. See China and the Middle-East.&lt;br /&gt;
** Information, for the most part, in itself, exists centrally (as per-page), though communities (to use a generic term) are distributed.&lt;br /&gt;
* Need more sophisticated natural language processing.&lt;br /&gt;
&lt;br /&gt;
== Class discussion ==&lt;br /&gt;
&lt;br /&gt;
Focusing on vision, not the mechanism.&lt;br /&gt;
&lt;br /&gt;
* Reverse linking&lt;br /&gt;
* Distributed content distribution (glorified cache)&lt;br /&gt;
** Both for privacy and redunancy reasons&lt;br /&gt;
** Suggested centralized content certification, but doesn&#039;t address the problem of root of trust and distributed consistency checking.&lt;br /&gt;
*** Distributed key management is a holy grail&lt;br /&gt;
*** What about detecting large-scale subversion attempts, like in China&lt;br /&gt;
* What is the new revenue model?&lt;br /&gt;
** What was TBL&#039;s revenue model (tongue-in-cheek, none)?&lt;br /&gt;
** Organisations like Google monetized the internet, and this mechanism could destroy their ability to do so.&lt;br /&gt;
* Search work is semi-distributed. Suggested letting the web do the work for you.&lt;br /&gt;
* Trying to structure content in a manner simultaneously palatable to both humans and machines.&lt;br /&gt;
* Using spare CPU time on servers for natural language processing (or other AI) of cached or locally available resources.&lt;br /&gt;
* Imagine a smushed Wolfram Alpha, Google, Wikipedia, and Watson, and then distributed over the net.&lt;br /&gt;
* The document was TBL&#039;s idea of the atom of content, whereas nowaday we really need something more granular.&lt;br /&gt;
* We want to extract higher-level semantics.&lt;br /&gt;
* Google may not be pure keyword search anymore. It is essentially AI now, but we still struggle with expressing what we want to Google.&lt;br /&gt;
* What about the adversarial aspect of content hosters, vying for attention?&lt;br /&gt;
* People do actively try to fool you.&lt;br /&gt;
* Compare to Google News, though that is very specific to that domain. Their vision is a semantic web, but they are incrementally building it.&lt;br /&gt;
* In a scary fashion, Google is one of the central points of failure of the web. Even scarier is less technically competent people who depend on Facebook for that.&lt;br /&gt;
* There is a semantic gap between how we express and query information, and how AI understands it.&lt;br /&gt;
* Can think of Facebook as a distributed human search infrastructure.&lt;br /&gt;
* A core service of an operating system is locating information. &#039;&#039;&#039;Search is infrastructure.&#039;&#039;&#039;&lt;br /&gt;
* The problem is not purely technical. There are political and social aspects.&lt;br /&gt;
** Searching for a file on a local filesystem should have a unambiguous answer.&lt;br /&gt;
** Asking the web is a different thing. “What is the best chocolate bar?”&lt;br /&gt;
* Is the web a network database, as understood in COMP 3005, which we consider harmful.&lt;br /&gt;
* For two-way links, there is the problem of restructuring data and all the dependencies.&lt;br /&gt;
* Privacy issues when tracing paths across the web.&lt;br /&gt;
* What about the problem of information revocation?&lt;br /&gt;
* Need more augmented reality and distributed and micro payment systems.&lt;br /&gt;
* We need distributed, mutually untrusting social networks.&lt;br /&gt;
** Now we have the problem of storage and computation, but also take away some of of the monetizationable aspect.&lt;br /&gt;
* Distribution is not free. It is very expensive in very funny ways.&lt;br /&gt;
* The dream of harvesting all the computational power of the internet is not new.&lt;br /&gt;
** Startups have come and gone many times over that problem.&lt;br /&gt;
* Google&#039;s indexers understands quite well many documents on the web. However, it only &#039;&#039;&#039;presents&#039;&#039;&#039; a primitive keyword-like interface. It doesn&#039;t expose the ontology.&lt;br /&gt;
* Organising information does not necessarily mean applying an ontology to it.&lt;br /&gt;
* The organisational methods we now use don&#039;t use ontologies, but rather are supplemented by them.&lt;br /&gt;
&lt;br /&gt;
Adding couple of related points Anil mentioned during the discussion:&lt;br /&gt;
-Distributed key management is a holy grail no one has ever managed to get it working.&lt;br /&gt;
&lt;br /&gt;
-Now a days databases have become important building blocks of the Distributed Operating System. Anil stressed the fact that Databases can in fact be considered as an OS service these days.&lt;br /&gt;
&lt;br /&gt;
-The question “How you navigate the complex information space?” has remained a prominent question that The Web have always faced.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_6&amp;diff=18501</id>
		<title>DistOS 2014W Lecture 6</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_6&amp;diff=18501"/>
		<updated>2014-01-26T02:28:56Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: Adding couple of related points Anil mentioned during the discussion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Group Discussion on &amp;quot;The Early Web&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Questions to discuss:&lt;br /&gt;
&lt;br /&gt;
# How do you think the web would have been if not like the present way? &lt;br /&gt;
# What kind of infrastructure changes would you like to make? &lt;br /&gt;
&lt;br /&gt;
=== Group 1 ===&lt;br /&gt;
: Relatively satisfied with the present structure of the web some changes suggested are in the below areas: &lt;br /&gt;
* Make use of the greater potential of Protocols &lt;br /&gt;
* More communication and interaction capabilities.&lt;br /&gt;
* Implementation changes in the present payment method systems. Example usage of &amp;quot;Micro-computation&amp;quot; - a discussion we would get back to in future classes. Also, Cryptographic currencies.&lt;br /&gt;
* Augmented reality.&lt;br /&gt;
* More towards individual privacy. &lt;br /&gt;
&lt;br /&gt;
=== Group 2 ===&lt;br /&gt;
==== Problem of unstructured information ====&lt;br /&gt;
A large portion of the web serves content that is overwhelmingly concerned about presentation rather than structuring content. Tim Berner-Lees himself bemoaned the death of the semantic web. His original vision of it was as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Code from Wikipedia&#039;s article on the semantic web, except for the block quoting form, which this MediaWiki instance doens&#039;t seem to support. --&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;I have a dream for the Web [in which computers] become capable of analyzing all the data on the Web&amp;amp;nbsp;– the content, links, and transactions between people and computers. A &amp;quot;Semantic Web&amp;quot;, which makes this possible, has yet to emerge, but when it does, the day-to-day mechanisms of trade, bureaucracy and our daily lives will be handled by machines talking to machines. The &amp;quot;intelligent agents&amp;quot; people have touted for ages will finally materialize.&amp;lt;ref&amp;gt;{{cite book |last=Berners-Lee |first=Tim |authorlink=Tim Berners-Lee |coauthors=Fischetti, Mark |title=Weaving the Web |publisher=HarperSanFrancisco |year=1999 |pages=chapter 12 |isbn=978-0-06-251587-2 |nopp=true }}&amp;lt;/ref&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For this vision to be true, information arguably needs to be structured, maybe even classified. The idea of a universal information classification system has been floated. The modern web is mostly developed by software developers and similar, not librarians and the like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- TODO: Yahoo blurb. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, how does one differentiate satire from fact?&lt;br /&gt;
&lt;br /&gt;
==== Valuation and deduplication of information ====&lt;br /&gt;
Another problem common with the current wwww is the duplication of information. Redundancy is not in itself harmful to increase the availability of information, but is ad-hoc duplication of the information itself?&lt;br /&gt;
&lt;br /&gt;
One then comes to the problem of assigning a value to the information found therein. How does one rate information, and according to what criteria? How does one authenticate the information? Often, popularity is used as an indicator of veracity, almost in a sophistic manner. See excessive reliance on Google page ranking or Reddit score for various types of information consumption for research or news consumption respectively.&lt;br /&gt;
&lt;br /&gt;
=== On the current infrastructure ===&lt;br /&gt;
The current &amp;lt;em&amp;gt;internet&amp;lt;/em&amp;gt; infrastructure should remain as is, at least in countries with not just a modicum of freedom of access to information. Centralization of of control of access to information is a terrible power. See China and parts of the Middle-East. On that note, what can be said of popular sites, such as Google or Wikipedia that serve as the main entry point for many access patterns?&lt;br /&gt;
&lt;br /&gt;
The problem, if any, in the current web infrastructure is of the web itself, not the internet.&lt;br /&gt;
&lt;br /&gt;
=== Group 3 ===&lt;br /&gt;
* What we want to keep &lt;br /&gt;
** Linking mechanisms&lt;br /&gt;
** Minimum permissions to publish&lt;br /&gt;
* What we don&#039;t like&lt;br /&gt;
** Relying on one source for document &lt;br /&gt;
** Privacy links for security&lt;br /&gt;
* Proposal &lt;br /&gt;
** Peer-peer to distributed mechanisms for documenting&lt;br /&gt;
** Reverse links with caching - distributed cache&lt;br /&gt;
** More availability for user - what happens when system fails? &lt;br /&gt;
** Key management to be considered - Is it good to have centralized or distributed mechanism? &lt;br /&gt;
&lt;br /&gt;
=== Group 4 ===&lt;br /&gt;
* An idea of web searching for us &lt;br /&gt;
* A suggestion of a different web if it would have been implemented by &amp;quot;AI&amp;quot; people&lt;br /&gt;
** AI programs searching for data - A notion already being implemented by Google slowly.&lt;br /&gt;
* Generate report forums&lt;br /&gt;
* HTML equivalent is inspired by the AI communication&lt;br /&gt;
* Higher semantics apart from just indexing the data&lt;br /&gt;
** Problem : &amp;quot;How to bridge the semantic gap?&amp;quot;&lt;br /&gt;
** Search for more data patterns&lt;br /&gt;
&lt;br /&gt;
== Group design exercise — The web that could be ==&lt;br /&gt;
&lt;br /&gt;
* “The web that wasn&#039;t” mentioned the moans of librarians.&lt;br /&gt;
* A universal classification system is needed.&lt;br /&gt;
* The training overhead of classifiers (e.g., librarians) is high. See the master&#039;s that a librarian would need.&lt;br /&gt;
* More structured content, both classification, and organization&lt;br /&gt;
* Current indexing by crude brute-force searching for words, etc., rather than searching metadata&lt;br /&gt;
* Information doesn&#039;t have the same persistence, see bitrot and Vint Cerf&#039;s talk.&lt;br /&gt;
* Too concerned with presentation now.&lt;br /&gt;
* Tim Berner-Lees bemoaning the death of the semantic web.&lt;br /&gt;
* The problem of information duplication when information gets redistributed across the web. However, we do want redundancy.&lt;br /&gt;
* Too much developed by software developers&lt;br /&gt;
* Too reliant on Google for web structure&lt;br /&gt;
** See search-engine optimization&lt;br /&gt;
* Problem of authentication (of the information, not the presenter)&lt;br /&gt;
** Too dependent at times on the popularity of a site, almost in a sophistic manner.&lt;br /&gt;
** See Reddit&lt;br /&gt;
* How do you programmatically distinguish satire from fact&lt;br /&gt;
* The web&#039;s structure is also “shaped by inbound links but would be nice a bit more”&lt;br /&gt;
* Infrastructure doesn&#039;t need to change per se.&lt;br /&gt;
** The distributed architecture should still stay. Centralization of control of allowed information and access is terrible power. See China and the Middle-East.&lt;br /&gt;
** Information, for the most part, in itself, exists centrally (as per-page), though communities (to use a generic term) are distributed.&lt;br /&gt;
* Need more sophisticated natural language processing.&lt;br /&gt;
&lt;br /&gt;
== Class discussion ==&lt;br /&gt;
&lt;br /&gt;
Focusing on vision, not the mechanism.&lt;br /&gt;
&lt;br /&gt;
* Reverse linking&lt;br /&gt;
* Distributed content distribution (glorified cache)&lt;br /&gt;
** Both for privacy and redunancy reasons&lt;br /&gt;
** Suggested centralized content certification, but doesn&#039;t address the problem of root of trust and distributed consistency checking.&lt;br /&gt;
*** Distributed key management is a holy grail&lt;br /&gt;
*** What about detecting large-scale subversion attempts, like in China&lt;br /&gt;
* What is the new revenue model?&lt;br /&gt;
** What was TBL&#039;s revenue model (tongue-in-cheek, none)?&lt;br /&gt;
** Organisations like Google monetized the internet, and this mechanism could destroy their ability to do so.&lt;br /&gt;
* Search work is semi-distributed. Suggested letting the web do the work for you.&lt;br /&gt;
* Trying to structure content in a manner simultaneously palatable to both humans and machines.&lt;br /&gt;
* Using spare CPU time on servers for natural language processing (or other AI) of cached or locally available resources.&lt;br /&gt;
* Imagine a smushed Wolfram Alpha, Google, Wikipedia, and Watson, and then distributed over the net.&lt;br /&gt;
* The document was TBL&#039;s idea of the atom of content, whereas nowaday we really need something more granular.&lt;br /&gt;
* We want to extract higher-level semantics.&lt;br /&gt;
* Google may not be pure keyword search anymore. It is essentially AI now, but we still struggle with expressing what we want to Google.&lt;br /&gt;
* What about the adversarial aspect of content hosters, vying for attention?&lt;br /&gt;
* People do actively try to fool you.&lt;br /&gt;
* Compare to Google News, though that is very specific to that domain. Their vision is a semantic web, but they are incrementally building it.&lt;br /&gt;
* In a scary fashion, Google is one of the central points of failure of the web. Even scarier is less technically competent people who depend on Facebook for that.&lt;br /&gt;
* There is a semantic gap between how we express and query information, and how AI understands it.&lt;br /&gt;
* Can think of Facebook as a distributed human search infrastructure.&lt;br /&gt;
* A core service of an operating system is locating information. &#039;&#039;&#039;Search is infrastructure.&#039;&#039;&#039;&lt;br /&gt;
* The problem is not purely technical. There are political and social aspects.&lt;br /&gt;
** Searching for a file on a local filesystem should have a unambiguous answer.&lt;br /&gt;
** Asking the web is a different thing. “What is the best chocolate bar?”&lt;br /&gt;
* Is the web a network database, as understood in COMP 3005, which we consider harmful.&lt;br /&gt;
* For two-way links, there is the problem of restructuring data and all the dependencies.&lt;br /&gt;
* Privacy issues when tracing paths across the web.&lt;br /&gt;
* What about the problem of information revocation?&lt;br /&gt;
* Need more augmented reality and distributed and micro payment systems.&lt;br /&gt;
* We need distributed, mutually untrusting social networks.&lt;br /&gt;
** Now we have the problem of storage and computation, but also take away some of of the monetizationable aspect.&lt;br /&gt;
* Distribution is not free. It is very expensive in very funny ways.&lt;br /&gt;
* The dream of harvesting all the computational power of the internet is not new.&lt;br /&gt;
** Startups have come and gone many times over that problem.&lt;br /&gt;
* Google&#039;s indexers understands quite well many documents on the web. However, it only &#039;&#039;&#039;presents&#039;&#039;&#039; a primitive keyword-like interface. It doesn&#039;t expose the ontology.&lt;br /&gt;
* Organising information does not necessarily mean applying an ontology to it.&lt;br /&gt;
* The organisational methods we now use don&#039;t use ontologies, but rather are supplemented by them.&lt;br /&gt;
&lt;br /&gt;
Adding couple of related points Anil mentioned during the discussion:&lt;br /&gt;
-Distributed key management is a holy grail no one has ever managed to get it working.&lt;br /&gt;
-Now a days databases have become important building blocks of the Distributed Operating System. Anil stressed the fact that Databases can in fact be considered as an OS service these days.&lt;br /&gt;
-The question “How you navigate the complex information space?” has remained a prominent question that The Web have always faced.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_2&amp;diff=18465</id>
		<title>DistOS 2014W Lecture 2</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_2&amp;diff=18465"/>
		<updated>2014-01-21T22:01:23Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: though I am not the one who originally volunteered for the lecture notes for lecture 2 adding the notes I have in an attempt to capture the essence of discussions we had on the day&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Anil&#039;s view is that, though it is desirable to achieve a single system view, it’s a fool&#039;s errand to think that a 100% transparent single system view is achievable in the Distributed Operating system&#039;s Paradigm. Important question that needs to be answered while designing a DOS is how to ensure order in the Distributed System - in terms of (a) How to control participating systems (b) How the knowledge about constituent systems is passed around. So it becomes critical to look at how DOS achieves abstraction, enables and makes use of abstractions in realizing a system you want to use/program. Some of the aspects that needs to be considered in this context are: How well can DOS can realize the standard abstractions: Virtual Memory, File System Storage etc.&lt;br /&gt;
&lt;br /&gt;
Towards building a Distributed system (scalable, reliable, maintainable) that should work perfectly it has to be based on abstractions representing the required system instead of building a system based on illusions. Anil pointed out - the tendency to make DOS behave as a centralized single system OS - as a prominent pit-fall to avoid in the design of the Distributed Operating Systems. Such an approach would not be good in terms of performance and the analogy used &amp;quot;such an attempt will be like Elephant riding a Unicycle&amp;quot; - helped to explain the reason behind the same, such system can be built but it would not be efficient/fast and the performance would not be ideal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We now have a working definition of a Distributed OS, so we look a little closer at the underlying network. The internet (and thus the vast majority of distributed OS work today) occurs over the [https://en.wikipedia.org/wiki/TCP_IP| TCP and IP protocols].&lt;br /&gt;
&lt;br /&gt;
Anil observed that the Dist. OS abstractions which succeed are ones that don&#039;t hide the network. For example, the remote procedure call (RPC) style abstractions have generally failed because they try to hide the untrusted nature of the network. The result has been a hodge-podge of firewall software which is primarily for blocking RPC-based protocols like SMB, NFS, etc. REST, on the other hand, has succeeded on the open web because it doesn&#039;t &amp;quot;hide the network&amp;quot; in this way.&lt;br /&gt;
&lt;br /&gt;
Concluding the discussions Anil mentioned that the focus of the course will be on - How do you build new abstractions and software services enabling Distributed Operating System and not on approaches which takes single system Operating System and tries to turn it into a Distributed Operating System.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_4&amp;diff=18418</id>
		<title>DistOS 2014W Lecture 4</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_4&amp;diff=18418"/>
		<updated>2014-01-17T00:59:23Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: /* Ethernet, Networking protocols */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Discussions on the Alto&lt;br /&gt;
&lt;br /&gt;
==CPU, Memory, Disk==&lt;br /&gt;
&lt;br /&gt;
====CPU====&lt;br /&gt;
&lt;br /&gt;
The general hardware architecture of the CPU was biased towards the user, meaning that a greater focus was put on IO capabilities and less focus was put on computational power (arithmetic etc). There were two levels of task-switching; the CPU provided sixteen fixed-priority tasks with hardware interrupts, each of which was permanently assigned to a piece of hardware. Only one of these tasks (the lowest-priority) was dedicated to the user. This task actually ran a virtualized BCPL machine (a C-like language); the user had no access at all to the underlying microcode. Other languages could be emulated as well.&lt;br /&gt;
&lt;br /&gt;
====Memory====&lt;br /&gt;
&lt;br /&gt;
The Alto started with 64K of 16-bit words of memory and eventually grew to 256K words. However, the higher memory was not accessible except through special tricks, similar to the way that memory above 4GB is not accessible today on 32-bit systems without special tricks.&lt;br /&gt;
&lt;br /&gt;
====Task Switching====&lt;br /&gt;
&lt;br /&gt;
One thing that was confusing was that they refer to tasks both as the 16 fixed hardware tasks and the many software tasks that could be multiplexed onto the lowest-priority of those hardware tasks. In either case, task switching was cooperative; until a task gave up control by running a specific instruction, no other task could run. From a modern perspective this looks like a major security problem, since malicious software could simply never relinquish the CPU. However, the fact that hardware was first-class in this sense (with full access to the CPU and memory) made the hardware simpler because much of the complexity could be done in software. Perhaps the first hints of what we now think of as drivers?&lt;br /&gt;
&lt;br /&gt;
====Disk and Filesystem====&lt;br /&gt;
&lt;br /&gt;
To make use of disk controller read,write,truncate,delete and etc. commands were made available.To reduce the risk of global damage structural information was saved to label in each page.hints mechanism was also a available using directory get where file resides in disk.file integrity a was check using seal bit and label.&lt;br /&gt;
&lt;br /&gt;
==Ethernet, Networking protocols==&lt;br /&gt;
Although the original motive of Alto as a personal computer was to serve the needs of a single user, it was figured out that communicating with other Alto’s/computers would facilitate resource sharing – for collaboration and economic reasons. The main design objectives for the computer network connecting personal computers (Altos) were:&lt;br /&gt;
&lt;br /&gt;
Data transmission speed: Bandwidth which should at least match the memory bus speed to give the end user a consistent notion that the resources accessed over the network should also have the same latency as compared to resource accessed within the computer&lt;br /&gt;
&lt;br /&gt;
Size of network: Capability to connect large number of nodes together&lt;br /&gt;
&lt;br /&gt;
Reliability: Once the user starts to use resources/service over a network it is vital to ensure that the network is reliable enough so that the user gets the quality of service required.&lt;br /&gt;
&lt;br /&gt;
Alto uses a general packet transport system which can be thought of as a set of standard communication protocols towards facilitating interoperability. &lt;br /&gt;
&lt;br /&gt;
The key element enabling the communication system between Alto and other computers was the Ethernet, a Layer 2 protocol and mechanism developed in-house at Xerox by Robert Metcalf et al. Following are the characteristics of the Ethernet – Broadcast, packet-switched network with bandwidth – 3Mbits/sec which can connect 256 computers together, and allows up have a distance of 1 Km between two connected nodes. Another important aspect of Ethernet was new nodes/computers could be added/removed/powered-on/powered-off from the network without disturbing the already existing network communications. Since Ethernet offered only best effort service without guarantees for an error free service, towards achieving reliable communication over it a hierarchy of layered communication protocols were implemented in Alto.&lt;br /&gt;
&lt;br /&gt;
Alto had the capability to act as a gateway connecting different networks together. Xerox had a “Xerox Internet” consisting of several hundred computers, 25 networks and 20 gateways providing internet service back in 1979. &lt;br /&gt;
&lt;br /&gt;
Ethernet communications system had two components – Ethernet controller and transceiver. Ethernet controller performed the encoding/decoding, buffering and micromachine interfacing functionalities whereas the transceiver deals with the transmission/reception of bits, which operated in half-duplex mode. &lt;br /&gt;
&lt;br /&gt;
One important different with respect to the design of the Ethernet controller task as opposed to the ones for display and disk were that there were no periodic events to wake this task up instead a S-group instruction was used to set a flip flop in Ethernet hardware which was used to wake up the Ethernet controller task. Also the Ethernet used interrupt based mechanism used to indicate completion since the packet reception/transmission happens asynchronously. Ethernet microcode implements a packet filtering mechanism which checks for the reception of (1) destined for the host (2) broadcast packets. It can also operate in a promiscuous mode with host address set to zero receiving all packets, which can be used for debugging purposes.&lt;br /&gt;
&lt;br /&gt;
Ethernet had no security mechanism built into it. Since Ethernet was a collision domain an exponential backoff algorithm was implemented towards avoiding collisions (which occurs when two Ethernet transmitters tries to use the ether at the same time).&lt;br /&gt;
&lt;br /&gt;
==Graphics, Mouse, Printing==&lt;br /&gt;
&lt;br /&gt;
===Graphics===&lt;br /&gt;
&lt;br /&gt;
A lot of time was spent on what paper and ink provides us in a display sense, constantly referencing an 8.5 by 11 piece of paper as the type of display they were striving for. This showed what they were attempting to emulate in the Alto&#039;s display. The authors proposed 500 - 1000 black or white bits per inch of display (i.e. 500 - 1000 dpi). However, they were unable to pursue this goal, instead settling for 70 dpi for the display, allowing them to show things such as 10 pt text. They state that a 30 Hz refresh rate was found to not be objectionable. Interestingly, however, we would find this objectionable today--most likely from being spoiled with the sheer speed of computers today, whereas the authors were used to slower performance. The Alto&#039;s display took up &#039;&#039;&#039;half&#039;&#039;&#039; the Alto&#039;s memory, a choice we found very interesting. &lt;br /&gt;
&lt;br /&gt;
Another interesting point was that the authors state that they thought it was beneficial that they could access display memory directly rather than using conventional frame buffer organizations. While we are unsure of what they meant by traditional frame buffer organizations, it is interesting to note that frame buffer organizations is what we use today for our displays.&lt;br /&gt;
&lt;br /&gt;
===Mouse===&lt;br /&gt;
&lt;br /&gt;
The mouse outlined in the paper was 200 dpi (vs. a standard mouse from Apple which is 1300 dpi) and had three buttons (one of the standard configurations of mice that are produced today). They were already using different mouse cursors (i.e., the pointer image of the cursor on screen). The real interesting point here is that the design outlined in the paper was so similar to designs we still use today. The only real divergence was the use of optical mice, although the introduction of optical mice did not altogether halt the use of non-optical mice. Today, we just have more flexibility with regards to how we design mice (e.g., having a scroll wheel, more buttons, etc.).&lt;br /&gt;
&lt;br /&gt;
===Printer===&lt;br /&gt;
&lt;br /&gt;
They state that the printer should print, in one second, an 8.5 by 11 inch page defined with 350 dots/inch (roughly 4000 horizontal scan lines of 3000 dots each). Ironically enough, this is not even what they had wanted for the actual Alto display. However, they did not have enough memory to do this and had to work around this by using things such as an incremental algorithm and reducing the number of scan lines. We were disappointed that they did not actually discuss the hardware implementation of the printer, only the software controller. However, it is interesting that the fact they are dividing the memory requirements of the printer between the hardware itself and the computer was quite a modern idea at the time, and still is.&lt;br /&gt;
&lt;br /&gt;
===Other Interesting Notes===&lt;br /&gt;
&lt;br /&gt;
We found it interesting that peripheral devices were included at all.&lt;br /&gt;
&lt;br /&gt;
The author makes a passing mention to having a tablet to draw on. However, he stated that no one really liked having the tablet as it got in the way of the keyboard.&lt;br /&gt;
&lt;br /&gt;
The recurring theme of lack of memory to implement what they had originally envisioned.&lt;br /&gt;
&lt;br /&gt;
==Applications, Programming Environment==&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_4&amp;diff=18417</id>
		<title>DistOS 2014W Lecture 4</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_4&amp;diff=18417"/>
		<updated>2014-01-17T00:58:33Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: /* Ethernet, Networking protocols */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Discussions on the Alto&lt;br /&gt;
&lt;br /&gt;
==CPU, Memory, Disk==&lt;br /&gt;
&lt;br /&gt;
====CPU====&lt;br /&gt;
&lt;br /&gt;
The general hardware architecture of the CPU was biased towards the user, meaning that a greater focus was put on IO capabilities and less focus was put on computational power (arithmetic etc). There were two levels of task-switching; the CPU provided sixteen fixed-priority tasks with hardware interrupts, each of which was permanently assigned to a piece of hardware. Only one of these tasks (the lowest-priority) was dedicated to the user. This task actually ran a virtualized BCPL machine (a C-like language); the user had no access at all to the underlying microcode. Other languages could be emulated as well.&lt;br /&gt;
&lt;br /&gt;
====Memory====&lt;br /&gt;
&lt;br /&gt;
The Alto started with 64K of 16-bit words of memory and eventually grew to 256K words. However, the higher memory was not accessible except through special tricks, similar to the way that memory above 4GB is not accessible today on 32-bit systems without special tricks.&lt;br /&gt;
&lt;br /&gt;
====Task Switching====&lt;br /&gt;
&lt;br /&gt;
One thing that was confusing was that they refer to tasks both as the 16 fixed hardware tasks and the many software tasks that could be multiplexed onto the lowest-priority of those hardware tasks. In either case, task switching was cooperative; until a task gave up control by running a specific instruction, no other task could run. From a modern perspective this looks like a major security problem, since malicious software could simply never relinquish the CPU. However, the fact that hardware was first-class in this sense (with full access to the CPU and memory) made the hardware simpler because much of the complexity could be done in software. Perhaps the first hints of what we now think of as drivers?&lt;br /&gt;
&lt;br /&gt;
====Disk and Filesystem====&lt;br /&gt;
&lt;br /&gt;
To make use of disk controller read,write,truncate,delete and etc. commands were made available.To reduce the risk of global damage structural information was saved to label in each page.hints mechanism was also a available using directory get where file resides in disk.file integrity a was check using seal bit and label.&lt;br /&gt;
&lt;br /&gt;
==Ethernet, Networking protocols==&lt;br /&gt;
Although the original motive of Alto as a personal computer was to serve the needs of a single user, it was figured out that communicating with other Alto’s/computers would facilitate resource sharing – for collaboration and economic reasons. The main design objectives for the computer network connecting personal computers (Altos) were:&lt;br /&gt;
Data transmission speed: Bandwidth which should at least match the memory bus speed to give the end user a consistent notion that the resources accessed over the network should also have the same latency as compared to resource accessed within the computer&lt;br /&gt;
Size of network: Capability to connect large number of nodes together&lt;br /&gt;
Reliability: Once the user starts to use resources/service over a network it is vital to ensure that the network is reliable enough so that the user gets the quality of service required.&lt;br /&gt;
Alto uses a general packet transport system which can be thought of as a set of standard communication protocols towards facilitating interoperability. &lt;br /&gt;
The key element enabling the communication system between Alto and other computers was the Ethernet, a Layer 2 protocol and mechanism developed in-house at Xerox by Robert Metcalf et al. Following are the characteristics of the Ethernet – Broadcast, packet-switched network with bandwidth – 3Mbits/sec which can connect 256 computers together, and allows up have a distance of 1 Km between two connected nodes. Another important aspect of Ethernet was new nodes/computers could be added/removed/powered-on/powered-off from the network without disturbing the already existing network communications. Since Ethernet offered only best effort service without guarantees for an error free service, towards achieving reliable communication over it a hierarchy of layered communication protocols were implemented in Alto.&lt;br /&gt;
Alto had the capability to act as a gateway connecting different networks together. Xerox had a “Xerox Internet” consisting of several hundred computers, 25 networks and 20 gateways providing internet service back in 1979. &lt;br /&gt;
Ethernet communications system had two components – Ethernet controller and transceiver. Ethernet controller performed the encoding/decoding, buffering and micromachine interfacing functionalities whereas the transceiver deals with the transmission/reception of bits, which operated in half-duplex mode. &lt;br /&gt;
One important different with respect to the design of the Ethernet controller task as opposed to the ones for display and disk were that there were no periodic events to wake this task up instead a S-group instruction was used to set a flip flop in Ethernet hardware which was used to wake up the Ethernet controller task. Also the Ethernet used interrupt based mechanism used to indicate completion since the packet reception/transmission happens asynchronously. Ethernet microcode implements a packet filtering mechanism which checks for the reception of (1) destined for the host (2) broadcast packets. It can also operate in a promiscuous mode with host address set to zero receiving all packets, which can be used for debugging purposes.&lt;br /&gt;
Ethernet had no security mechanism built into it. Since Ethernet was a collision domain an exponential backoff algorithm was implemented towards avoiding collisions (which occurs when two Ethernet transmitters tries to use the ether at the same time).&lt;br /&gt;
&lt;br /&gt;
==Graphics, Mouse, Printing==&lt;br /&gt;
&lt;br /&gt;
===Graphics===&lt;br /&gt;
&lt;br /&gt;
A lot of time was spent on what paper and ink provides us in a display sense, constantly referencing an 8.5 by 11 piece of paper as the type of display they were striving for. This showed what they were attempting to emulate in the Alto&#039;s display. The authors proposed 500 - 1000 black or white bits per inch of display (i.e. 500 - 1000 dpi). However, they were unable to pursue this goal, instead settling for 70 dpi for the display, allowing them to show things such as 10 pt text. They state that a 30 Hz refresh rate was found to not be objectionable. Interestingly, however, we would find this objectionable today--most likely from being spoiled with the sheer speed of computers today, whereas the authors were used to slower performance. The Alto&#039;s display took up &#039;&#039;&#039;half&#039;&#039;&#039; the Alto&#039;s memory, a choice we found very interesting. &lt;br /&gt;
&lt;br /&gt;
Another interesting point was that the authors state that they thought it was beneficial that they could access display memory directly rather than using conventional frame buffer organizations. While we are unsure of what they meant by traditional frame buffer organizations, it is interesting to note that frame buffer organizations is what we use today for our displays.&lt;br /&gt;
&lt;br /&gt;
===Mouse===&lt;br /&gt;
&lt;br /&gt;
The mouse outlined in the paper was 200 dpi (vs. a standard mouse from Apple which is 1300 dpi) and had three buttons (one of the standard configurations of mice that are produced today). They were already using different mouse cursors (i.e., the pointer image of the cursor on screen). The real interesting point here is that the design outlined in the paper was so similar to designs we still use today. The only real divergence was the use of optical mice, although the introduction of optical mice did not altogether halt the use of non-optical mice. Today, we just have more flexibility with regards to how we design mice (e.g., having a scroll wheel, more buttons, etc.).&lt;br /&gt;
&lt;br /&gt;
===Printer===&lt;br /&gt;
&lt;br /&gt;
They state that the printer should print, in one second, an 8.5 by 11 inch page defined with 350 dots/inch (roughly 4000 horizontal scan lines of 3000 dots each). Ironically enough, this is not even what they had wanted for the actual Alto display. However, they did not have enough memory to do this and had to work around this by using things such as an incremental algorithm and reducing the number of scan lines. We were disappointed that they did not actually discuss the hardware implementation of the printer, only the software controller. However, it is interesting that the fact they are dividing the memory requirements of the printer between the hardware itself and the computer was quite a modern idea at the time, and still is.&lt;br /&gt;
&lt;br /&gt;
===Other Interesting Notes===&lt;br /&gt;
&lt;br /&gt;
We found it interesting that peripheral devices were included at all.&lt;br /&gt;
&lt;br /&gt;
The author makes a passing mention to having a tablet to draw on. However, he stated that no one really liked having the tablet as it got in the way of the keyboard.&lt;br /&gt;
&lt;br /&gt;
The recurring theme of lack of memory to implement what they had originally envisioned.&lt;br /&gt;
&lt;br /&gt;
==Applications, Programming Environment==&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_3&amp;diff=18414</id>
		<title>DistOS 2014W Lecture 3</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_3&amp;diff=18414"/>
		<updated>2014-01-16T21:36:31Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questions to consider:&lt;br /&gt;
* What were the purposes envisioned for computer networks?  How do those compare with the uses they are put to today?&lt;br /&gt;
* What sort of resources were shared?  What resources are shared today?&lt;br /&gt;
* What network architecture did they envision?  Do we still have the same architecture?&lt;br /&gt;
* What surprised you about this paper?&lt;br /&gt;
* What was unclear?&lt;br /&gt;
&lt;br /&gt;
==Group 1==&lt;br /&gt;
* video was mostly a summary of Kahn&#039;s paper&lt;br /&gt;
* process migration through different zones of air traffic control&lt;br /&gt;
* &amp;quot;distributed OS&amp;quot; meant something different than we normally think about, because many people would log in remotely to a single machine, it is very much like cloud infrastructure that we talk about today&lt;br /&gt;
* alto paper makes reference to Kahn&#039;s paper, and the alto designers had the foresight to see that networks like arpanet would be necessary&lt;br /&gt;
* would it be useful to have a co-processor responsible for maintaining shared resources even today?  Like the IMPs of the arpanet?  Today, computers are usually so fast it doesn&#039;t really matter.&lt;br /&gt;
&lt;br /&gt;
=== Questions ===&lt;br /&gt;
&lt;br /&gt;
* What were the purposes envisioned for computer networks?&lt;br /&gt;
** big computation, storage, resource sharing - &amp;quot;having a library on a hard disk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* How do those compare with the uses they are put to today?&lt;br /&gt;
** those things are being done, but mostly communication like instant messaging, email&lt;br /&gt;
&lt;br /&gt;
* What sort of resources were shared?&lt;br /&gt;
** databases, CPU time&lt;br /&gt;
&lt;br /&gt;
* What resources are shared today?&lt;br /&gt;
** mostly storage&lt;br /&gt;
&lt;br /&gt;
* What network architecture did they envision?  &lt;br /&gt;
** they had a checksum and acknowledge on each packet&lt;br /&gt;
** the IMPs were the network interface and the routers&lt;br /&gt;
** packet-switching&lt;br /&gt;
&lt;br /&gt;
* Do we still have the same architecture?&lt;br /&gt;
** packet-switching definitely won&lt;br /&gt;
** no, now IP doesn&#039;t checksum or acknowledge, but TCP has end-to-end checksum and acknowledge&lt;br /&gt;
** Kahn went on to learn from the errors of arpanet to design TCP/IP&lt;br /&gt;
** the job of network interface and router have been decoupled&lt;br /&gt;
&lt;br /&gt;
* What surprised you about this paper?&lt;br /&gt;
** everything&lt;br /&gt;
** how they were able to do this&lt;br /&gt;
** a network interface card and router was the size of a fridge&lt;br /&gt;
** high-level languages&lt;br /&gt;
** bootstrap protocol, bootstrapping an application&lt;br /&gt;
** primitive computers&lt;br /&gt;
** desktop publishing&lt;br /&gt;
** the logistics of running a cable from one university to another&lt;br /&gt;
** how old the idea of distributed operating systems is&lt;br /&gt;
&lt;br /&gt;
* What was unclear?&lt;br /&gt;
** much of the more technical specifications, but we mostly skipped over those&lt;br /&gt;
&lt;br /&gt;
==Group 2==&lt;br /&gt;
1. The main purpose of early networks was resource sharing. Abstraction for transmission. Message reliability was a by-product. The underlying idea is the same.&lt;br /&gt;
&lt;br /&gt;
2. Specialized Hardware/software and information sharing. super set of sharing.&lt;br /&gt;
&lt;br /&gt;
3. AD-HOC routing, it was TCP without saying it. Largely unchanged today.&lt;br /&gt;
&lt;br /&gt;
==Group 3==&lt;br /&gt;
===Envisioned computer network purposes===&lt;br /&gt;
* Improving reliability of services, due to redundant resource sets&lt;br /&gt;
* Resource sharing&lt;br /&gt;
* Usage modes:t&lt;br /&gt;
** Users can use a remote terminal, from a remote office or home, to access those resources.&lt;br /&gt;
** Would allow centralization of resources, to improve ease of management and do away with inefficiencies&lt;br /&gt;
* Allow specialization of various sites. rather than each site trying to do it all&lt;br /&gt;
* Distributed simulations (notably air traffic control)&lt;br /&gt;
&lt;br /&gt;
Information-sharing is still relevant today, especially in research and large simulations. Remote access has mostly devolved into a specialized need.&lt;br /&gt;
&lt;br /&gt;
===Resources shared===&lt;br /&gt;
* Computing resources (especially expensive mainframes)&lt;br /&gt;
* Data sets&lt;br /&gt;
&lt;br /&gt;
===Network architecture===&lt;br /&gt;
* A primitive layered architecture&lt;br /&gt;
* Dedicated routing functions&lt;br /&gt;
* Various topologies:&lt;br /&gt;
** star&lt;br /&gt;
** loop&lt;br /&gt;
** bus&lt;br /&gt;
* Primarily (packet|mesage)-switched&lt;br /&gt;
** Circuit-switching too expensive and has large setup times&lt;br /&gt;
** Doesn&#039;t require committing resources&lt;br /&gt;
* Primitive flow control and buffering&lt;br /&gt;
* Predates proper congestion control such as Van Jacobsen&#039;s slow start&lt;br /&gt;
* Ad-hoc routing or based on something similar to RIP&lt;br /&gt;
* Anticipation of elephants and mice latency issues&lt;br /&gt;
* Unlike modern internet, error control and retransmission at every step&lt;br /&gt;
&lt;br /&gt;
The architecture today is similar, but the link-layer is very different: use of Ethernet and ATM. The modern internet is a collection of autonomous systems, not a single network. Routing propogation is now large-scale, and semi-automated (e.g., BGP externally, IS-IS and OSPF internally)&lt;br /&gt;
&lt;br /&gt;
===Surprising aspects===&lt;br /&gt;
&lt;br /&gt;
===Unclear portions===&lt;br /&gt;
* Weird packet format: Page 1400 (4 of PDF): “Node 6, discovering the message is for itself,&lt;br /&gt;
  replaces the destination address by the source address&lt;br /&gt;
&lt;br /&gt;
==Group 4==&lt;br /&gt;
&lt;br /&gt;
* What were the purposes envisioned for computer networks? How do those compare with the uses they are put to today?&lt;br /&gt;
&lt;br /&gt;
Networks were envisioned as providing remote access to other computers, because useful resources such as computing power, large databases, and non-portable software were local to a particular computer, not themselves shared over the network.&lt;br /&gt;
&lt;br /&gt;
Today, we use networks mostly for sharing data, although with services like Amazon AWS, we&#039;re starting to share computing resources again.  We&#039;re also moving to support collaboration (e.g. Google Docs, GitHub, etc.).&lt;br /&gt;
&lt;br /&gt;
* What sort of resources were shared? What resources are shared today?&lt;br /&gt;
&lt;br /&gt;
Computing power was the key resource being shared; today, it&#039;s access to data.  (See above.)&lt;br /&gt;
&lt;br /&gt;
* What network architecture did they envision? Do we still have the same architecture?&lt;br /&gt;
&lt;br /&gt;
Surprisingly, yes: modern networks have substantially similar architecures to the ones described in these papers.  &lt;br /&gt;
Packet-switched networks are now ubiquitous.  We no longer bother with circuit-switching even for telephony, in contrast to the assumption that non-network data would continue to use the circuit-switched common-carrier network.  &lt;br /&gt;
&lt;br /&gt;
* What surprised you about this paper?&lt;br /&gt;
&lt;br /&gt;
We were surprised by the accuracy of the predictions given how early the paper was written — even things like electronic banking.  Also surprising were technological advances since the paper was written, such as data transfer speeds (we have networks that are faster than the integrated bus in the Alto), and the predicted resolution requirements (which we are nowhere near meeting).  The amount of detail in the description of the &#039;mouse pointing device&#039; was interesting too.&lt;br /&gt;
&lt;br /&gt;
* What was unclear? &lt;br /&gt;
&lt;br /&gt;
Nothing significant; we&#039;re looking at these with the benefit of hindsight.&lt;br /&gt;
&lt;br /&gt;
==Summary of the discussion from lecture==&lt;br /&gt;
Anil&#039;s view is that even these days we can imagine Computer Networks as more of a resource sharing platform. For example when we access the web or search Google we are making use of the resource sharing facilitated by the Internet(Network of interconnected Computer Networks). It&#039;s not possible to put 20,000 computers in our basements’, instead the Internet facilitates access to computing power/databases which are built of hundred thousands of computers. In fact Google and other popular search engines has a local copy of the entire web in their data centers, centralized copy of a large distributed system. Kind of a contradictory phenomenon if you think about in terms of the design goals of the distributed system. &lt;br /&gt;
&lt;br /&gt;
Another important takeaway from the discussion was the point that &amp;quot;Early to market/ first player&amp;quot; with a new product/solution to a niche problem and the one which offer solutions based on simple mechanisms as opposed to one relying on complex mechanism gets adopted faster. Classic example is the Internet. ARPANET which was supposed to be an academic research project which was based on simple mechanisms, open and first of its kind got adopted widely and evolved in to the Internet as we see it today. It is to note that this approach is not without its own drawbacks example being the security aspects were not factored in while designing the ARPANET since it was intended to be a network between trusted parties, which was fine then. But when ARPANET evolved in to the Internet, security aspect was one area which required a major focus on. In Silicon Valley the focus is on being the &amp;quot;first player&amp;quot; in a niche market to meet that objective often simple framework/mechanisms are used. In doing so there is also a possibility of leaving out some components which can turn out to be a vital missing link, recent example being security flaw in &#039;snapchat&#039; that lead to user data being exposed.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_3&amp;diff=18413</id>
		<title>DistOS 2014W Lecture 3</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_3&amp;diff=18413"/>
		<updated>2014-01-16T21:35:51Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: Summary of the discussion from lecture&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questions to consider:&lt;br /&gt;
* What were the purposes envisioned for computer networks?  How do those compare with the uses they are put to today?&lt;br /&gt;
* What sort of resources were shared?  What resources are shared today?&lt;br /&gt;
* What network architecture did they envision?  Do we still have the same architecture?&lt;br /&gt;
* What surprised you about this paper?&lt;br /&gt;
* What was unclear?&lt;br /&gt;
&lt;br /&gt;
==Group 1==&lt;br /&gt;
* video was mostly a summary of Kahn&#039;s paper&lt;br /&gt;
* process migration through different zones of air traffic control&lt;br /&gt;
* &amp;quot;distributed OS&amp;quot; meant something different than we normally think about, because many people would log in remotely to a single machine, it is very much like cloud infrastructure that we talk about today&lt;br /&gt;
* alto paper makes reference to Kahn&#039;s paper, and the alto designers had the foresight to see that networks like arpanet would be necessary&lt;br /&gt;
* would it be useful to have a co-processor responsible for maintaining shared resources even today?  Like the IMPs of the arpanet?  Today, computers are usually so fast it doesn&#039;t really matter.&lt;br /&gt;
&lt;br /&gt;
=== Questions ===&lt;br /&gt;
&lt;br /&gt;
* What were the purposes envisioned for computer networks?&lt;br /&gt;
** big computation, storage, resource sharing - &amp;quot;having a library on a hard disk&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* How do those compare with the uses they are put to today?&lt;br /&gt;
** those things are being done, but mostly communication like instant messaging, email&lt;br /&gt;
&lt;br /&gt;
* What sort of resources were shared?&lt;br /&gt;
** databases, CPU time&lt;br /&gt;
&lt;br /&gt;
* What resources are shared today?&lt;br /&gt;
** mostly storage&lt;br /&gt;
&lt;br /&gt;
* What network architecture did they envision?  &lt;br /&gt;
** they had a checksum and acknowledge on each packet&lt;br /&gt;
** the IMPs were the network interface and the routers&lt;br /&gt;
** packet-switching&lt;br /&gt;
&lt;br /&gt;
* Do we still have the same architecture?&lt;br /&gt;
** packet-switching definitely won&lt;br /&gt;
** no, now IP doesn&#039;t checksum or acknowledge, but TCP has end-to-end checksum and acknowledge&lt;br /&gt;
** Kahn went on to learn from the errors of arpanet to design TCP/IP&lt;br /&gt;
** the job of network interface and router have been decoupled&lt;br /&gt;
&lt;br /&gt;
* What surprised you about this paper?&lt;br /&gt;
** everything&lt;br /&gt;
** how they were able to do this&lt;br /&gt;
** a network interface card and router was the size of a fridge&lt;br /&gt;
** high-level languages&lt;br /&gt;
** bootstrap protocol, bootstrapping an application&lt;br /&gt;
** primitive computers&lt;br /&gt;
** desktop publishing&lt;br /&gt;
** the logistics of running a cable from one university to another&lt;br /&gt;
** how old the idea of distributed operating systems is&lt;br /&gt;
&lt;br /&gt;
* What was unclear?&lt;br /&gt;
** much of the more technical specifications, but we mostly skipped over those&lt;br /&gt;
&lt;br /&gt;
==Group 2==&lt;br /&gt;
1. The main purpose of early networks was resource sharing. Abstraction for transmission. Message reliability was a by-product. The underlying idea is the same.&lt;br /&gt;
&lt;br /&gt;
2. Specialized Hardware/software and information sharing. super set of sharing.&lt;br /&gt;
&lt;br /&gt;
3. AD-HOC routing, it was TCP without saying it. Largely unchanged today.&lt;br /&gt;
&lt;br /&gt;
==Group 3==&lt;br /&gt;
===Envisioned computer network purposes===&lt;br /&gt;
* Improving reliability of services, due to redundant resource sets&lt;br /&gt;
* Resource sharing&lt;br /&gt;
* Usage modes:t&lt;br /&gt;
** Users can use a remote terminal, from a remote office or home, to access those resources.&lt;br /&gt;
** Would allow centralization of resources, to improve ease of management and do away with inefficiencies&lt;br /&gt;
* Allow specialization of various sites. rather than each site trying to do it all&lt;br /&gt;
* Distributed simulations (notably air traffic control)&lt;br /&gt;
&lt;br /&gt;
Information-sharing is still relevant today, especially in research and large simulations. Remote access has mostly devolved into a specialized need.&lt;br /&gt;
&lt;br /&gt;
===Resources shared===&lt;br /&gt;
* Computing resources (especially expensive mainframes)&lt;br /&gt;
* Data sets&lt;br /&gt;
&lt;br /&gt;
===Network architecture===&lt;br /&gt;
* A primitive layered architecture&lt;br /&gt;
* Dedicated routing functions&lt;br /&gt;
* Various topologies:&lt;br /&gt;
** star&lt;br /&gt;
** loop&lt;br /&gt;
** bus&lt;br /&gt;
* Primarily (packet|mesage)-switched&lt;br /&gt;
** Circuit-switching too expensive and has large setup times&lt;br /&gt;
** Doesn&#039;t require committing resources&lt;br /&gt;
* Primitive flow control and buffering&lt;br /&gt;
* Predates proper congestion control such as Van Jacobsen&#039;s slow start&lt;br /&gt;
* Ad-hoc routing or based on something similar to RIP&lt;br /&gt;
* Anticipation of elephants and mice latency issues&lt;br /&gt;
* Unlike modern internet, error control and retransmission at every step&lt;br /&gt;
&lt;br /&gt;
The architecture today is similar, but the link-layer is very different: use of Ethernet and ATM. The modern internet is a collection of autonomous systems, not a single network. Routing propogation is now large-scale, and semi-automated (e.g., BGP externally, IS-IS and OSPF internally)&lt;br /&gt;
&lt;br /&gt;
===Surprising aspects===&lt;br /&gt;
&lt;br /&gt;
===Unclear portions===&lt;br /&gt;
* Weird packet format: Page 1400 (4 of PDF): “Node 6, discovering the message is for itself,&lt;br /&gt;
  replaces the destination address by the source address&lt;br /&gt;
&lt;br /&gt;
==Group 4==&lt;br /&gt;
&lt;br /&gt;
* What were the purposes envisioned for computer networks? How do those compare with the uses they are put to today?&lt;br /&gt;
&lt;br /&gt;
Networks were envisioned as providing remote access to other computers, because useful resources such as computing power, large databases, and non-portable software were local to a particular computer, not themselves shared over the network.&lt;br /&gt;
&lt;br /&gt;
Today, we use networks mostly for sharing data, although with services like Amazon AWS, we&#039;re starting to share computing resources again.  We&#039;re also moving to support collaboration (e.g. Google Docs, GitHub, etc.).&lt;br /&gt;
&lt;br /&gt;
* What sort of resources were shared? What resources are shared today?&lt;br /&gt;
&lt;br /&gt;
Computing power was the key resource being shared; today, it&#039;s access to data.  (See above.)&lt;br /&gt;
&lt;br /&gt;
* What network architecture did they envision? Do we still have the same architecture?&lt;br /&gt;
&lt;br /&gt;
Surprisingly, yes: modern networks have substantially similar architecures to the ones described in these papers.  &lt;br /&gt;
Packet-switched networks are now ubiquitous.  We no longer bother with circuit-switching even for telephony, in contrast to the assumption that non-network data would continue to use the circuit-switched common-carrier network.  &lt;br /&gt;
&lt;br /&gt;
* What surprised you about this paper?&lt;br /&gt;
&lt;br /&gt;
We were surprised by the accuracy of the predictions given how early the paper was written — even things like electronic banking.  Also surprising were technological advances since the paper was written, such as data transfer speeds (we have networks that are faster than the integrated bus in the Alto), and the predicted resolution requirements (which we are nowhere near meeting).  The amount of detail in the description of the &#039;mouse pointing device&#039; was interesting too.&lt;br /&gt;
&lt;br /&gt;
* What was unclear? &lt;br /&gt;
&lt;br /&gt;
Nothing significant; we&#039;re looking at these with the benefit of hindsight.&lt;br /&gt;
&lt;br /&gt;
==Summary of the discussion from lecture==&lt;br /&gt;
Anil&#039;s view is that even these days we can imagine Computer Networks as more of a resource sharing platform. For example when we access the web or search Google we are making use of the resource sharing facilitated by the Internet(Network of interconnected Computer Networks). It&#039;s not possible to put 20,000 computers in our basements’, instead the Internet facilitates access to computing power/databases which are built of hundred thousands of computers. In fact Google and other popular search engines has a local copy of the entire web in their data centers, centralized copy of a large distributed system. Kind of a contradictory phenomenon if you think about in terms of the design goals of the distributed system. &lt;br /&gt;
Another important takeaway from the discussion was the point that &amp;quot;Early to market/ first player&amp;quot; with a new product/solution to a niche problem and the one which offer solutions based on simple mechanisms as opposed to one relying on complex mechanism gets adopted faster. Classic example is the Internet. ARPANET which was supposed to be an academic research project which was based on simple mechanisms, open and first of its kind got adopted widely and evolved in to the Internet as we see it today. It is to note that this approach is not without its own drawbacks example being the security aspects were not factored in while designing the ARPANET since it was intended to be a network between trusted parties, which was fine then. But when ARPANET evolved in to the Internet, security aspect was one area which required a major focus on. In Silicon Valley the focus is on being the &amp;quot;first player&amp;quot; in a niche market to meet that objective often simple framework/mechanisms are used. In doing so there is also a possibility of leaving out some components which can turn out to be a vital missing link, recent example being security flaw in &#039;snapchat&#039; that lead to user data being exposed.&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_1&amp;diff=18375</id>
		<title>DistOS 2014W Lecture 1</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS_2014W_Lecture_1&amp;diff=18375"/>
		<updated>2014-01-13T04:45:32Z</updated>

		<summary type="html">&lt;p&gt;Sjoy: add/edit information supplementing notes from Lecture 1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;What is an OS?&#039;&#039;&#039; Here are some ideas of what it could mean:&lt;br /&gt;
* a hardware abstraction&lt;br /&gt;
* Consistent execution environment. (ie. code written to interface -- think portable code)&lt;br /&gt;
* manages I/O&lt;br /&gt;
* Resource management/Multiplexing&lt;br /&gt;
* Communication infrastructure (example Inter Process Communication mechanisms) between the users (process, applications) of the Operating System.&lt;br /&gt;
&lt;br /&gt;
An OS can be defined by the role it plays in the programming of systems. It takes care of resource management and creates abstraction. An OS turns hardware into the computer/api/interface you WANT to program.&lt;br /&gt;
&lt;br /&gt;
This is similar to how the browser is becoming the OS of the web. The browser is&lt;br /&gt;
the key abstraction needed to run web apps. It is the interface web developers target.&lt;br /&gt;
It doesn&#039;t matter what you consume a given website on (eg. a phone, tablet,&lt;br /&gt;
etc.), the browser abstracts the device&#039;s hardware and OS away.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;So, what&#039;s a distributed OS?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Anil prefers to think of this &#039;logically&#039; than functionally/physically.  This is&lt;br /&gt;
because the old distributed operating system (DOS) model applies to today&#039;s systems&lt;br /&gt;
(ie. managing multiple cores, etc). The traditional definition is systems that&lt;br /&gt;
manage their resources over a Network.&lt;br /&gt;
&lt;br /&gt;
A lot of these definitions are hard to peg down because simplicity always gets in&lt;br /&gt;
the way of truth. These concepts to do not fit into well defined classes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anil&#039;s definition&#039;&#039;&#039;: &amp;quot;taking the distributed pieces of a system you have and&lt;br /&gt;
turning it into the system you WANT.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It is good to think about about DOS&#039;s within the context of who/what is in&lt;br /&gt;
control, in terms of who makes and enforces decisions in DOS. The traditional kernel-process model is a dictatorship. Authoritarian&lt;br /&gt;
model of control. The kernel controls what lives or dies.  The internet, by&lt;br /&gt;
contrast, is decentralised (eg. DNS). Distributed systems may have distributed&lt;br /&gt;
policies where there is not one source of power.Even in DOS paradigm we can see instances of authoritarian/centralized approaches one example being the walled garden model employed by Apple iOS. Anil&#039;s observation is that centralized systems has an inherent fragility built into and these kind of systems comes to existence and disappear after a while. Examples being AOL, Myspace. Even the Facebook also looks to be a possible candidate for a similar fate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Yuan Liu&#039;s Notes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Normal) Operating Systems&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
OS allows you to run on (slightly) different hardware. Functionalities and responsibilities of OSes include:&lt;br /&gt;
&lt;br /&gt;
* abstracts hardware such that hardware resources can be accessed by software&lt;br /&gt;
* provides consistent execution environment (which hardware doesn&#039;t provide)&lt;br /&gt;
* manages I/O (such as user I/O, machine I/O i.e. network I/O, sensors, videos, etc.)&lt;br /&gt;
* manages resources via mulitplexing&lt;br /&gt;
* multiplexing (sharing): one resource wanted by multiple users&lt;br /&gt;
* O/S turns a computer you want to a computer you want to program&lt;br /&gt;
* manages synchronization and concurrency issues&lt;br /&gt;
* resource management and abstraction&lt;br /&gt;
* uses policies to manage resources&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Distributed O/S&#039;&#039;&#039;&lt;br /&gt;
* turns a distributed system (with their hardware) into a distributed system you want to program&lt;br /&gt;
* resource management: who is in charge?&lt;br /&gt;
* in local O/S, the kernel is the boss&lt;br /&gt;
* in distributed O/S, the control is decentralized&lt;br /&gt;
* different humans control their machine&lt;br /&gt;
* has distributed policies for managing resources&lt;br /&gt;
* who decides control? different than local O/S&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other thoughts&#039;&#039;&#039;&lt;br /&gt;
* a more centralized system will become fragile later&lt;br /&gt;
* concentration of policy tend to fall apart in the future, according to Anil&lt;/div&gt;</summary>
		<author><name>Sjoy</name></author>
	</entry>
</feed>