|The Customizability session was chaired by Pei Cao from University of Wisconsin. It consisted of three talks followed by a panel discussion. The panelists are (see picture, from left to right): Orran Krieger, Margo Seltzer, Jochen Liedtke, Frans Kaashoek, Peter Druschel.|
In the second talk, Orran Krieger from IBM T.J.Watson Research Center claimed that the degree of extensibility offered by the current extensible kernels is largely unnecessary. He also described their light-weight form of customization, based on a structuring technique called building-block composition.
In the third talk, Noah Mendelsohn from Lotus Deveopment Corporation said that although component software has emerged as one of the most significant and commercially successful technologies of the past few years, few operating systems are designed to host and manage component software effectively. Noah claimed that effective support of components is a key requirement for operating systems of the future.
This was followed by a panel discussion consisting of the above speakers and the principal investigators of the three extensible OS projects - Frans Kaashoek (MIT), Brian Bershad (Seattle) and Margo Seltzer (Harvard).
The first speaker was Peter Druschel from Rice University. The title of his paper was "Extensible systems are leading OS research astray". This paper was co-authored by Vivek S. Pai and Willy Zwaenepoel, both from Rice.
Peter first identified the main challenges in OS design. They are (1) achieving performance close to the hardware's capabilities, (2) facilitating the rapid deployment of new OS designs, and (3) containing and managing the ever-increasing complexity of OS implementations.
Peter argued that the research projects in extensible kernels have to date produced only performance related results. Even in this category, Peter said that it was unclear to what extent the performance gains are due to extensibility, rather than merely resulting from optimizations that could equally be applied to an operating system that is not extensible.
To provide a concrete example, Peter said that they analyzed the techniques used in experimental HTTP servers, the "killer app" for extensible kernels. He talked about eight areas of interest where OS performance can impact web servers. They are: TCP implementation performance, TCP protocol optimizations, forking/switching overhead, filesystem performance, VM/cache control, data copying costs, double-buffering, and TCP checksum calculation. Of these, Peter said that the first five areas have been addressed by known techniques for application design or application independent kernel optimizations. The three remaining areas also can be handled without application defined kernel extensions, Peter claimed. Their approach to addressing the issues in the last three areas relies on IO-Lite, which allows safe, efficient, and copy-free sharing of buffers between applications, file systems, the file system cache, and the network sub-system.
Peter also proposed an alternate approach to extensibility, where kernel extensions are used in experimental settings to evaluate and develop OS enhancements for demanding apps. Once developed and well understood, these enhancements are then migrated into the base operating system for production use.
The next speaker was Orran Krieger from IBM T.J.Watson Research Center. The title of his paper was "Customization Lite". The paper was co-authored by Marc Auslander (IBM), Hubertus Franke (IBM), Ben Gamsa (Universit of Toronto) and Michael Stumm (Toronto).
Orran said that the motivation for their work was customizability of the OS, its maintainability and extensibility, and multiprocessor performance.
Orran claimed that the degree of customizability offered by the extensible OSes is largely unnecessary. He said that it comes at a significant cost in terms complexity and performance, and it is beyond the ability of most application programmers to exploit.
Orran made a distinction in the notion of extensibility (ie, adding new code) and customizability (ie, selecting code). This separation makes it possible to restrict the ability to add extensions to trusted parties only, but allow all apps to customize OS functionality, though in a more limited way.
Orran proposed their own lighter-weight form of customization, based on an object-oriented structuring technique called building-block composition. Customizability is achieved by letting the apps specify the building block composition of the virtual resources created on its behalf, and by letting the app dynamically change the composition. This allows every open file to have a different pre-fetching policy, every memory region to have a different page size, and every process to have a different exception handling policy.
Orran said that the building block compositon was first developed for the Hurricane file system, and was successful. Kitchawan is in early stage of design, and Tornado is in early stages of implementation, and hence, there are many issues to be resolved. Orran said they have to have substantially more experience with a full OS implementation before thay validate their claims of low overhead, extensibility, maintainability, and good multiprocessor performance.
The third talk was given by Noah Mendelsohn from Lotus Development Corporation. The title of his talk was "Operating Systems for Component Software Environments".
Noah started out by saying that component software is revolutionizing the component industry: from word processors to backend servers to web browsers, a broad range of commercial applications is being assembled from ActiveX's, OpenDoc parts, Java Applets, Java Beans, and OCX's. Noah said that Microsoft has used its ActiveX infrastructure to muscle into the Web browser business.
Noah gave a brief history of component software and operating systems: starting from subroutines, to device drivers and dynamic link libraries. More recently, a new style of componment has emerged to support tight integration of fine grain components from diverse suppliers. Examples include Microsoft's OLE/OCX/ActiveX, OpenDoc from CILabs, and Java Applets and especially Java Beans from Sun Microsystems. Noah identified the characteristics typically shared by these component architectures. They include (1) object-oriented API's, (2) a binary calling standard, (3) support for recursive activation of one component within another, (4) standard persistence mechanisms, (5) machine readable meta-class descriptions (run-time type info), (6) a name space to identify component classes, (7) standard packaging and/or registration technology, and (8) a common means of activating or instantiating components regardless of type of intended use.
Noah talked about the various ways in which the new component architectures can impact OS usage. The challenges of building component-base apps are increasingly well understood. A formal abstraction for components, joining those traditionally provided for processes, threads, files, etc., seems to offer a framework within which component software can be effectively developed, he said.
In conclusion, Noah raised the question whether effective operating systems themselves be built of modular, interchangable component parts?
The talks were followed by a panel discussion consisting of the above speakers and the principal investigators of the three exokernel projects - Frans Kaashoek (MIT), Brian Bershad (Seattle) and Margo Seltzer (Harvard).
Regarding whether extendible OS will succeed in market-place, he said it was too early to tell. Frans completely disagreed that they are leading OS research astray. He pointed out that fast system evolution was a hard problem. He also said that a lot of cool nuggets have appeared as a result of their research. Besides, their results apply to other problems.
Luiba Shrira (MIT) pointed out that it was not a fair comparision since there were other database systems that performed much better than Object Store and RVM.
Brian also said that the security problem they were dealing with had nothing to do with extendible systems, but they were about secure systems.