diff --git a/deploy/install.md b/deploy/install.md index 2bb5873..423abe0 100644 --- a/deploy/install.md +++ b/deploy/install.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-14T16:19:00.348Z --- -# Header -Your content here \ No newline at end of file +> Section under construction +{.is-warning} diff --git a/deploy/medium.md b/deploy/medium.md index ff6f5de..7a0a263 100644 --- a/deploy/medium.md +++ b/deploy/medium.md @@ -8,6 +8,9 @@ editor: markdown dateCreated: 2021-11-13T11:34:07.852Z --- +> Section under construction +{.is-warning} + # Create an installation medium > As of now, it is not yet possible to deploy Phyllome OS on a storage device using the official ISO file. In the meantime, please use a [Fedora Server ISO instead](https://getfedora.org/en/server/). diff --git a/deploy/prepare.md b/deploy/prepare.md index 0a754fb..f979b6c 100644 --- a/deploy/prepare.md +++ b/deploy/prepare.md @@ -8,5 +8,60 @@ editor: markdown dateCreated: 2021-11-15T15:39:49.074Z --- -# Header -Your content here \ No newline at end of file +> Section under construction +{.is-warning} + +# Prepare the host computer + +## Requirements + +These instructions are valid for x86-64 computers that do ship with Linux or Windows. + +Phyllome OS targets x86 systems with hardware-assisted virtualization, with a strong preference for those providing IOMMU as well. + +It is expected that Phyllome OS will consume approximately 1 CPU core and 1 GB of RAM, which should be enough to accommodate a few +virtual machines. For instance, on a system with a CPU with 4 cores and 8 GB of RAM, a guest virtual machine will be able to be assigned up to 3 cores and 7 GB of RAM. + +### Minimum requirements for Phyllome OS Desktop + +* x86 computer that supports the first generation of hardware-assisted virtualization extensions + * For AMD-based configurations, it means that AMD V is available and enabled + * For Intel-based configurations, it means that Intel VT-x is available and enabled +* 2-core processor +* 8 GB of RAM +* SSD-based storage device to store disk images and Phyllome OS +* Any graphics card (Linux or macOS guests only) + +### Recommended requirements for Phyllome OS Desktop + +* x86 computer that supports the second generation of hardware-assisted virtualization extensions + * For AMD-based configurations, it means that AMD Vi is available and enabled + * For Intel-based configurations, it means that Intel VT-d is available and enabled +* 8-core processor +* 16 GB of RAM +* NVME-based storage device to store disk images and Phyllome OS +* Two graphics cards or a graphics card that supports vfio-mdev or SR-IOV + +## Enable IOMMU + +### Access the firmware + +During the boot process, you need to press a certain key to access the firmware configuration tool for your motherboard, also known as BIOS or UEFI. + +The most common keystrokes are F2 or Del. + +Hardware manufacturers could not agree on a common keystroke to access the firmware configuration tool, so please have a look at the documentation provided by your hardware manufacturer. + +* **Windows-based computers** + +`to be done` + +### Modify the firmware configuration + +`to be done` + +### Make sure that hardware-assisted virtualization is enabled + +`to be done` + +--- \ No newline at end of file diff --git a/deploy/vm.md b/deploy/vm.md index a92c4cf..f70c04d 100644 --- a/deploy/vm.md +++ b/deploy/vm.md @@ -8,6 +8,9 @@ editor: markdown dateCreated: 2021-11-13T11:35:17.576Z --- +> Section under construction +{.is-warning} + # How to deploy Phyllome OS in a virtual machine `To-do` diff --git a/getstarted/disk.md b/getstarted/disk.md index 84dbf5d..1f257e4 100644 --- a/getstarted/disk.md +++ b/getstarted/disk.md @@ -8,6 +8,9 @@ editor: markdown dateCreated: 2021-11-13T11:37:31.498Z --- +> Section under construction +{.is-warning} + # How to use Phyllome OS daily > Phyllome OS is not yet production ready. Use it if you wish to contribute. @@ -20,11 +23,11 @@ As a result, using Phyllome OS means to put yourself in a situation where you do Concretely, to reach this state, and be able to use Phyllome OS daily without realizing that trully are living in a virtual world: * **Create a virtual machine** - * automatically using `virt-install` - * manually using `virt-manager` + * automatically, using `virt-install` + * manually, using `virt-manager` * **Install your favorite guest operating system** inside this virtual machine - * automatically using a kickstart file, for compatible guest systems - * manually, using the installer provided by your operating system editor + * automatically, using a kickstart file, for compatible guest systems + * manually, using the installer provided by the editor of your favorite operating system * **Learn how make the most out of it** As Phyllome OS evolves, one of the main goal is to shorten the time it would take for an end-user to have a fully operationnal virtual machine running with favorite operating system optimized virtual machine with their favorite operating system. diff --git a/getstarted/live.md b/getstarted/live.md index f93d9b0..7b99789 100644 --- a/getstarted/live.md +++ b/getstarted/live.md @@ -8,6 +8,9 @@ editor: markdown dateCreated: 2021-11-13T11:36:55.647Z --- +> Section under construction +{.is-warning} + # Phyllome OS as a live system > Phyllome OS is not production-ready, let alone ready to be used daily as a live system. diff --git a/gofurther/bsd.md b/gofurther/bsd.md index bf0311e..08a5a37 100644 --- a/gofurther/bsd.md +++ b/gofurther/bsd.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:51:05.436Z --- -# Header -Your content here \ No newline at end of file +> Section under construction +{.is-warning} diff --git a/gofurther/checks.md b/gofurther/checks.md index 293775a..0b51953 100644 --- a/gofurther/checks.md +++ b/gofurther/checks.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:39:13.790Z --- -# Header -Your content here \ No newline at end of file +> Section under construction +{.is-warning} diff --git a/gofurther/cloud-hypervisor.md b/gofurther/cloud-hypervisor.md index 8039696..9196d3a 100644 --- a/gofurther/cloud-hypervisor.md +++ b/gofurther/cloud-hypervisor.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:42:30.570Z --- -# Header -Your content here \ No newline at end of file +> Section under construction +{.is-warning} diff --git a/gofurther/darwin.md b/gofurther/darwin.md index 9c88faa..05c5a91 100644 --- a/gofurther/darwin.md +++ b/gofurther/darwin.md @@ -8,6 +8,9 @@ editor: markdown dateCreated: 2021-11-13T16:29:34.112Z --- +> Section under construction +{.is-warning} + # Darwin-based operating systems > Phyllome OS **strongly** discourages users from virtualizing proprietary, darwin-based operating systems on non-Apple hardware. The Phyllome OS Project will take any possible measures to shutdown threads that mention such setup on platforms it has control over. diff --git a/gofurther/encrypt.md b/gofurther/encrypt.md index a42c6b6..3c34375 100644 --- a/gofurther/encrypt.md +++ b/gofurther/encrypt.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:42:03.799Z --- -# Header -Your content here \ No newline at end of file +> Section under construction +{.is-warning} diff --git a/gofurther/fuchsia-os.md b/gofurther/fuchsia-os.md index f5fa4bf..3168390 100644 --- a/gofurther/fuchsia-os.md +++ b/gofurther/fuchsia-os.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:53:30.615Z --- -# Header -Your content here \ No newline at end of file +> Section under construction +{.is-warning} diff --git a/gofurther/inception.md b/gofurther/inception.md index 3964d6d..f4669b6 100644 --- a/gofurther/inception.md +++ b/gofurther/inception.md @@ -8,5 +8,7 @@ editor: markdown dateCreated: 2021-11-13T11:48:56.374Z --- +> Section under construction +{.is-warning} + # Deploy Phyllome OS inside Phyllome OS -Your content here \ No newline at end of file diff --git a/gofurther/install-guest.md b/gofurther/install-guest.md index 3186144..38c2082 100644 --- a/gofurther/install-guest.md +++ b/gofurther/install-guest.md @@ -8,6 +8,9 @@ editor: markdown dateCreated: 2021-11-13T11:43:58.697Z --- +> Section under construction +{.is-warning} + # Install a guest OS ## Forewords diff --git a/gofurther/linux.md b/gofurther/linux.md index 52a66d7..47ec31d 100644 --- a/gofurther/linux.md +++ b/gofurther/linux.md @@ -8,28 +8,28 @@ editor: markdown dateCreated: 2021-11-13T11:50:48.789Z --- -## Go further +> Section under construction +{.is-warning} -*This section is meant to introduce how to execute particular taks on Phyllome OS, including deployment of certain guest systems. Some of these tasks will be rendered obsolete with newer Phyllome OS versions.* +# Go further -### Tasks related to Phyllome OS +*The section is meant to introduce how to execute particular taks on Phyllome OS, including deploying certain guest systems. Some of these tasks will be rendered obsolete with newer Phyllome OS versions.* + +## Tasks related to Phyllome OS * [Perform a few checks](/gofurther/checks) on Phyllome OS * [Configure the Virtual Machine Manager](/gofurther/virt-manager) manually or automatically -* [Install a guest system using netboot.xyz](/gofurther/install-guest) -* [Use virt-install to install a guest system](/gofurther/virt-install) -* [Deploy Phyllome OS inside Phyllome OS](/gofurther/inception) +* [Manully install](/gofurther/install-guest) a Linux or Windows guest system using `netboot.xyz` +* [Automatically deploy](/gofurther/virt-install) a RPM-based guest system with `virt-install` +* [Inception](/gofurther/inception) or Phyllome OS inside Phyllome OS inside Phyllome OS * [Migrate](/gofurther/migrate) an existing guest virtual machine to another Phyllome OS host * [Resize](/gofurther/resize) an existing virtual disk * [Encrypt](/gofurther/encrypt) virtual disk images using filesystem-level encryption * [Use the Cloud Hypervisor](/gofurther/cloud-hypervisor) to create a virtual machine -### Tasks related to your guest OS +## Tasks related to your guest OS -*Although Phyllome OS strives to choose defaults that will work for many guest systems, further optimizations may be needed.* - -> By design, Phyllome OS only supports modern UEFI-based guests operating systems compatible with virtio devices and that haven't reached their end of life. -{.is-info} +*Although Phyllome OS thrives to pick good defaults that will work for many guest systems, further optimizations may be needed.* * Unix-like * [Linux family](/gofurther/linux) @@ -41,8 +41,5 @@ dateCreated: 2021-11-13T11:50:48.789Z * [ReactOS](/gofurther/reactos) * Independant * [Sculpt OS](/gofurther/sculpt-os) - * [Fuschia OS](/gofurther/fuschia-os) - -> It is possible to deploy non-UEFI compatible operating systems within these guest systems, using so-called nested virtualization. -{.is-info} + * [Fuchsia OS](/gofurther/fuchsia-os) diff --git a/gofurther/migrate.md b/gofurther/migrate.md index d5ed6a2..a7814ff 100644 --- a/gofurther/migrate.md +++ b/gofurther/migrate.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:42:58.575Z --- -# Header -Your content here \ No newline at end of file +> Section under construction +{.is-warning} diff --git a/gofurther/opensolaris.md b/gofurther/opensolaris.md index 16c52d1..52c7e97 100644 --- a/gofurther/opensolaris.md +++ b/gofurther/opensolaris.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:51:20.519Z --- -# Header -Your content here \ No newline at end of file +> Section under construction +{.is-warning} diff --git a/gofurther/reactos.md b/gofurther/reactos.md index 358c7b2..e8cf888 100644 --- a/gofurther/reactos.md +++ b/gofurther/reactos.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:52:33.257Z --- -# Header -Your content here \ No newline at end of file +> Section under construction +{.is-warning} diff --git a/gofurther/resize.md b/gofurther/resize.md index 9cedb4a..2c3bcba 100644 --- a/gofurther/resize.md +++ b/gofurther/resize.md @@ -8,6 +8,9 @@ editor: markdown dateCreated: 2021-11-13T11:41:29.087Z --- +> Section under construction +{.is-warning} + # Resize a disk ## Introduction diff --git a/gofurther/sculpt-os.md b/gofurther/sculpt-os.md index 992d30a..b990e72 100644 --- a/gofurther/sculpt-os.md +++ b/gofurther/sculpt-os.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:52:48.518Z --- -# Header -Your content here \ No newline at end of file +> Section under construction +{.is-warning} diff --git a/gofurther/virt-install.md b/gofurther/virt-install.md index 10cdd08..ebd2b1f 100644 --- a/gofurther/virt-install.md +++ b/gofurther/virt-install.md @@ -8,12 +8,11 @@ editor: markdown dateCreated: 2021-11-12T15:27:40.366Z --- +> Section under construction +{.is-warning} + # How to deploy common Linux systems -## Using virt-install - -# Virt-install and Fedora guests - ## Introduction *virt-install* is a command-line utility to install virtual machines. diff --git a/gofurther/virt-manager.md b/gofurther/virt-manager.md index 78ea4eb..79c7856 100644 --- a/gofurther/virt-manager.md +++ b/gofurther/virt-manager.md @@ -8,6 +8,9 @@ editor: markdown dateCreated: 2021-11-13T11:40:06.083Z --- +> Section under construction +{.is-warning} + # Configure the Virtual Machine Manager ## Forewords diff --git a/gofurther/windows.md b/gofurther/windows.md index 02c37dc..3a3a348 100644 --- a/gofurther/windows.md +++ b/gofurther/windows.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:52:19.245Z --- -# Header -Your content here \ No newline at end of file +> Section under construction +{.is-warning} \ No newline at end of file diff --git a/phyllomeos.md b/phyllomeos.md index 21955d6..f1bd783 100644 --- a/phyllomeos.md +++ b/phyllomeos.md @@ -8,5 +8,14 @@ editor: markdown dateCreated: 2021-11-12T15:32:17.900Z --- -# Header -Your content here \ No newline at end of file +# Phyllome OS + +*In this section, the context around Phyllome OS is explained and its internals are described* + +* [Context](/phyllomeos/context) +* [Purpose](/phyllomeos/purpose) +* [Use cases](/phyllomeos/use-cases) +* [Architecture](/phyllomeos/architecture) +* [FAQ](/phyllomeos/FAQ) +* [Guests](/phyllomeos/guests) +* [Software bill of materials](/phyllomeos/sbom) \ No newline at end of file diff --git a/phyllomeos/architecture.md b/phyllomeos/architecture.md index 1673322..e493f75 100644 --- a/phyllomeos/architecture.md +++ b/phyllomeos/architecture.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-12T15:31:49.655Z --- -# Header -Your content here \ No newline at end of file +> Section under construction +{.is-warning} \ No newline at end of file diff --git a/phyllomeos/context.md b/phyllomeos/context.md index 016d93b..c1cfc7c 100644 --- a/phyllomeos/context.md +++ b/phyllomeos/context.md @@ -8,73 +8,44 @@ editor: markdown dateCreated: 2021-11-12T15:31:13.657Z --- -# []{#anchor-24}Phyllome OS +> Section under construction. Sources are missing. +{.is-warning} -## []{#anchor-25}Context +## Context -### []{#anchor-26}Public clouds and open source software +### Public clouds and open source software -Public clouds provide on-demand computing resources over the Internet. -The largest are called hyperscalers. +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]. +Almost all hyperscalers, at the notable exception of Microsoft Azure,depend on open-source software to support their platform. Put +simply, without open-source software, they wouldn't exist, at least not in their current form. -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. +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]. +These providers also add their own custom software to the core engine that propels their platform. Unfortunately, this custom software +remains for internal use only. -Isn't there an equivalent to these custom building blocks available for -everyone to reuse ? +Isn't there an equivalent to these custom building blocks available for everyone to reuse ? -### []{#anchor-27}The rise of robust general-purpose hypervisors +#### 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]. +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. -As of 2021, this project offers the closest open-source equivalent to -the aforementioned custom software used by hyperscalers. +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 : +At least three key projects using Linux and KVM are also taking advantage of Rust-vmm : -- crosvm (2010 --) +* 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. - - 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. -- 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. +* 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. + * 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 @@ -84,48 +55,26 @@ advantage of Rust-vmm : 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 +Until recently, any attempt to create a local-first, free and open-source operating system that could run atop affordable,virtualization-friendly hardware 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. +Thanks to the rust-vmm umbrella project, assembling such an operating system is now becoming a possibility. -## []{#anchor-28}Description +## Description -### []{#anchor-29}Phyllome OS +### 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. +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-and safe-to-use. -Technically speaking, Phyllome OS is an attempt to port the Cloud -Hypervisor to desktop systems[^29]. +Technically speaking, Phyllome OS is an attempt to port the Cloud Hypervisor to desktop systems. -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. +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. +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 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. \ No newline at end of file +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. \ No newline at end of file diff --git a/phyllomeos/faq.md b/phyllomeos/faq.md index 712a62b..3bb2596 100644 --- a/phyllomeos/faq.md +++ b/phyllomeos/faq.md @@ -8,7 +8,6 @@ editor: markdown dateCreated: 2021-11-12T15:33:09.361Z --- - ### Can you explain the whole project and its expected outcome(s) ? Traditionally, operating systems (OS) installed directly on physical hardware have unfiltered access to the underling system hardware, which they trust by default. In contrast, when deployed inside virtual machines, this access can be mediated at the hypervisor/host level, enhancing the security of the overall system by allowing the user to distrust parts of the hardware stack, a vision that is implemented thorougly by the [QubesOS](https://www.qubes-os.org/), which Phyllome OS draws inspiration from. diff --git a/phyllomeos/guests.md b/phyllomeos/guests.md index 9c8fa08..710974e 100644 --- a/phyllomeos/guests.md +++ b/phyllomeos/guests.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:55:41.102Z --- -# Header -Your content here \ No newline at end of file +> Section under construction. Sources are missing. +{.is-warning} diff --git a/phyllomeos/purpose.md b/phyllomeos/purpose.md index b086e67..a3e4798 100644 --- a/phyllomeos/purpose.md +++ b/phyllomeos/purpose.md @@ -8,70 +8,34 @@ editor: markdown dateCreated: 2021-11-12T15:31:30.659Z --- -## []{#anchor-31}Purpose +## Purpose -Why would one prefers to use an operating system installed on virtual -hardware ? +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. +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. +* 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. - - **Note:** Phyllome OS does not and will **not** support running - macOS on anything but Apple hardware, as it is -- sadly -- not - allowed by Apple. +### Advantages -- 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. +More generally, a software-based/backed computer, or simply a virtual machine, has many advantages over a silicon-based computer : -### []{#anchor-32}Advantages +* **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. -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 +### 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. +* 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 might have to be used for models that do not offer well-isolated IOMMU groups, a workaround that has security implications. - - 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. +* 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. diff --git a/phyllomeos/roadmap.md b/phyllomeos/roadmap.md index 9da4b70..120e75f 100644 --- a/phyllomeos/roadmap.md +++ b/phyllomeos/roadmap.md @@ -8,6 +8,24 @@ editor: markdown dateCreated: 2021-11-13T11:55:14.298Z --- +> Section under construction. Tables is broken. Would have to fix it. +{.is-warning} + +Take this table as an example: + +| Description | vfio-pci | vfio-mdev | vfio-gpu | +|---|---|---|---| +| *Performance* | Near-native performance and full features set | Near-native performance and full features set | Degraded performance and limited features set | +| *Guests support* | UNIX and non-UNIX guests | UNIX and non-UNIX guests | Works only on selected UNIX guests | +| *Driver* | No special driver in the guest | No special driver in the guest | Requires a special driver in the guest | +| *Number of host GPUs* | Two GPUs in most situations | A single GPU | A single GPU | +| *GPU support* | Mostly GPU agnostic | Recent Intel integrated GPUs and some professional grade Nvidia GPUs | Mostly GPU agnostic | + +# Roadmap + + + + ------------------------------------------- ----------------------- ------------------- ---------------------------------------------------- ---------------------------- Fedora 34 Phyllome OS alpha Phyllome OS beta Phyllome OS 1.0 Out-of-the box support for virtualization No Yes Yes Yes @@ -27,74 +45,35 @@ dateCreated: 2021-11-13T11:55:14.298Z Target release date Released 2021 2022 2022 ------------------------------------------- ----------------------- ------------------- ---------------------------------------------------- ---------------------------- -### []{#anchor-48}Beyond the first production-ready release +### 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 +* **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 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 +* **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. \ No newline at end of file +* **Support beyond the x86 architecture** + * Support for hardware based on ARM and RISC-V architectures would be great. \ No newline at end of file diff --git a/phyllomeos/sbom.md b/phyllomeos/sbom.md index 9e1ec9f..fc3ffbe 100644 --- a/phyllomeos/sbom.md +++ b/phyllomeos/sbom.md @@ -8,6 +8,9 @@ editor: markdown dateCreated: 2021-11-12T15:32:04.404Z --- +> Section under construction. +{.is-warning} + # List of software The basic idea is to list software Phyllome OS relies on to function. diff --git a/phyllomeos/use-cases.md b/phyllomeos/use-cases.md index 8d59f20..5efcbf8 100644 --- a/phyllomeos/use-cases.md +++ b/phyllomeos/use-cases.md @@ -8,7 +8,8 @@ editor: markdown dateCreated: 2021-11-11T19:07:41.722Z --- -# Use cases -Your content here +> Section under construction. Sources are missing. +{.is-warning} + For example, a virtual display in a virtual machine can be set to a resolution that exceeds what the underling physical display is capable of, and such a virtual display may be accessible remotely, over the network. \ No newline at end of file diff --git a/project.md b/project.md index 77ac46b..f9efd8b 100644 --- a/project.md +++ b/project.md @@ -8,5 +8,9 @@ editor: markdown dateCreated: 2021-11-13T12:49:36.667Z --- -# Header -Your content here \ No newline at end of file +## The Phyllome OS Project + +### Contribute + +* [How to join](/project/join) +* [Current infrastructure](/project/infrastructure) \ No newline at end of file diff --git a/virt/chipset.md b/virt/chipset.md index 55788c8..0599c82 100644 --- a/virt/chipset.md +++ b/virt/chipset.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:56:47.463Z --- -# Header -Your content here \ No newline at end of file +> Section under construction. +{.is-warning} \ No newline at end of file diff --git a/virt/cpu.md b/virt/cpu.md index 45b0d4f..fe12c51 100644 --- a/virt/cpu.md +++ b/virt/cpu.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:57:14.719Z --- -# Header -Your content here \ No newline at end of file +> Section under construction. +{.is-warning} \ No newline at end of file diff --git a/virt/display.md b/virt/display.md index 52f3289..eefba98 100644 --- a/virt/display.md +++ b/virt/display.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:57:44.255Z --- -# Header -Your content here \ No newline at end of file +> Section under construction. +{.is-warning} \ No newline at end of file diff --git a/virt/firmware.md b/virt/firmware.md index 735e6f9..4801c5c 100644 --- a/virt/firmware.md +++ b/virt/firmware.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:57:02.153Z --- -# Header -Your content here \ No newline at end of file +> Section under construction. +{.is-warning} \ No newline at end of file diff --git a/virt/graphics-card.md b/virt/graphics-card.md index 1e10e01..7428827 100644 --- a/virt/graphics-card.md +++ b/virt/graphics-card.md @@ -8,6 +8,9 @@ editor: markdown dateCreated: 2021-11-13T17:52:22.554Z --- +> Section under construction. +{.is-warning} + # Graphics cards Phyllome leverages 3D acceleration within guest operating systems extensively, in three different modes depending on the situation. diff --git a/virt/kernel-modules.md b/virt/kernel-modules.md index 2a309cd..727d403 100644 --- a/virt/kernel-modules.md +++ b/virt/kernel-modules.md @@ -8,6 +8,9 @@ editor: markdown dateCreated: 2021-11-13T11:58:03.276Z --- +> Section under construction. +{.is-warning} + # List of kernel modules found on a hypervisor This list is only concerned about kernel modules that relates to virtualization. Their description is fetched using the `modinfo` command. diff --git a/virt/lexicon.md b/virt/lexicon.md index b147227..ed333b8 100644 --- a/virt/lexicon.md +++ b/virt/lexicon.md @@ -8,9 +8,12 @@ editor: markdown dateCreated: 2021-11-13T11:58:43.776Z --- -# Terms related to virtualization +> Section under construction. +{.is-warning} -### []{#anchor-8}Emulator +## Terms related to virtualization + +### Emulator Emulators or virtualizers are software that provide material components similar to physical hardware, but that are made of computer code instead @@ -20,7 +23,7 @@ QEMU[^6] is a popular emulator that can act as a simulator or virtual machine monitor. In the latter case, it can leverage hardware acceleration, -### []{#anchor-9}Hardware-assisted virtualization +### Hardware-assisted virtualization Hardware-assisted virtualization is a feature of certain computer hardware made to take advantage of virtualization. @@ -31,12 +34,12 @@ In other words, hardware-assisted virtualization translates into better performance for virtualized workloads, significantly reducing the gap in performance between a virtual machine and a physical one. -### []{#anchor-10}Nested-virtualization +### Nested-virtualization Nested-virtualization refers to the ability to run a virtual machine inside another virtual machine. -### []{#anchor-11}Virtualization +### Virtualization Most computers are made of hardware and software. By analogy, the brain that animates the cells to control a body can be thought as the @@ -65,7 +68,7 @@ better use of resources through consolidation. For instance, with virtualization, multiple operating systems can run concurrently on a physical machine. -### []{#anchor-12}Hypervisor +### Hypervisor A hypervisor is an operating system or firmware that is designed to run guest systems: it handles scheduling, execution of hyper privileged @@ -86,7 +89,7 @@ able to leverage hardware-assisted virtualization: - Xen (2003)[^7]. - Kernel-based Virtual Machine (KVM) module for Linux (2007)[^8]. -### []{#anchor-13}Device +### Device Devices are computer components that can be attached to machines. They can be classified in two ways : physical or emulated. @@ -138,7 +141,7 @@ can be classified in two ways : physical or emulated. generic piece of software-based hardware which doesn't replicate a specific hardware component. -### []{#anchor-14}Paravirtualization +### Paravirtualization Paravirtualization refers to the emulation practice of letting an operating system running in a virtualized environment know that it is @@ -151,7 +154,7 @@ devices). Such devices can communicate directly with the host, instead of emulating every single command of an IDE, SATA, SCSI or NVMe device, as it is the case for model-based emulation. -### []{#anchor-15}Virtual machine +### Virtual machine A virtual machine is a recreation of a real, physical, silicon-based computer using software. It performs almost exactly as a physical diff --git a/virt/memory.md b/virt/memory.md index 53d8e65..ca4504e 100644 --- a/virt/memory.md +++ b/virt/memory.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:57:28.330Z --- -# Header -Your content here \ No newline at end of file +> Section under construction. +{.is-warning} \ No newline at end of file diff --git a/virt/resources.md b/virt/resources.md index 68cc1bc..cf3588a 100644 --- a/virt/resources.md +++ b/virt/resources.md @@ -8,6 +8,9 @@ editor: markdown dateCreated: 2021-11-13T11:58:55.464Z --- +> Section under construction. +{.is-warning} + # Curated external resources ## Hypervisors diff --git a/virt/storage.md b/virt/storage.md index 3dff601..78b67bd 100644 --- a/virt/storage.md +++ b/virt/storage.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T12:50:00.168Z --- -# Header -Your content here \ No newline at end of file +> Section under construction. +{.is-warning} \ No newline at end of file diff --git a/virt/vm.md b/virt/vm.md index b716401..9eff58f 100644 --- a/virt/vm.md +++ b/virt/vm.md @@ -8,5 +8,5 @@ editor: markdown dateCreated: 2021-11-13T11:56:31.018Z --- -# Header -Your content here \ No newline at end of file +> Section under construction. +{.is-warning} \ No newline at end of file diff --git a/virt/xml.md b/virt/xml.md index d9affda..8a0ccf6 100644 --- a/virt/xml.md +++ b/virt/xml.md @@ -8,6 +8,8 @@ editor: markdown dateCreated: 2021-11-13T11:58:34.005Z --- +> Section under construction. +{.is-warning} # Anatomy of a XML file