A few years back when we were in the midst of building SPIN, we were
considering (semi-seriously) supporting Win32 applications. We were
motivated by the desire to improve the performance of "real" software
instead of the microbenchmarks and N-body simulations that littered the
OS papers of the time. The Win32 API had about 3000 documented
interfaces (and this doesn't count the registry, various ioctl-like
interfaces and COM) and porting that was absolutely impossible
considering our resources. Our next tack was to examine porting the
native NT interface and simply use the win32 server and dll code we
planned to obtain via source license. At this time the Native NT API
had about 200 calls... some quite complicated, and it also required
implementing a registry, the device driver I/O architecture (e.g. TCP is
a driver in NT's structure), various in-memory databases, etc. We
decided that even this reduced functionality was outside our reach (this
was a lucky decision as NT was de-kernelized in version 4.0 and GDI and
parts of USER become "native" interfaces).
workstation OS development was behind us (e.g. Hydra, Taos, BSD, Mach).
What now constitutes a desktop OS is enormous... its too much for a
small group to support anymore... the API is too wide. The places where
research has continued to thrive is where the API is narrow and
well-documented. I think this is pretty evident in the research
projects we've had here since 1995:
instruction set level: Etch, Kimera, Eraser
network/transport level: Detour (IP/TCP)
application protocol level : Porcupine (SMTP/POP), Web Caching
(HTTP)
- Stefan
-----Original Message-----
From: tom@emigrant [mailto:tom@emigrant]
Sent: Monday, November 09, 1998 10:28 PM
To: syn@cs
Subject: world domination
This afternoon I spent some time reading the "Haloween memo"
http://www.opensource.org/halloween.html and "the cathedral and the
bazaar" http://tuxedo.org/~esr/writings/cathedral-bazaar/
Good reads if you have not already seen them.