From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bakul Shah To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> In-reply-to: Your message of "Wed, 02 May 2018 19:19:43 -0000." References: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <89967.1525382792.1@bitblocks.com> Content-Transfer-Encoding: quoted-printable Date: Thu, 3 May 2018 14:26:32 -0700 Message-Id: <20180503212639.3A801156E510@mail.bitblocks.com> Subject: Re: [9fans] gVisor - user space kernel in Go Topicbox-Message-UUID: d595f332-ead9-11e9-9d60-3106f5b1d025 On Wed, 02 May 2018 19:19:43 -0000 Skip Tavakkolian wrote: > = > Just saw this today; might be of interest to some 9fans. Apache open sou= rce > from Google: > = > https://github.com/google/gvisor Unix emulation on microkernels looks a bit like this. Quick comparison: jails each jail has its own kernel context. The host kernel needs support for this. Apps run unchanged. containers & zones are variations on this. VMs a proxy emulates a processor and assorted IO devices. very fast if the host and guest instruction sets are very similar. The host doesn't know about emulation or care. Apps run unchanged. gvisor a proxy emulates an OS API by intercepting all syscalls. Very few host facilities are needed. Apps may have to be linked with the right library. In a capabilities based system you don't need most of this and can still achieve better security and isolation. What a process can access is constrained by the capabilities it holds or can gain via calls on existing caps. API interception as with gvisor can be done naturally: a process would be given proxy caps to start with. plan9 more or less used file descriptors in this fashion. It also provided better higher level composition by attempting to cast many things as files/dirs/filesystems. Even here I think a cap system can be used to build better &/or more convenient abstractions.