next up previous
Next: Sharing boxes Up: The box Previous: The box

Copying boxes

Assignment, or copying, is a well-understood operation for the common user (as demonstrated by popularity of cut-&-paste). The box copy operation resembles exactly that, as seen in figure 1.

To give some intuition, traditional operations including message delivering, reading and writing data, and name lookups, can be done by copying boxes: sending a message is a matter of copying the message box from the sender to a box in the receiver; reading some data from disk is a matter of copying a box from the disk store to a user box of the appropriate type.

It is because copy refers to both source and target boxes, that the actual implementation of copy can be as simple as a memory-to-memory copy (when boxes share both the node and the protection domain). But the implementation can also be as complex as a remote IPC, involving separate protection domains in separate nodes, and requiring data translation due to architectural (or application) heterogeneity. Finally, existing techniques like copy on write could be used by the implementation of copy.