[Discuss] Versioning File Systems
MBR
mbr at arlsoft.com
Fri May 4 17:10:43 EDT 2012
Other operating systems in existence at the time Unix was being designed
required you to call different system calls depending on what device you
were trying to do I/O to. And some operating systems knew about file
types and defined the complete set of file types you could deal with -
e.g. source code, object files, linked executable, etc. If you wanted a
new file type, you had to get the people who provided the operating
system (usually the hardware vendor) to add it in the next rev of the
OS. This created all sorts of problems.
To try to solve those problems, Thompson, Ritchie, etc. settled on the
philosophy that, to the greatest extent possible, all Unix I/O would be
treated as nothing more than a stream of bytes, with no structure
imposed on it by the operating system. So, device drivers in the kernel
try to make files in the filesystem and devices that can only do output
(e.g. a printer), etc., look the same to code in the application layer.
The philosophy that only applications should impose structure on the
data, and that the kernel should always present I/O as an
undifferentiated byte stream is one of the things that made Unix such a
success. Versioning filesystems run very much counter to the
traditional Unix design philosophy.
Mark Rosenthal
On 5/3/2012 10:09 PM, Shankar Viswanathan wrote:
> On Thu, May 3, 2012 at 2:33 PM, Richard Pieri<richard.pieri at gmail.com> wrote:
>> Snapshots aren't at all close to versioning. A versioning file system keeps
>> (or can keep; one can usually configure how many versions to keep) every
>> version of a file saved. File system snapshots get the file system state
>> when the snapshots are made.
>>
>> For example: create a ZFS snapshot. Create a file. Edit it and save it.
>> Repeat nine more times. Create another snapshot. How many versions of the
>> file do you have? You would have just one on ZFS. You would have all
>> eleven on a versioning file system.
> Talking about versioning filesystems, why haven't they been popular on
> Unix/Linux? I know RSX-11 and VMS implemented versioning filesystems
> which were used quite extensively in development environments. I am
> aware of VFS implementations for Linux such as ext3cow and NILFS but
> haven't actually seen them used anywhere. I have always wondered why
> we don't see more uses of this idea.
>
> I know ClearCase implements a virtual filesystem to create a "view" of
> the versioned object, but I don't believe the versioning is handled
> natively in the filesystem -- the versioning I think is handled by a
> separate database.
>
> -Shankar
> _______________________________________________
> Discuss mailing list
> Discuss at blu.org
> http://lists.blu.org/mailman/listinfo/discuss
>
>
More information about the Discuss
mailing list