patches and low-level development discussion
 help / color / mirror / code / Atom feed
* [PATCH 00/22] Implement managing VMs with Nix
@ 2022-10-10 23:28 Alyssa Ross
  2022-10-10 23:28 ` [PATCH 01/22] host/start-vm: use MAP_SHARED memory for VMs Alyssa Ross
                   ` (28 more replies)
  0 siblings, 29 replies; 47+ messages in thread
From: Alyssa Ross @ 2022-10-10 23:28 UTC (permalink / raw)
  To: devel

IMPORTANT NOTE: this series should be applied on top of v2 of my
previous series "Introduce a shared base for application VMs" [1].
I'm much happier with v2 of that series, but I only posted it
yesterday so I still want to leave a little more opportunity for
comment before applying it.

[1]: https://spectrum-os.org/lists/archives/spectrum-devel/20221009114036.463071-1-hi@alyssa.is/

This series contains the final big chunk of work I had left to do on
Spectrum's original NLnet grant.  It adds support for managing
Spectrum VMs from the Spectrum system itself using Nix.  Nix is
optional, and can co-exist with VMs provided in some other way.  More
information is included in the new documentation.  Most of this work
was done earlier this year, but I got stuck on some implementation
details that prevented me from getting over the last hurdle until I
came up with a solution.  That's explained in more detail in patch 15.

Patches 1–10 add support for configuring VMs with read/write access to
host directories using virtiofs.  Then, in patches 11–14, come various
changes that make the default user data partition more suitable as a
mutable filesystem, which we haven't actually used it for before.  And
then the remaining patches actually implement support for a VM that
can run Nix and easily build VMs that are available on the host.

Alyssa Ross (22):
  host/start-vm: use MAP_SHARED memory for VMs
  host/start-vm: implement shared directories
  host/rootfs: generate virtiofsd services
  Documentation: explain VM shared directories
  vm-lib/make-vm.nix: support shared directories
  img/app: add support for testing virtiofs
  img/app: don't block app startup on network online
  img/app: auto-mount virtiofs0 filesystem
  vm/app/mg.nix: init
  vm/app/mg.nix: open virtio filesystem in dired
  host/rootfs: move ext mounting to s6-rc service
  host/rootfs: automatically grow user partition
  host/rootfs: use a bigger test ext partition
  host/initramfs/extfs.nix: tar2ext4 -> mkfs.ext4 -d
  host/start-vm: resolve VM symlinks with /ext root
  host/rootfs: resolve VM symlinks with /ext root
  Documentation: explain /ext symlink resolution
  host/start-vm: increase memory size to 512M
  vm/app/nix: add
  vm-lib/make-vms.nix: add
  host/initramfs/extfs.nix: add example Nix-built VM
  Documentation: add how-to guide for Nix-built VMs

 .gitignore                                    |  5 +-
 Documentation/_sass/custom/custom.scss        | 22 ++++++
 Documentation/creating-vms.adoc               | 12 ++-
 Documentation/nix-vms.adoc                    | 22 ++++++
 host/initramfs/extfs.nix                      | 29 +++++--
 host/rootfs/Makefile                          | 13 +++-
 host/rootfs/default.nix                       | 16 +++-
 host/rootfs/etc/mdev/block/add                |  1 -
 host/rootfs/etc/s6-rc/ext-rc-init/up          | 19 ++++-
 host/rootfs/etc/s6-rc/ext/up                  |  5 +-
 host/rootfs/etc/template/fs/notification-fd   |  1 +
 .../etc/template/fs/notification-fd.license   |  2 +
 host/rootfs/etc/template/fs/run               | 11 +++
 host/rootfs/etc/template/fs/type              |  1 +
 host/rootfs/etc/template/fs/type.license      |  2 +
 host/start-vm/fs.c                            | 17 +++++
 host/start-vm/fs.rs                           | 68 +++++++++++++++++
 host/start-vm/lib.rs                          | 54 ++++++++++---
 host/start-vm/meson.build                     |  2 +-
 host/start-vm/start-vm.rs                     | 15 ++--
 host/start-vm/tests/meson.build               |  4 +
 host/start-vm/tests/vm_command-basic.rs       |  6 +-
 .../tests/vm_command-config-symlink.rs        | 30 ++++++++
 host/start-vm/tests/vm_command-shared-dir.rs  | 43 +++++++++++
 img/app/Makefile                              | 24 +++++-
 img/app/etc/mdev.conf                         |  3 +-
 img/app/etc/mdev/iface                        |  4 +-
 img/app/etc/mdev/listen                       | 12 +++
 img/app/etc/mdev/virtiofs                     | 10 +++
 img/app/etc/mdev/wait                         | 15 ++++
 img/app/etc/s6-rc/ok-all/contents             |  1 +
 img/app/shell.nix                             |  6 +-
 tools/resolve_in_root/default.nix             | 23 ++++++
 tools/resolve_in_root/meson.build             | 10 +++
 tools/resolve_in_root/resolve_in_root.c       | 76 +++++++++++++++++++
 tools/resolve_in_root/test.sh                 | 11 +++
 vm-lib/make-vm.nix                            | 20 ++++-
 vm-lib/make-vms.nix                           | 19 +++++
 vm/app/catgirl.nix                            |  1 +
 vm/app/lynx.nix                               |  1 +
 vm/app/{lynx.nix => mg.nix}                   | 10 ++-
 vm/app/nix/bin/vm-rebuild                     | 25 ++++++
 vm/app/nix/default.nix                        | 43 +++++++++++
 vm/app/nix/example.nix                        | 13 ++++
 44 files changed, 673 insertions(+), 54 deletions(-)
 create mode 100644 Documentation/_sass/custom/custom.scss
 create mode 100644 Documentation/nix-vms.adoc
 create mode 100644 host/rootfs/etc/template/fs/notification-fd
 create mode 100644 host/rootfs/etc/template/fs/notification-fd.license
 create mode 100755 host/rootfs/etc/template/fs/run
 create mode 100644 host/rootfs/etc/template/fs/type
 create mode 100644 host/rootfs/etc/template/fs/type.license
 create mode 100644 host/start-vm/fs.c
 create mode 100644 host/start-vm/fs.rs
 create mode 100644 host/start-vm/tests/vm_command-config-symlink.rs
 create mode 100644 host/start-vm/tests/vm_command-shared-dir.rs
 create mode 100755 img/app/etc/mdev/listen
 create mode 100755 img/app/etc/mdev/virtiofs
 create mode 100755 img/app/etc/mdev/wait
 create mode 100644 tools/resolve_in_root/default.nix
 create mode 100644 tools/resolve_in_root/meson.build
 create mode 100644 tools/resolve_in_root/resolve_in_root.c
 create mode 100755 tools/resolve_in_root/test.sh
 create mode 100644 vm-lib/make-vms.nix
 copy vm/app/{lynx.nix => mg.nix} (52%)
 create mode 100755 vm/app/nix/bin/vm-rebuild
 create mode 100644 vm/app/nix/default.nix
 create mode 100644 vm/app/nix/example.nix

-- 
2.37.1



^ permalink raw reply	[flat|nested] 47+ messages in thread
* [PATCH v2 0/6] Introduce a shared base for application VMs
@ 2022-10-09 11:40 Alyssa Ross
  2022-10-09 11:40 ` [PATCH v2 5/6] release: rename from "img" Alyssa Ross
  0 siblings, 1 reply; 47+ messages in thread
From: Alyssa Ross @ 2022-10-09 11:40 UTC (permalink / raw)
  To: devel

This series was originally developed for some work I'm finishing up
now for NLnet, for letting Spectrum users build VMs on the system with
Nix, so it's time for it to get another round.

Changes since v1:

 • make-vm.nix only generates the VM's configuration directory,
   not a whole data/$name hierarchy that needs to be merged.

 • vm-lib/make-vm.nix and vm/make-vm.nix are separated, so
   system-provided VMs can deduplicate against the base image, while
   user-defined VMs can't so they're independently upgradeable.

v1: https://spectrum-os.org/lists/archives/spectrum-devel/20220919073659.1703271-1-hi@alyssa.is/


The idea here is to reduce duplication between application VMs, both
in terms of source code size and output size.  After this change,
creating a new VM just requires writing a very small Nix file like
this:

	{ config ? import ../../../nix/eval-config.nix {} }:

	import ../../vm-lib/make-vm.nix { inherit config; } {
	  name = "appvm-lynx";
	  providers.net = [ "netvm" ];
	  run = config.pkgs.pkgsStatic.callPackage (
	    { writeScript, lynx }:
	    writeScript "run-lynx" ''
	      #!/bin/execlineb -P
	      ${lynx}/bin/lynx https://spectrum-os.org
	    ''
	  ) { };
	}

Rather than a whole big source tree as before, most of which was
duplicated with every other application VM.

When a VM generated this way is started, it gets two disk images.  One
is the shared base image, which is part of the Spectrum base system,
and the other contains only the application-specific stuff: the run
script, and any store path dependencies that are not already present
in the base image.  This means that the amount of storage required for
each new application VM is substantially reduced.

Of course, this isn't the only way to generate VMs.  Monolithic VMs
like we had before would still work, with some small adjustments for
the new disk layout.

I also see this fitting well into making it possible to configure
extra VMs at build time.  It doesn't directly help with that, but
making it so that each VM doesn't need to provide everything itself
will make creating external VMs easier when it does happen.

In future we might want to apply a similar mechanism to service VMs,
like netvm, but since we only have one of those so far, it's not clear
which parts exactly would be duplicated, so I'm leaving it for now.

Other future work is considering the impacts of the shared base image
on guest isolation.  Can guests observe whether reads of the shared
base image hit the host page cache, or even an internal disk cache?
At the moment I suspect that the base image doesn't have enough
specialised code in it that there would be any interesting results,
but it's worth thinking about if the shared image grows new
functionality, whether it would be interesting to another guest to
be able to observe whether those resources have previously been loaded
or not.  If this _does_ turn out to be a concern, it could be
mitigated by simply copying the base image to temporary storage before
booting a VM, and then booting the VM from the copy.

Alyssa Ross (6):
  host/start-vm: support multiple block devices
  scripts/make-gpt.sh: add support for labels
  vm: build GPT images
  host/start-vm: boot using partition label
  release: rename from "img"
  img/app: extract from appvm-{lynx,catgirl}

 Documentation/creating-vms.adoc               |   8 +-
 Documentation/getting-spectrum.adoc           |   2 +-
 host/initramfs/extfs.nix                      |  19 +--
 host/rootfs/default.nix                       |  11 +-
 host/start-vm/lib.rs                          |  38 +++++-
 host/start-vm/tests/vm_command-basic.rs       |   6 +-
 {vm/app/lynx => img/app}/Makefile             |  57 ++++----
 {vm/app/catgirl => img/app}/bin               |   0
 {vm/app/lynx => img/app}/default.nix          |  22 ++--
 img/app/etc/fstab                             |   8 ++
 {vm/app/catgirl => img/app}/etc/init          |   0
 {vm/app/catgirl => img/app}/etc/mdev.conf     |   0
 {vm/app/lynx => img/app}/etc/mdev/iface       |   2 +-
 {vm/app/catgirl => img/app}/etc/passwd        |   0
 .../catgirl => img/app}/etc/passwd.license    |   0
 {vm/app/catgirl => img/app}/etc/resolv.conf   |   0
 .../app}/etc/s6-linux-init/scripts/rc.init    |   1 +
 .../s6-rc/lynx => img/app/etc/s6-rc/app}/run  |   3 +-
 .../catgirl => img/app/etc/s6-rc/app}/type    |   0
 .../app/etc/s6-rc/app}/type.license           |   0
 .../etc/s6-rc/mdevd-coldplug/dependencies     |   0
 .../app}/etc/s6-rc/mdevd-coldplug/type        |   0
 .../etc/s6-rc/mdevd-coldplug/type.license     |   0
 .../app}/etc/s6-rc/mdevd-coldplug/up          |   0
 .../app}/etc/s6-rc/mdevd/notification-fd      |   0
 .../etc/s6-rc/mdevd/notification-fd.license   |   0
 .../catgirl => img/app}/etc/s6-rc/mdevd/run   |   0
 .../catgirl => img/app}/etc/s6-rc/mdevd/type  |   0
 .../app}/etc/s6-rc/mdevd/type.license         |   0
 .../app}/etc/s6-rc/ok-all/contents            |   0
 .../catgirl => img/app}/etc/s6-rc/ok-all/type |   0
 .../app}/etc/s6-rc/ok-all/type.license        |   0
 .../app}/etc/ssl/certs/ca-certificates.crt    |   0
 {vm/app/lynx => img/app}/shell.nix            |  11 +-
 release.nix                                   |   2 +-
 {img => release}/combined/default.nix         |   0
 {img => release}/combined/eosimages.nix       |   0
 {img => release}/combined/grub.cfg.in         |   0
 {img => release}/combined/run-vm.nix          |   0
 ...ble-gpt-partition-attribute-55-check.patch |   0
 ...pt-disable-partition-table-CRC-check.patch |   0
 .../0003-install-remove-Endless-OS-ad.patch   |   0
 ...4-finished-don-t-run-eos-diagnostics.patch |   0
 ...omote-spectrum-not-the-Endless-forum.patch |   0
 {img => release}/installer/app/default.nix    |   0
 .../installer/app/vendor-customer-support.ini |   0
 {img => release}/installer/configuration.nix  |   0
 {img => release}/installer/default.nix        |   0
 {img => release}/installer/run-vm.nix         |   0
 {img => release}/installer/seat.rules         |   0
 {img => release}/live/Makefile                |   0
 {img => release}/live/default.nix             |   0
 {img => release}/live/shell.nix               |   0
 scripts/make-gpt.sh                           |   4 +-
 scripts/sfdisk-field.awk                      |   2 +-
 vm-lib/make-vm.nix                            |  51 ++++++++
 vm/app/catgirl.nix                            |  17 +++
 vm/app/catgirl/Makefile                       | 123 ------------------
 vm/app/catgirl/default.nix                    |  92 -------------
 vm/app/catgirl/etc/fstab                      |   6 -
 vm/app/catgirl/etc/mdev/iface                 |  36 -----
 .../catgirl/etc/s6-linux-init/scripts/rc.init |  10 --
 vm/app/catgirl/etc/s6-rc/catgirl/run          |  31 -----
 .../data/appvm-catgirl/providers/net/netvm    |   0
 vm/app/catgirl/shell.nix                      |  17 ---
 vm/app/lynx.nix                               |  15 +++
 vm/app/lynx/bin                               |   1 -
 vm/app/lynx/etc/fstab                         |   6 -
 vm/app/lynx/etc/init                          |   5 -
 vm/app/lynx/etc/mdev.conf                     |   5 -
 vm/app/lynx/etc/passwd                        |   1 -
 vm/app/lynx/etc/passwd.license                |   2 -
 vm/app/lynx/etc/resolv.conf                   |   4 -
 vm/app/lynx/etc/s6-rc/lynx/type               |   1 -
 vm/app/lynx/etc/s6-rc/lynx/type.license       |   2 -
 .../etc/s6-rc/mdevd-coldplug/dependencies     |   4 -
 vm/app/lynx/etc/s6-rc/mdevd-coldplug/type     |   1 -
 .../etc/s6-rc/mdevd-coldplug/type.license     |   2 -
 vm/app/lynx/etc/s6-rc/mdevd-coldplug/up       |   4 -
 vm/app/lynx/etc/s6-rc/mdevd/notification-fd   |   1 -
 .../etc/s6-rc/mdevd/notification-fd.license   |   2 -
 vm/app/lynx/etc/s6-rc/mdevd/run               |   5 -
 vm/app/lynx/etc/s6-rc/mdevd/type              |   1 -
 vm/app/lynx/etc/s6-rc/mdevd/type.license      |   2 -
 vm/app/lynx/etc/s6-rc/ok-all/contents         |   4 -
 vm/app/lynx/etc/s6-rc/ok-all/type             |   1 -
 vm/app/lynx/etc/s6-rc/ok-all/type.license     |   2 -
 vm/app/lynx/etc/ssl/certs/ca-certificates.crt |   1 -
 .../host/data/appvm-lynx/providers/net/netvm  |   0
 vm/make-vm.nix                                |   9 ++
 vm/sys/net/Makefile                           |  23 ++--
 vm/sys/net/default.nix                        |  10 +-
 92 files changed, 236 insertions(+), 457 deletions(-)
 rename {vm/app/lynx => img/app}/Makefile (66%)
 rename {vm/app/catgirl => img/app}/bin (100%)
 rename {vm/app/lynx => img/app}/default.nix (77%)
 create mode 100644 img/app/etc/fstab
 rename {vm/app/catgirl => img/app}/etc/init (100%)
 rename {vm/app/catgirl => img/app}/etc/mdev.conf (100%)
 rename {vm/app/lynx => img/app}/etc/mdev/iface (98%)
 rename {vm/app/catgirl => img/app}/etc/passwd (100%)
 rename {vm/app/catgirl => img/app}/etc/passwd.license (100%)
 rename {vm/app/catgirl => img/app}/etc/resolv.conf (100%)
 rename {vm/app/lynx => img/app}/etc/s6-linux-init/scripts/rc.init (90%)
 rename {vm/app/lynx/etc/s6-rc/lynx => img/app/etc/s6-rc/app}/run (80%)
 rename {vm/app/catgirl/etc/s6-rc/catgirl => img/app/etc/s6-rc/app}/type (100%)
 rename {vm/app/catgirl/etc/s6-rc/catgirl => img/app/etc/s6-rc/app}/type.license (100%)
 rename {vm/app/catgirl => img/app}/etc/s6-rc/mdevd-coldplug/dependencies (100%)
 rename {vm/app/catgirl => img/app}/etc/s6-rc/mdevd-coldplug/type (100%)
 rename {vm/app/catgirl => img/app}/etc/s6-rc/mdevd-coldplug/type.license (100%)
 rename {vm/app/catgirl => img/app}/etc/s6-rc/mdevd-coldplug/up (100%)
 rename {vm/app/catgirl => img/app}/etc/s6-rc/mdevd/notification-fd (100%)
 rename {vm/app/catgirl => img/app}/etc/s6-rc/mdevd/notification-fd.license (100%)
 rename {vm/app/catgirl => img/app}/etc/s6-rc/mdevd/run (100%)
 rename {vm/app/catgirl => img/app}/etc/s6-rc/mdevd/type (100%)
 rename {vm/app/catgirl => img/app}/etc/s6-rc/mdevd/type.license (100%)
 rename {vm/app/catgirl => img/app}/etc/s6-rc/ok-all/contents (100%)
 rename {vm/app/catgirl => img/app}/etc/s6-rc/ok-all/type (100%)
 rename {vm/app/catgirl => img/app}/etc/s6-rc/ok-all/type.license (100%)
 rename {vm/app/catgirl => img/app}/etc/ssl/certs/ca-certificates.crt (100%)
 rename {vm/app/lynx => img/app}/shell.nix (51%)
 rename {img => release}/combined/default.nix (100%)
 rename {img => release}/combined/eosimages.nix (100%)
 rename {img => release}/combined/grub.cfg.in (100%)
 rename {img => release}/combined/run-vm.nix (100%)
 rename {img => release}/installer/app/0001-gpt-disable-gpt-partition-attribute-55-check.patch (100%)
 rename {img => release}/installer/app/0002-gpt-disable-partition-table-CRC-check.patch (100%)
 rename {img => release}/installer/app/0003-install-remove-Endless-OS-ad.patch (100%)
 rename {img => release}/installer/app/0004-finished-don-t-run-eos-diagnostics.patch (100%)
 rename {img => release}/installer/app/0005-finished-promote-spectrum-not-the-Endless-forum.patch (100%)
 rename {img => release}/installer/app/default.nix (100%)
 rename {img => release}/installer/app/vendor-customer-support.ini (100%)
 rename {img => release}/installer/configuration.nix (100%)
 rename {img => release}/installer/default.nix (100%)
 rename {img => release}/installer/run-vm.nix (100%)
 rename {img => release}/installer/seat.rules (100%)
 rename {img => release}/live/Makefile (100%)
 rename {img => release}/live/default.nix (100%)
 rename {img => release}/live/shell.nix (100%)
 create mode 100644 vm-lib/make-vm.nix
 create mode 100644 vm/app/catgirl.nix
 delete mode 100644 vm/app/catgirl/Makefile
 delete mode 100644 vm/app/catgirl/default.nix
 delete mode 100644 vm/app/catgirl/etc/fstab
 delete mode 100755 vm/app/catgirl/etc/mdev/iface
 delete mode 100755 vm/app/catgirl/etc/s6-linux-init/scripts/rc.init
 delete mode 100755 vm/app/catgirl/etc/s6-rc/catgirl/run
 delete mode 100644 vm/app/catgirl/host/data/appvm-catgirl/providers/net/netvm
 delete mode 100644 vm/app/catgirl/shell.nix
 create mode 100644 vm/app/lynx.nix
 delete mode 120000 vm/app/lynx/bin
 delete mode 100644 vm/app/lynx/etc/fstab
 delete mode 100755 vm/app/lynx/etc/init
 delete mode 100644 vm/app/lynx/etc/mdev.conf
 delete mode 100644 vm/app/lynx/etc/passwd
 delete mode 100644 vm/app/lynx/etc/passwd.license
 delete mode 100644 vm/app/lynx/etc/resolv.conf
 delete mode 100644 vm/app/lynx/etc/s6-rc/lynx/type
 delete mode 100644 vm/app/lynx/etc/s6-rc/lynx/type.license
 delete mode 100644 vm/app/lynx/etc/s6-rc/mdevd-coldplug/dependencies
 delete mode 100644 vm/app/lynx/etc/s6-rc/mdevd-coldplug/type
 delete mode 100644 vm/app/lynx/etc/s6-rc/mdevd-coldplug/type.license
 delete mode 100644 vm/app/lynx/etc/s6-rc/mdevd-coldplug/up
 delete mode 100644 vm/app/lynx/etc/s6-rc/mdevd/notification-fd
 delete mode 100644 vm/app/lynx/etc/s6-rc/mdevd/notification-fd.license
 delete mode 100644 vm/app/lynx/etc/s6-rc/mdevd/run
 delete mode 100644 vm/app/lynx/etc/s6-rc/mdevd/type
 delete mode 100644 vm/app/lynx/etc/s6-rc/mdevd/type.license
 delete mode 100644 vm/app/lynx/etc/s6-rc/ok-all/contents
 delete mode 100644 vm/app/lynx/etc/s6-rc/ok-all/type
 delete mode 100644 vm/app/lynx/etc/s6-rc/ok-all/type.license
 delete mode 120000 vm/app/lynx/etc/ssl/certs/ca-certificates.crt
 delete mode 100644 vm/app/lynx/host/data/appvm-lynx/providers/net/netvm
 create mode 100644 vm/make-vm.nix


base-commit: 7a6d44e24ddcc9cba73deed25fb85038b7c3d823
-- 
2.37.1



^ permalink raw reply	[flat|nested] 47+ messages in thread

end of thread, other threads:[~2023-02-26 19:17 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-10 23:28 [PATCH 00/22] Implement managing VMs with Nix Alyssa Ross
2022-10-10 23:28 ` [PATCH 01/22] host/start-vm: use MAP_SHARED memory for VMs Alyssa Ross
2023-02-26 19:17   ` Alyssa Ross
2022-10-10 23:28 ` [PATCH 02/22] host/start-vm: implement shared directories Alyssa Ross
2023-02-26 19:17   ` Alyssa Ross
2022-10-10 23:28 ` [PATCH 03/22] host/rootfs: generate virtiofsd services Alyssa Ross
2023-02-26 19:17   ` Alyssa Ross
2022-10-10 23:28 ` [PATCH 04/22] Documentation: explain VM shared directories Alyssa Ross
2023-02-26 19:17   ` Alyssa Ross
2022-10-10 23:28 ` [PATCH 05/22] vm-lib/make-vm.nix: support " Alyssa Ross
2023-02-26 19:17   ` Alyssa Ross
2022-10-10 23:28 ` [PATCH 06/22] img/app: add support for testing virtiofs Alyssa Ross
2023-02-26 19:17   ` Alyssa Ross
2022-10-10 23:28 ` [PATCH 07/22] img/app: don't block app startup on network online Alyssa Ross
2023-02-26 19:17   ` Alyssa Ross
2022-10-10 23:28 ` [PATCH 08/22] img/app: auto-mount virtiofs0 filesystem Alyssa Ross
2023-02-26 19:17   ` Alyssa Ross
2022-10-10 23:28 ` [PATCH 09/22] vm/app/mg.nix: init Alyssa Ross
2023-02-26 19:17   ` Alyssa Ross
2022-10-10 23:28 ` [PATCH 10/22] vm/app/mg.nix: open virtio filesystem in dired Alyssa Ross
2023-02-26 19:17   ` Alyssa Ross
2022-10-10 23:28 ` [PATCH 11/22] host/rootfs: move ext mounting to s6-rc service Alyssa Ross
2022-11-14  1:14   ` Alyssa Ross
2022-10-10 23:28 ` [PATCH 12/22] host/rootfs: automatically grow user partition Alyssa Ross
2022-11-14  1:14   ` Alyssa Ross
2022-10-10 23:28 ` [PATCH 13/22] host/rootfs: use a bigger test ext partition Alyssa Ross
2022-11-14  1:14   ` Alyssa Ross
2022-10-10 23:28 ` [PATCH 14/22] host/initramfs/extfs.nix: tar2ext4 -> mkfs.ext4 -d Alyssa Ross
2022-11-14  1:14   ` Alyssa Ross
2022-10-10 23:28 ` [PATCH 15/22] host/start-vm: resolve VM symlinks with /ext root Alyssa Ross
2022-10-10 23:28 ` [PATCH 16/22] host/rootfs: " Alyssa Ross
2022-10-10 23:28 ` [PATCH 17/22] Documentation: explain /ext symlink resolution Alyssa Ross
2022-10-10 23:28 ` [PATCH 18/22] host/start-vm: increase memory size to 512M Alyssa Ross
2022-10-10 23:28 ` [PATCH 19/22] vm/app/nix: add Alyssa Ross
2022-10-10 23:29 ` [PATCH 20/22] vm-lib/make-vms.nix: add Alyssa Ross
2022-10-10 23:29 ` [PATCH 21/22] host/initramfs/extfs.nix: add example Nix-built VM Alyssa Ross
2022-10-10 23:29 ` [PATCH 22/22] Documentation: add how-to guide for Nix-built VMs Alyssa Ross
2022-10-10 23:29 ` [PATCH v2 0/6] Introduce a shared base for application VMs Alyssa Ross
2022-10-10 23:37   ` Alyssa Ross
2022-10-10 23:29 ` [PATCH v2 1/6] host/start-vm: support multiple block devices Alyssa Ross
2022-10-10 23:29 ` [PATCH v2 2/6] scripts/make-gpt.sh: add support for labels Alyssa Ross
2022-10-10 23:29 ` [PATCH v2 3/6] vm: build GPT images Alyssa Ross
2022-10-10 23:29 ` [PATCH v2 4/6] host/start-vm: boot using partition label Alyssa Ross
2022-10-10 23:29 ` [PATCH v2 5/6] release: rename from "img" Alyssa Ross
2022-10-10 23:29 ` [PATCH v2 6/6] img/app: extract from appvm-{lynx,catgirl} Alyssa Ross
  -- strict thread matches above, loose matches on Subject: below --
2022-10-09 11:40 [PATCH v2 0/6] Introduce a shared base for application VMs Alyssa Ross
2022-10-09 11:40 ` [PATCH v2 5/6] release: rename from "img" Alyssa Ross
2022-11-14  1:14   ` Alyssa Ross

Code repositories for project(s) associated with this public inbox

	https://spectrum-os.org/git/crosvm
	https://spectrum-os.org/git/doc
	https://spectrum-os.org/git/mktuntap
	https://spectrum-os.org/git/nixpkgs
	https://spectrum-os.org/git/spectrum
	https://spectrum-os.org/git/ucspi-vsock
	https://spectrum-os.org/git/www

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).