Rewamped README

This commit is contained in:
luz 2025-04-22 16:03:14 -05:00
parent 8cfdc7547d
commit bd88c7ab0d

122
README.md
View File

@ -1,22 +1,116 @@
# Phyllome OS # Phyllome OS
Phyllome OS is a [Fedora Remix](https://fedoraproject.org/wiki/Remix) designed to leverage [hardware-assisted virtualization](https://wiki.phyllo.me/virt/lexicon#hardware-assisted-virtualization) and [paravirtualization](https://wiki.phyllo.me/virt/lexicon#paravirtualization) to make it easier to run modern guest operating systems locally. Phyllome OS is a [Fedora Remix](https://fedoraproject.org/wiki/Remix) designed to leverage [hardware-assisted virtualization](https://wiki.phyllo.me/virt/lexicon#hardware-assisted-virtualization) and [paravirtualization](https://wiki.phyllo.me/virt/lexicon#paravirtualization) to make it easier to run virtualized operating systems locally.
Phyllome OS uses the [automated kickstart installation](https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#chapter-1-introduction) method to deploy itself to a specific target. Phyllome OS uses the [automated kickstart installation](https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#chapter-1-introduction) method to deploy itself to a specific target computer or virtual machine.
This repository contains complete or partial kickstart files, [organized by folders](#the-content-of-this-repository), for Phyllome OS and also a handful of other operating systems artifacts.
> Phyllome OS is in its ***alpha*** stage of development. Expect bugs and disappointment > Phyllome OS is in its ***alpha*** stage of development. Expect bugs and disappointment
## The content of this repository ## The content of this repository
Each version of Phyllome OS is like a `dish` that is based on a `recipe` that lists `ingredients`, or basic building blocks for assembling Phyllome OS and other derivatives.
Each version of Phyllome OS is a `dish` that is based on a `recipe` that lists `ingredients`. * `ingredients`🥑 🥥 🥭 🥝 🥦 🥬 🥒 🧄: Each ingredient represents a feature or a set of integrated features, such as a specific Desktop Environment
* `ingredients`🥑 🥥 🥭 🥝 🥦 🥬 🥒 🧄...: this directory contains the basic building blocks, or ingredients, for assembling Phyllome OS and other derivatives. Example for the base storage ingredient used by Phyllome OS.
* Each ingredient represents a feature or a set of integrated features, such as a particular Desktop Environment.
* `recipes`🧾 🧩: this directory contains recipes, which are made of ingredients. `cat ingredients/base-storage.cfg`
* `dishes`🥨 🥐 🥖 🥧 🥞 🥯 🧆 🧁...: this directory contains the end-product in the form of stand-alone and ready-to-consume kickstart file, just like a ready to eat dish.
```
[...]
# What ? This kickstart file provides a basic ext4 unencrypted partition layout for UEFI-based systems
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi # Will create an EFI system partitition of 128 MiB (vda1)
part /boot --fstype="ext4" --size=512 --label=boot # Create a boot partition of 512 MiB using the ext4 filesystem (vda2)
part / --fstype="ext4" --grow --label=root # The remaining space will be used for root (vda3)
```
* `recipes`🧾 🧩: this directory contains recipes for deploying operating system artifacts on bare-metal, as a live system, or inside a virtual machine.
Let's take a look at the recipe to deploy Phyllome OS Desktop.
`cat recipes/desktop-hypervisor.cfg`
```
# What ? This kickstart file bootstraps a desktop hypervisor.
[...]
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
%include ../ingredients/base-storage.cfg # base storage
%include ../ingredients/base.cfg # A minimal machine
%include ../ingredients/base-desktop-gnome.cfg # A desktop environment based on GNOME Shell
%include ../ingredients/base-desktop-virtual-machine-manager.cfg # the virtual machine manager
%include ../ingredients/base-hypervisor.cfg # A base hypervisor
%include ../ingredients/base-initial-setup-gnome.cfg # Includes initial-setup for GNOME Shell, allowing for the creation of a user after the first boot, as well as some basic configuration
```
* `dishes`🥨 🥐 🥖 🥧 🥞 🥯 🧆 🧁...: the end-product in the form of stand-alone and ready-to-consume kickstart file
Let's take a look at the final Phyllome OS Desktop dish.
`cat dishes/desktop-hypervisor.cfg`
```
# Generated by pykickstart v3.58
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled --service=mdns
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
[...]
%end
%packages --exclude-weakdeps
@core
@hardware-support
NetworkManager-wifi
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-initial-setup
gnome-shell
gnome-terminal
guestfs-tools
libguestfs-tools
libusb
libvirt
libvirt-daemon-config-network
libvirt-daemon-kvm
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
pciutils
python3-libguestfs
qemu-kvm
usbutils
virt-install
virt-manager
virt-top
wget
wpa_supplicant
-fedora-logos
-fedora-release
-fedora-release-common
-fedora-release-identity-basic
-fedora-release-notes
-gnome-tour
%end
```
## Development ## Development
@ -41,7 +135,7 @@ $ nano ingredients/extra-luanti.cfg
``` ```
``` ```
# What ? This partial kickstart file provides the video game Minetest # What ? This partial kickstart file provides the video game Luanti
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies %packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies
@ -89,6 +183,12 @@ $ ksflatten -c virtual-desktop-lunanti.cfg -o ../dishes/virtual-desktop-luanti.c
> If any errors are detected, go back and fix them. > If any errors are detected, go back and fix them.
If multiple dishes are affected by your ingredients, flatten them all while in the `recipes` folder.
```
for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
```
* Navigate inside the `dishes` folder: * Navigate inside the `dishes` folder:
``` ```
@ -105,7 +205,7 @@ $ cd ../dishes/
--virt-type kvm \ --virt-type kvm \
--arch x86_64 \ --arch x86_64 \
--machine q35 \ --machine q35 \
--name virtual-desktop-minetest \ --name virtual-desktop-luanti \
--boot uefi \ --boot uefi \
--cpu host-model,topology.sockets=1,topology.cores=2,topology.threads=1 \ --cpu host-model,topology.sockets=1,topology.cores=2,topology.threads=1 \
--vcpus 2 \ --vcpus 2 \