Computer science is a speedily advancing field and it is difficult to predict where it is going. Researchers at universities and industrial research labs are continually thinking up new ideas, some of which go nowhere but some of which become the cornerstone of future products and have huge impact on the industry and users. Telling which is which turns out to be easier to do in hindsight than in real time. Separating the wheat from the chaff is particularly difficult because it often takes 20 to 30 years from idea to impact.

For instance, when President Eisenhower set up the Dept. of Defense's Advanced Research Projects Agency (ARPA) in 1958, he was trying to keep the Army from killing the Navy and the Air Force over the Pentagon's research budget. He was not trying to invent the Internet. But one of the things ARPA did was fund some university research on the then-obscure concept of packet switching, which led to the first experimental packet-switched network, the ARPANET. It went live in 1969. Before long, other ARPA-funded research networks were attached to the ARPANET, and the Internet was born. The Internet was then happily used by academic researchers for sending e-mail to each other for 20 years. In the early 1990s, Tim Bemers-Lee invented the World Wide Web at the CERN research lab in Geneva and Marc Andreesen wrote a graphical browser for it at the University of Illinois. All of a sudden the Internet was full of chatting teenagers. President Eisenhower is probably rolling over in his grave.

Research in operating systems has also led to spectacular changes in practical systems. As we discussed earlier, the first commercial computer  systems were all batch systems, until M.I.T. invented interactive timesharing in the early 1960s. Computers were all text-based until Doug Engelhart invented the mouse and the graphical user interface at Stanford Research Institute in the late 1960s. Who knows what will come next?

In this section we will take a brief look at some of the research in operating systems that has taken place during the past 5 to 10 years, just to give a flavor of what might be on the horizon. This introduction is certainly not complete and is based mostly on papers that have been published in the top research journals and conferences because these ideas have at least survived a rigorous peer review process in order to get published. Most of the papers cited in the research sections were published by either ACM, the IEEE Computer Society, or USENIX and are available over the Internet to (student) members of these organizations. For more information about these organizations and their digital libraries, see

IEEE Computer Society

Almost all operating systems researchers realize that current operating systems are massive, inflexible, unreliable, insecure, and loaded with  bugs, certain ones more than others (names withheld here to protect the guilty). As a result, there is a lot of research on how to build better  operating systems. Work has recently been published about new operating systems (Krieger et al., 2006), operating system structure (Fassino et  al., 2002), operating system correctness (Elphinstone et al., 2007; Kumar and Li, 2002; and Yang et al., 2006), operating system reliability (Swift  et al., 2006; and LeVasseur et al., 2004), virtual machines (Barham et al., 2003; Garfinkel et al., 2003; King et al., 2003; and Whitaker et al., 2002),  viruses and worms (Costa et al., 2005; Portokalidis et al., 2006; Tucek et al., 2007; and Vrable et al., 2005), bugs and debugging (Chou et al., 2001 ; and King et al., 2005), hyperthreading and multithreading (Fedorova, 2005 ; and Bulpin and Pratt, 2005), and user behavior (Yu et al.,  2006), among many other topics.


packet switching, batch system, arpanet