The file is a well-understood and very simple abstraction, which has
been successfully used in both centralized and distributed systems.
However, files are not expressive enough to capture high-level data
semantics and relationships, including sharing and data
dependencies. How many times has your operating system translated a
JPEG figure into postscript, automatically when needed? How do files help
applications to deal with heterogeneity?
Moreover, optimization opportunities are lost due to the low-level
nature of
read and
write; e.g. in NFS data is sent twice through the
network when copying a remote file within the same file server.
We feel that a better abstraction is needed and propose an alternate
abstraction, the ``
box'', to solve the problems mentioned
above. Boxes, while being as simple as files, are more
expressive. We intend to use boxes as a central abstraction
for a distributed adaptable operating system we are building.