Reading from a File (1) container_create (x) => A The client creates a container with an appropriate number of pages The memory server returns a container handle (2) fs_read (file, offset, length, A) Client sends a read request to the server and passes the container (3) container_grant_access (A, Device driver) => version The server shares the container with the device driver Saves the version (4) calls device_read (A, Block list) Asks the device driver for the blocks