Operating systems exist to create an environment in which compelling applications come to life.
They do that by providing abstractions built on the services provided by hardware. We argue that advances in hardware and networking technology enable a new kind of operating system to support tomorrows applications. Such an operating system would raise the level of abstraction for developers and users, so that individual computers, file systems, and networks become unimportant to most computations in the same way that processor registers, disk sectors, and physical pages are today. This thesis is made up of 8 chapters. Chapter 1 is the introduction.