Unity Interface in 10.10 Netbook Edition
Liam Proven
lproven at gmail.com
Fri Oct 29 16:48:39 UTC 2010
On Fri, Oct 29, 2010 at 10:01 AM, Thierry de Coulon <tcoulon at decoulon.ch> wrote:
> On Friday 29 October 2010 09:30:41 am Christopher Chan wrote:
>> On Friday, October 29, 2010 03:21 PM, Basil Chupin wrote:
>> > Having said this, I am getting REALLY peed-off with the whole thing in
>> > the Linux world and am considering going back to Windows.
>>
>> Basil,
>>
>> There is always Openindiana or StormOS or even Mac OS X.
>
> This probably is OT, but when reading this (and googling to know more about
> Openindiana and StormOS) it made me think of this strange and elusive thing
> called GNU Hurd.
>
> Since I've started using Linux I think I've been reading the same text on
> their web site (http://www.gnu.org/software/hurd/hurd.html)
>
> "The GNU Hurd is under active development. Because of that, there is no stable
> version."
>
> Anyone know if this "Hurd" is more than vaporware? I mean after ten years
> of "active development".....
It's more like 20+ years now.
Bear in mind in the following that when I speak of an OS I am talking
about the core OS - the kernel and essential services. Not the shell
or the filesystem or user tools like ``ls'' or ``more'' or ``vi'' or
anything, and certainly nothing to do with relatively trivial outer
layers such as graphical user interfaces.
The GNU HURD was a very ambitious project: to build a complete,
UNIX-compatible OS on a microkernel basis. Microkernels ("µkernel" for
short) are very hard to make work, but it has been done - QNX, Chorus,
Amoeba and others are all technically microkernels, for instance. Not
are really Unices, though, although QNX sort of superficially
resembles one enough for developers to feel some familiarity.
http://en.wikipedia.org/wiki/Hurd
http://en.wikipedia.org/wiki/Amoeba_distributed_operating_system
http://en.wikipedia.org/wiki/Qnx
http://en.wikipedia.org/wiki/ChorusOS
Contrary to popular belief and Apple & NeXT's strongly-promoted
message, neither Mac OS X nor NeXTstep before it were technically
microkernels.
The idea of a microkernel is that only a tiny piece of code runs in
the processor's (or processors') Ring 0; the rest of the OS is
composed of small pieces of userspace code, running in Ring 2 or 3
(using x86-32 rings for reference here). The modules, called servers
or daemons, all communicate with each other to work together as a
complete OS.
http://en.wikipedia.org/wiki/Ring_0
The theory is that because the OS is very modular, it is easier to
work on, more reliable and more robust. If a server dies, it can be
restarted and the rest of the kernel will not be affected.
The first microkernel to get much real-world recognition was Mach,
designed at Carnegie-Mellon University in the USA. Mach didn't get to
a reasonable level of completion until Mach 3.0 but the earlier
versions spawned a host of projects.
http://en.wikipedia.org/wiki/Mach_(kernel)
One was OSF/1 by Digital Equipment Corporation, which became Compaq
Tru64 and was killed by HP. Another was MkLinux for the original
Motorola 680x0-based Apple Macintoshes.
http://en.wikipedia.org/wiki/OSF/1#OSF.2F1
http://en.wikipedia.org/wiki/Mklinux
And one was NeXTstep, which became Mac OS X.
To make their new OS viable, NeXT wanted to make something Unix
compatible, so they took a huge chunk of the kernel of BSD (not
FreeBSD or NetBSD or OpenBSD, this is before them) and built it
directly into the Mach kernel as a sort of "Unix compatibility later".
This means that the kernel is no longer "micro" at all - it has a
honking great monolithic lump of old Unix code bolted onto it.
The result is called Xnu, and whereas it may not be elegant, it works.
http://en.wikipedia.org/wiki/Xnu
GNU took the Mach kernel as well as the basis for HURD, but it tried
to do things /properly/, the pure microkernel way. When Linus Torvalds
wrote his kernel, he didn't expect it to compete with HURD - it was
meant to be a small quick hack. As he famously said in
news:comp.os.minix: "I'm doing a (free) operating system (just a
hobby, won't be big and professional like gnu) for 386(486) AT
clones."
That was the first announcement of what became and was later named
Linux. (At that time it was called Freax.)
The thing is, the GNU developers found that writing a
microkernel-based Unix is very very very hard.
When Linus made his post, Prof Andy Tanenbaum, a very respected
academic in OS research and the author of Minix, the OS that begat
Linux, said Linux was obsolete: the direction of the future was
clearly microkernels. (And indeed Tanenbaum has produced several
µkernel OSs himself.)
Technically, he was right, but Torvalds' practicality in deciding to
implement a simple, classical, one-big-monolithic-lump-of-code type of
old-fashioned Unix kernel has been proved correct - Linux is now
mature, sophisticated and highly usable. In some terms, proprietary
Unixes such as HP/UX or AIX or Solaris might do some things better,
but Linux is doing very well.
Meantime, 20y later, the GNU team have not made all that much progress
with HURD.
About 4y ago, it has got to a stage where it looked like it could be
used for simple stuff. Debian built a version of the Debian GNU distro
around the new HURD kernel instead of the Linux kernel. (There are
also Debians built around all the BSD kernels.)
An announcement was made on Slashdot. The infant OS was hosting its
own website. It immediately collapsed under the onslaught.
Soon after this, the team decided that things had moved on since the
creation of Mach in the early 1980s and moved HURD onto a new, more
sophisticated and mature µkernel: L4. This involved a very big
backward step, so arguably, HURD is less complete and ready now than
it was then. Also, things have moved on since L4 and it too has
successors, and research projects are looking at them as possible HURD
bases, too.
http://en.wikipedia.org/wiki/L4_microkernel_family
Personally, I think that one day, Linux is just going to prove to be
too big and too complex to maintain and develop efficiently any more.
Some developers might move on to a successor, something more modular.
I'd have liked to see kernel 2.6 named 3.0 when it was released -
there was no planned 2.8 or work-in-progress 2.7; indeed the old
stable-and-development-kernels-in-tandem model has been discarded.
But perhaps some day a modular Linux 3.0 might be started.
There are other directions - for instance, the chaps that originally
developed Unix (of which Linux is really just a re-implementation)
went on to further refine and develop their ideas in Plan 9, which
later developed into Inferno. These are networked OSs, with resource
sharing between nodes an integral OS concept, rather than something
bolted on later as it is with Linux, Unix, Windows and so on.
http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs
I do not understand the technical details but the structure of Plan 9
apparently makes the whole concept of µkernels irrelevant - it is
functionally divided into pieces already, just not alone the same
division of privileged tiny kernel + user-space servers as µkernel
OSs. I'd like to see development on Plan 9 picked up and the
enhancements of modern Unixes, such as Linux, brought to it. That
could be something very special.
Also, given that other µkernel research OSs have made it to complete,
functional condition, such as Minix 3, then perhaps the HURD design is
flawed and they should drop it and move on to HURD 2 or something. I
don't know enough about the minutiæ.
http://en.wikipedia.org/wiki/Minix_3
But HURD isn't finished, maybe never well be, but it's been a very
interesting project all the same. And whereas maybe µkernels are not
the right way to go, I think the evidence from Minix 3 and Ameoba and
QNX and so on is that they /can/ be made to work, and perhaps that is
how things will in fact go one day.
--
Liam Proven • Info & profile: http://www.google.com/profiles/lproven
Email: lproven at cix.co.uk • GMail/GoogleTalk/Orkut: lproven at gmail.com
Tel: +44 20-8685-0498 • Cell: +44 7939-087884 • Fax: + 44 870-9151419
AIM/Yahoo/Skype: liamproven • MSN: lproven at hotmail.com • ICQ: 73187508
More information about the ubuntu-users
mailing list