<?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=Tpham3</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=Tpham3"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php/Special:Contributions/Tpham3"/>
	<updated>2026-04-22T14:07:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=6172</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=6172"/>
		<updated>2010-12-02T04:14:27Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Notes to Group */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think I&#039;ve moved all the existing text to the main page, as things were being edited in 2 places. Hope that&#039;s okay. --[[User:Dagar|Dagar]] 23:01, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
that&#039;s fine! hey guys are we good with the information that we gathered? i think we should find external links on mClock if possible.  --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
I can&#039;t any external links on mClock--[[User:tpham|tpham]]&lt;br /&gt;
&lt;br /&gt;
hey, guys! that&#039;s what we I&#039;ve gotten so far on the main page; please check/edit/reference accordingly to essay requirement! (how come two of our other group members did not contribute towards the essay?) --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
Hey, so I think tag assignment, tag adjustment, and request scheduler might be something important but i don&#039;t quite understand it if someone can take a look at it and see what they can come up with that would be helpful its on page 5 --[[User:tpham|tpham]]&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
more about mclock here &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper. Heres some notes i took from the paper. I did not want to put it on the main page because it is directly copied from the paper:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The intuitive idea behind the mClock algorithm is to logically interleave a constraint-based scheduler and a weight-based scheduler in a fine-grained manner. The constraint-based scheduler ensures that VMs receive at least their minimum reserved service and no more than the upper limit in a time interval, while the weight-based scheduler allocates the remaining throughput to achieve proportional sharing.&lt;br /&gt;
&lt;br /&gt;
mClock uses two main ideas: multiple real-time clocks and dynamic clock selection.&lt;br /&gt;
&lt;br /&gt;
Each VM IO request is assigned three tags, one for each clock: a reservation tag R, a limit tag L, and a proportional share tag P for weight-based allocation. Different clocks are used to keep track of each of the three controls, and tags based on one of the clocks are dynamically chosen to do the constraint-based or weight-based scheduling.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We use today, a very primitive kind of IO resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) 1 is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ (Start-time Fair Queuing) 2. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose. In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Related work&lt;br /&gt;
 - http://www.fortuitous.com/docs/whitepapers/Linux2.6-Perf-Intro.pdf&lt;br /&gt;
    -Linux schedulers (CFQ, SFQ)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation.&lt;br /&gt;
&lt;br /&gt;
Older methods of IO resource allocation had a terrible performance lose. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop considerably. Older methods provided unreliable IO management of hypervisors&lt;br /&gt;
&lt;br /&gt;
mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper&lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all requests are assigned tags and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients” &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Storage IO allocation is hard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;mClockcontributions&#039;&#039;&#039;&lt;br /&gt;
  •Supports reservation, limit and shares in one place&lt;br /&gt;
  •Handles variable IO performance seen by hypervisor&lt;br /&gt;
  •Can be used for other resources such as CPU, memory &amp;amp; Network IO allocation as well&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Future work&#039;&#039;&#039;&lt;br /&gt;
  •Better estimation of reservation capacity in terms of IOPS&lt;br /&gt;
  •Add priority control along with RLS&lt;br /&gt;
  •Mechanisms to set R, L,S and other controls to meet application-level goals&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
[old]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The article introduces the mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves efficient in clustered architectures. Moreover, it provides greater isolation between VMs. &lt;br /&gt;
&lt;br /&gt;
In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also, I did not like the way the calculations were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I see, I&#039;ll have to read it over again&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6168</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6168"/>
		<updated>2010-12-02T04:05:29Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
: [Added and made changes to Background Concepts! please edit if you guys find mistake(s)]--[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: VM usage is increasing significantly on a daily basis – whether by large gaming firms or university students. SFQ(D) performed fairly for low-intensity workloads. However, as the workload with VMs multiplied, the constant need for faster performance and efficiency rose. Hypervisors required a resource-allocation algorithm in order to meet the need for high performance VMs running concurrently; mClock was the answer Gulati, Varman, and Merchant proposed, to aid hypervisors.&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. &lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Evidently, it is the better alternate to SQF because it supports all controls in a single algorithm, handles variable and unknown capacity, and is fast to compute. The algorithm does not weaken the performance level as each VM gets added on, and mClock reservations are met. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
: [Added and made changes to Research Problem! please edit if you guys find mistake(s)]--[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Today, we use a very primitive kind of IO resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is being used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ (Start-time Fair Queuing) &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the main problem; whenever another VM is added or another background application is run on one of the VMs, all other VMs suffer a huge performance loss; a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, however as soon as the stress load on the shared storage device increases, the application might fail to run smoothly, or worse, crash. To resolve this issue of resource allocation and performance, mClock is introduced and tested against SFQ.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
: [Added and made changes to Contribution! please edit if you guys find mistake(s)]--[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. It has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares, such as SFQ. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation.&lt;br /&gt;
 &lt;br /&gt;
: Older methods of IO resource allocation had a terrible performance loss. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop significantly. Also, these older methods provided unreliable IO management of hypervisors. Conversely, mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance and efficiency level, compared to older methods; for instance, SFQ. &lt;br /&gt;
&lt;br /&gt;
: The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all IO requests are assigned tags  and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: mClock also uses both constraint-based and weight-based schedulers. Constraint-based scheduler makes sure that “VMs receive their minimum reserved service and no more than their upper limit in a time interval. Weight-based scheduler allocates the remaining throughput to achieve proportional sharing”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Another contribution was the introduction of Distributed mClock or dmClock which basically runs an altered version of mClock at each server. dmClock is mainly used for cluster-based storage system which are rising as centralized disk arrays, and better than the alternates in terms of cost. The reservation in this modified algorithm gives higher preference to non-idle VMs to attain high performance. dmClock proved to be effective with a simple, modified mClock algorithm which does not require complex synchronizations between servers.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
: [Added and made changes to Critique! please edit if you guys find mistake(s)]--[[User:npatel1|npatel1]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces the mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves to be efficient in clustered architectures due to better resource allocation while providing greater isolation between VMs. mClock allows users to be comfortable when working with multiple VMs on one HOST without the constant worry of performance levels, with each VM add-on.&lt;br /&gt;
&lt;br /&gt;
: The paper proposes a better, and effective alternative to SFQ and other older methods; the mClock algorithm which efficiently handles multiple VMs in a throughput environment (LUN, PARDA).&lt;br /&gt;
: One aspect of the writing style , &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot; &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. The style of displaying these calculations depicts a messy, unorganized styled.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6167</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6167"/>
		<updated>2010-12-02T04:05:08Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
: [Added and made changes to Background Concepts! please edit if you guys find mistake(s)]--[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: VM usage is increasing significantly on a daily basis – whether by large gaming firms or university students. SFQ(D) performed fairly for low-intensity workloads. However, as the workload with VMs multiplied, the constant need for faster performance and efficiency rose. Hypervisors required a resource-allocation algorithm in order to meet the need for high performance VMs running concurrently; mClock was the answer Gulati, Varman, and Merchant proposed, to aid hypervisors.&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. &lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Evidently, it is the better alternate to SQF because it supports all controls in a single algorithm, handles variable and unknown capacity, and is fast to compute. The algorithm does not weaken the performance level as each VM gets added on, and mClock reservations are met. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
: [Added and made changes to Research Problem! please edit if you guys find mistake(s)]--[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Today, we use a very primitive kind of IO resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is being used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ (Start-time Fair Queuing) &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the main problem; whenever another VM is added or another background application is run on one of the VMs, all other VMs suffer a huge performance loss; a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, however as soon as the stress load on the shared storage device increases, the application might fail to run smoothly, or worse, crash. To resolve this issue of resource allocation and performance, mClock is introduced and tested against SFQ.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
: [Added and made changes to Contribution! please edit if you guys find mistake(s)]--[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. It has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares, such as SFQ. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation.&lt;br /&gt;
 &lt;br /&gt;
: Older methods of IO resource allocation had a terrible performance loss. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop significantly. Also, these older methods provided unreliable IO management of hypervisors. Conversely, mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance and efficiency level, compared to older methods; for instance, SFQ. &lt;br /&gt;
&lt;br /&gt;
: The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all IO requests are assigned tags  and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: mClock also uses both constraint-based and weight-based schedulers. Constraint-based scheduler makes sure that “VMs receive their minimum reserved service and no more than their upper limit in a time interval. Weight-based scheduler allocates the remaining throughput to achieve proportional sharing”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Another contribution was the introduction of Distributed mClock or dmClock which basically runs an altered version of mClock at each server. dmClock is mainly used for cluster-based storage system which are rising as centralized disk arrays, and better than the alternates in terms of cost. The reservation in this modified algorithm gives higher preference to non-idle VMs to attain high performance. dmClock proved to be effective with a simple, modified mClock algorithm which does not require complex synchronizations between servers.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
: [Added and made changes to Critique! please edit if you guys find mistake(s)]--[[User:npatel1|npatel1]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces the mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves to be efficient in clustered architectures due to better resource allocation while providing greater isolation between VMs. mClock allows users to be comfortable when working with multiple VMs on one HOST without the constant worry of performance levels, with each VM add-on.&lt;br /&gt;
&lt;br /&gt;
: The paper proposes a better, and effective alternative to SFQ and other older methods; the mClock algorithm which efficiently handles multiple VMs in a throughput environment (LUN, PARDA).&lt;br /&gt;
: One aspect of the writing style , &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot; &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. The style of displaying these calculations depicts a messy, unorganized styled.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6166</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6166"/>
		<updated>2010-12-02T04:04:50Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
: [Added and made changes to Background Concepts! please edit if you guys find mistake(s)]--[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: VM usage is increasing significantly on a daily basis – whether by large gaming firms or university students. SFQ(D) performed fairly for low-intensity workloads. However, as the workload with VMs multiplied, the constant need for faster performance and efficiency rose. Hypervisors required a resource-allocation algorithm in order to meet the need for high performance VMs running concurrently; mClock was the answer Gulati, Varman, and Merchant proposed, to aid hypervisors.&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. &lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Evidently, it is the better alternate to SQF because it supports all controls in a single algorithm, handles variable and unknown capacity, and is fast to compute. The algorithm does not weaken the performance level as each VM gets added on, and mClock reservations are met. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
: [Added and made changes to Research Problem! please edit if you guys find mistake(s)]--[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Today, we use a very primitive kind of IO resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is being used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ (Start-time Fair Queuing) &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the main problem; whenever another VM is added or another background application is run on one of the VMs, all other VMs suffer a huge performance loss; a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, however as soon as the stress load on the shared storage device increases, the application might fail to run smoothly, or worse, crash. To resolve this issue of resource allocation and performance, mClock is introduced and tested against SFQ.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
&lt;br /&gt;
: [Added and made changes to Contribution! please edit if you guys find mistake(s)]--[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: This paper addresses the current limitations of IO resource allocation for hypervisors. It has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares, such as SFQ. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation.&lt;br /&gt;
 &lt;br /&gt;
: Older methods of IO resource allocation had a terrible performance loss. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop significantly. Also, these older methods provided unreliable IO management of hypervisors. Conversely, mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance and efficiency level, compared to older methods; for instance, SFQ. &lt;br /&gt;
&lt;br /&gt;
: The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all IO requests are assigned tags  and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&lt;br /&gt;
&lt;br /&gt;
: mClock also uses both constraint-based and weight-based schedulers. Constraint-based scheduler makes sure that “VMs receive their minimum reserved service and no more than their upper limit in a time interval. Weight-based scheduler allocates the remaining throughput to achieve proportional sharing”. &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Another contribution was the introduction of Distributed mClock or dmClock which basically runs an altered version of mClock at each server. dmClock is mainly used for cluster-based storage system which are rising as centralized disk arrays, and better than the alternates in terms of cost. The reservation in this modified algorithm gives higher preference to non-idle VMs to attain high performance. dmClock proved to be effective with a simple, modified mClock algorithm which does not require complex synchronizations between servers.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
: [Added and made changes to Critique! please edit if you guys find mistake(s)]--[[User:npatel1|npatel1]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces the mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves to be efficient in clustered architectures due to better resource allocation while providing greater isolation between VMs. mClock allows users to be comfortable when working with multiple VMs on one HOST without the constant worry of performance levels, with each VM add-on.&lt;br /&gt;
&lt;br /&gt;
: The paper proposes a better, and effective alternative to SFQ and other older methods; the mClock algorithm which efficiently handles multiple VMs in a throughput environment (LUN, PARDA).&lt;br /&gt;
: One aspect of the writing style , &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot; &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. The style of displaying these calculations depicts a messy, unorganized styled.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6149</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6149"/>
		<updated>2010-12-02T03:42:02Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
: [Added and made changed to Background Concepts! please edit if you guys find mistake(s)]--[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: VM usage is increasing significantly on a daily basis – whether by large gaming firms or university students. SFQ(D) performed fairly for low-intensity workloads. However, as the workload with VMs multiplied, the constant need for faster performance and efficiency rose. Hypervisors required a resource-allocation algorithm in order to meet the need for high performance VMs running concurrently; mClock was the answer Gulati, Varman, and Merchant proposed, to aid hypervisors.&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. &lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Evidently, it is the better alternate to SQF because it supports all controls in a single algorithm, handles variable and unknown capacity, and is fast to compute. The algorithm does not weaken the performance level as each VM gets added on, and mClock reservations are met. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
: [Added and made changed to Research Problem! please edit if you guys find mistake(s)]--[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Today, we use a very primitive kind of IO resource allocation in modern hypervisors. Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is being used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ (Start-time Fair Queuing) &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the main problem; whenever another VM is added or another background application is run on one of the VMs, all other VMs suffer a huge performance loss; a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, however as soon as the stress load on the shared storage device increases, the application might fail to run smoothly, or worse, crash. To resolve this issue of resource allocation and performance, mClock is introduced and tested against SFQ.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation.&lt;br /&gt;
&lt;br /&gt;
Older methods of IO resource allocation had a terrible performance lose. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop considerably. Older methods provided unreliable IO management of hypervisors&lt;br /&gt;
&lt;br /&gt;
mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper&lt;br /&gt;
&lt;br /&gt;
The mClock algorithm uses a tag-based scheduler with some modifications; like the tag-based schedulers all requests are assigned tags and scheduled in order of their tag values, the modifications includes the ability to use “multiple tags based on three controls and dynamically decide which tag to use for scheduling, while still synchronizing idle clients”&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
&lt;br /&gt;
: [Added and made changed to Critique! please edit if you guys find mistake(s)] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces the mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. The good thing about this is that the algorithm proves to be efficient in clustered architectures due to better resource allocation while providing greater isolation between VMs. mClock allows users to be comfortable when working with multiple VMs on one HOST without the constant worry of performance levels, with each VM add-on.&lt;br /&gt;
&lt;br /&gt;
: The paper proposes a better, and effective alternative to SFQ and other older methods; the mClock algorithm which efficiently handles multiple VMs in a throughput environment (LUN, PARDA).&lt;br /&gt;
: One aspect of the writing style , &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. The style of displaying these calculations depicts a messy, unorganized styled.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6096</id>
		<title>COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_2_2010_Question_10&amp;diff=6096"/>
		<updated>2010-12-02T02:40:45Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Research problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hypervisors are responsible for multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are: reservation, where the minimum bounds are set, the limit where the maximum upper bound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upper bound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met.&lt;br /&gt;
&lt;br /&gt;
: more about mclock here&lt;br /&gt;
&lt;br /&gt;
mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
Today, we use a very primitive kind of IO resource allocation in modern hypervisors.   Currently an algorithm called PARDA (Proportional Allocation of Resources in Distributed storage Access) &amp;lt;sup&amp;gt;[[#Foot1|1]]&amp;lt;/sup&amp;gt; is used to allocate IO resources to each VM running on a particular storage device. Unfortunately, the IO resource allocation algorithm of the hosts use a fair-scheduler called SFQ (Start-time Fair Queuing) &amp;lt;sup&amp;gt;[[#Foot2|2]]&amp;lt;/sup&amp;gt;. What this means is that PARDA allocates IO resources to VMs proportional to the number of IO shares on the host, but each host uses a fair scheduler which divides the IO shares amongst the VMs equally. This leads to the problem that whenever another VM is added or another background application is run on one of the VMs, all the other VMs suffer a huge performance lose.  In the case of adding another VM, there is a 40% performance drop. This is completely unacceptable when applications have minimum performance requirements to run effectively. An application with minimum resource requirements can be running fine on any given VM, but as soon as the load on the shared storage device increases, the application would run poorly, or could potentially crash.&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
This paper addresses the current limitations of IO resource allocation for hypervisors. The paper has proposed a new and more efficient algorithm to allocate IO resources. Older methods were limited solely by providing proportional shares. mClock incorporates proportional shares, as well as a minimum reservation of IO resources, and a maximum reservation.&lt;br /&gt;
&lt;br /&gt;
Older methods of IO resource allocation had a terrible performance lose. Whenever the load on the shared storage device was increased, or when another VM was added, the performance of all hosts would drop considerably. Older methods provided unreliable IO management of hypervisors&lt;br /&gt;
&lt;br /&gt;
mClock was able to present VMs with a guaranteed minimum reservation of IO resources. This means that application performance will never drop below a certain point. This provides much better application stability on each of the VMs, and better overall performance.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
The article introduces the mClock algorithm which handles multiple VMs in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. This algorithm, mClock, is able to meet those controls in varying capacity. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this is that the algorithm proves efficient in clustered architectures. Moreover, it provides greater isolation between VMs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. &lt;br /&gt;
One aspect of the writing style , &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence.&amp;lt;math&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot1&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; A. Gulati, I. Ahmad, and C. Waldspurger. PARDA: Proportional&lt;br /&gt;
Allocation of Resources in Distributed Storage&lt;br /&gt;
Access. In (FAST ’09) Proceedings of the Seventh Usenix&lt;br /&gt;
Conference on File and Storage Technologies, Feb 2009.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Foot2&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; W. Jin, J. S. Chase, and J. Kaur. Interposed proportional&lt;br /&gt;
sharing for a storage service utility. In ACM SIGMET-&lt;br /&gt;
RICS, 2004. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.7012&amp;amp;rep=rep1&amp;amp;type=pdf Interposed proportional sharing for a storage service utility]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5970</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5970"/>
		<updated>2010-12-01T18:49:45Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Background Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think I&#039;ve moved all the existing text to the main page, as things were being edited in 2 places. Hope that&#039;s okay. --[[User:Dagar|Dagar]] 23:01, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
that&#039;s fine! hey guys are we good with the information that we gathered? i think we should find external links on mClock if possible.  --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
I can&#039;t any external links on mClock&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
Heres some notes i took from the paper. I did not want to put it on the main page because it is directly copied from the paper:&lt;br /&gt;
&lt;br /&gt;
The intuitive idea behind the mClock algorithm is to logically interleave a constraint-based scheduler and a weight-based scheduler in a fine-grained manner. The constraint-based scheduler ensures that VMs receive at least their minimum reserved service and no more than the upper limit in a time interval, while the weight-based scheduler allocates the remaining throughput to achieve proportional sharing.&lt;br /&gt;
mClock uses two main ideas: multiple real-time clocks and dynamic clock selection.&lt;br /&gt;
Each VM IO request is assigned three tags, one for each clock: a reservation tag R, a limit tag L, and a proportional share tag P for weight-based allocation. Different clocks are used to keep track of each of the three controls, and tags based on one of the clocks are dynamically chosen to do the constraint-based or weight-based scheduling.&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
 Related work&lt;br /&gt;
 - http://www.fortuitous.com/docs/whitepapers/Linux2.6-Perf-Intro.pdf&lt;br /&gt;
    -Linux schedulers (CFQ, SFQ)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Storage IO allocation is hard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;mClockcontributions&#039;&#039;&#039;&lt;br /&gt;
  •Supports reservation, limit and shares in one place&lt;br /&gt;
  •Handles variable IO performance seen by hypervisor&lt;br /&gt;
  •Can be used for other resources such as CPU, memory &amp;amp; Network IO allocation as well&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Future work&#039;&#039;&#039;&lt;br /&gt;
  •Better estimation of reservation capacity in terms of IOPS&lt;br /&gt;
  •Add priority control along with RLS&lt;br /&gt;
  •Mechanisms to set R, L,S and other controls to meet application-level goals&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I see, I&#039;ll have to read it over again&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5969</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5969"/>
		<updated>2010-12-01T18:20:52Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Research problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think I&#039;ve moved all the existing text to the main page, as things were being edited in 2 places. Hope that&#039;s okay. --[[User:Dagar|Dagar]] 23:01, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
that&#039;s fine! hey guys are we good with the information that we gathered? i think we should find external links on mClock if possible.  --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
I can&#039;t any external links on mClock&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
 Related work&lt;br /&gt;
 - http://www.fortuitous.com/docs/whitepapers/Linux2.6-Perf-Intro.pdf&lt;br /&gt;
    -Linux schedulers (CFQ, SFQ)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Storage IO allocation is hard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;mClockcontributions&#039;&#039;&#039;&lt;br /&gt;
  •Supports reservation, limit and shares in one place&lt;br /&gt;
  •Handles variable IO performance seen by hypervisor&lt;br /&gt;
  •Can be used for other resources such as CPU, memory &amp;amp; Network IO allocation as well&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Future work&#039;&#039;&#039;&lt;br /&gt;
  •Better estimation of reservation capacity in terms of IOPS&lt;br /&gt;
  •Add priority control along with RLS&lt;br /&gt;
  •Mechanisms to set R, L,S and other controls to meet application-level goals&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I see, I&#039;ll have to read it over again&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5968</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5968"/>
		<updated>2010-12-01T18:20:28Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Research problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think I&#039;ve moved all the existing text to the main page, as things were being edited in 2 places. Hope that&#039;s okay. --[[User:Dagar|Dagar]] 23:01, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
that&#039;s fine! hey guys are we good with the information that we gathered? i think we should find external links on mClock if possible.  --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
I can&#039;t any external links on mClock&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
 Related work&lt;br /&gt;
 - http://www.fortuitous.com/docs/whitepapers/Linux2.6-Perf-Intro.pdf&lt;br /&gt;
: Linux schedulers (CFQ, SFQ)&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Storage IO allocation is hard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;mClockcontributions&#039;&#039;&#039;&lt;br /&gt;
  •Supports reservation, limit and shares in one place&lt;br /&gt;
  •Handles variable IO performance seen by hypervisor&lt;br /&gt;
  •Can be used for other resources such as CPU, memory &amp;amp; Network IO allocation as well&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Future work&#039;&#039;&#039;&lt;br /&gt;
  •Better estimation of reservation capacity in terms of IOPS&lt;br /&gt;
  •Add priority control along with RLS&lt;br /&gt;
  •Mechanisms to set R, L,S and other controls to meet application-level goals&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I see, I&#039;ll have to read it over again&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5962</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5962"/>
		<updated>2010-12-01T18:10:12Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Critique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think I&#039;ve moved all the existing text to the main page, as things were being edited in 2 places. Hope that&#039;s okay. --[[User:Dagar|Dagar]] 23:01, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
that&#039;s fine! hey guys are we good with the information that we gathered? i think we should find external links on mClock if possible.  --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
I can&#039;t any external links on mClock&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Storage IO allocation is hard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;mClockcontributions&#039;&#039;&#039;&lt;br /&gt;
  •Supports reservation, limit and shares in one place&lt;br /&gt;
  •Handles variable IO performance seen by hypervisor&lt;br /&gt;
  •Can be used for other resources such as CPU, memory &amp;amp; Network IO allocation as well&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Future work&#039;&#039;&#039;&lt;br /&gt;
  •Better estimation of reservation capacity in terms of IOPS&lt;br /&gt;
  •Add priority control along with RLS&lt;br /&gt;
  •Mechanisms to set R, L,S and other controls to meet application-level goals&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I see, I&#039;ll have to read it over again&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5960</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5960"/>
		<updated>2010-12-01T18:09:03Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Notes to Group */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We might as well work directly on the main page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think I&#039;ve moved all the existing text to the main page, as things were being edited in 2 places. Hope that&#039;s okay. --[[User:Dagar|Dagar]] 23:01, 30 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
that&#039;s fine! hey guys are we good with the information that we gathered? i think we should find external links on mClock if possible.  --[[User:npatel1|npatel1]]&lt;br /&gt;
&lt;br /&gt;
I can&#039;t any external links on mClock&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Authors&#039;&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Link to the paper&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[http://www.usenix.org/events/osdi10/tech/full_papers/Gulati.pdf mClock: Handling Throughput Variability for Hypervisor IO Scheduling]&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Storage IO allocation is hard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;mClockcontributions&#039;&#039;&#039;&lt;br /&gt;
  •Supports reservation, limit and shares in one place&lt;br /&gt;
  •Handles variable IO performance seen by hypervisor&lt;br /&gt;
  •Can be used for other resources such as CPU, memory &amp;amp; Network IO allocation as well&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Future work&#039;&#039;&#039;&lt;br /&gt;
  •Better estimation of reservation capacity in terms of IOPS&lt;br /&gt;
  •Add priority control along with RLS&lt;br /&gt;
  •Mechanisms to set R, L,S and other controls to meet application-level goals&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
: Tuan,i think the term PARDA was explained in the article. It stands for Proportional Allocation of Resources in Distributed storage Access. It was basically a priority queue for the storage devices and VMs.--[[User:Aellebla|Aaron Leblanc]] 22:47, 30 November 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5620</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5620"/>
		<updated>2010-11-27T03:10:46Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
: the paper&#039;s title, authors, and their affiliations.  Include a link to the paper and any particularly helpful supplementary information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible were multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: Here abit more on mClock!&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5619</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5619"/>
		<updated>2010-11-27T03:10:22Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
: the paper&#039;s title, authors, and their affiliations.  Include a link to the paper and any particularly helpful supplementary information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible were multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: Here abit more on mClock!&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock (used for cluster-based storage systems) runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5618</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5618"/>
		<updated>2010-11-27T03:08:46Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
: the paper&#039;s title, authors, and their affiliations.  Include a link to the paper and any particularly helpful supplementary information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible were multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: Here abit more on mClock!&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
: - &amp;quot;dmClock runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&amp;quot; - from the paper&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5617</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5617"/>
		<updated>2010-11-27T03:08:12Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Contribution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
: the paper&#039;s title, authors, and their affiliations.  Include a link to the paper and any particularly helpful supplementary information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible were multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: Here abit more on mClock!&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
&lt;br /&gt;
- dmClock runs a modified version of mClock at each server. There is only one modification to the algorithm to account for the distributed model in the Tag-Assignment component.&lt;br /&gt;
&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5616</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5616"/>
		<updated>2010-11-27T03:06:16Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Critique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
: the paper&#039;s title, authors, and their affiliations.  Include a link to the paper and any particularly helpful supplementary information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible were multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: Here abit more on mClock!&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence. [[User:tpham3|Tuan Pham]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5615</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5615"/>
		<updated>2010-11-27T03:05:32Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Critique */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
: the paper&#039;s title, authors, and their affiliations.  Include a link to the paper and any particularly helpful supplementary information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible were multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: Here abit more on mClock!&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: In this paper there were many terms that were used but never explained, such as orders (used in the graphs), LUN, PARDA, etc. Also i did not like the way the calcualtions were written in sentences, &amp;quot;For a small reference IO size of 8KB and using typical values for mechanical delay T&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = 5ms and peak transfer rate, B&amp;lt;sub&amp;gt;peak&amp;lt;/sub&amp;gt; = 60 MB/s, the numerator = Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;*(1 + 8/300) &amp;amp;asymp; Lat&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;quot;. To me this was very messy and made me skip through the calculations part of the sentence.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5575</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=5575"/>
		<updated>2010-11-25T16:25:40Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Group Members */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Notes to Group=&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Niravkumar Patel]] - npatel1@connect.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@connect.carleton.ca&lt;br /&gt;
*[[User:aellebla|Aaron Leblanc]] - aellebla@connect.carleton.ca&lt;br /&gt;
*[[User:naseido|Nisrin Abou-Seido]] - naseido@connect.carleton.ca&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
: the paper&#039;s title, authors, and their affiliations.  Include a link to the paper and any particularly helpful supplementary information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Ajay Gulati VMware Inc. Palo Alto, CA, 94304 agulati@vmware.com&lt;br /&gt;
&lt;br /&gt;
: Arif Merchant HP Labs Palo Alto, CA 94304 arif.merchant@acm.org&lt;br /&gt;
&lt;br /&gt;
: Peter J. Varman Rice University Houston, TX, 77005 pjv@rice.edu&lt;br /&gt;
&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Hypervisors are responsible were multiplexing hardware resources between virtual machines while providing isolation to an extent, using resource management. The three controls used are reservation where the minimum bounds are set, the limit where the maximum upperbound on the allocation is set, and shares which proportionally allocate the resources according to the certain weight each VM has, and also depending on the reservation and upperbound limits. This is interesting because virtualization has been very successful; people are comfortable with putting multiple VM on one HOST without worrying about the performance of each VM on another. However the contention for I/O resources can suddenly lower a VM’s allocation; the available throughput can change with time, and adjustments to allocations must be made dynamically. mClock is a better alternate because it supports all controls in a single algorithm, handles variable and unknown capacity, and fast to compute. This is interesting because there is a limit control on VM allocation, it does not weaken as each VM gets added on, and mClock reservations are met. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
: Here abit more on mClock!&lt;br /&gt;
&lt;br /&gt;
: mClock is a resource-allocation algorithm that helps hypervisors manage I/O requests from multiple virtual machines simultaneously. Essentially, mClock dynamically adjusts the proportions of resources each VM receives based on how active each VM currently is. While mClock constantly changes the physical resource allocation to each VM, it lets each VM hold onto the illusion that it has full control of all system resources. As a result, performance can be increased for VMs that need it, without letting the others know that “their” resources are being distributed to other machines. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: The article introduces a mClock algorithm which handles multiple VM in a variable throughput environment. The Quality of Service (QoS) requirements for a VM are expressed as a minimum reservation, a maximum limit, and a proportional share. mClock is able to meet those controls in varying capacity. the good thing about this is that the algorithms proves efficient in clustered architectures. Moreover, mClock provides greater isolation between VMs. [[User:npatel1|Niravkumar Patel]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=4978</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=4978"/>
		<updated>2010-11-15T16:12:26Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Group Members */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Kumar Patel]] - npatel1@scs.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@scs.carleton.ca&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Waiting for response===&lt;br /&gt;
*Abou-Seido Nisrin  naseido&lt;br /&gt;
*Leblanc Aaron   aellebla&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
: the paper&#039;s title, authors, and their affiliations.  Include a link to the paper and any particularly helpful supplementary information.&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=4977</id>
		<title>Talk:COMP 3000 Essay 2 2010 Question 10</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_2_2010_Question_10&amp;diff=4977"/>
		<updated>2010-11-15T16:12:17Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Group Members */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;mClock: Handling Throughput Variability for Hypervisor IO Scheduling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Group Members=&lt;br /&gt;
Please leave your name and email address if you are in the group&lt;br /&gt;
&lt;br /&gt;
*[[User:Dagar|Daniel Agar]] - dagar@scs.carleton.ca&lt;br /&gt;
*[[User:xchen6|Xi Chen]] - xintai1985@gmail.com&lt;br /&gt;
*[[User:npatel1|Kumar Patel]] - npatel1@scs.carleton.ca&lt;br /&gt;
*[[User:tpham3|Tuan Pham]] - tpham3@scs.carleton.ca&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Waiting for response===&lt;br /&gt;
*Abou-Seido Nisrin  naseido&lt;br /&gt;
*Leblanc Aaron   aellebla&lt;br /&gt;
*Pham    Tuan    tpham3&lt;br /&gt;
&lt;br /&gt;
=Layout=&lt;br /&gt;
==Paper==&lt;br /&gt;
: the paper&#039;s title, authors, and their affiliations.  Include a link to the paper and any particularly helpful supplementary information.&lt;br /&gt;
==Background Concepts==&lt;br /&gt;
: Explain briefly the background concepts and ideas that your fellow classmates will need to know first in order to understand your assigned paper.&lt;br /&gt;
==Research problem==&lt;br /&gt;
:  What is the research problem being addressed by the paper?  How does this problem relate to past related work?&lt;br /&gt;
==Contribution==&lt;br /&gt;
: What are the research contribution(s) of this work?  Specifically, what are the key research results, and what do they mean?  (What was implemented?  Why is it any better than what came before?)&lt;br /&gt;
==Critique==&lt;br /&gt;
: What is good and not-so-good about this paper?  You may discuss both the style and content; be sure to ground your discussion with specific references.  Simple assertions that something is good or bad is not enough - you must explain why.&lt;br /&gt;
==References==&lt;br /&gt;
: You will almost certainly have to refer to other resources; please cite these resources in the style of citation of the papers assigned (inlined numbered references).  Place your bibliographic entries in this section.&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_12&amp;diff=4790</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_12&amp;diff=4790"/>
		<updated>2010-10-15T20:42:17Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Contact Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://portal.acm.org.proxy.library.carleton.ca/citation.cfm?id=364716.364719&amp;amp;coll=Portal&amp;amp;dl=GUIDE&amp;amp;CFID=107313098&amp;amp;CFTOKEN=63043022&lt;br /&gt;
&lt;br /&gt;
http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf &lt;br /&gt;
&lt;br /&gt;
http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php  It looks to be pretty accurate &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.ntfs.com/winfs_basics.htm&lt;br /&gt;
&lt;br /&gt;
http://blogs.msdn.com/b/winfs/ The team blog &lt;br /&gt;
&lt;br /&gt;
http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now  &amp;lt;-- If you are bored and want to learn about WinFs, 54 min video. &lt;br /&gt;
&lt;br /&gt;
http://www.splorp.com/newton/faq/newton-faq-nos.html#IIID3c an overview of the Newton OS filesystem to help you out --Rannath&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7 BeOS --Rannath&lt;br /&gt;
&lt;br /&gt;
I found some other stuff for Palm OS data base, but didn&#039;t find any good yet. &lt;br /&gt;
&lt;br /&gt;
All the above links give good explanation of the subject. I will try to update later.&lt;br /&gt;
&lt;br /&gt;
-Jean-Benoit&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I found a little bit more in depth about NewtonOS:&lt;br /&gt;
http://lowendmac.com/orchard/06/john-sculley-newton-origin.html&lt;br /&gt;
&lt;br /&gt;
Also, another name for Palm OS is Garnet OS. I haven&#039;t had time yet to look too much into this, but the wiki has many links to references and to the main site:&lt;br /&gt;
http://en.wikipedia.org/wiki/Palm_OS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edit:&lt;br /&gt;
Since there are 5 database systems listed, and 5 people in the group, we can each pick one to work on. If anyone needs help with the one they pick, holla! Also, if you find another database system you want to work on, just add it to the list and put your name beside it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
WinFS -  Jean-Benoit&lt;br /&gt;
&lt;br /&gt;
ReiserFS - Sarah L&lt;br /&gt;
&lt;br /&gt;
Newton OS - Daniel&lt;br /&gt;
&lt;br /&gt;
PalmOS/Garnet OS - Tuan Pham&lt;br /&gt;
&lt;br /&gt;
BeOS - Xi Chen&lt;br /&gt;
&lt;br /&gt;
Other (list)...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Daniel&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Just to check how everybody are going? There is still two people who haven&#039;t picked an FileSystem, is there a problem or you simply didn&#039;t write your name next to it? &lt;br /&gt;
&lt;br /&gt;
Also, for others i found an other database System made by Oracle. It is called : Internet File System.  http://download.oracle.com/docs/html/A90434_01/toc.htm Here a good link to get started.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll probably posted in the page what I have written so far later today.&lt;br /&gt;
&lt;br /&gt;
Also, to keep consistence, I don&#039;t know how you are writing yours, but mine will look something like that : &lt;br /&gt;
Short history of Winfs, predecessor , etc.  (by short i mean roughly 200-300 words)&lt;br /&gt;
Short explanation on how WinFs works.&lt;br /&gt;
It&#039;s fate and Why&lt;br /&gt;
 &lt;br /&gt;
If you have any other idea, please share it. &lt;br /&gt;
&lt;br /&gt;
-Jean-Benoit&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Hey I am curious to how we are going to put all this together, are we each writing an essay for our chosen OS and then edit all the essays into one big one?&lt;br /&gt;
&lt;br /&gt;
-Tuan Pham&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I was thinking that we could simply have an introduction to express the general advantages and disadvantages of Database as filesystem, then create &lt;br /&gt;
sections for our different OS. Then at the end a conclusion. &lt;br /&gt;
&lt;br /&gt;
But for that to work, we need most of our essay to be done in the next 2 days or so. Tuesday during the day we would need all the essay to be done so we can edit each other and write introduction + conclusion. &lt;br /&gt;
&lt;br /&gt;
What do you think ? Any idea?&lt;br /&gt;
&lt;br /&gt;
Edit : I just posted what I have so far. If you have any idea to add anything , just let me know. Also, English isn&#039;t my first language, so feel free to fix any of my errors. &lt;br /&gt;
&lt;br /&gt;
I&#039;ll add the reference tomorow&lt;br /&gt;
&lt;br /&gt;
-Jean-Benoit&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Yeah i think we should do that but how about the two section that does not have the other group member&#039;s names beside?&lt;br /&gt;
&lt;br /&gt;
- Tuan Pham&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I will have to post my part of the project sometime Wednesday (most likely before 2pm). I apologize if this causes some problems for the group, but I have an assignment for another class that needs to be done by Wednesday, and I have little time Tuesday to work on this (work and classes). Here is a little summary of Newton OS to get an idea. I will make sure that by Wednesday afternoon I will have at least a near-finished copy of my work (some input may be required :p ).&lt;br /&gt;
&lt;br /&gt;
Newton OS was used on PDAs and doesn’t have a file system, but instead uses a shallow database system. The OS considers each inserted card, as well as its internal storage, as separate stores. Each store contains either read/write databases or read-only objects. Newton eventually was cancelled and became an Apple subsidiary company, then shortly thereafter was reabsorbed into Apple. Developers from the Newton project helped with the iPod OS and the project may have had a hand in the iPhone’s development.&lt;br /&gt;
&lt;br /&gt;
Edit: I left a notice to the group on the front page. Hopefully the other two members will see the notice. And about the two other sections: If we have at least 3 sections, we should be good, but hopefully we hear word from the other two members...&lt;br /&gt;
&lt;br /&gt;
- Daniel&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I just posted what i have so far. I am having difficulties finding the fate and why so if you guys know anything let me know. Also let me know if you have any suggestions for my part.&lt;br /&gt;
&lt;br /&gt;
- Tuan Pham&lt;br /&gt;
----&lt;br /&gt;
Sorry, I couldn&#039;t post this weekend. I&#039;ll gladly work on MurderFS/ReiserFS, and I can definitely finish before Wednesday afternoon (2ish).&lt;br /&gt;
&lt;br /&gt;
I really like how the WinFS sectioned is structured (although maybe condense the fate/why sections for readability?), it seems easy to follow. I agree we should all use the same sections (with additional subsections if need be). It&#039;ll make it look a lot cleaner/better put together.&lt;br /&gt;
&lt;br /&gt;
- Sarah&lt;br /&gt;
&lt;br /&gt;
Sorry, guys&lt;br /&gt;
Seems like I am the last member of the group, I am now doing works on the BeOS, and some stuff will be posted tonight or tomorrow morning. &lt;br /&gt;
Again, sorry for showing up late.&lt;br /&gt;
&lt;br /&gt;
Xi Chen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hi guys, Luc (lab TA ¬.¬) here, I&#039;m seeing some good collaboration here, but I&#039;m concerned about how coherent the end product will be.  I think you guys need to spend some time working out the central thesis and how the various components will advance that point before everybody goes off to work on their little piece.&lt;br /&gt;
&lt;br /&gt;
--[[User:3maisons|3maisons]] 20:14, 12 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I agree. I believe the prof said today that he wants a thesis and we use the examples (WinFS, ReiserFS, Newton OS, PalmOS/Garnet OS, and BeOS) to prove our argument. So we should discuss a thesis and how to format the essay&lt;br /&gt;
&lt;br /&gt;
- Tuan Pham&lt;br /&gt;
&lt;br /&gt;
That sounds good, and you guys thinking about meeting up sometime in lab?&lt;br /&gt;
or we can chat through gTalk or the wiki.&lt;br /&gt;
&lt;br /&gt;
ps: my gmail acct is xintai1985@gmail.com&lt;br /&gt;
--Xi Chen&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
It could be a good idea to meet up to put everything together. &lt;br /&gt;
Or atleast use gTalk/msn/ whatever else people would like to use. &lt;br /&gt;
As we only have 2 days remaining, what about tonight ? &lt;br /&gt;
&lt;br /&gt;
And as Tuan said, we would need a thesis subject and then prove why it fails most of the time. &lt;br /&gt;
I&#039;m down to work on it whenever you guys are ready (or so obviously). Just send me an email to : jbout13@hotmail.com &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Jean-Benoit&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I will be available until 2pm today (Wednesday) and then from 7pm onwards. I think we should discuss the thesis and such tonight (if possible), then finish the essay up after class tomorrow morning. My email is demongyro@gmail.com.&lt;br /&gt;
&lt;br /&gt;
-Daniel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Let&#039;s try to be all around tonight for 7:30 ish ? so we can get thesis and start writing introduction + conclusion and to put everything together.&lt;br /&gt;
&lt;br /&gt;
We either can go to Carleton, or msn / Gmail. (or any other option I forgot) I&#039;m down for both of these.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
xintai1985@gmail.com Xi Chen 613-799-5893(in case)&lt;br /&gt;
&lt;br /&gt;
jbout13@hotmail.com Jean-Benoit &lt;br /&gt;
&lt;br /&gt;
demongyro@gmail.com Daniel - on gmail&lt;br /&gt;
&lt;br /&gt;
tuan-pham@hotmail.com Tuan Pham - lets do it over msn/gtalk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edit : Daniel and I are on Gmail, gtalk. &lt;br /&gt;
Add him or me to join the conversation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jean-Benoit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Guys add my gmail, t.m.pham3@gmail.com - Tuan Pham&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php&lt;br /&gt;
http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf&lt;br /&gt;
http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf&lt;br /&gt;
&lt;br /&gt;
so i don&#039;t lose these&lt;br /&gt;
&lt;br /&gt;
Reiser4, Part II: Designing Trees that Cache Well&lt;br /&gt;
Performance Evaluation of Linux File Systems for Data Warehousing Workloads&lt;br /&gt;
&lt;br /&gt;
sarah&lt;br /&gt;
----&lt;br /&gt;
moving this here because i&#039;m a little ocd...&lt;br /&gt;
&lt;br /&gt;
=Note to Group=&lt;br /&gt;
&lt;br /&gt;
=Contact Details=&lt;br /&gt;
Dustin Martin: 613-325-9427 dustin.adam.martin@gmail.com&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Wikipedia:Citing_Wikipedia&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4226</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4226"/>
		<updated>2010-10-15T00:02:27Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Other Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications. Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [2]. The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [2]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record[2]. This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf [3]] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html [4]] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS, WinFS was not as fortunate and leads a different path.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp [5]]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs [6]]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx [7]].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx [7]], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting[8]]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx [9]], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx[10]] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx [11]] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now [12]] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf&lt;br /&gt;
&lt;br /&gt;
[2]Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
[3]http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf &lt;br /&gt;
&lt;br /&gt;
[4]http://www.access-company.com/products/platforms/garnet/index.html &lt;br /&gt;
&lt;br /&gt;
[5]http://www.winsupersite.com/showcase/winfs_preview.asp&lt;br /&gt;
&lt;br /&gt;
[6]http://www.slideshare.net/Severus/winfs&lt;br /&gt;
&lt;br /&gt;
[7]http://msdn.microsoft.com/en-US/library/aa480687.aspx&lt;br /&gt;
&lt;br /&gt;
[8]http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting&lt;br /&gt;
&lt;br /&gt;
[9]http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx&lt;br /&gt;
&lt;br /&gt;
[10]http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx&lt;br /&gt;
&lt;br /&gt;
[11]http://msdn.microsoft.com/en-US/library/aa480687.aspx&lt;br /&gt;
&lt;br /&gt;
[12]http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
==Other Links==&lt;br /&gt;
&lt;br /&gt;
*http://membres.multimania.fr/microfirst/palm/pdb.html - Information on Palm OS&lt;br /&gt;
&lt;br /&gt;
*http://mobile.eric-poncet.com/palm/tutorial/db.html - Tutorial on Palm OS programming&lt;br /&gt;
&lt;br /&gt;
*http://www.letterp.com/~dbg/practical-file-system-design.pdf, Practical File System Design with the Be File System - Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
*http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235 - A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
*http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7 - From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
*http://en.wikipedia.org/wiki/BeOS - BeOS--Wikipedia&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4217</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4217"/>
		<updated>2010-10-14T23:57:30Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications. Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [2]. The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [2]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record[2]. This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf [3]] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html [4]] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS, WinFS was not as fortunate and leads a different path.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf&lt;br /&gt;
&lt;br /&gt;
[2]Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
[3]http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf &lt;br /&gt;
&lt;br /&gt;
[4]http://www.access-company.com/products/platforms/garnet/index.html &lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
==Other Links==&lt;br /&gt;
&lt;br /&gt;
*http://membres.multimania.fr/microfirst/palm/pdb.html - Information on Palm OS&lt;br /&gt;
&lt;br /&gt;
*http://mobile.eric-poncet.com/palm/tutorial/db.html - Tutorial on how to Palm Os programming&lt;br /&gt;
&lt;br /&gt;
*http://www.letterp.com/~dbg/practical-file-system-design.pdf, Practical File System Design with the Be File System - Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
*http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235 - A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
*http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7 - From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
*http://en.wikipedia.org/wiki/BeOS - BeOS--Wikipedia&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4215</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4215"/>
		<updated>2010-10-14T23:56:38Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Fate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications. Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [2]. The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [2]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record[2]. This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf [3]] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html [4]] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS, WinFS was not as fortunate and leads a different path.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf&lt;br /&gt;
&lt;br /&gt;
[2]Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
[3]http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf &lt;br /&gt;
&lt;br /&gt;
[4]http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf&lt;br /&gt;
&lt;br /&gt;
[5]http://www.access-company.com/products/platforms/garnet/index.html&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
==Other Links==&lt;br /&gt;
&lt;br /&gt;
*http://membres.multimania.fr/microfirst/palm/pdb.html - Information on Palm OS&lt;br /&gt;
&lt;br /&gt;
*http://mobile.eric-poncet.com/palm/tutorial/db.html - Tutorial on how to Palm Os programming&lt;br /&gt;
&lt;br /&gt;
*http://www.letterp.com/~dbg/practical-file-system-design.pdf, Practical File System Design with the Be File System - Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
*http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235 - A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
*http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7 - From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
*http://en.wikipedia.org/wiki/BeOS - BeOS--Wikipedia&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4212</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4212"/>
		<updated>2010-10-14T23:55:58Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications. Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [2]. The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [2]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record[2]. This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf [4]] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html [4]] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS, WinFS was not as fortunate and leads a different path.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf&lt;br /&gt;
&lt;br /&gt;
[2]Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
[3]http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf &lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
==Other Links==&lt;br /&gt;
&lt;br /&gt;
*http://membres.multimania.fr/microfirst/palm/pdb.html - Information on Palm OS&lt;br /&gt;
&lt;br /&gt;
*http://mobile.eric-poncet.com/palm/tutorial/db.html - Tutorial on how to Palm Os programming&lt;br /&gt;
&lt;br /&gt;
*http://www.letterp.com/~dbg/practical-file-system-design.pdf, Practical File System Design with the Be File System - Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
*http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235 - A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
*http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7 - From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
*http://en.wikipedia.org/wiki/BeOS - BeOS--Wikipedia&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4211</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4211"/>
		<updated>2010-10-14T23:55:42Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Fate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications. Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [2]. The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [2]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record[2]. This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf [4]] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html [4]] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS, WinFS was not as fortunate and leads a different path.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf&lt;br /&gt;
&lt;br /&gt;
[2]Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
[3]&lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
==Other Links==&lt;br /&gt;
&lt;br /&gt;
*http://membres.multimania.fr/microfirst/palm/pdb.html - Information on Palm OS&lt;br /&gt;
&lt;br /&gt;
*http://mobile.eric-poncet.com/palm/tutorial/db.html - Tutorial on how to Palm Os programming&lt;br /&gt;
&lt;br /&gt;
*http://www.letterp.com/~dbg/practical-file-system-design.pdf, Practical File System Design with the Be File System - Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
*http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235 - A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
*http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7 - From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
*http://en.wikipedia.org/wiki/BeOS - BeOS--Wikipedia&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4209</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4209"/>
		<updated>2010-10-14T23:54:58Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Other Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications. Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [2]. The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [2]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record[2]. This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf [4]] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html [5]] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS, WinFS was not as fortunate and leads a different path.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf&lt;br /&gt;
&lt;br /&gt;
[2]Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
[3]&lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
==Other Links==&lt;br /&gt;
&lt;br /&gt;
*http://membres.multimania.fr/microfirst/palm/pdb.html - Information on Palm OS&lt;br /&gt;
&lt;br /&gt;
*http://mobile.eric-poncet.com/palm/tutorial/db.html - Tutorial on how to Palm Os programming&lt;br /&gt;
&lt;br /&gt;
*http://www.letterp.com/~dbg/practical-file-system-design.pdf, Practical File System Design with the Be File System - Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
*http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235 - A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
*http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7 - From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
*http://en.wikipedia.org/wiki/BeOS - BeOS--Wikipedia&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4207</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4207"/>
		<updated>2010-10-14T23:54:00Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Other Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications. Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [2]. The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [2]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record[2]. This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf [4]] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html [5]] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS, WinFS was not as fortunate and leads a different path.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf&lt;br /&gt;
&lt;br /&gt;
[2]Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
[3]&lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
==Other Links==&lt;br /&gt;
&lt;br /&gt;
*http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
*http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;br /&gt;
&lt;br /&gt;
*http://www.letterp.com/~dbg/practical-file-system-design.pdf, Practical File System Design with the Be File System - Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
*http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235 - A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
*http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7 - From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
*http://en.wikipedia.org/wiki/BeOS - BeOS--Wikipedia&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4206</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4206"/>
		<updated>2010-10-14T23:52:39Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications. Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [2]. The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [2]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record[2]. This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf [4]] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html [5]] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS, WinFS was not as fortunate and leads a different path.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf&lt;br /&gt;
&lt;br /&gt;
[2]Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
[3]&lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
==Other Links==&lt;br /&gt;
&lt;br /&gt;
*http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
*http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;br /&gt;
&lt;br /&gt;
*Practical File System Design with the Be File System, Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
*http://www.letterp.com/~dbg/practical-file-system-design.pdf&lt;br /&gt;
&lt;br /&gt;
A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
*http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235&lt;br /&gt;
&lt;br /&gt;
From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
*http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7&lt;br /&gt;
&lt;br /&gt;
BeOS--Wikipedia&lt;br /&gt;
&lt;br /&gt;
*http://en.wikipedia.org/wiki/BeOS&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4205</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4205"/>
		<updated>2010-10-14T23:51:47Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications. Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [2]. The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [2]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record[2]. This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf [4]] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html [5]] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS, WinFS was not as fortunate and leads a different path.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf&lt;br /&gt;
&lt;br /&gt;
[2]Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
[3]&lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;br /&gt;
&lt;br /&gt;
Practical File System Design with the Be File System, Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
http://www.letterp.com/~dbg/practical-file-system-design.pdf&lt;br /&gt;
&lt;br /&gt;
A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235&lt;br /&gt;
&lt;br /&gt;
From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7&lt;br /&gt;
&lt;br /&gt;
BeOS--Wikipedia&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/BeOS&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4202</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4202"/>
		<updated>2010-10-14T23:51:23Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications. Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [2]. The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [2]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record[2]. This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf [4]] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html [5]] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS, WinFS was not as fortunate and leads a different path.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf&lt;br /&gt;
&lt;br /&gt;
[2]&lt;br /&gt;
&lt;br /&gt;
[3]&lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;br /&gt;
&lt;br /&gt;
Practical File System Design with the Be File System, Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
http://www.letterp.com/~dbg/practical-file-system-design.pdf&lt;br /&gt;
&lt;br /&gt;
A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235&lt;br /&gt;
&lt;br /&gt;
From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7&lt;br /&gt;
&lt;br /&gt;
BeOS--Wikipedia&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/BeOS&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4201</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4201"/>
		<updated>2010-10-14T23:51:03Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Palm OS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications. Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [2]. The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [2]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [2] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf [4]] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html [5]] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS, WinFS was not as fortunate and leads a different path.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf&lt;br /&gt;
&lt;br /&gt;
[2]&lt;br /&gt;
&lt;br /&gt;
[3]&lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;br /&gt;
&lt;br /&gt;
Practical File System Design with the Be File System, Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
http://www.letterp.com/~dbg/practical-file-system-design.pdf&lt;br /&gt;
&lt;br /&gt;
A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235&lt;br /&gt;
&lt;br /&gt;
From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7&lt;br /&gt;
&lt;br /&gt;
BeOS--Wikipedia&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/BeOS&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4199</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4199"/>
		<updated>2010-10-14T23:49:43Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications. Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [BOOK REF]. The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [BOOK REF]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS, WinFS was not as fortunate and leads a different path.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf&lt;br /&gt;
&lt;br /&gt;
[2]&lt;br /&gt;
&lt;br /&gt;
[3]&lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;br /&gt;
&lt;br /&gt;
Practical File System Design with the Be File System, Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
http://www.letterp.com/~dbg/practical-file-system-design.pdf&lt;br /&gt;
&lt;br /&gt;
A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235&lt;br /&gt;
&lt;br /&gt;
From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7&lt;br /&gt;
&lt;br /&gt;
BeOS--Wikipedia&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/BeOS&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4198</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4198"/>
		<updated>2010-10-14T23:49:08Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications. Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [BOOK REF]. The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [BOOK REF]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS, WinFS was not as fortunate and leads a different path.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]&lt;br /&gt;
&lt;br /&gt;
[2]&lt;br /&gt;
&lt;br /&gt;
[3]&lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;br /&gt;
&lt;br /&gt;
Practical File System Design with the Be File System, Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
http://www.letterp.com/~dbg/practical-file-system-design.pdf&lt;br /&gt;
&lt;br /&gt;
A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235&lt;br /&gt;
&lt;br /&gt;
From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7&lt;br /&gt;
&lt;br /&gt;
BeOS--Wikipedia&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/BeOS&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4196</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4196"/>
		<updated>2010-10-14T23:48:44Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf [1]]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications. Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [BOOK REF]. The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [BOOK REF]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS, WinFS was not as fortunate and leads a different path.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]&lt;br /&gt;
&lt;br /&gt;
[2]&lt;br /&gt;
&lt;br /&gt;
[3]&lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;br /&gt;
&lt;br /&gt;
Practical File System Design with the Be File System, Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
http://www.letterp.com/~dbg/practical-file-system-design.pdf&lt;br /&gt;
&lt;br /&gt;
A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235&lt;br /&gt;
&lt;br /&gt;
From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7&lt;br /&gt;
&lt;br /&gt;
BeOS--Wikipedia&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/BeOS&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4195</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4195"/>
		<updated>2010-10-14T23:47:53Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Database Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]&amp;quot;. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications. Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [BOOK REF]. The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [BOOK REF]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS, WinFS was not as fortunate and leads a different path.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]&lt;br /&gt;
&lt;br /&gt;
[2]&lt;br /&gt;
&lt;br /&gt;
[3]&lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;br /&gt;
&lt;br /&gt;
Practical File System Design with the Be File System, Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
http://www.letterp.com/~dbg/practical-file-system-design.pdf&lt;br /&gt;
&lt;br /&gt;
A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235&lt;br /&gt;
&lt;br /&gt;
From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7&lt;br /&gt;
&lt;br /&gt;
BeOS--Wikipedia&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/BeOS&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4194</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4194"/>
		<updated>2010-10-14T23:46:56Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Fate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]&amp;quot;. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications.&lt;br /&gt;
&lt;br /&gt;
Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [book ref].  &lt;br /&gt;
&lt;br /&gt;
The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [book ref]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS, WinFS was not as fortunate and leads a different path.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]&lt;br /&gt;
&lt;br /&gt;
[2]&lt;br /&gt;
&lt;br /&gt;
[3]&lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;br /&gt;
&lt;br /&gt;
Practical File System Design with the Be File System, Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
http://www.letterp.com/~dbg/practical-file-system-design.pdf&lt;br /&gt;
&lt;br /&gt;
A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235&lt;br /&gt;
&lt;br /&gt;
From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7&lt;br /&gt;
&lt;br /&gt;
BeOS--Wikipedia&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/BeOS&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4188</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4188"/>
		<updated>2010-10-14T23:45:26Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Fate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]&amp;quot;. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications.&lt;br /&gt;
&lt;br /&gt;
Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [book ref].  &lt;br /&gt;
&lt;br /&gt;
The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [book ref]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system. Unlike the Palm OS&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]&lt;br /&gt;
&lt;br /&gt;
[2]&lt;br /&gt;
&lt;br /&gt;
[3]&lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;br /&gt;
&lt;br /&gt;
Practical File System Design with the Be File System, Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
http://www.letterp.com/~dbg/practical-file-system-design.pdf&lt;br /&gt;
&lt;br /&gt;
A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235&lt;br /&gt;
&lt;br /&gt;
From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7&lt;br /&gt;
&lt;br /&gt;
BeOS--Wikipedia&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/BeOS&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4186</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4186"/>
		<updated>2010-10-14T23:43:54Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]&amp;quot;. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications.&lt;br /&gt;
&lt;br /&gt;
Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [book ref].  &lt;br /&gt;
&lt;br /&gt;
The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [book ref]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]&lt;br /&gt;
&lt;br /&gt;
[2]&lt;br /&gt;
&lt;br /&gt;
[3]&lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;br /&gt;
&lt;br /&gt;
Practical File System Design with the Be File System, Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
http://www.letterp.com/~dbg/practical-file-system-design.pdf&lt;br /&gt;
&lt;br /&gt;
A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235&lt;br /&gt;
&lt;br /&gt;
From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7&lt;br /&gt;
&lt;br /&gt;
BeOS--Wikipedia&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/BeOS&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4183</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4183"/>
		<updated>2010-10-14T23:42:40Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf Source 1]&amp;quot;. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications.&lt;br /&gt;
&lt;br /&gt;
Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [book ref].  &lt;br /&gt;
&lt;br /&gt;
The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [book ref]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]&lt;br /&gt;
&lt;br /&gt;
[2]&lt;br /&gt;
&lt;br /&gt;
[3]&lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;br /&gt;
&lt;br /&gt;
Practical File System Design with the Be File System, Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
http://www.letterp.com/~dbg/practical-file-system-design.pdf&lt;br /&gt;
&lt;br /&gt;
A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235&lt;br /&gt;
&lt;br /&gt;
From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7&lt;br /&gt;
&lt;br /&gt;
BeOS--Wikipedia&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/BeOS&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4180</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4180"/>
		<updated>2010-10-14T23:40:30Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning,&amp;lt;ref&amp;gt;&amp;quot;Author, Publisher, Date of Publication, [url=http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf Source 1]&amp;quot;, Today&amp;lt;/ref&amp;gt;. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications.&lt;br /&gt;
&lt;br /&gt;
Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [book ref].  &lt;br /&gt;
&lt;br /&gt;
The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [book ref]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1]&lt;br /&gt;
&lt;br /&gt;
[2]&lt;br /&gt;
&lt;br /&gt;
[3]&lt;br /&gt;
&lt;br /&gt;
[4]&lt;br /&gt;
&lt;br /&gt;
[5]&lt;br /&gt;
&lt;br /&gt;
[6]&lt;br /&gt;
&lt;br /&gt;
[7]&lt;br /&gt;
&lt;br /&gt;
[8]&lt;br /&gt;
&lt;br /&gt;
[9]&lt;br /&gt;
&lt;br /&gt;
[10]&lt;br /&gt;
&lt;br /&gt;
[11]&lt;br /&gt;
&lt;br /&gt;
[12]&lt;br /&gt;
&lt;br /&gt;
[13]&lt;br /&gt;
&lt;br /&gt;
[14]&lt;br /&gt;
&lt;br /&gt;
[15]&lt;br /&gt;
&lt;br /&gt;
[16]&lt;br /&gt;
&lt;br /&gt;
[17]&lt;br /&gt;
&lt;br /&gt;
[18]&lt;br /&gt;
&lt;br /&gt;
[19]&lt;br /&gt;
&lt;br /&gt;
[20]&lt;br /&gt;
&lt;br /&gt;
[21]&lt;br /&gt;
&lt;br /&gt;
[22]&lt;br /&gt;
&lt;br /&gt;
[23]&lt;br /&gt;
&lt;br /&gt;
[24]&lt;br /&gt;
&lt;br /&gt;
[25]&lt;br /&gt;
&lt;br /&gt;
[26]&lt;br /&gt;
&lt;br /&gt;
[27]&lt;br /&gt;
&lt;br /&gt;
[28]&lt;br /&gt;
&lt;br /&gt;
[29]&lt;br /&gt;
&lt;br /&gt;
[30]&lt;br /&gt;
&lt;br /&gt;
[31]&lt;br /&gt;
&lt;br /&gt;
[32]&lt;br /&gt;
&lt;br /&gt;
[33]&lt;br /&gt;
&lt;br /&gt;
[34]&lt;br /&gt;
&lt;br /&gt;
[35]&lt;br /&gt;
&lt;br /&gt;
[36]&lt;br /&gt;
&lt;br /&gt;
[37]&lt;br /&gt;
&lt;br /&gt;
[38]&lt;br /&gt;
&lt;br /&gt;
[39]&lt;br /&gt;
&lt;br /&gt;
[40]&lt;br /&gt;
&lt;br /&gt;
[41]&lt;br /&gt;
&lt;br /&gt;
[42]&lt;br /&gt;
&lt;br /&gt;
[43]&lt;br /&gt;
&lt;br /&gt;
[44]&lt;br /&gt;
&lt;br /&gt;
[45]&lt;br /&gt;
&lt;br /&gt;
[46]&lt;br /&gt;
&lt;br /&gt;
[47]&lt;br /&gt;
&lt;br /&gt;
[48]&lt;br /&gt;
&lt;br /&gt;
[49]&lt;br /&gt;
&lt;br /&gt;
[50]&lt;br /&gt;
&lt;br /&gt;
[51]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;br /&gt;
&lt;br /&gt;
Practical File System Design with the Be File System, Dominic Giampaolo&lt;br /&gt;
&lt;br /&gt;
http://www.letterp.com/~dbg/practical-file-system-design.pdf&lt;br /&gt;
&lt;br /&gt;
A Chinese article talks about Be,Inc. BeOS and their fate&lt;br /&gt;
&lt;br /&gt;
http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235&lt;br /&gt;
&lt;br /&gt;
From BFS to ZFS: past, present, and future of file systems&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7&lt;br /&gt;
&lt;br /&gt;
BeOS--Wikipedia&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/BeOS&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4177</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4177"/>
		<updated>2010-10-14T23:37:43Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning,&amp;lt;ref&amp;gt;&amp;quot;Author, Publisher, Date of Publication, [url=http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf Source 1]&amp;quot;, Today&amp;lt;/ref&amp;gt;. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications.&lt;br /&gt;
&lt;br /&gt;
Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [book ref].  &lt;br /&gt;
&lt;br /&gt;
The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [book ref]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
{{Reflist}}&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4173</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4173"/>
		<updated>2010-10-14T23:34:51Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system using a database driven file system, each developed to satisfy its individual needs. We will visit five different operating systems that used a database as file system. First, both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. Lastly, ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux.&lt;br /&gt;
The success of each of these file systems is intrinsically tied to that of its host operating system, and vice versa. One cannot succeed without the other. With that in mind, by closely examining each file system and operating system combination individually, it is clear that none have been successful. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning,[url=http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications.&lt;br /&gt;
&lt;br /&gt;
Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [book ref].  &lt;br /&gt;
&lt;br /&gt;
The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [book ref]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project. We will now talk about NewtonOS.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.[http://en.wikipedia.org/wiki/BeOS]&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking.[http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7] Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
And now we will exam ReiserFS.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these examples of database-like systems, it becomes apparent that despite their potential, each did not live up to its expectations. Since the success of a file system  is tied to that of the operating system, a harmonious relationship must exist between the two. In each case defined above, Palm OS, WinFS, Newton OS, BeOS and ReiserFS, that relationship did not manifest into success. There has not yet been developed a highly flexible design that would be useful on the average system. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch from a tried and true system to a newer and possibly unstable technology. In the case of database-like file systems, the few implementations that are available to the public are unstable, and therefore an unattractive choice.&lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that database-like stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
{{Reflist}}&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_12&amp;diff=4152</id>
		<title>Talk:COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:COMP_3000_Essay_1_2010_Question_12&amp;diff=4152"/>
		<updated>2010-10-14T23:03:32Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Contact Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://portal.acm.org.proxy.library.carleton.ca/citation.cfm?id=364716.364719&amp;amp;coll=Portal&amp;amp;dl=GUIDE&amp;amp;CFID=107313098&amp;amp;CFTOKEN=63043022&lt;br /&gt;
&lt;br /&gt;
http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf &lt;br /&gt;
&lt;br /&gt;
http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php  It looks to be pretty accurate &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.ntfs.com/winfs_basics.htm&lt;br /&gt;
&lt;br /&gt;
http://blogs.msdn.com/b/winfs/ The team blog &lt;br /&gt;
&lt;br /&gt;
http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now  &amp;lt;-- If you are bored and want to learn about WinFs, 54 min video. &lt;br /&gt;
&lt;br /&gt;
http://www.splorp.com/newton/faq/newton-faq-nos.html#IIID3c an overview of the Newton OS filesystem to help you out --Rannath&lt;br /&gt;
&lt;br /&gt;
http://arstechnica.com/hardware/news/2008/03/past-present-future-file-systems.ars/7 BeOS --Rannath&lt;br /&gt;
&lt;br /&gt;
I found some other stuff for Palm OS data base, but didn&#039;t find any good yet. &lt;br /&gt;
&lt;br /&gt;
All the above links give good explanation of the subject. I will try to update later.&lt;br /&gt;
&lt;br /&gt;
-Jean-Benoit&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I found a little bit more in depth about NewtonOS:&lt;br /&gt;
http://lowendmac.com/orchard/06/john-sculley-newton-origin.html&lt;br /&gt;
&lt;br /&gt;
Also, another name for Palm OS is Garnet OS. I haven&#039;t had time yet to look too much into this, but the wiki has many links to references and to the main site:&lt;br /&gt;
http://en.wikipedia.org/wiki/Palm_OS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edit:&lt;br /&gt;
Since there are 5 database systems listed, and 5 people in the group, we can each pick one to work on. If anyone needs help with the one they pick, holla! Also, if you find another database system you want to work on, just add it to the list and put your name beside it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
WinFS -  Jean-Benoit&lt;br /&gt;
&lt;br /&gt;
ReiserFS - Sarah L&lt;br /&gt;
&lt;br /&gt;
Newton OS - Daniel&lt;br /&gt;
&lt;br /&gt;
PalmOS/Garnet OS - Tuan Pham&lt;br /&gt;
&lt;br /&gt;
BeOS - Xi Chen&lt;br /&gt;
&lt;br /&gt;
Other (list)...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Daniel&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Just to check how everybody are going? There is still two people who haven&#039;t picked an FileSystem, is there a problem or you simply didn&#039;t write your name next to it? &lt;br /&gt;
&lt;br /&gt;
Also, for others i found an other database System made by Oracle. It is called : Internet File System.  http://download.oracle.com/docs/html/A90434_01/toc.htm Here a good link to get started.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll probably posted in the page what I have written so far later today.&lt;br /&gt;
&lt;br /&gt;
Also, to keep consistence, I don&#039;t know how you are writing yours, but mine will look something like that : &lt;br /&gt;
Short history of Winfs, predecessor , etc.  (by short i mean roughly 200-300 words)&lt;br /&gt;
Short explanation on how WinFs works.&lt;br /&gt;
It&#039;s fate and Why&lt;br /&gt;
 &lt;br /&gt;
If you have any other idea, please share it. &lt;br /&gt;
&lt;br /&gt;
-Jean-Benoit&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Hey I am curious to how we are going to put all this together, are we each writing an essay for our chosen OS and then edit all the essays into one big one?&lt;br /&gt;
&lt;br /&gt;
-Tuan Pham&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I was thinking that we could simply have an introduction to express the general advantages and disadvantages of Database as filesystem, then create &lt;br /&gt;
sections for our different OS. Then at the end a conclusion. &lt;br /&gt;
&lt;br /&gt;
But for that to work, we need most of our essay to be done in the next 2 days or so. Tuesday during the day we would need all the essay to be done so we can edit each other and write introduction + conclusion. &lt;br /&gt;
&lt;br /&gt;
What do you think ? Any idea?&lt;br /&gt;
&lt;br /&gt;
Edit : I just posted what I have so far. If you have any idea to add anything , just let me know. Also, English isn&#039;t my first language, so feel free to fix any of my errors. &lt;br /&gt;
&lt;br /&gt;
I&#039;ll add the reference tomorow&lt;br /&gt;
&lt;br /&gt;
-Jean-Benoit&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Yeah i think we should do that but how about the two section that does not have the other group member&#039;s names beside?&lt;br /&gt;
&lt;br /&gt;
- Tuan Pham&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I will have to post my part of the project sometime Wednesday (most likely before 2pm). I apologize if this causes some problems for the group, but I have an assignment for another class that needs to be done by Wednesday, and I have little time Tuesday to work on this (work and classes). Here is a little summary of Newton OS to get an idea. I will make sure that by Wednesday afternoon I will have at least a near-finished copy of my work (some input may be required :p ).&lt;br /&gt;
&lt;br /&gt;
Newton OS was used on PDAs and doesn’t have a file system, but instead uses a shallow database system. The OS considers each inserted card, as well as its internal storage, as separate stores. Each store contains either read/write databases or read-only objects. Newton eventually was cancelled and became an Apple subsidiary company, then shortly thereafter was reabsorbed into Apple. Developers from the Newton project helped with the iPod OS and the project may have had a hand in the iPhone’s development.&lt;br /&gt;
&lt;br /&gt;
Edit: I left a notice to the group on the front page. Hopefully the other two members will see the notice. And about the two other sections: If we have at least 3 sections, we should be good, but hopefully we hear word from the other two members...&lt;br /&gt;
&lt;br /&gt;
- Daniel&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I just posted what i have so far. I am having difficulties finding the fate and why so if you guys know anything let me know. Also let me know if you have any suggestions for my part.&lt;br /&gt;
&lt;br /&gt;
- Tuan Pham&lt;br /&gt;
----&lt;br /&gt;
Sorry, I couldn&#039;t post this weekend. I&#039;ll gladly work on MurderFS/ReiserFS, and I can definitely finish before Wednesday afternoon (2ish).&lt;br /&gt;
&lt;br /&gt;
I really like how the WinFS sectioned is structured (although maybe condense the fate/why sections for readability?), it seems easy to follow. I agree we should all use the same sections (with additional subsections if need be). It&#039;ll make it look a lot cleaner/better put together.&lt;br /&gt;
&lt;br /&gt;
- Sarah&lt;br /&gt;
&lt;br /&gt;
Sorry, guys&lt;br /&gt;
Seems like I am the last member of the group, I am now doing works on the BeOS, and some stuff will be posted tonight or tomorrow morning. &lt;br /&gt;
Again, sorry for showing up late.&lt;br /&gt;
&lt;br /&gt;
Xi Chen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hi guys, Luc (lab TA ¬.¬) here, I&#039;m seeing some good collaboration here, but I&#039;m concerned about how coherent the end product will be.  I think you guys need to spend some time working out the central thesis and how the various components will advance that point before everybody goes off to work on their little piece.&lt;br /&gt;
&lt;br /&gt;
--[[User:3maisons|3maisons]] 20:14, 12 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I agree. I believe the prof said today that he wants a thesis and we use the examples (WinFS, ReiserFS, Newton OS, PalmOS/Garnet OS, and BeOS) to prove our argument. So we should discuss a thesis and how to format the essay&lt;br /&gt;
&lt;br /&gt;
- Tuan Pham&lt;br /&gt;
&lt;br /&gt;
That sounds good, and you guys thinking about meeting up sometime in lab?&lt;br /&gt;
or we can chat through gTalk or the wiki.&lt;br /&gt;
&lt;br /&gt;
ps: my gmail acct is xintai1985@gmail.com&lt;br /&gt;
--Xi Chen&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
It could be a good idea to meet up to put everything together. &lt;br /&gt;
Or atleast use gTalk/msn/ whatever else people would like to use. &lt;br /&gt;
As we only have 2 days remaining, what about tonight ? &lt;br /&gt;
&lt;br /&gt;
And as Tuan said, we would need a thesis subject and then prove why it fails most of the time. &lt;br /&gt;
I&#039;m down to work on it whenever you guys are ready (or so obviously). Just send me an email to : jbout13@hotmail.com &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Jean-Benoit&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I will be available until 2pm today (Wednesday) and then from 7pm onwards. I think we should discuss the thesis and such tonight (if possible), then finish the essay up after class tomorrow morning. My email is demongyro@gmail.com.&lt;br /&gt;
&lt;br /&gt;
-Daniel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Let&#039;s try to be all around tonight for 7:30 ish ? so we can get thesis and start writing introduction + conclusion and to put everything together.&lt;br /&gt;
&lt;br /&gt;
We either can go to Carleton, or msn / Gmail. (or any other option I forgot) I&#039;m down for both of these.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
xintai1985@gmail.com Xi Chen 613-799-5893(in case)&lt;br /&gt;
&lt;br /&gt;
jbout13@hotmail.com Jean-Benoit &lt;br /&gt;
&lt;br /&gt;
demongyro@gmail.com Daniel - on gmail&lt;br /&gt;
&lt;br /&gt;
tuan-pham@hotmail.com Tuan Pham - lets do it over msn/gtalk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edit : Daniel and I are on Gmail, gtalk. &lt;br /&gt;
Add him or me to join the conversation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jean-Benoit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Guys add my gmail, t.m.pham3@gmail.com - Tuan Pham&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php&lt;br /&gt;
http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf&lt;br /&gt;
http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf&lt;br /&gt;
&lt;br /&gt;
so i don&#039;t lose these&lt;br /&gt;
&lt;br /&gt;
Reiser4, Part II: Designing Trees that Cache Well&lt;br /&gt;
Performance Evaluation of Linux File Systems for Data Warehousing Workloads&lt;br /&gt;
&lt;br /&gt;
sarah&lt;br /&gt;
----&lt;br /&gt;
moving this here because i&#039;m a little ocd...&lt;br /&gt;
&lt;br /&gt;
=Note to Group=&lt;br /&gt;
&lt;br /&gt;
=Contact Details=&lt;br /&gt;
Dustin Martin: 613-325-9427 dustin.adam.martin@gmail.com&lt;br /&gt;
&lt;br /&gt;
794-five zero five six Jean-Benoit&lt;br /&gt;
&lt;br /&gt;
899-8826 Tuan Pham&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Wikipedia:Citing_Wikipedia&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4014</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4014"/>
		<updated>2010-10-14T19:49:48Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Database Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
&lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, and web servers. A personal computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase in the amount of data that can be stored on a home computer, has led to the idea of object stores, or file systems that function as databases of objects [http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_11].&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of object stores in the real world, all chosen for certain features that made sense in that application. For PalmOS and NewtonOS, the security and modularity object stores provided was an attractive fit for mobile devices. Windows was drawn to object stores because of the possible speed increases, and so they developed WinFS. ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux. &lt;br /&gt;
&lt;br /&gt;
Object stores have caught on in a few niche applications, mostly scientific. However, this technology is in its infancy, still trying to engineer issues that are arising while implementing the concept. Combined with issues with management that surround most attempts at creating an object store, it is clear that object stores are a long way off from becoming a common file system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 What about something like this ? &lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system that use a database as file system  , all chosen for certain features that made sense in that application. We’ll visit five different operating systems that used a database as file system. Both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications.&lt;br /&gt;
&lt;br /&gt;
Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [book ref].  &lt;br /&gt;
&lt;br /&gt;
The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [book ref]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
	BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking. Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these object based file systems, it is easy to see that, despite object stores being an interesting and potentially useful idea, they are just not ready yet for the desktop. For certain applications, such as systems designed to handle large amounts of data for programming projects, such as ones used for models in physics; or in small, modular systems such as PalmOS and NewtonOS, object stores are a great alternative to the traditional file system. However, there has not yet been developed a highly flexible design that would be useful on the average PC, as we can see from the failure of WinFS and ReiserFS.&lt;br /&gt;
&lt;br /&gt;
The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch a tried and true system for newer and possibly unstable technology. In the case of object stores, what few implementations are available to the public for the desktop are unstable, and therefore an unattractive choice. &lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that object stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4011</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=4011"/>
		<updated>2010-10-14T19:47:50Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Database Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
&lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, and web servers. A personal computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase in the amount of data that can be stored on a home computer, has led to the idea of object stores, or file systems that function as databases of objects [http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_11].&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of object stores in the real world, all chosen for certain features that made sense in that application. For PalmOS and NewtonOS, the security and modularity object stores provided was an attractive fit for mobile devices. Windows was drawn to object stores because of the possible speed increases, and so they developed WinFS. ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux. &lt;br /&gt;
&lt;br /&gt;
Object stores have caught on in a few niche applications, mostly scientific. However, this technology is in its infancy, still trying to engineer issues that are arising while implementing the concept. Combined with issues with management that surround most attempts at creating an object store, it is clear that object stores are a long way off from becoming a common file system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 What about something like this ? &lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, web servers and more. A personal  computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase  in the amount of data that can be stored on a home computer, has led to the idea of object stores, and file systems that function as databases.&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of operating system that use a database as file system  , all chosen for certain features that made sense in that application. We’ll visit five different operating systems that used a database as file system. Both Palm OS and WinFS implemented a database file system for their operating systems for improve efficiency. NewtonOS was produced to be used on a desktop machine, but evolved into one of the best and most secure PDA operating systems. BeOS was a new operating system and decided to use a database driven file system to leverage both improved efficiency and compability. ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux. We will first examine the trials of Palm OS.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
&amp;quot;Palm OS does not use a relational or XML database&amp;quot;[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. Instead Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications.&lt;br /&gt;
&lt;br /&gt;
Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [book ref].  &lt;br /&gt;
&lt;br /&gt;
The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [book ref]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
	BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
BeOS is an operating system that was first developed from scratch in 1991 to run a proprietary hardware. The goal for BeOs was to compete with both Apple and Microsoft, by creating a new platform. Since both Apple and Microsoft were putting considerable effort into covering legacy versions of their systems, BeOs hoped to gain ground through efficiency.[http://www.letterp.com/~dbg/practical-file-system-design.pdf]&lt;br /&gt;
 &lt;br /&gt;
BeOS was designed to be a better use on modern hardware. Compared to Windows and Mac OS, it greatly improved on digital media performance by using modern hardware facilities like symmetric multiprocessing, pervasive multithreading and preemptive multitasking. Compared with other modern operating system, pervasive multithreading is allowing the system to better utilize system resources. It also has a simple and clear GUI and powerful command-line interface through BASH shell. However, since the system is not UNIX based, it is also compatible with POSIX. Furthermore, the API of BeOS is developed under C++ which facilitate application development.&lt;br /&gt;
&lt;br /&gt;
But since BeOS is a fully multithreaded system, programs which are written for the system need to be really well programmed in order to stop deadlock or errors from doing multiple simultaneous threads.[http://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.techcn.com.cn/index.php%3Fdoc-view-135996%235] Also not a lot of hardware is supported by BeBox, the machine designed for BeOS.  And maintaining the system is another problem due to database like file system.&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the BFS journaling file system was implemented by BFS to be a high performance file system that stores all data in a database, but also allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. This is because the system reliability is placed in the hands of the programmer.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
In the mid-1990&#039;s BeOs was pursued by Apple to serve as their new operating system. BeOs demanded a purchase price that Apple was not willing to pay and instead Apple decided  to acquire NeXT and implemented NeXTSTEP OS. BeOs then tried to penetrate the personal computer market but ran into compatibility issues. BeOs needed custom hardware to function correctly. Development ensued to port BeOs onto standard PCs, but ultimately fell flat when Be could not convince any manufacture to use their operating system. This was largely due to restriction and exclusive rights held by Microsoft which blocked BeOs&#039; entry into the market. By 2001, BeOs had failed to obtain even marginal market share and was acquired by Palm to be integrated into Palm OS. An small community driven open source project named Haiku OS has resumed development of BeOs and released Haiku Alpha 2 in May 2010.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these object based file systems, it is easy to see that, despite object stores being an interesting and potentially useful idea, they are just not ready yet for the desktop. For certain applications, such as systems designed to handle large amounts of data for programming projects, such as ones used for models in physics; or in small, modular systems such as PalmOS and NewtonOS, object stores are a great alternative to the traditional file system. However, there has not yet been developed a highly flexible design that would be useful on the average PC, as we can see from the failure of WinFS and ReiserFS.&lt;br /&gt;
&lt;br /&gt;
The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch a tried and true system for newer and possibly unstable technology. In the case of object stores, what few implementations are available to the public for the desktop are unstable, and therefore an unattractive choice. &lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that object stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=3924</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=3924"/>
		<updated>2010-10-14T18:33:44Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Answer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
&lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, and web servers. A personal computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase in the amount of data that can be stored on a home computer, has led to the idea of object stores, or file systems that function as databases of objects [http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_11].&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of object stores in the real world, all chosen for certain features that made sense in that application. For PalmOS and NewtonOS, the security and modularity object stores provided was an attractive fit for mobile devices. Windows was drawn to object stores because of the possible speed increases, and so they developed WinFS. ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux. &lt;br /&gt;
&lt;br /&gt;
Object stores have caught on in a few niche applications, mostly scientific. However, this technology is in its infancy, still trying to engineer issues that are arising while implementing the concept. Combined with issues with management that surround most attempts at creating an object store, it is clear that object stores are a long way off from becoming a common file system.&lt;br /&gt;
&lt;br /&gt;
 **For the last two paragraphs did you mean database-like stores?**&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS does not use a relational or XML database[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. Instead Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications.&lt;br /&gt;
&lt;br /&gt;
Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [book ref].  &lt;br /&gt;
&lt;br /&gt;
The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [book ref]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
	BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the journaling file system implemented by BFS, stores all data in a journaled database, but allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any possible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
Since BFS is a custom file system developed solely to be used by BeOs its success is intrinsically tied to that of its operating system. BeOs poses a threat to BFS both because of its inability to reach the masses as well as the potential memory errors caused by its unfiltered multithreading capability. Because, system reliability is placed in the hands of the programmer, BeOs&#039;s multithreading capability is a potential cause for concern especially when combined with a slow access file system.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Schmalensee didn&#039;t mention that Be had trou- 34&lt;br /&gt;
ble giving away the BeOS operating system.&lt;br /&gt;
Gassée approached a number of PC manufacturers&lt;br /&gt;
to see if they would include BeOS&lt;br /&gt;
on their machines and give users the chance&lt;br /&gt;
to switch between two operating systems.&lt;br /&gt;
Gassée found, to no one&#039;s real surprise,&lt;br /&gt;
that Microsoft&#039;s contracts with manufacturers&lt;br /&gt;
made it difficult, if not practically impossible,&lt;br /&gt;
to get BeOS in customers&#039; hands. Microsoft&lt;br /&gt;
controlled much of what the user got to see&lt;br /&gt;
and insisted on almost total control over the&lt;br /&gt;
viewer&#039;s experience. Schmalensee didn&#039;t&lt;br /&gt;
mention these details in his testimony. BeOS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Microsoft execlusive lisence with hardware manufacture made harder to enter the market&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these object based file systems, it is easy to see that, despite object stores being an interesting and potentially useful idea, they are just not ready yet for the desktop. For certain applications, such as systems designed to handle large amounts of data for programming projects, such as ones used for models in physics; or in small, modular systems such as PalmOS and NewtonOS, object stores are a great alternative to the traditional file system. However, there has not yet been developed a highly flexible design that would be useful on the average PC, as we can see from the failure of WinFS and ReiserFS.&lt;br /&gt;
&lt;br /&gt;
The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch a tried and true system for newer and possibly unstable technology. In the case of object stores, what few implementations are available to the public for the desktop are unstable, and therefore an unattractive choice. &lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that object stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=3899</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=3899"/>
		<updated>2010-10-14T18:15:06Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Flaws of Newton OS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
&lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, and web servers. A personal computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase in the amount of data that can be stored on a home computer, has led to the idea of object stores, or file systems that function as databases of objects [http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_11].&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of object stores in the real world, all chosen for certain features that made sense in that application. For PalmOS and NewtonOS, the security and modularity object stores provided was an attractive fit for mobile devices. Windows was drawn to object stores because of the possible speed increases, and so they developed WinFS. ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux. &lt;br /&gt;
&lt;br /&gt;
Object stores have caught on in a few niche applications, mostly scientific. However, this technology is in its infancy, still trying to engineer issues that are arising while implementing the concept. Combined with issues with management that surround most attempts at creating an object store, it is clear that object stores are a long way off from becoming a common file system.&lt;br /&gt;
&lt;br /&gt;
 **For the last two paragraphs did you mean database stores?**&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS does not use a relational or XML database[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. Instead Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications.&lt;br /&gt;
&lt;br /&gt;
Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [book ref].  &lt;br /&gt;
&lt;br /&gt;
The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [book ref]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
 **I dont think the sentence with the simpsons part is a good idea because it is not likely for essays to have something like that**&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
	BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the journaling file system implemented by BFS, stores all data in a journaled database, but allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any posible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these object based file systems, it is easy to see that, despite object stores being an interesting and potentially useful idea, they are just not ready yet for the desktop. For certain applications, such as systems designed to handle large amounts of data for programming projects, such as ones used for models in physics; or in small, modular systems such as PalmOS and NewtonOS, object stores are a great alternative to the traditional file system. However, there has not yet been developed a highly flexible design that would be useful on the average PC, as we can see from the failure of WinFS and ReiserFS.&lt;br /&gt;
&lt;br /&gt;
The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch a tried and true system for newer and possibly unstable technology. In the case of object stores, what few implementations are available to the public for the desktop are unstable, and therefore an unattractive choice. &lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that object stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=3897</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=3897"/>
		<updated>2010-10-14T18:11:23Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Answer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
&lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, and web servers. A personal computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase in the amount of data that can be stored on a home computer, has led to the idea of object stores, or file systems that function as databases of objects [http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_11].&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of object stores in the real world, all chosen for certain features that made sense in that application. For PalmOS and NewtonOS, the security and modularity object stores provided was an attractive fit for mobile devices. Windows was drawn to object stores because of the possible speed increases, and so they developed WinFS. ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux. &lt;br /&gt;
&lt;br /&gt;
Object stores have caught on in a few niche applications, mostly scientific. However, this technology is in its infancy, still trying to engineer issues that are arising while implementing the concept. Combined with issues with management that surround most attempts at creating an object store, it is clear that object stores are a long way off from becoming a common file system.&lt;br /&gt;
&lt;br /&gt;
 **For the last two paragraphs did you mean database stores?**&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS does not use a relational or XML database[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. Instead Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications.&lt;br /&gt;
&lt;br /&gt;
Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [book ref].  &lt;br /&gt;
&lt;br /&gt;
The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [book ref]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx], but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.[http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
	BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
The file system used by BeOS is called BFS. BFS is a custom file system developed by the same team as BeOs. BFS is a 64-bit journaling file system which logs all data before storing it. [http://www.citeulike.org/user/msakai/article/638204] This journaling increases both the stability and security of BeOs, by preventing system crashes from jeopardizing the file  system’s integrity as well as offering quicker recovery from crashes. However, this comes at the expensive of rapid data acess since a journaling file system is based on random memory access.  Uniquely, the journaling file system implemented by BFS, stores all data in a journaled database, but allows users to view it in a more traditional heirachical way. [http://www.letterp.com/~dbg/practical-file-system-design.pdf] It also boost flexibility by allowing users to store any posible data format of their choosing.&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these object based file systems, it is easy to see that, despite object stores being an interesting and potentially useful idea, they are just not ready yet for the desktop. For certain applications, such as systems designed to handle large amounts of data for programming projects, such as ones used for models in physics; or in small, modular systems such as PalmOS and NewtonOS, object stores are a great alternative to the traditional file system. However, there has not yet been developed a highly flexible design that would be useful on the average PC, as we can see from the failure of WinFS and ReiserFS.&lt;br /&gt;
&lt;br /&gt;
The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch a tried and true system for newer and possibly unstable technology. In the case of object stores, what few implementations are available to the public for the desktop are unstable, and therefore an unattractive choice. &lt;br /&gt;
&lt;br /&gt;
It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_9], so there is no guarantee that object stores will ever become a widely used technology, as they may not mature quickly enough to beat out other technologies.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=3883</id>
		<title>COMP 3000 Essay 1 2010 Question 12</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=COMP_3000_Essay_1_2010_Question_12&amp;diff=3883"/>
		<updated>2010-10-14T17:53:25Z</updated>

		<summary type="html">&lt;p&gt;Tpham3: /* Brief Concept */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Question==&lt;br /&gt;
&lt;br /&gt;
There have been multiple attempts to have operating systems use databases or database-like stores. What have been some of the major past attempts at this? What was their fate? Why? Key examples (not exhaustive): WinFS, ReiserFS, PalmOS, Newton OS, BeOS&lt;br /&gt;
&lt;br /&gt;
==Answer==&lt;br /&gt;
&lt;br /&gt;
There have been many attempts at creating file systems that use database-like stores. While the idea is an interesting one, database stores are just not ready for the consumer market. &lt;br /&gt;
&lt;br /&gt;
Traditionally, databases are used in applications where a project focuses on accessing large amounts of data quickly and efficiently, such as banking systems, telecommunications, and web servers. A personal computer did not traditionally need as much storage, and is organized in an easy-to-navigate tree structure. However, the recent shift towards object-oriented programming styles, along with the tremendous increase in the amount of data that can be stored on a home computer, has led to the idea of object stores, or file systems that function as databases of objects [http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_11].&lt;br /&gt;
&lt;br /&gt;
There have been various implementations of object stores in the real world, all chosen for certain features that made sense in that application. For PalmOS and NewtonOS, the security and modularity object stores provided was an attractive fit for mobile devices. Windows was drawn to object stores because of the possible speed increases, and so they developed WinFS. ReiserFS seemed to have started as a proof-of-concept, which found it&#039;s place with Linux. &lt;br /&gt;
&lt;br /&gt;
Object stores have caught on in a few niche applications, mostly scientific. However, this technology is in its infancy, still trying to engineer issues that are arising while implementing the concept. Combined with issues with management that surround most attempts at creating an object store, it is clear that object stores are a long way off from becoming a common file system.&lt;br /&gt;
&lt;br /&gt;
==Palm OS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
PalmOS was developed from Graffiti, a hand-recognition software which was believed to be doomed from the very beginning[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. Graffiti’s fast and accurate hand-recognition software was thought to be useless because many companies did not see a purpose for it; there were no companies that wanted to make the hardware for it[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. The company Palm then decided to make their own hardware with Graffiti as the OS, which became what is known as Palm OS today.&lt;br /&gt;
&lt;br /&gt;
===Database Structure===&lt;br /&gt;
Palm OS does not use a relational or XML database[http://www.iam.unibe.ch/~rvs/teaching/SS02/bs/arbeiten/Guido_Gloor-PalmOS.pdf]. Instead Palm OS has two different database types, record and resource database. There are similarities between these two databases, they both have headers which stores information onto the database and are both stored in the storage heap. The difference between the record database and resource database is how the information is stored, called, handled and how it is named. The record database is used to store data, and the resource database contains all applications.&lt;br /&gt;
&lt;br /&gt;
Furthermore a record database is a collection of records (blocks of memory) each record can only store up to 64KB of memory. It has information that is unique to the record; it has the location of the record, an ID, and an attribute, which contains delete, dirty, busy, and secret bits [book ref].  &lt;br /&gt;
&lt;br /&gt;
The resource database stores application code, name, icon, forms, alerts, menus, strings, and all other elements of the application [book ref]. Applications can be referenced by an ID number and a type (four-character constant).&lt;br /&gt;
&lt;br /&gt;
===Problem=== &lt;br /&gt;
Record and resource databases are stored in storage/database heap, which in turn is stored in the RAM (Random Access Memory). The database heap has a limit of 64KB of memory and since a record had to be small enough to fit within the heap, this made memory hard to manage. For example,  when a record is 50KB and there are three heaps which can only hold 64KB each, a total of 192KB of memory; say these three heaps are half full therefore there is 96KB of free memory, but the record of size 50KB cannot be stored because not a single heap has enough memory to store the record. [book ref] This problem arose in versions before OS 3.0 because the database heap was divided into smaller parts. This allowed for free space in memory, but some of those heaps were occupied by data, and there might not be enough space to store the record into the heap. Palm OS 3.0 and later solved this problem by to making a single large storage heap instead of multiple smaller heaps.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
In 2005, Palm OS was acquired by Access Systems Americas, Inc. Access decided to expand the breadth of the operating system’s offering to include more tools, a better user experience, and increased compatibility across many more devices.[http://azul.iing.mxl.uabc.mx/~renecruz/papers/Unpublished-Cruz-Flores-2.pdf] In 2007, development of Palm OS shifted to a new operating system called Garnet OS. [http://www.access-company.com/products/platforms/garnet/index.html] Its latest release, Garnet version 6, still includes a database based file system.&lt;br /&gt;
&lt;br /&gt;
==WinFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
&lt;br /&gt;
The history of WinFS is relatively long, as we can find trace of the project back in mid-90&#039;s with Storage +.  Microsoft had the idea to remove the NTFS file system and instead use a relational object-oriented file storage, which was based on SQL server 8.0.  This new file system was supposed to be implemented in Windows 2003 Server. But then in 2000, Windows announced that Storage + was to be forgotten, with Relational File System (RFS) as its successor. RFS was supposed to be included in SQL Server 2000, but never made the cut.  Another reason for the continual delays was that, in 2000, Oracle announced a new file system which was also a relational file system, Independent Internet File System. Microsoft had to rethink RFS to be ahead of the competition and that added additional delay.[http://www.winsupersite.com/showcase/winfs_preview.asp]&lt;br /&gt;
&lt;br /&gt;
RFS was forgotten about until the public heard in 2002 about a new file system that would be present in Longhorn (later renamed Vista).  The system would be once again be based on its predecessor, RFS, but it would have run on top of a NTFS file system. WinFS was included in a few public builds for Vista, but in 2004 it was removed from the beta builds. It was said it would be downloadable again after the release, but was definitely cut for good in 2006 from Vista.&lt;br /&gt;
&lt;br /&gt;
===Brief Concept===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With today’s data, we are facing a crisis of finding what we want, when we want, at a reasonable speed on our own computer. Data is stored in many different ways. We can recognize the uses of certain files by their file extensions, but the amount of file extensions that exist is astonishing, so it is quite difficult to remember each one. Also, a simple file may be stored with different extensions, in different databases, which makes finding, relating to, and acting on the file quite difficult to achieve. [http://www.slideshare.net/Severus/winfs]&lt;br /&gt;
&lt;br /&gt;
 **Obscure 1st sentence: data would be simply data? Elaborate.**&lt;br /&gt;
Microsoft had an idea to solve this problem by using a relational database as a file system, where data would be treated like it should be, as data and nothing else. To understand how WinFS works, we must have a general idea of the relational database. The data in this kind of database is spread into specific tables, like in a normal database, but there are multiple relations between these tables. This gives the programmer the power to search, find and present the result in an efficient way. In the case of WinFS, the main goal was to &amp;quot;Enable people to Find, Relate, and Act on their information&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx].&lt;br /&gt;
&lt;br /&gt;
 **Reference for quotation needed**&lt;br /&gt;
As already pointed out, data files are very broad nowadays. With that many file formats using complicated data storage methods, the &amp;quot;...current file system does not know how to collect and find information within these new types of data&amp;quot;, but with data treated as data inside a database, we could find what we are looking for quite easily. &lt;br /&gt;
&lt;br /&gt;
 **&amp;quot;In our...to Bob.&amp;quot; Needs to be easier to read/understand. Also, treat data as data? Elaborate. Also, any reference?**&lt;br /&gt;
Another important point of WinFS is the notion of how data relates to each other. In our current file system we can&#039;t, unless doing it manually, add a picture of our good friend Bob, and in the same time see all the picture related to Bob. On top of that, we can&#039;t find the picture of Bob, all the received emails, documents, movies, or whatever else we would want to find in the same request. In order to find them, we have to search for them one by one. If we treat data as data, once again, we can simply search in the tables of the database for the pictures, received emails, videos, and documents containing the name Bob, and present them to the user. As we can see, data can be related to each other with keywords, in our example it was the name Bob, but it can be anything.&lt;br /&gt;
&lt;br /&gt;
What if data could do actions that follow a specific set of rules? This is exactly what WinFS wanted to implement. &amp;quot;WinFS Rules are a built-in component of the system that allows you to tell the system how to work with, sort, and deliver your data.&amp;quot; Also, it could make use of other applications on the system. So if we received a picture from our friend Bob, we could automatically transfer it elsewhere. [http://channel9.msdn.com/Blogs/scobleizer/Shishir-Mehrotra-WinFS-beta-1-team-meeting]&lt;br /&gt;
&lt;br /&gt;
The last problem that WinFS was aiming to overcome was to run on top of NTFS. Basically, WinFS would scan all the data in the NTFS file system, and put it into its database. Thus, it would work as a file system, but it would be totally dependent of NTFS.&lt;br /&gt;
&lt;br /&gt;
===Fate of WinFS===&lt;br /&gt;
&lt;br /&gt;
As we have seen in the history of WinFS, its fate wasn&#039;t as desired. In 2006, on the team blog, Microsoft announced that it wouldn&#039;t include WinFS as a system file package, but instead deliver it into the next Microsoft SQL server, which was SQL Server 2008.  &amp;quot;These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx], but instead, they will keep working on it and some &amp;quot;...may be used by other Microsoft products going forward.&amp;quot;[http://blogs.msdn.com/b/winfs/archive/2006/06/26/648075.aspx] So, we can see that WinFS didn&#039;t succeed as a file system, but some of the logistics will continue to live on in Microsoft’s database software.&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
Microsoft never released publicly what exactly went wrong. There was much speculation about the design of WinFS, but on the team blog Quentin Clark, Product Unit Manager of WinFS, answered that &amp;quot;[i]n fact, the Beta was coming together really well.&amp;quot;[http://msdn.microsoft.com/en-US/library/aa480687.aspx] He then replied that the technology used wasn&#039;t easy to build onto, so they had to rewrite some parts, but that this wouldn&#039;t have caused the end of WinFS. Some also speculate that no serious software used WinFS, nor did it receive the attention needed from the developers to have a good start. In an interview with Channel 9, Quentin Clark said, &amp;quot;We were building too much of the house at once. We had guys working on the roof while we were still pouring concrete for the foundation.&amp;quot;[http://channel9.msdn.com/blogs/jonudell/where-is-winfs-now] This shows that the team might have had some management problem, which evidently led to the termination of the project.&lt;br /&gt;
&lt;br /&gt;
==Newton OS==&lt;br /&gt;
&lt;br /&gt;
===Brief History of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Newton OS was created by Apple and was used with their line of PDAs, becoming one of the world&#039;s first PDAs. Newton was originally meant to be an innovative OS to reinvent personal computing, but it was changed to become a PDA, due to fear of eating up Macintosh sales and because of project delays [http://www.techeblog.com/index.php/tech-gadget/a-look-back-apple-newton]. The first iteration of the Newton system came as the MessagePad. The MessagePad sold out its 5,000 copies within a few hours of release, despite its price of $800 US [http://www.pencomputing.com/frames/newton_obituary.html]. Apple released several different PDAs with Newton OS between 1993 and 1997, which despite its popularity were plagued by flaws in the applications of the device [http://news.cnet.com/Apple-scraps-Newton/2100-1001_3-208551.html].&lt;br /&gt;
&lt;br /&gt;
The main reason why Newton PDAs became so well-known was because the Newton OS was the most advanced operating system of any personal computing device of its time. The OS kept the user from accessing the inner workings of the device, keeping users away from creating problems by tampering with the wrong settings, and used a database-based file management that simplified the system to a higher degree than any previous OS [http://www.pencomputing.com/frames/newton_obituary.html].&lt;br /&gt;
&lt;br /&gt;
===Flaws of Newton OS===&lt;br /&gt;
&lt;br /&gt;
Even with the innovation that came from Newton OS and its computing devices, it had several deep-running flaws that caused critics to pan the Newton devices. First and foremost, the Newton devices were known for their failure at implementing their handwriting system, which was supposed to recognize entire words. The Simpsons television show even had a joke about this flaw in one of their episodes [http://www.youtube.com/watch?v=xc3JzS0K3ys]. The main problem behind the handwriting system was that it had a hard time recognizing cursive writing, even though Apple insisted that its engineers ensured it worked correctly [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Another main problem with the Newton devices was that their overall size was too large for most pockets. Since Newton devices were expected to be carried similarly like a wallet or a cellphone, most people found their size too great for daily use [http://news.cnet.com/8301-13512_3-9754359-23.html][http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. Earlier Newton devices were also found to be very slow due to the virtualization of the NewtonScript and the lack of necessary RAM [http://www.roughlydrafted.com/RD/Q4.06/600D65E6-A31E-45CA-AFC5-42BC253F5337.html]. In the end, the Newton devices were fated to fail.&lt;br /&gt;
&lt;br /&gt;
===Fate===&lt;br /&gt;
&lt;br /&gt;
Although the Newton OS was revolutionary when it was released, it was doomed to fail due mostly to impracticality. In early 1997, Newton Inc. was created as a subsidiary company of Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2169_v43/ai_19494161/], but after a relatively short run, Newton Inc. was reabsorbed into Apple [http://findarticles.com/p/articles/mi_m0EKF/is_n2189_v43/ai_19892982/]. In December of 1997, Apple effectively ceased development efforts on the Newton OS [http://news.cnet.com/2100-1001-206664.html], and in February 1998, Apple announced the discontinuation of the Newton OS development [http://www.apple.com/ca/press/1998/02/NewtonDisco.html].&lt;br /&gt;
&lt;br /&gt;
===Why===&lt;br /&gt;
&lt;br /&gt;
After his return as CEO of Apple, Steve Jobs canceled or restructured many of Apple&#039;s failing products to refocus Apple&#039;s energy towards more successful endeavors, like the iPod and Macintosh computers. Not surprisingly, Newton OS was one of these products [http://www.roughlydrafted.com/2010/01/26/steve-jobs-apple-tablet-%E2%80%9Cthe-most-important-thing-ive-ever-done%E2%80%9D/]. Although Newton was canceled, the development of the OS and its devices have had impacts on other Apple products. Mac OS X 10.2 has a handwriting recognition software called Inkwell that uses an external tablet to recognize words, but like the Newton handwriting software, it requires you to right each letter individually [http://lowendmac.com/osx/jaguar-10.2/index.html][http://everything2.com/title/Inkwell]. Pixo, the company that created the operating system for the iPod, was founded by two of the developers that worked on the Newton OS [http://www.starmenusa.com/blog/category/Culture][http://articles.sfgate.com/2004-08-16/business/17438885_1_pixo-user-interface-ipod]. Pixo was subsequently acquired by Apple after the shipping of the first iPods [http://www.servinghistory.com/topics/Pixo].&lt;br /&gt;
&lt;br /&gt;
==BeOS==&lt;br /&gt;
&lt;br /&gt;
===Brief History===&lt;br /&gt;
	&lt;br /&gt;
	BeOS is released by Be, Inc which is founded in 1990 by Jean-louis Gasee and Steve Sakoman.  Be OS is a brand new operating system running on it’s own hardware called BeBox. The system is giving a better performance on digital media works because of better use on system resources. This system is initially made for AT&amp;amp;T Hobbit hardware, but since AT&amp;amp;T decide to stop producing Hobbit processor, the system is modified to Apple’s PowerPC hardware.&lt;br /&gt;
&lt;br /&gt;
===Operating System===&lt;br /&gt;
&lt;br /&gt;
===File System===&lt;br /&gt;
&lt;br /&gt;
==ReiserFS==&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
ReiserFS is the product of Namesys, a Californian company stared by Hans Reiser [http://web.archive.org/web/20071024001500/http://www.namesys.com/v4/v4.html]. ReiserFS was first introduced in version 2.4.1 of the Linux kernel, and was the default file system on several Linux distributions, most notably SUSE. ReiserFS&#039;s successor is Reiser4, which released in 2004[http://en.wikipedia.org/wiki/Reiser4]. However, in 2008, Namesys dissolved and commercial production of ResierFS and Reiser4 halted [http://news.cnet.com/8301-13580_3-9851703-39.html]. Since the removal of commercial support, ReiserFS has become less popular, probably due to the many bugs that have no hope of being resolved.&lt;br /&gt;
&lt;br /&gt;
===Concept===&lt;br /&gt;
ReiserFS is driven by a few major concepts. The first and probably main idea is the ability to handle many files that are smaller than a block of storage on the storage media. This is accomplished through the use of B+ Trees. [http://delivery.acm.org.proxy.library.carleton.ca/10.1145/610000/603630/6267.html?key1=603630&amp;amp;key2=4060996821&amp;amp;coll=ACM&amp;amp;dl=ACM&amp;amp;CFID=105645345&amp;amp;CFTOKEN=72691832]. Instead of balancing in order to keep the height of the tree fairly stable (as an AVL tree balances), ReiserFS balances so that the height of the storage tree is constant. This type of balanced tree reduces overhead by reducing the number of internal nodes, or i-nodes needed. Each node in the B+ tree maps to a block on the storage device, and each node can hold multiple objects, each of which has a unique key[http://homes.cerias.purdue.edu/~florian/reiser/reiserfs.php]&amp;lt;p&amp;gt;&lt;br /&gt;
Another concept in ReiserFS is the use of unified name spaces[http://www4.informatik.uni-erlangen.de/Lehre/WS01/PS_KVBK/docs/reiserfs/MosheBarReiserFS.pdf]. Unified name spaces are simply a more refined definition of an object store, in which all stored data is made up of objects that are both &#039;files&#039; and &#039;directories&#039;. Objects are stored in such a way so that you can use directories to quickly access different types of objects, then further traverse the directories in order to access specific objects, and go even further to access an object&#039;s attributes. This maps extremely well to different programming styles, especially object oriented programming. Lookup of data can also done using attributes of the data, much like in WinFS[http://homeostasis.scs.carleton.ca/wiki/index.php/COMP_3000_Essay_1_2010_Question_12#WinFS]. This type of access would be more often used by the end user.&lt;br /&gt;
&lt;br /&gt;
===Flaws and Fate===&lt;br /&gt;
While ResierFS preforms very well in terms of speed [http://www.sun.com/software/whitepapers/solaris10/fs_performance.pdf], ReiserFS has many bugs that can lead to instability of files. One problem is  that link() and unlink() are not synchronous in ReiserFS, which can lead to data corruption[http://archives.neohapsis.com/archives/postfix/2001-05/1749.html]. Another is that, if ReiserFS&#039;s tree structure becomes unusable for any reason, a rebuild risks further corrupting the file system [http://lkml.indiana.edu/hypermail/linux/kernel/0506.3/0219.html]. There are also issues with the journaling which can lead to corruption [http://users.cis.fiu.edu/~yangz/teaching/reading_list/Analysis%20and%20Evolution%20of%20Journaling%20File%20Systems.pdf]. Issues like these are a bad idea in any file system, as the risk of unstable data is a serious drawback. Considering that the root of these issues are often synchronization problems, ReiserFS is a very poor choice for many modern, multi-core systems, as the increased need for synchronization would increase the level of instability.&lt;br /&gt;
&lt;br /&gt;
In addition to the stability issues, ReiserFS has some design issues mainly contribute to why it is no longer used today. Since ReiserFS was designed to handle numerators small files, when trying to scale a ReiserFS system, behavior is inconsistent, again spawning from issues in synchronization. In addition, moving from the bug-ridden ReiserFS v3 to v4 required a reformat, as Reiser4 was re-written from scratch. This prompted SUSE to drop ReiserFS as it&#039;s default file system, as they preferred to use a tried and tested sytem update (ext3) instead of a new, yet-untested file system in their distribution [http://lwn.net/Articles/202780/]. &lt;br /&gt;
&lt;br /&gt;
Interestingly enough, the SUSE drop coincided eerily well with Hans Reiser being sent to jail. Left without an owner, Namesys lost most corporate sponsors, eventually only receiving funding from the DARPA initiative. With Namesys (mostly) gone, ReiserFS no longer has commercial support, and so the stability and scalability bugs are taking a fair amount of time to be resolved. This combined with low visibility that stems from no longer being used in any major Linux distributions largely explains why ReiserFS can be considered a dead project.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Looking at these object based file systems, it is easy to see that, despite object stores being an interesting and potentially useful idea, they are just not ready yet for the desktop. For certain applications, such as systems designed to handle large amounts of data for programming projects, such as ones used for models in physics; or in small, modular systems such as PalmOS and NewtonOS, object stores are a great improvement on the traditional file system. However, for the average desktop, object stores preform somewhat less efficiently than the traditional model, due to scalability issues. The increasing importance of digital information in today&#039;s world also means that people are extremely reluctant to switch a tried and true system for newer and possibly unstable technology. In the case of object stores, what few implementations are available to the public for the desktop are unstable, and therefore an unattractive choice. It is important to note that object stores are not the only alternative file system competing to improve upon traditional block storage, so there is no guarantee that object stores will become a widely used technology even if these problems are worked out.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[1] Palm OS programming: the Developer’s guide by Neil Rhodes, Julie McKeehan &lt;br /&gt;
&lt;br /&gt;
http://membres.multimania.fr/microfirst/palm/pdb.html&lt;br /&gt;
&lt;br /&gt;
http://mobile.eric-poncet.com/palm/tutorial/db.html&lt;/div&gt;</summary>
		<author><name>Tpham3</name></author>
	</entry>
</feed>