l4-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ANNOUNCE] Introducing Codezero


From: Bahadir Balban
Subject: Re: [ANNOUNCE] Introducing Codezero
Date: Sun, 21 Jun 2009 22:31:21 +0300
User-agent: Thunderbird 2.0.0.21 (X11/20090318)

address@hidden wrote:
Hi,

Pistachio? Does that mean that just like Pistachio it has no kernel
support for protected IPC? If so, this is a total show-stopper -- it was
the main reason why the original Hurd/L4 port has been abandoned...


Hi there,

Yes I can understand that this is a limitation. IPC on Codezero is not
controlled, yet. It's version 0.1 after all. It is possible to implement
this, and one option is to add capabilities. But it won't be object-based capabilities because I generaly oppose designing everything around object oriented methods.

In my opinion, object-based design is useful on some occasions, but
software (and systems) are more ad-hoc in nature than being modeled
around a well-structured object system. The short conclusion is that if
you enforce objects everywhere, you end up over-designing your system.

So, I will certainly come up with a capability/security mechanism at
some point, but this won't be centered around an object-based design.

I believe the triplet is closest to what you (or at least I, given the
past versions of Hurd) would imagine or expect to have as an OS core
based around L4.

Not really: the Hurd does *not* have a central VFS layer.

I can't really say much about the memory manager; but from the sound of
it, it's also more monolithic than the relevant services in the Hurd...

-antrik-


OK I agree that the latest work on Hurd does not reflect what I meant. I
roughly meant a microkernel-based OS core that has servers implemented
in userspace.

FS0 has the VFS and the underlying filesystems bundled. MM0 has the
page-cache, vm objects and their file/task associations bundled. So I
can say that each of them can correspond to a *subsystem* rather than a
collection of objects.

I would imagine that in an object-based system, MM0 for example would be
decomposed into multiple vm objects with different capabilities.

Instead, my approach is to build servers in an ad-hoc fashion (as
it happens in the natural dynamics of it). But the key point is to keep
the subsystems and their interactions well-engineered. The decomposition
is not done by objects, but rather by engineering decisions. Note, that
there are many objects embedded inside both FS0 and MM0, but they are
used when necessary, rather than being centric in the design.

Anyways, these are my general thoughts. I can go into more detail if
anyone is interested.


Thanks,

--
Bahadir Balban






reply via email to

[Prev in Thread] Current Thread [Next in Thread]