[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Questions about copy-on-write
From: |
Marcus Brinkmann |
Subject: |
Re: Questions about copy-on-write |
Date: |
Tue, 02 Nov 2004 01:35:39 +0100 |
User-agent: |
Wanderlust/2.10.1 (Watching The Wheels) SEMI/1.14.6 (Maruoka) FLIM/1.14.6 (Marutamachi) APEL/10.6 Emacs/21.3 (i386-pc-linux-gnu) MULE/5.0 (SAKAKI) |
At Mon, 1 Nov 2004 15:55:25 +0000,
Sam Mason <address@hidden> wrote:
> I've included a few paragraphs I've managed to get together.
I've read them, and they are very clear and pretty accurate. I won't
go into nitpicking here.
> I don't think they're particularly amazing, but I was wondering if
> it makes any sense to continue with it?
Depends on what you are aiming at. What should the end result be?
> I don't really understand the capability stuff or how pages are
> added/removed from a container so I've kind of glossed over those
> bits for now.
Pages are added/removed with RPCs to physmem (ie, some
container_allocate function). If you have specific questions, ask.
> I don't really understand the mechanics of how you give another
> task a capability.
The basic process is simple enough: You tell the server which cap
should be given to which task, and then you tell the task about the
"box ID" that identifies the transaction. The receiving task then
calls the server to proceed with the transaction, and replies to the
sender so that the transaction box can be removed.
The description in the manual is a bit stale, but still very
applicable. If you have specific questions, you know the drill :)
> And I don't understand what capabilities are required to do a
> "logical" copy of pages in a container. Is the "access" capability
> enough to do this and if so how to you create a container whose
> contents are read-only? or isn't that what containers are for and
> you'd actually use some other mechanism to accomplish this?
The filesystem must do such logical copies, so the access cap must
suffice.
Read only containers are an interesting idea, I am not sure they came
up before (do you have a specific application for it in mind?). Well,
we could add flags for that of course (maybe even per frame).
BTW, a process is a task. But we usually say process if we mean a
full blown POSIX process (ie, it has a PID, is in a process group, you
can send a signal etc), while we say task in every other case, or if
it doesn't matter if it is a process or not.
Some people say protection domain instead task. The L4 people usually
say "address space", or just "space" (because they have reduced a task
to pretty much an address space, and a little bit).
Thanks,
Marcus