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...

