Computing and communication systems are becoming increasingly interdependent is evident in almost every aspect of society. Applications of these integrated systems are also spreading. As this trend continues, it will force the computing community not only to develop revolutionary systems but also to redefine computer systems and the role of traditional research disciplines, such as operating systems, architectures, compilers, languages, and networking. Systems research faces an unprecedented challenge. Systems developers are facing a major discontinuity in the scale and nature of both applications and execution environments. Applications are changing from transforming data to directly interacting with humans; they will use hardware and data that span a wide area, even a global, network of resources, and involve interactions among users as well. Even the architecture of individual processors is uncertain. The authors look at three challenges facing systems research, describe developing solutions, and review remaining obstacles.