Response by Dylan McNamee

There is a gathering consensus that Open Implementation (OI), especially with respect to programming languages and operating systems, is not new at all. Advisory interfaces for the management of resources, for example, have existed since before the 70's (if not earlier). The utility of OI, then, isn't as a new tool for tackling long-existing problems, but rather as a way of cleaning up the messy interfaces which have already evolved, by necessity, a set of what we're now calling meta-interfaces over the years.

Users (of these interfaces) will benefit because they will be easier to understand. When I first want to learn about a file system, for example, I'd rather not be presented with the few primary interfaces buried in a slew of meta interfaces. Meta interfaces should be presented as appendices to primary interfaces.

The impact upon implementors is not clear. Dividing interfaces that used to be one big muddle of calls into primary and meta seems clearly beneficial. On the other hand, portability (or perhaps implementation simplicity) may be hindered by the provision of "direct" (as opposed to "inform") meta interfaces, since these kinds of interfaces have complex interactions with particular implementations. Inform-style meta interfaces, such as madvise, don't have such problems -- a "sequential access" hint is independent of implementation. Indeed, ignoring such directives is a valid (and often taken) approach.

Meta interfaces that direct (as opposed to inform) are an entirely new beast (for operating systems, at least), and we don't yet know what their impact upon portability, performance and implementation complexity will be.

Back to Alphabetical List of Responses

Back to Main OI Workshop Page

Back to OI Home Page


Dylan McNamee, dylan@cs.washington.edu

(Last Revised October 1994)