general high-level discussion about spectrum
 help / color / mirror / Atom feed
From: Alyssa Ross <hi@alyssa.is>
To: "infokiller ." <joweill@icloud.com>
Cc: discuss@spectrum-os.org
Subject: Re: High level design and other related projects
Date: Sat, 13 Jun 2020 12:01:58 +0000	[thread overview]
Message-ID: <87k10bcgy1.fsf@alyssa.is> (raw)
In-Reply-To: <159196057136.15924.4785359159629836782@localhost>

[-- Attachment #1: Type: text/plain, Size: 2456 bytes --]

> - Have you considered using a micro kernel based host like seL4,
>   similar to what Genode does (at least as I understand it)?

Yes.

I don't know all that much about microkernels, but I have spoken to some
microkernel experts.  My understanding is that all the required parts
are not yet in place to be able to use a microkernel as the host in a
system like Spectrum.  I am, however, trying to design the system so
that the host system is responsible for as little as possible, and
therefore hopefully making it possible to transition to a microkernel
later should that look feasible.

In principle, the host system should do little other than running
virtual machines.  Ideally, most hardware interation could be delegated
to VMs.  This would make it possible to have a very tiny host kernel
through disabling most kernel configuration options.  The left over code
should be just what is critical to run VMs.  The paper "A Linux in
Unikernel Clothing"[1] compares a minimally-configured Linux kernel to
several popular unikernels (not microkernels), with very promising
results.  It is focused on tiny kernels for single-purpose virtual
machines, but I think it contains a lot of relevant insight for all
levels of the Spectrum stack.

[1]: https://dl.acm.org/doi/pdf/10.1145/3342195.3387526

> - Have you considered gVisor [1] for lightweight compartmentalization?

Yes.

The main problem I see with gVisor is that it is designed to be run from
a full-featured host system.  For example, gvisor doesn't provide file
system implementations.  Instead, it expects to proxy through a file
system existing on the host.  In Qubes, and hopefully in Spectrum, the
host system doesn't have any knowledge of VM file systems, to keep the
host as separated from the activities of VMs as possible.

There may still be a place for gVisor in Spectrum -- for example, it
could get a shared file system from a separately virtualized kernel.
For now, though, one VMM is enough to be going on with. :)

> - Have you considered reusing stuff from the Whonix project?

Yes.

My understanding is that the main thing that Whonix provides is full
system images for workstation and gateway machines.  We probably
wouldn't want to use these directly in Spectrum, because it would go
against the principle of configuring the entire system with Nix.
However, there will likely be lots of work in Whonix (configurations and
so on) that can be reused to similar ends in Spectrum.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

  reply	other threads:[~2020-06-13 12:02 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-12 11:16 High level design and other related projects infokiller .
2020-06-13 12:01 ` Alyssa Ross [this message]
2020-06-14 20:24   ` infokiller ​

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87k10bcgy1.fsf@alyssa.is \
    --to=hi@alyssa.is \
    --cc=discuss@spectrum-os.org \
    --cc=joweill@icloud.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).