|
| <prev next> |
Re: [ANNOUNCE] Introducing Codezero: msg#00000l4-hurd-gnu
Bas Wijnen wrote: I'm not sure if "adding capabilities" to a working system is a proper Hi Bas, Implementing fine-grained access control mechanism inside the microkernel should take no more than a week or two. I would imagine all I would need to do for the first version is to add a per-thread bitmap structure that controls resources such as the amount of virtual/physical memory, cpu time, with whom the communication is allowed, which requests, what type of ipc ... etc. Securing the existing communication may take some effort, although it should not be too difficult. There are only 2 servers and a handful of requests. I think I will have part of the above implemented on the next version of Codezero. It should also be possible to pass along capabilities dynamically, though I would imagine most security permissions to be set up during initialization. What I've seen from capability systems, they can be seen by object In my plan, there will be servers, (i.e. C programs) that simply do IPC in a controlled fashion. The design won't be centered around interface/implementation type of remote object instantiation as you would see in say, Corba, Java RMI etc. This is because the goal is to reduce interfaces down to a minimum generic set of calls such as open/close/read/write ... just like in Plan 9. So instead of having a different interface for each object, there will simply be a file-based interface for everything. Turning a capability-based system into something like Linux is easy[1]: Yes sure. Although I envision that in a new capability system, most capability management can be done during the mounting of a new service on a process namespace. Correct me if I am wrong.
This is possible. Currently, FS0 only provides an abstract interface to access a real, low-level filesystem underneath. There is no mount support yet, and this is because I haven't decided on how to do it the best way. My expectation is that there is going to be standalone file servers that are attached to the namespace of each process. FS0 will take care of the main handling of the namespace management. For example a driver, a communication stack, or a standalone filesystem will be able to run this way. However, I also want to keep the option of having the real filesystems bundled to FS0 for performance reasons. Generally my thoughts are centered around building a microkernel-based OS for embedded systems using Plan 9 design principles. What's better though, is that new and legacy services can co-exist in a flattened hierarchy that doesn't increase system complexity. Thanks, -- Bahadir Balban
|
|
||||||||||||||||||||||
|
|
|
| News | Mail Home | sitemap | FAQ | advertise |