some minor updates

This commit is contained in:
2021-11-15 16:26:10 +01:00
parent 8da16486e8
commit 798fc7148b
8 changed files with 481 additions and 43 deletions

View File

@ -8,5 +8,124 @@ editor: markdown
dateCreated: 2021-11-12T15:31:13.657Z
---
# Header
Your content here
# []{#anchor-24}Phyllome OS
## []{#anchor-25}Context
### []{#anchor-26}Public clouds and open source software
Public clouds provide on-demand computing resources over the Internet.
The largest are called hyperscalers.
Almost all hyperscalers, at the notable exception of Microsoft Azure, ,
depend on open-source software[^19] to support their platform[^20]. Put
simply, without open-source software, they wouldn't exist, at least not
in their current form[^21].
In particular, the Linux operating system and its Kernel-based Virtual
Machine (KVM) module are two basic, essential, open-source building
blocks upon which these hyperscalers are built.
These providers also add their own custom software to the core engine
that propels their platform[^22]. Unfortunately, this custom software
remains for internal use only[^23].
Isn't there an equivalent to these custom building blocks available for
everyone to reuse ?
### []{#anchor-27}The rise of robust general-purpose hypervisors
Rust-vmm (or Rust-Virtual Machine Monitor) is an ongoing effort among
software and hardware companies, including some hyperscalers, to share
more of their codebase. Rust-vmm provides a platform to share reusable
virtualization-related code by means of Rust-crates[^24].
As of 2021, this project offers the closest open-source equivalent to
the aforementioned custom software used by hyperscalers.
At least three key projects using Linux and KVM are also taking
advantage of Rust-vmm :
- crosvm (2010 --)
- Crosvm means the Chrome OS Virtual Machine Monitor. It allows
the virtualization of guest systems on devices running Chrome OS
and Chromium OS, its open-source counterpart. It is the oldest
project of its kind, upon which others are built or forked.
- The ongoing Spectrum (2020) project is a promising attempt to
built a secure desktop OS around Chromium OS, crosvm and the Nix
declarative package management system.
- firecracker (2018 --)
- Originally built for desktop systems, crosvm has also been
reused as a foundation for firecracker, the serverless computing
platform which powers AWS Lambda. This is a story not unlike
that of KVM, which was originally built with desktop workloads
in mind but later gained traction as a solution for other
workloads.
- Cloud Hypervisor (2019 --)
- Cloud Hypervisor may be considered as the spiritual successor to
the now-defunct NEMU project. NEMU provided a stripped-down
version of QEMU [^25].
- Contrary to crosvm and projects that rely on it, it is possible
to run non-Linux virtual guest systems on Cloud Hypervisor,
provided that they support UEFI.
- As of today, there is no desktop-oriented operating system
intended to take advantage of Cloud Hypervisor.
----------------------------- -------- ------------- ------------------
crosvm firecracker Cloud Hypervisor
QEMU No No No
KVM Yes Yes Yes
Desktop-friendly Yes No No
Support for non-Unix guests No No Yes
----------------------------- -------- ------------- ------------------
Until recently, any attempt to create a local-first, free and
open-source operating system that could run atop affordable,
virtualization-friendly hardware[^26] using basic building blocks
similar to those used by major public clouds would rightfully be met
with skepticism.
Thanks to the rust-vmm umbrella project, assembling such an operating
system is now becoming a possibility.
## []{#anchor-28}Description
### []{#anchor-29}Phyllome OS
Phyllome OS intends to tap into some modern software- and
hardware-related innovations used in the cloud and make them available
to a wider audience locally: to bring some of the cloud back home, so to
speak, with a focus on performance and usability. As an operating
system, Phyllome OS makes it easier to run virtual machines locally
using off-the-shelf hardware : it is designed from the ground up to be
easy[^27]-and safe[^28]-to-use.
Technically speaking, Phyllome OS is an attempt to port the Cloud
Hypervisor to desktop systems[^29].
Conceptually, Phyllome OS can be thought of in several ways : as a
wrapper around operating systems that use a Graphical User Interface
(GUI), just as Docker is, among other things,a headless wrapper around
GUI-less containers ; as an abstraction between the hardware and the
operating system; as a local-first appliance or sandbox whose sole
purpose is to run general computing operating systems using
hardware-assisted virtualization, and hopefully run them well ; or as
just another attempt to bring Linux back to the desktop, albeit more
covertly this time.
As with popular existing operating systems, Phyllome OS is designed to
be installed on a single machine or host. Contrary to existing operating
systems, it abstracts the physical layer away, allowing diverse
operating systems to run concurrently on the same machine if the user so
desires.
### []{#anchor-30}The Phyllome OS Project
The Phyllome Project aims to build a community around open source
virtualization and to make the development of Phyllome OS sustainable.
The project relies on self-hosted open source software.

View File

@ -8,5 +8,70 @@ editor: markdown
dateCreated: 2021-11-12T15:31:30.659Z
---
# Header
Your content here
## []{#anchor-31}Purpose
Why would one prefers to use an operating system installed on virtual
hardware ?
Adding a layer of abstraction between the operating system and the
virtualization-friendly hardware allows for support of newer operating
systems, beyond what the physical hardware can support.
- By using Phyllome OS on Apple hardware that do not support the
latest iteration of macOS, one could create a virtual machine and
install the latest iteration of macOS anyway, further extending the
life of hardware.
- **Note:** Phyllome OS does not and will **not** support running
macOS on anything but Apple hardware, as it is -- sadly -- not
allowed by Apple.
- Windows 11 requires a Trusted Platform Module (TPM). By using a
virtual machine alongside a virtual TPM on unsupported hardware, one
could still run Windows 11. The passthrough of a real TPM may also
be supported.
### []{#anchor-32}Advantages
More generally, a software-based/backed computer, or simply a virtual
machine, has many advantages over a silicon-based computer :
- **Cost** : the cost of creating a virtual machine tends to zero
- **Flexibility** : a software-backed computer, alongside its
operating system, can be migrated to new physical hosts. In other
words, when a user acquires a new physical computer, the entire
computing environment may be copy/pasted to the new machine.
- **Compatibility** : contrary to silicon-based computers, which tend
to be optimized to work at most with only a handful operating
systems, a virtual machine can be designed to work with most
operating systems.
### []{#anchor-33}Limitations
Alas, it also comes with limitations, including but not limited to :
- Limited out-of-the box hardware support : hardware-assisted
virtualization is available on many computers but rarely activated
by default and not always correctly implemented. Users remain a the
mercy of good platform firmware and may have to explicitly activate
hardware-assisted virtualization in the BIOS/UEFI. Hardware
components are often not correctly isolated in IOMMU groups.
- Offering first-class support for only a handful of curated
computers might provide an answer, at the price of
compatibility.
- When it comes to IOMMU groups, a workaround[^30] might have to
be used for models that do not offer well-isolated IOMMU groups,
a workaround that has security implications.
- **Reliance on devices or controllers passthrough to cover edge cases
**: virtual hardware do not cover all features a user may expect to
have, including out of the box support for Bluetooth, wireless, or
sound adapters. For those cases, USB or PCI Passthrough might be
used.
- Again, offering first-class support for only a handful of
curated computers might provide an answer, at the price of
compatibility.
- New virtual hardware are expected, including paravirtualized
sound cards, which will improve the situation.

View File

@ -8,5 +8,93 @@ editor: markdown
dateCreated: 2021-11-13T11:55:14.298Z
---
# Header
Your content here
------------------------------------------- ----------------------- ------------------- ---------------------------------------------------- ----------------------------
Fedora 34 Phyllome OS alpha Phyllome OS beta Phyllome OS 1.0
Out-of-the box support for virtualization No Yes Yes Yes
Emulator/virtualizer QEMU QEMU QEMU, Cloud Hypervisor (does CH support vfio-pci?) Cloud Hypervisor
Virtual motherboard support i440fx / Q35 Q35 Q35, virt virt
Firmware OVMF, SeaBIOS OVMF OVMF OVMF
Hypervisor KVM KVM KVM KVM
Based on Itself Fedora Server Fedora Silverblue Fedora Silverblue
Desktop-oriented (GNOME-shell) Possible Yes, GNOME-shell Yes Yes
Package management RPM RPM RPM-ostree RPM-ostree
Rolling release No No Yes Yes
Live-edition No No No Yes
Local first Possible Yes Yes Yes
Default filesystem Btrfs Ext4 Ext4 F2FS
Host encryption Possible No Filesystem-level (fscrypt) Filesystem-level (fscrypt)
GPU support Intel, AMD and Nvidia Intel Intel and AMD Intel AMD and Nvidia
Target release date Released 2021 2022 2022
------------------------------------------- ----------------------- ------------------- ---------------------------------------------------- ----------------------------
### []{#anchor-48}Beyond the first production-ready release
Here are some features that may be added later :
- App store
- An application store for distributing prepackaged and
easy-to-deploy operating systems
- A new GUI application to manage virtual machines
- The virtual machine manager does more than what Phyllome OS
needs. It would make sense to rely on a leaner, more simple
software, similar to GNOME Boxes.
- Ideally, it would be written in Rust, just as the Cloud
Hypervisor
- Graphics
- Out-of-the box support for Single GPU passthrough
- Support for single GPU passthrough would make it easier to
run Phyllome OS on hardware that features a single graphics
card lacking support for vfio-mdev.
- Out-of-the box support for vfio-mdev on Nvidia, consumer grade
GPUs.
- A 2021 project[^53] is bringing vfio-mdev to Nvidia,
consumer grade GPUs. It would be great to support it and
offer Phyllome's users the ability to split their physical
GPUs.
- Out-of-the box support for SR/IOV on generation 11^th^ of Intel
graphics
- Streaming
- Making encoding and decoding a virtual machine desktop or
display more efficient would allow for more diverse uses,
including usable remote desktops.
- For that to happen, it would mean to support virtio-video.
- Another route would be to use WebRTC on Wayland.
- Support the Virtual I/O Device (VIRTIO) Version 1.2
- Version 1.2 of the VIRTIO specification will soon be released
with new virtual devices. Phyllome OS will need to support
these.
- Support platform-dependent confidential computing features
- On public clouds -- where many virtual machines are collocated
underneath the same hypervisor -- there are ongoing efforts to
make it possible to run workloads without having to blindly
trust the host system. Some of those efforts rely on
platform-specific technologies, such as Intel's SGX Secure
Enclave or and AMD's Secure Encrypted Virtualization (SEV). It
would be nice to be able to support these.
- First-class support for more open x86 hardware
- It would be great to optimize Phyllome OS to work on a recent,
more open x86 motherboard that supports both openBMC and
Coreboot[^54].
- Support beyond the x86 architecture
- Support for hardware based on ARM and RISC-V architectures would
be great.