From: Riccardo M. <ric...@gm...> - 2011-12-06 22:05:59
|
Hi Jeff, Richard, many thanks for your explanations! I think I got it now... One more question: On Tue, Dec 6, 2011 at 21:49, Jeff Dike <jd...@ad...> wrote: > On Tue, Dec 06, 2011 at 07:48:40PM +0100, Riccardo Murri wrote: >> In addition, *every* syscall generates a SIGTRAP to the UML kernel >> process, which handles it. The advantage of SKAS0 over TT is that >> memory management syscalls allow the separation of kernel and process >> address space, but every other syscall needs to be handled exactly as >> in TT: e.g., open() needs to map paths using the UML filesystem, etc. >> Right? > > A little off the rails here - in TT mode, there is one address space > in which userspace runs, on every context switch, that address space > needs to be completely remapped in order to become the memory of the > switched-in process. > Does this mean that in TT mode all UML "guest processes" are really threads of a single host process? i.e., they are created with clone(CLONE_VM|...) so they literally share any single page of memory? (So the it's the job of the UML kernel to mprotect() all the pages upon every in-UML context switch?) Best regards, Riccardo |