Re: [ANNOUNCE] Introducing Codezero
Bahadir Balban <[email protected]>
| Newsgroups | gmane.os.hurd.l4 |
|---|---|
| Message-ID | <[email protected]> |
[email protected] 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