Robert de Forest wrote:

> Hello,
>
> [snip]
> >
> > At the time that Hurd was envisioned, Mach was expected to be ported 
> > *everywhere,*
> > and it was expected that it would be made extremely efficient, and there 
> > would be
> > a substantial population of grad students familiar with it.  Unfortunately
> > (arguably), the IBM Workplace OS project failed, and Mach development 
> > efforts
> > became something of a "hot potato" that finally was laid to rest at 
> > University of
> > Utah.  They now really care about FluxOS (which, encouragingly, just 
> > recently had
> > a new release), and it is likely only Hurd development that is both modern 
> > and
> > dependent on Mach.
> What about the NextStep/MacOS thing (MacOS X?)? Isn't it supposed to be based
> on some version of Mach? Isn't BeOS also based on a multiserver/microkernel?
> Are these projects not Mach or not modern?
>

MacOS-X and NeXTStep are both monolithic kernels using Mach as a substrate in a 
fairly
similar fashion to the way MkLinux runs atop Mach.  NeXTStep was based on an 
older
version of Mach, and may really be quite tightly integrated with Mach.

Definitely not a multiserver situation.

The Be architecture is a little less clear, but I don't think Mach is in their 
picture,
and I don't think microkernels are involved.

>
> > There have been thoughts of moving Hurd to use L4 or its successor (whose 
> > name
> > escapes me).  It seems more sensible to actually get Hurd working and useful
> > first.
> What are L4 and its successor (whose name escaped you :)? What do they add?
> Where are their home pages?

See: <http://os.inf.tu-dresden.de/L4/LinuxOnL4/> for information on L4, and
<http://os.inf.tu-dresden.de/fiasco/> for information on Fiasco, which is a 
successor
project to L4.

L4 was of great interest a couple years ago as it is a microkernel that is 
indeed
actually small (rather unlike Mach).  The research results indicated that the 
way to
make microkernels efficient was to choose some abstractions that would be 
published to
the "server(s)" on top, but then code the microkernel very specifiically to the
hardware.  L4 was written in IA-32 assembler.

Unfortunately, the licensing problem reared its ugly head.  The researchers 
wanted to
widely disseminate understanding of L4, and wanted it released under something 
similar
to the GPL.  The university thought otherwise, wanting to be able to make 
millions off
of  licensing anything that turned out useful.  In the end, there is a MIPS 
version of
the L4 microkernel that is available under the GPL, but other versions are 
either not
generally available or not generally usable.

Fiasco is a followup project, with the following interesting properties:
- It's GPLed from day 1.
- It's largely written in C++.  (Those that hate C++ will of course be 
appalled.)
- Not quite as fast as L4, but certainly more portable, which is useful if you 
want to
port it to a bunch of architectures.
- Version 0.5.1 was released about 2 weeks ago, which means that those working 
on it are
being successful at getting releases out.

It might, in the long run, be a "cool" substrate for Hurd to run on.  Almost 
certainly
preferable to Mach.

Unfortunately, there are some nice dilemnas.

You can have:
a) A small, fast microkernel, which requires rearchitecting Hurd, and requires 
managing
device driver code for any devices that are to be supported.
b) Mach, which will limit the availability of device drivers, as hacking Mach is
probably as hard as hacking either Hurd or Linux.
c) Run Hurd atop Linux, which is probably more efficient than running Hurd atop 
Mach,
and buys you lots of device drivers, but again requires rearchitecting Hurd.

Option a) is a "cool" option; option c) tries to maximize hardware support.  
Both are
substantial efforts that nobody is working on just now...


Reply via email to