Improved README

This commit is contained in:
lukas 2024-01-01 17:31:31 +01:00
parent 51fc730133
commit a55363f801

View File

@ -4,7 +4,26 @@
This repository's goal is to maintain definitions that are tuned for running modern, GUI-driven guest operating systems (OS), easing their installation on hosts that leverage KVM, such as [Phyllome OS](https://phyllo.me/).
There are two kinds of definition for QEMU: **session-driven** virtual machines, and **system-driven** virtual machines. System-driven virtual machines are running with higher privileges. If one intend to share a physical device with a virtual machine using VFIO passthrough, this is the definition to use. More information [here](https://blog.wikichoon.com/2016/01/qemusystem-vs-qemusession.html).
[Libvirt](https://libvirt.org/) is the most popular virtualization library on Linux, and it is central to Phyllome OS.
Libvirt uses an XML file to store the definition of a virtual machine, including its firmware (e.g. BIOS or UEFI-based), the size of its memory, the nature of a particular device (e.g. virtio or emulated hardware), etc.
### Why
[The reference Domain XML format webpage](https://libvirt.org/formatdomain.html), which is almost 100 pages long, lists most of the accepted parameters that can be used to define a virtual machine.
Picking the most optimized parameters for running a particular guest OS is a complicated task. This project intends to find the best parameters for the most popular OS.
The best parameters are defined as parameters that are:
- Performance-oriented, providing good out-of-the-box performance.
- Relatively host-agnostic, so that a virtual machine could be migrated to another host.
- Modern, leveraging as many paravirtualized devices (a.k.a virtio devices) the target guest OS can support, with the intend to become usable with modern virtualization solution such as the Cloud Hypervisor.
There are two kinds of definition for QEMU: **session-driven** virtual machines, and **system-driven** virtual machines.
- **System-driven virtual machines** are running with higher privileges. If one intend to share a physical device with a virtual machine using VFIO passthrough, this is the definition to use. More information [here](https://blog.wikichoon.com/2016/01/qemusystem-vs-qemusession.html).
- **Session-driven virtual machines** are running with user-derived privileges.
## Usage
@ -18,6 +37,12 @@ It is expected that libvirt and other dependencies such as QEMU or the Cloud Hyp
### How to use it
* Create folder to store ISOs under `/var/lib/libvirt/`
```
# mkdir /var/lib/libvirt/isos
```
* Download `Netboot.xyz.iso` file
```
@ -96,25 +121,6 @@ Domain 'Linux5.4' has been undefined
More information [here](https://wiki.phyllo.me/e/en/virt/guest) on the status for virtio support on guest operating systems.
## Context
[Libvirt](https://libvirt.org/) is the most popular virtualization library on Linux, and it is central to Phyllome OS.
Libvirt uses an XML file to store the definition of a virtual machine, including its firmware (e.g. BIOS or UEFI-based), the size of its memory, the nature of a particular device (e.g. virtio or emulated hardware), etc.
### Why
[The reference Domain XML format webpage](https://libvirt.org/formatdomain.html), which is almost 100 pages long, lists most of the accepted parameters that can be used to define a virtual machine.
Picking the most optimized parameters for running a particular guest OS is a complicated task. This project intends to find the best parameters for the most popular OS.
### Assomptions
The best parameters are defined as parameters that are:
- Performance-oriented, providing good out-of-the-box performance.
- Relatively host-agnostic, so that a virtual machine could be migrated to another host.
- Modern, leveraging as many paravirtualized devices (a.k.a virtio devices) the target guest OS can support, with the intend to become usable with modern virtualization solution such as the Cloud Hypervisor.
## Resources
* Domain XML format for libvirt: https://libvirt.org/formatdomain.html