This repository contains the basic building blocks required for deploying [Phyllome OS](https://phyllo.me/) bare-metal or in a virtual machine, using kickstart files.
> Note: External contributions for Phyllome OS itself are **not** yet accepted. However, the Phyllome OS Project is looking for **core contributors**. If you are interested about making cutting-edge open-source virtualization more accessible, please send an email to contact@phyllo.me.
### Structure of the repository
*`leaves` : this directory contains the basic buildings blocks for assembling Phyllome OS versions
* For instance, the Phyllome OS Desktop version optimized for Intel(tm) CPUs and Intel(tm) graphic cards, refered internally as `dhi`, can be found there (*d* for desktop; *h* for hypervisor; *i* for intel)
* Eventually, there will be three generic editions : **server**; **desktop** and **live**, with their own platform-dependant optimizations
*`flat` : this directory contains the end products in the form of stand-alone and ready-to-use kickstart files
## How to hack
Hacking kickstart files is the main way to assemble and configure Phyllome OS, which is RPM-based. Kickstart files are snippets of code which automate the installation of RPM-based Linux distributions.
Then, merge the kickstart leaves into a single file, a process known as flattening. Here, we take the Phyllome OS Desktop edition optimized for Intel(tm) CPUs and Intel(tm) graphic cards, also known as `dhi`, as an example :
```
ksflatten -c ../leaves/dhi.cfg -o flat-dhi.cfg
```
## Fire it up!
For testing and development purposes, Phyllome OS can be deployed inside a virtual machine, as a guest hypervisor.
> Note: it may eventually switch to container-based development.
> Note: the following script relies on a network-accessible kickstart file tuned for Intel CPUs and GPUs.
This script will automatically deploy the alpha version of Phyllome OS, on a Q35 virtual motherboard, a UEFI-based firmware, virtio-devices accross the board, 2 vCPUs, 4 GB of RAM and a disk of 5 GB.
Domain is still running. Installation may be in progress.
You can reconnect to the console to complete the installation process.
```
The process will be launched behind the scene. You can open `virt-manager` and connect to the virtual machine to follow the process. Eventually, you will be greated with this screen:
![greetings](./img/greetings.png)
After you are done setting your user account, `virt-manager` will automatically start:
![greetings](./img/desktop.png)
## Phyllome OS
Phyllome OS is a [Fedora Remix](https://fedoraproject.org/wiki/Remix) based on [Fedora Server 34](https://getfedora.org/en/server/) designed to leverage hardware-assisted virtualization and VirtIO-based paravirtualization to run modern UEFI-compatible guest operating systems locally.
The goal is to maximize ease-of-use and compatibility. As such, Phyllome OS intends to become the easiest way to virtualize modern operating systems, by integrating pertinent open-source software such as `libvirt`, `qemu-kvm` (and then the `Cloud Hypervisor`) and `virt-manager`.
A user should not have to manage Phyllome OS: it should be able to pick its favorite operating system and Phyllome OS should run it, no question asked.
Do you want to know more about Phyllome OS design and context ? If so, please have a look at [the white paper]().
> Note : at the exception of open-source [Darwin derivatives](https://en.wikipedia.org/wiki/Darwin_(operating_system)#Derived_projects), Phyllome OS **won't** offer support running macOS on non-Apple hardware.
### The Phyllome OS Project
The Phyllome OS Project relies on multiple tools, including the following front-facing tools:
* **The wiki**: Have a look at the [wiki repository](https://github.com/PhyllomeOS/wiki) for more information on how you can contribute to improve the documentation.
* **Issues tracker**: public, read-only issue tracking is [available online](https://kanboard.phyllo.me/b/CH7qd98J2v7egmodk/development)
* **The website**: the website repository is [available here](https://github.com/PhyllomeOS/www)