OS Extensions A Comparison of OS Extension Technologies by Christopher Small and Margo Seltzer, Harvard University Christopher Small presented a study of several OS extension technologies and compared thier perfomance and safety. These technologies fell into the followinf catagories: those with no protection (C in the kernel) those which use hardware protection (C with upcalls), those which used interpreters (Java) those which used safe compilers (Omniware and Modula-3). The crtieria for judging the technologies was the performance impact of the extensions - is it worthwhile? He presented several examples: VM page eviction, MD5 fingerprinting and Logical Disk. For each of these examples the breakeven point was calculated and each technology measured against this. His conclusions were that interpreters are too slow, and that upcalls and safe compilation were fast enough. He expects Java to become fast enough whilst remianing safe, and Omniware to become safer whilst maintaining its performance. In the Q+A session he stressed that Java is good at what it is intended for, but is currently not fast enough. A question was asked about the cost of an upcall and he replied that it depends on what an upcall is. Another question was about sharing between extensions in different protection domains and the reply was that this would invovle some data movement overhead. An Extensible Protocol Architecture For Application-Specific Networking by Marc Fiuczynski and Brian Bershad, University of Washington Marc Fiuczynski presented Plexus an implementation of an extensible protocol architecture for the SPIN system (see http://www-spin.cs.washington.edu). The goals of Plexus are to allow for protocol extensions which outperform conventional implementations without sacrificing safety. Plexus supports extensions by defining a protocaol graph where nodes and edges can be inserted by applications. Access is restricetd to underlying interfaces and pakets are filtered before theyt arrive at an extensions handler. This ensures sfatety. He then presented two example of extensions using Plexus: an http proxy server which exhibits low latency a video server which avoid copy in/out overheads His conclusions were that it outperfroms existing implementations without sacrificing safety. Several questions were raised in the Q+A session: Q: what happens when there are lots of extensions ? A: it doesn't scale Q: what is the latency with non-customised applications? A: similar to UNIX Q: how are non-trusted extensions prohibited ? A: trusted extensions are signed by the compiler Linux Device Driver Emulation in Mach by Shanatanu Goel and Dan Duchamp, Columbia University One problem with Mach is its lack of available device drivers. Shanatanu Goel presented a framework for allowing unmodified Linux device drivers to be used under Mach. He described several issues that arise in emulating the Linux kernel environment within Mach. These include initialization, address space, memory allocation, synchronization, machine resources and kernel interfaces. They have managed to compile 34 ethernet drivers and have tested 10, and compile 17 SCSI drivers. Performance was respectable when compared to the available Mach drivers. There are some reamining issues with the co-existence of Linux and Mach driver. Several questions were raised in the Q+A session: Q: how are multiprocessor issues dealt with ? A: there is a lock around the Linux drivers Q: how is the device config in Mach 4 affected ? A: no change Q: why Linux drivers and not BSD drivers ? A: there are more Linux drivers Q: could this be generalized to other drivers ? A: yes, but there would be naming problems