Early work on Sprite was based on the idea of making the operating system more "network aware", and thereby at the same time make it invisible to the user. The primary area of work was the building of a new
network file system which made heavy use of local client-side
caching in order to improve performance. After opening the file and some initial reads, the network is only used on-demand, and most user actions occur against the cache. Similar utilities allow remote devices to be mapped into the local computer's space, allowing for network printing and similar duties. Many of the key Unix files are based on the network, including things like the
password file. All machines in a
network share the
root directory as well. Other common Unix utilities such as
finger were re-written to make them network aware as well, listing all of the people logged on across the network. This makes a Sprite network appear as if it were a single large
time-sharing system, or a
single-system image. Another key addition to Sprite is
process migration, which allows programs to be moved between machines at any time. The system maintains a list of machines and their state, and automatically moves processes to idle machines to improve local performance. Processes can also be "evicted" from machines to improve their performance, causing the original starter to move it to another machine on the network, or take control of it locally again. Long tasks (like
compiling the Sprite system) can appear very fast. ==Further development==