Welcome to Sunless-Sea Two roads diverged in a wood, and I -- I took the one less traveled by, And that has made all the difference.
Google
Entire Web sunless-sea.net
xanadu.net udanax.com
 
WHITEBOARDS
 links into
 revise
 activity
 how to use

SITENAV
 meetings
 what's new?
 whiteboards
 post article
 frontpage
 downloads

ORIENTATION
 legalisms
 history
 glossary
 participants

BACK-ENDS
 udanax-green
 udanax-gold

ALGORITHMS
 coordspaces
 enfilade
 ent

OLD MANUALS
 XIA

HELPING
 puzzles
 needs
 funding
Like the site? Click to donate!

 site-traffic
 admin


Whiteboard: CopyOnWrite last revised by 127.0.0.1 on Feb 6, 2008 8:48 pm

If you want two virtual copies of a thing, you can have two pointers to the same thing. But if you then want to modify one of the copies while leaving the other alone, you can't just modify the shared thing. "Copy on write" means that when you need to modify, you make an actual copy, change one of the pointers, and modify the appropriate copy.

In some versions of Unix, copy-on-write is used on virtual-memory blocks to allow quick copying of process address spaces. As far as I know the unix filesystems, cp command and "memcpy" don't take advantage of this, though.

Copy-on-write lets you make versions of a tree data structure by copying only those nodes of the tree that need changing. You build a new version with a new root node and a combination of new and old nodes underneath. The previous version of the tree can still exist unchanged, sharing most of its nodes with the new. This is also called "structure sharing". The Xanadu people call this "peeling off" one version or part of a tree from another.

In enfilades, structure sharing allows the virtual copying of a region of an address space while actually only copying and modifying nodes at the edge of the space and higher in the tree.

Structure-sharing is a sort of low-level version of the TransClusion concept, where "the same thing" can have a single identity but exist in many places.

--SteveWitham?

Reading List
As We May Think, 1945 Vannevar Bush
Augmenting Human Intellect:A Conceptual Framework, 1962 Doug Engelbart
Literary Machines, 1981, 87, 93 Ted Nelson
Engines of Creation, Chapter 14 The Network of Knowledge, 1986, 87 K. Eric Drexler
Hypertext Publishing and the Evolution of Knowledge, 1986 K. Eric Drexler
SF:EarthWeb, 1999 Marc Stiegler

Quick Links
www.udanax.com
www.xanadu.com
www.xanadu.com.au
Udanax List Archive
Xanadu® List Archive

All trademarks and copyrights on this page are owned by their respective companies. Comments are owned by the Poster. The Rest ©2001 Jeff Rush.