[Gllug] Introduction (not really relevant to anything, just saying hello)
Richard Jones
rich at annexia.org
Thu Jun 24 12:25:07 UTC 2004
On Thu, Jun 24, 2004 at 01:13:55PM +0100, Russell Howe wrote:
> Always the problem with abstract interfaces - how to hide the dirty work
> of the underlying implementation whilst still allowing the callers to
> make use of desirable implementation-specific features. How to
> generalise without becoming so general as to be useless? Does
> abstraction have to amount to generalisation at all?
>
> Just out of interest, what methods do people know of for doing this?
With operating systems, the classic solution to this is exokernels
(known on this side of the pond as "vertically structured operating
systems").
Basically you put everything into shared libraries. The "device
driver" mainly runs in a shared library (hence in userspace), with the
minimum bit required to multiplex devices between user processes being
in a tiny kernel-space driver. The whole of the operating system runs
as a shared library also, with some daemons managing access to shared
resources.
In such an (imaginary) operating system, you would do:
$ ldd /bin/ls
libc.so.6 => /lib/libc.so.6
liblinux.so.2 => /lib/liblinux.so.2
libconsole_device.so.3 => /lib/libconsole_device.so.3
libdisk_device.so.4 => /lib/libdisk_device.so.4
The point about this design is that userspace processes can access the
device at several different levels. For example, a webserver might
use the basic read() and write() calls. But a highly-optimized,
device-specific webserver might bypass the operating system, and even
the device driver, and talk directly to the hardware (via the minimal
kernel-space driver, of course). Even the latter webserver runs
completely in userspace, so it's safe - the small kernel-space driver
is supposed to ensure safe multiplexing of the device, no matter what
the userspace does.
There are no implementations of exokernel operating systems outside
research labs AFAIK.
Rich.
--
Richard Jones. http://www.annexia.org/ http://www.j-london.com/
Merjis Ltd. http://www.merjis.com/ - improving website return on investment
If I have not seen as far as others, it is because I have been
standing in the footprints of giants. -- from Usenet
--
Gllug mailing list - Gllug at gllug.org.uk
http://lists.gllug.org.uk/mailman/listinfo/gllug
More information about the GLLUG
mailing list