Building And Utilizing Purpose-Built GNU/Linux Distribution
Mkosi is a software application from the Systemd suite that allows users to create purpose-built distribution images for bases like Fedora Linux, Debian Linux, Ubuntu Linux, Arch Linux, Red Hat Enterprise Linux, Rocky Linux, Alma Linux, Gentoo Linux and many more. These distribution images can then be booted across various system architectures like arm and aarch64, x86 and amd64, s390 and s390x, riscv32 and riscv64, ppc64 and ppc64le etc. as either installations on physical hardware, emulations with systemd-machined or virtualizations on a hypervisor.
Unlike popular distribution installation initialization and provisioning projects like Cloud-init and Ignition, Mkosi is simply a fancy wrapper around commands like
zypper that allows users to have a greater sense of control in the running services, installed packages, output formats, partition sizes, filesystem formats, default locales, original timezones etc. while using an easy-to-understand and semantically driven INI-styled marshalling format to configure the properties of a distribution image expected as an output from the building process.
Who is the target audience?
- Professional GNU/Linux release engineers striving to upskill about an alternative build tooling
- Hobbyist engineers trying to build custom GNU/Linux distribution images for embedded development
- Aficionado engineers attempting to use custom GNU/Linux distribution images for self-hosting projects
- Software developers venturing to perform build-test-deploy on disposable GNU/Linux distribution images
- Amateur beginners in the open-source world seeking to learn how GNU/Linux distributions are created
- Budding community members looking to contribute to the GNU/Linux distribution-related upstream projects
How does the target audience benefit?
- Professional GNU/Linux release engineers would be able to master an alternative build tooling
- Hobbyist engineers would be able to extend their choices of GNU/Linux bases for embedded development
- Aficionado engineers would be able to use minimally purpose-built images for self-hosting projects
- Software developers would be able to perform build-test-deploy across various system architectures
- Amateur beginners would be able to learn the building blocks that make a GNU/Linux distribution
- Budding community members would be able to have a bunch of upstream projects to contribute to
- Akashdeep Dhar
- Playing Around With Mkosi
- Systemd Mkosi - GitHub
- Building RHEL And RHEL UBI images With Mkosi
- Mkosi - Lennart Poettering's blog
- Mkosi - Arch Linux Wiki