Skip to main content

OADC 2026 - Abstract

· 2 min read

Title​

Uncle Charlie’s Adventures, a Mastiff Friend, and a Little Squirrel: Software Evolution, System Reproduction, and Operating Systems from x86 to ARM64 and RISC-V

Abstract​

When Charles Darwin introduced the theory of evolution, Thomas Huxley acted as his "mastiff," fiercely defending the grand theory in public arenas. Yet in nature—as in open-source software—evolution does not proceed solely through monumental battles; it thrives on the patient, adaptive work of "squirrels" that gather seeds, adjust to changing climates, and ensure species survival across new niches.

Drawing from over four decades of hands-on computing—from the "Cambrian explosion" of 1980s microcomputers that followed the extinction of mainframe dinosaurs, through early Ethernet wiring, Clipper databases, and Proxmox virtualization, up to the modern AI era—this talk presents the architectural and philosophical journey of penguins-eggs.

Rather than treating operating systems as static monuments or resorting to hard forks, penguins-eggs views Linux as a living organism that needs a native reproductive capability: the power to encapsulate a running, user-tested environment into an "egg" ready to hatch and adapt elsewhere.

In this session, we will walk through:​

From Node.js to Native Speed with AI: How a decade of remastering logic—originally written in Node.js to unify Debian, Arch, Fedora, Alpine, and openSUSE—was refactored by its author in just one month with the help of modern AI into a fast, lightweight native codebase (v26.7.x), alongside the new penguins-gui and why AI makes the CLI more accessible than ever.

The RISC-V Frontier on SpacemiT K1: A candid look at porting penguins-eggs to Bianbu OS on a real Musebook K1. Why standard x86 El Torito live ISOs fail on current RISC-V boot architectures (U-Boot/bootinfo), and how the "squirrel's victory" was adapting the toolchain to generate bootable raw/GPT live images on bare-metal RISC-V and ARM64.

Taming ISO Gigantism with openKylin: Overcoming the friction of testing 6 GB desktop images by leveraging openKylin Server as a lean foundation, reconciling Debian differences, and building custom, installable Xfce4 live derivatives in a matter of days.

The Evolutionary Ecosystem (eggs, naked, chef, gui): Separating the clean minimal base (naked), the generative seed of declarative recipes (chef), and the visual interface (gui) under an open MIT license—scattering seeds across distributions so users and developers never have to rebuild their digital home from scratch.

OADC 2026 - Le avventure di zio Charlie, un mastino per amico ed un piccolo scoiattolo

· 14 min read
Piero Proietti
penguins-eggs author
Deutsch  •  English  •  Español  •  Français  •  Italiano  •  Polska  •  Portuguese  •  Български  •  Русский  •  Українська  •  やまと  •  中国  •  فارsi

Thomas Henry Huxley era noto a tutti come "il mastino di Darwin". Quando Charles Darwin diede alle stampe l'opera che avrebbe cambiato per sempre il nostro modo di guardare alla vita e alla storia naturale, fu Huxley a scendere nell'arena, a mordere le caviglie dell'ortodossia scientifica e teologica vittoriana, a difendere quell'idea rivoluzionaria con l'ardore e l'intransigenza di chi non teme il conflitto.

Darwin meditava nella quiete di Down House; Huxley combatteva le battaglie pubbliche sul campo.

E hanno fatto la Storia, perché poi non è mai solo uno a farla.


La quiete ed il chiasso del mondo​

Trovarmi qua, in questo contesto — la 2026 OpenAtom Developer Conference di Zhengzhou — mi intimidisce, ma mi dà la responsabilità delle mie idee di "scoiattolo" del software, cresciuto durante e dopo l'esplosione dei microprocessori e degli home computer degli anni Ottanta. Quasi l'equivalente informatico di una nuova esplosione cambriana: la radiazione adattativa di noi piccoli mammiferi all'indomani della scomparsa dei grandi dinosauri (i mainframe).

Le ho viste tutte o quasi: il mio primo "cervello elettronico" — il mio gioiello Sinclair ZX81 con 1 KB di RAM, al cui manuale si deve quasi interamente il mio pessimo inglese — sino all'arrivo dei PC negli uffici e al loro collegamento con le prime reti, fino allo stato attuale.

Il mio lavoro è stato per anni definito "computeraio", ovvero operaio del computer. Non c'era un termine ufficiale: si faceva di tutto, anche lo scavo per far passare il cavo coassiale BNC dell'epoca tra diversi edifici, per non parlare dei buchi sui floppy da 720 KB per trasformarli a 1.44 MB fatti col trapano a colonna dell'officina fabbri.

Per anni ho creato e mantenuto gestionali in DOS con Clipper 5, sino a gestire tutta la nostra modesta organizzazione di circa 300 persone: dalla gestione del personale ai progetti e ai cantieri. La 3Com era nata in America, ma non aveva ancora una sede in Italia, ed intorno al '95 — in un ufficio ancora chiuso al pubblico — con l'unico impiegato presente tracciammo le linee per creare una rete moderna con gli switch ed i doppini telefonici. La rete venne poi realizzata nel 1997. Nel 2000 si ruppe il nostro sistema, un RMS Datapoint; successe esattamente il 29 febbraio: non ci fu nulla da fare e della ditta originale, passata ad altro, nessuno sapeva più metterci mano.

La rete Ethernet però era pronta. Avevo scritto un software che dai file EBCDIC estraeva i dati in ASCII e quindi li convertiva in DBF; lo facevo girare ogni giorno perché era l'unico modo per avere dei report in tempi accettabili.

Quello salvò noi scoiattoli: non perdemmo alcun dato!

Avevamo pure collegato i file in formato DBF ad un engine di esportazione verso Microsoft SQL Server e questo ci diede un ulteriore vantaggio: non avremmo più usato un semplice file server, ma un server di database relazionale.

Riscrivere tutto fu un lavoro pesante. Un giorno con un pugno ammaccai persino l'armadio di ferro del nostro centro di calcolo, ma — colmo dell'ironia, dato che il primo aprile in Italia si fanno gli scherzi — giusto in quel giorno riuscimmo a far ripartire tutto: circa 120 postazioni di lavoro.

Le sessioni di debug e correzione continuarono sino all'autunno inoltrato, ma avevamo scavalcato il fosso.

Google era agli albori. Io avevo già preso ad amare Linux e mi piaceva terribilmente Knoppix di Klaus Knopper: potevi farti la tua versione, installarlo, modificarlo. Era magico rispetto alle installazioni rigide e tediose di Windows!

Gli anni però passano e le cose si evolvono. Presi interesse per i motori di ricerca e Nutch, poi arrivò Facebook, ma soprattutto ho ancora il nitido ricordo del beep beep di ICQ: la messaggistica istantanea che dilagò a quei tempi.

Internet era diversa: si era a tutti gli effetti un'élite.

E le cose cominciarono a cambiare. Gli stessi venditori che prima proponevano soluzioni chiuse, ora proponevano soluzioni su PC standard dicendo "noi della...", rifilandoti però sempre la stessa minestra.

Erano nati JavaScript e PHP; la risposta proprietaria fu VBScript ed ASP: sappiamo tutti com'è andata a finire.

Cominciai a sostituire parte del lavoro dei server con Debian, in particolare con Proxmox v0.7, che andava già come un treno. Usando PHP e JavaScript si andava veloci e si facevano cose egregie: è di quegli anni la tecnologia AJAX, con la quale, costruendo un breve middleware, riuscivo a trasmettere pure i recordset di SQL Server dentro la nostra intranet, evitando i problemi di configurazione delle porte.

Ad un certo punto però le porte si chiusero: si presero gli switch e vollero centralizzare il tutto. Si delegò la gestione informatica all'esterno e si puntò su ASP o, quando andava di lusso, su Java. Intanto nel mondo Mark Zuckerberg diventava famoso e notavi che Facebook, era allora interamente basata su PHP e derivati. Gli ultimi due o tre anni prima di decidere per il congedo, per aprire le porte ad una presa di rete dovevo dettare il MAC address al telefono ai colleghi del supporto, persino per avviare il boot remoto e ripristinare un sistema su una rete che avevo progettato io stesso.

Non tutti gli animali abitano l'ecosistema allo stesso modo. C'è chi ha la tempra del mastino: fiero, guardiano, pronto al corpo a corpo concettuale per difendere un principio universale.

La natura di noi scoiattoli ed — ahimè — anche l'età mi fecero invece allontanare dal bosco per l'ampia radura del pensionamento. Però non volevo appendere la tastiera al chiodo, ma, come dire: non si fa informatica in astratto, servono gli utenti.


Il bipedismo​

Stare nella radura richiede di dover scrutare i pericoli. Ero ancora abbastanza in forze, provai a buttarmi su qualcosa da fare. Cincischiai un po', poi mi venne l'idea di riprendere il discorso interrotto con il boot remoto. Ormai utilizzavo Linux da anni, sia al lavoro che a casa. Ottimizzai il tutto installando direttamente Proxmox sul mio computer domestico e aggiungendovi un desktop manager, con la possibilità di far girare 2 o 3 VM in contemporanea. Non era una fuoriserie o, meglio: dieci anni fa lo era per essere un computer di casa; oggi un i7-6700 @ 3.40GHz con 8 thread e 16 GB di RAM fa sorridere, ma tant'è, è ancora la mia macchina da lavoro.

Mi ero già divertito per anni con remastersys e systemback fino a quando non furono dismessi e smisero di funzionare. Capita la lezione, decisi di provarci da solo. Mi studiai a fondo remastersys, systemback e refracta-snapshot (che poi ho scoperto dall'autore di MX-snapshot, AdrianTM, derivare dal suo lavoro).

Refracta aveva il vantaggio di essere comprensibile per me, era scritto in bash e ed ampiamente commentato. Bash però era ed è croce e delizia, un po' di JavaScript lo conoscevo, all'epoca sembrava modernissimo, e scrissi la prima versione di penguins-eggs usando Node.js e i pacchetti npm, perché l'idea originaria era renderlo il più possibile universale e indipendente dalla singola distro.

Iniziai da Debian, che conoscevo meglio; dopo un anno lo portai su Arch/Manjaro — grazie anche alla fondamentale collaborazione di Stefano Capitani di Manjaro — e una volta fatte due o tre distribuzioni diverse venne "semplice" continuare con Alpine, Fedora e OpenSUSE, fino a capire che il progetto stava diventando troppo grosso per uno sviluppatore singolo, anzi: per un pensionato.

Nel frattempo è arrivata quella per cui molti di voi oggi sono riuniti qui: l'Intelligenza Artificiale. Quella vera, quella che con l'architettura transformer e l'immane lavoro successivo è diventata finalmente pratica. Non come ai tempi in cui diedi l'esame di AI con il mitico e caro professor Eliano Pessa, quando si lavorava senza hardware né modelli maturi sulle prime reti neurali ricorrenti (RNN), che promettevano molto ma mi apparivano lontane da ogni utilità pratica.

Così, non avendo evidentemente niente di meglio da fare il primo di quest'anno, scrissi a SpacemiT con l'idea di portare penguins-eggs sotto RISC-V: in fondo BianbuOS è pur sempre una Debian. Con mia grossa sorpresa, il 2 febbraio mi è stato recapitato un MuseBook K1 nuovo di zecca con processore SpacemiT K1 (non un fulmine di guerra, ma infinitamente meglio e più concreto dell'emulazione software di riscv64).

Il 4 marzo ho avvisato gli sviluppatori di SpacemiT che ce l'avevo fatta: penguins-eggs funzionava su Bianbu e poteva creare un'immagine live del sistema installato.

Non ho potuto creare una classica ISO live x86, perché il K1 (come molte board RISC-V attuali) non fa il boot dallo standard El Torito tramite un BIOS/UEFI convenzionale, ma richiede immagini disco raw/GPT su scheda SD/eMMC con partizioni bootinfo o U-Boot specifici. Sapevo che non aveva ancora un'utilità commerciale immediata, ma la vittoria dello scoiattolo è stata proprio adattare il meccanismo per generare un'immagine live avviabile su quell'hardware ostico.

Non potevo spingermi oltre senza un chip più potente come il K3, ma doveva ancora uscire. Così, verso fine marzo, ho preso il coraggio a due mani. Mi sono detto: prima che qualcun altro analizzi il mio codice con un modello linguistico per riscriverlo, è meglio che ci provi io stesso.

Mi diedi del tempo, ma compresi subito — in una settimana — che la strada era buona: un software frutto di quasi un decennio di stratificazioni in Node.js è stato riscritto dal suo stesso autore in circa un mese, trasformato in Go, in codice nativo, snello e veloce.

La prima versione riscritta con tag v9.6.2 è arrivata l'11 aprile; dal 18 luglio siamo passati alla serie v26.7.x, considerata stabile. Il porting definitivo a RISC-V sul nuovo codice nativo è ancora in fase di rifinitura, ma sono qui in Cina a parlarne, e qualcuno dalla Cina stessa usa già eggs per rimasterizzare sia su x86 che su architettura ARM64.

Non solo: l'appetito vien mangiando, come diciamo in Italia.

Avevo più volte accarezzato l'idea di una GUI che facesse solo l'interfaccia, lasciando al tool CLI i compiti di basso livello. Da poco ho rilasciato penguins-gui, che permette di comandare penguins-eggs e penguins-chef direttamente da ambiente grafico.

Voglio sottolineare però che l'interfaccia grafica è solo un'opzione, e probabilmente non la migliore in molti contesti: con l'avvento dei modelli generativi, la riga di comando è diventata accessibile anche ai comuni mortali che non sono abituati a tenere a mente dozzine di parametri come una seconda lingua, come scoiattoli selvaggi e magari più giovani!


La mia avventura con le distribuzioni cinesi​

Ero affascinato dall'eleganza di Deepin e già con la versione Node.js di eggs l'avevo rimasterizzata più volte; poi ho scoperto anche openKylin.

Entrambe, per chi fa il mio mestiere, soffrono di gigantismo: sviluppare un software di rimasterizzazione richiede decine di prove consecutive, e testare continuamente su immagini da 6 GB non è una passeggiata.

Inoltre entrambe mano a mano si modificavano, passando da una compatibilità totale con Debian all'adozione di meccanismi propri. Per riprovarci con la nuova versione di penguins-eggs in Go, ho notato la disponibilità della versione server minimale di openKylin.

Ebbene, non c'è voluto molto: le uniche sfide erano le piccole divergenze rispetto a una Debian standard, ma fatte un po' di prove e sessioni con l'AI sono riuscito a creare immagini funzionanti e installabili. Ho replicato la versione server ridenominandola naked, ho creato una variante personalizzata con desktop Xfce4 grazie al supporto di openKylin per questo ambiente - il mio colibri - e, a questo punto, ho pensato di contattare direttamente il loro team.

Ed eccomi qua. penguins-eggs è rilasciato con licenza MIT: lo considero un po' come un figlio/a ed è ormai adolescente, pronto a viaggiare per il mondo in compagnia di chiunque lo apprezzi.


L'evoluzione applicata al silicio​

Per anni, rimasterizzare una distribuzione è stata considerata un'attività futile. Il vezzo di chi voleva dire «ho fatto la mia distro» senza avere alle spalle un repository, un'infrastruttura o una reale visione tecnica: bastavano uno sfondo personalizzato, un tema scuro, un sito web e un forum. E spesso la critica era meritata.

Oggi vi chiedo di ribaltare del tutto questo pregiudizio.

penguins-eggs non è una distribuzione e non è semplicemente un tool di remaster, per quanto sofisticato. Non è un compromesso al ribasso, ma una forma di visione ecologica applicata al software.

Guardare al software libero con una lente puramente ingegneristica è sempre stato riduttivo. Il codice non è una cattedrale immobile scolpita nel marmo una volta per sempre: un sistema operativo puo essere visto come un organismo vivente. E come ogni organismo, è sottoposto costantemente alla pressione selettiva del suo ambiente: chip che nascono e tramontano, librerie che mutano, comunità che si trasformano, etc.

Ma soprattutto, l'ambiente - qualsiasi esso sia -è dominato da una legge immutabile: la scarsità delle risorse. Scarsità di tempo. di memoria, di banda, di cicli di clock, di budget per rinnovare le macchine. Una scarsità che non riguarda solo il vecchio computer in soffitta, ma definisce l'infrastruttura quotidiana di tutti, dalle scuole agli ospedali fino alle più grandi organizzazioni.

L'industria commerciale risponde alla scarsità chiedendo al mondo di buttare via il ferro e comprare nuove risorse.

L’open source artigiano risponde adattando l'organismo.

Chi progetta con l'ambizione di costruire il "sistema perfetto e monolitico" finisce quasi sempre per fare la fine dei grandi organismi iper-specializzati: maestosi, ma fragili al primo mutamento. La vera forza della vita non sta nella stazza, ma nella capacità di riprodursi, adattarsi e trasmettere l'esperienza acquisita.

Un organismo e per estensione un sistema sano dovrebbe possedere, fin dall'inizio, la capacità autonoma di riprodursi: non per generare semplici copie carbone, ma per dare origine a nuove forme. La variazione nasce dall'esperienza viva di chi lo utilizza sul campo: dal desktop che sceglie, dai programmi che installa, dalle necessità che incontra e dalle soluzioni che trova.

Se lasciamo a queste variazioni la libertà di essere racchiuse in un uovo, condivise e distribuite, accade qualcosa di straordinario: alcune si adatteranno meglio di altre a nicchie particolari, occuperanno nuovi spazi, risponderanno a necessità che non avremmo neppure immaginato. Proprio come in natura, non è necessario prevedere in anticipo tutte le forme che potranno nascere: è sufficiente creare le condizioni perché possano farlo.

Ed è da questa intuizione, in qualche modo "darwiniana" che nascono gli strumenti che curo ogni giorno:

  • penguins-eggs: come una membrana protettiva, isola e custodisce il patrimonio genetico del sistema, permettendogli di adattarsi all'ecosistema o di mettersi in salvo altrove quando il clima sul vecchio ferro diventa irrespirabile;

  • penguins-chef: il motore di provisioning basato su ricette dichiarative YAML per personalizzare alimentare il sistema e farlo crescere;

  • penguins-gui: la finestra grafica opzionale per chi preferisce l'interfaccia visuale alla shell;

  • naked: denomino infine in questo modo l'immagine live del sistema operativo preso nella sua forma nuda CLI, senza fronzoli grafici, ma riproduttiva.

  • colibri: è praticamente la mia workstation di sviluppo, con la quale metto a punto e controllo eggs su ogni distribuzione. In sostanza è il ferro del mestiere, continuamente riforgiato.

  • albatros, duck, eagle, sparrow e swallow sono semplicemnte abbozzi che possono essere estesi o presi ad esempio di configurazione base con diversi desktop, rispettivamente: plasma, cinnamon, gnome, mate and lxqt.


L'ambiente dello scoiattolo​

Tornando all'inizio Huxley difendeva la teoria; lo scoiattolo, molto più modestamente, mette in pratica la necessità.

Si aggira tra le distribuzioni, sale sui rami di Debian, salta su quelli di Arch, si affaccia su Fedora o sulle nuove terre di Alpine e del silicio ARM64 e RISC-V. Raccoglie una configurazione, sistema un piccolo script, alleggerisce il carico, nasconde una ricetta in una cartella denominata secondo le specifiche XDG, perché sa che prima o poi servirà a qualcuno.

Non pretende di riscrivere le leggi dell'universo. Gli basta sapere che quando nel bosco cambia stagione, quando un computer rischia di essere buttato via o quando una comunità ha bisogno di ritrovare la propria tana senza dover ricominciare tutto da capo, i semi sparsi lungo il cammino sono lì, pronti a germogliare: per offrire a un sistema la possibilità di riprodursi, di cambiare e magari dare origine a qualcosa di nuovo.

Charles Darwin aveva un mastino per amico, capace di ringhiare contro il mondo intero a difesa della grande idea dell'evoluzione.

Col tempo, chissà, forse anche l'agile ostinazione di uno scoiattolo indaffarato gli avrebbe strappato un sorriso.

Almeno lo spero,

un grazie a tutti, sono grato ed onorato per questa collaborazione al team di openkiln.

OADC 2026 - Appendix A: openKylin and penguins-eggs

· 4 min read
Piero Proietti
penguins-eggs author
Deutsch  •  English  •  Español  •  Français  •  Italiano  •  Polska  •  Portuguese  •  Български  •  Русский  •  Українська  •  やまと  •  中国  •  فارsi

1. How I first came across openKylin​

As the author of penguins-eggs—a polymorphic remastering tool written in Go that turns running Linux systems into installable live ISOs—I am constantly looking for distributions that push the boundaries of the Linux ecosystem across x86_64, ARM64, and RISC-V.

I first came across openKylin while exploring the Chinese open-source landscape and its strong focus on independent desktop development and RISC-V hardware. Testing penguins-eggs on openKylin was a natural challenge: I wanted to verify if my family-based detection engine (which parses /etc/os-release to map distributions to core families like Debian, Arch, Alpine, and openSUSE) could seamlessly adapt to a flagship independent distribution.


2. How I used penguins-eggs to create two editions: Naked and XFCE4​

Using penguins-eggs alongside its declarative provisioning engine (penguins-chef), I applied a modular approach to openKylin, first creating the naked version, just a remaster of the server edition capable to be installed, then creating colibri my custom workstation where I can develop penguins-eggs in my same familiar context but using different distros:

  • The naked Edition (Pure CLI Seed): By stripping away the graphical layer down to a minimal, rock-solid core, I generated an ultra-lightweight command-line live ISO installable via Krill (our TUI system installer). This "Darwinian" seed contains only the essential structural genome of openKylin, making it ideal for servers, containers, virtual machines, or as a clean starting point for developers to build their own custom systems.
  • The xfce4 Edition (Lightweight Desktop): Starting from the minimal naked base (or directly remastering the system via YAML recipes), I dressed openKylin with XFCE4 and the Calamares graphical installer. This edition offers a fast, traditional, and low-resource desktop environment that runs smoothly even on older hardware or resource-constrained virtual machines, while preserving full compatibility with openKylin's underlying repositories and kernel.

Furthermore, with the --clone flag (a "Lamarckian" remaster), any user working on these editions can encapsulate their personal /home and custom configurations into a protective ISO membrane, ready to be restored onto a new machine if their hardware fails.

I was also sorry to see that Plasma, GNOME, and other desktop environments are no longer supported; while I find it a real pity from my perspective, I fully understand the reasoning behind this choice.


3. The challenges encountered and how I tackled them​

While openKylin belongs to the Debian family at its core, it introduces specific security and architectural mechanisms that required tailored engineering inside penguins-eggs:

  • Bypassing the Bootloader ESP Lock: In openKylin, /usr/sbin/grub-install is replaced by a Python 3 wrapper that checks the EFI System Partition against a hardcoded UUID (2C9D-17A5), aborting third-party installations (Krill or Calamares) with the error: Refusing to update an ESP belonging to another installation. I solved this by having eggs automatically restore the original GNU GRUB binary (/usr/sbin/grub-install.openkylin-original) during installation, while removing OEM installer hooks (/etc/grub.d/42_openkylin_multiboot and /etc/openkylin-installer) and excluding them from the live ISO.
  • Live Initramfs & Virtualization Modules: To guarantee reliable live booting across bare metal and hypervisors (KVM/QEMU/Proxmox), I configured eggs to explicitly inject virtio_pci, virtio_blk, virtio_scsi, isofs, and overlay modules into /etc/initramfs-tools/modules before generating the initramfs, and updated package dependencies to support busybox-initramfs | busybox-static.
  • Fixing Mouse Offset in Virtual Machines (eggs adapt): When resizing a VM display via xrandr under SPICE, the cursor coordinate matrix did not recalculate automatically, causing a pointer offset. I updated eggs adapt to restart spice-vdagent immediately after running xrandr, realigning the mouse cursor on the fly without logging out.

4. What we achieved so far: the results of this work​

Today, openKylin is supported as a first-class citizen in penguins-eggs:

  1. Native Support & Inheritance: openkylin is natively mapped in distro.go and indexed in index.yaml to dynamically inherit Debian family templates, scripts, and wardrobe costumes.
  2. Continuous Automated Testing ("The Furnace"): openKylin is integrated into my automated Proxmox VE CI pipeline (furnace-openkylin.yml), where every commit is validated through an end-to-end remastering process and a clean-snapshot boot test.
  3. Freedom to Remaster: Any openKylin developer or user can now generate custom naked servers, lightweight xfce4 or ukui customized workstations, or full personal backups in minutes with a single command (sudo eggs remaster).

OADC 2026 - Appendix B: RISC-V and ARM64

· 5 min read
Piero Proietti
penguins-eggs author
Deutsch  •  English  •  Español  •  Français  •  Italiano  •  Polska  •  Portuguese  •  Български  •  Русский  •  Українська  •  やまと  •  中国  •  فارsi

Bringing a universal remastering engine beyond x86_64 requires adapting not just the compiler toolchain, but the entire boot sequence, partition layout, and image generation pipeline. Here is the current technical status of RISCV64 and ARM64 (aarch64) support inside penguins-eggs, along with our roadmap for bare-metal validation.


1. RISCV64 Architecture Support​

Support and build pipelines for the riscv64 architecture are already written, compiled, and integrated directly into the penguins-eggs codebase:

  • Compilation & Packaging (build.go): The builder natively handles riscv64 and its architecture-specific dependencies, including gdisk and genimage. In our CI pipeline (.github/workflows/hammers.yml), a dedicated debian-riscv64 job cross-compiles the binary suite using gcc-riscv64-linux-gnu and qemu-riscv64-static.
  • Remastering & Bootloader: During the remastering phase (coa/pkg/cmd/remaster.go), eggs includes dedicated logic for Device Tree Blob (DTB) management and hardware detection for SpacemiT K1 / MuseBook M1 systems. It maps and copies UEFI binaries (BOOTRISCV64.EFI) in bootloader-copy.sh, supports the riscv64-efi GRUB target across Debian, Arch, Fedora, openSUSE, and Alpine templates, and configures pure UEFI boot via xorriso.
  • Krill Installer & Dedicated Hardware: For bare-metal installation, our TUI installer (Krill) implements the specific 6-partition layout and bootfs structure required by SpacemiT K1 / MuseBook SoCs (partition.go), complete with NVMe bus scanning and U-Boot flashing routines (spacemit/).

2. ARM64 (aarch64) Architecture Support​

The arm64 architecture is fully supported and integrated across all stages of the build and remastering lifecycle:

  • Compilation & CI ("The Furnace"): In hammers.yml, a dedicated debian-arm64 pipeline compiles the project via cross-toolchain (gcc-aarch64-linux-gnu, libcrypt-dev:arm64, and qemu-aarch64-static) to produce native .deb packages:
make package GOOS=linux GOARCH=arm64 CC=aarch64-linux-gnu-gcc RUNNER=qemu-aarch64-static
  • Builder & Dependencies (build.go): Dependency resolution for arm64, armhf, and armel is natively configured with genimage and grub-efi-arm64-bin, strictly adhering to standard Debian architecture naming conventions.
  • Bootloader & Remastering: eggs handles the generation and copying of BOOTAA64.EFI (grubaa64.efi) via bootloader-copy.sh:58-75 and enables Pure UEFI boot mode in xorriso.go:69. The arm64-efi GRUB target is integrated across all supported distribution families (Debian/Ubuntu/openKylin, Arch/Manjaro, Fedora, openSUSE, and Alpine), while xz SquashFS compression is automatically tuned to avoid x86 BCJ filters on ARM64.

3. Image Generation: Hybrid ISO vs. Raw Disk Image​

While the high-level remastering philosophy remains identical across architectures, the final bootable artifact must adapt to how different platforms handle firmware and storage:

  • On ARM64 (Production-Ready): Modern ARM64 platforms—including servers, QEMU/KVM virtual machines, Apple Silicon Macs running Linux, Raspberry Pi boards with EDK2 UEFI firmware, and Oracle Ampere instances—rely on standard AArch64 UEFI. Consequently, our standard xorriso pipeline (Pure UEFI boot via BOOTAA64.EFI) works natively out of the box. Anche disponendo solo di una comune Raspberry 4, ho fatto numerosi test nel passato configurandola come un server proxmox grazie al progetto cinese

  • On RISCV64 (Bridging Raw Images and UEFI ISOs): Current first-generation RISC-V boards (such as the SpacemiT K1 / MuseBook M1) do not yet use standard UEFI firmware to boot from traditional CD-ROM ISO images. Instead, they rely on U-Boot/OpenSBI with a hardware-specific Device Tree (.dtb) and expect multi-partition raw disk images (.raw / .img containing bootinfo, fsbl, env, opensbi, uboot, bootfs, and rootfs) built via genimage.

    In generate-plan.go, eggs intercepts riscv64 targets to replace the xorriso step with make-img (genimage). Our next milestone is refining and validating this dual output on real hardware: generating both flashable .img raw disk images for current U-Boot SBCs/laptops and standard UEFI hybrid ISOs for upcoming UEFI-compliant RISC-V systems.

The solution is naturally to use the ISO format for everyone, as I have been doing for years on ARM using a Raspberry Pi 4 and the work of Chinese developer jiangcuo, who in recent years managed the famous **Proxmox-Portéé ecosystem, now pxvirt.


4. Hardware Support: A Call for Silicon​

Before concluding, I want to share a very concrete reality of independent open-source development.

Today, our software is literally ahead of the hardware sitting on my desk. Inside our codebase, support for both ARM64 and RISC-V 64 is already written, compiled, and integrated. We have built the cross-compilation pipelines, configured the Pure UEFI bootloaders—BOOTAA64.EFI and BOOTRISCV64.EFI—and even implemented dedicated partitioning layouts for early RISC-V hardware like the SpacemiT K1.

However, generating and validating live filesystems, SquashFS compression, and bare-metal installers through software emulation is a prohibitive task. Emulation hits a wall right where we need to test real-world machine behavior, firmware handoffs, and storage controllers.

I would like to close this talk with a direct invitation to the hardware manufacturers and ecosystem partners here today. To bring universal, one-command remastering for openKylin, Debian, Arch, Fedora, and openSUSE to your architectures, penguins-eggs only needs two physical machines on the testbench:

  1. An RVA23 and BRS (Boot and Runtime Services) compliant RISC-V system—such as the upcoming SpacemiT K3—to validate direct, standard UEFI ISO booting on real silicon.
  2. An ARM64 SystemReady-compliant machine for native verification of AArch64 live ISOs and bare-metal installations.

The code is ready. If you provide the silicon, I will make sure that any Linux developer or user can remaster, clone, and deploy their system on your hardware with a single command.

Thank you!

OADC 2026 - Speacker bio

· 2 min read

Piero Proietti

Creator & Lead Maintainer of penguins-eggs | Independent Open-Source Developer

Piero Proietti is an Italian systems engineer and open-source developer based in Rome. Starting on 1 KB RAM microcomputers and the Sinclair ZX series in the early 1980s, he spent nearly four decades as a hands-on IT systems administrator and infrastructure architect for the Italian Air Force—experiencing firsthand the transition from legacy mainframes and coaxial networks to modern TCP/IP, SQL databases, and Linux virtualization with Proxmox VE.

Following his retirement, he created penguins-eggs, an MIT-licensed, multi-distribution Linux remastering and system-reproduction toolkit supporting Debian, Arch, Manjaro, Fedora, Alpine, openSUSE, and Chinese ecosystems such as Deepin and openKylin. Passionate about software evolution, lightweight desktop environments, and emerging silicon, he actively works on bringing reproducible live systems across x86, ARM64, and RISC-V (SpacemiT K1) architectures.

Short version​

Piero Proietti is an Italian systems engineer and open-source developer with over forty years of hands-on experience in IT infrastructure and operating systems. He is the creator and maintainer of penguins-eggs, an MIT-licensed universal Linux remastering and system-reproduction toolkit supporting major international distributions—including openKylin—across x86, ARM64, and RISC-V architectures.

Mille uova in nove giorni: il mondo visto da Penguins' Eggs

· 10 min read
Piero Proietti
penguins-eggs author
Deutsch  •  English  •  Español  •  Français  •  Italiano  •  Polska  •  Portuguese  •  Български  •  Русский  •  Українська  •  やまと  •  中国  •  فارsi

Nove giorni fa abbiamo acceso penguins-census, un piccolo faro silenzioso per capire cosa succede là fuori quando qualcuno lancia eggs remaster o eggs sysinstall.

Non volevamo tracciare gli utenti — non ci interessa sapere chi siete — ma volevamo rispondere a una domanda semplice che ogni sviluppatore open source si fa quando lavora chiuso nella sua stanza: questo codice serve davvero a qualcuno?

A distanza di nove giorni, la risposta è arrivata forte e chiara: abbiamo appena superato la soglia dei 1.000 eventi completati (993 registrati nel momento in cui scrivo), generati da 531 macchine uniche a un ritmo di oltre 100 operazioni al giorno, distribuite in 55 Paesi.

Leggere i log di questi primi nove giorni è stato come fare il giro del mondo seduti dietro la scrivania. Dietro le righe JSON non ci sono solo statistiche sulle distribuzioni, ma storie reali di comunità, scuole, sviluppatori e artigiani del software.


Cosa ci dicono i numeri generali​

Prima di viaggiare per i continenti, ci sono tre dati tecnici che definiscono la natura dell'utilizzo di penguins-eggs:

  • Il ferro reale vince sulle macchine virtuali: il 56,6% delle operazioni avviene su bare-metal (computer fisici reali), contro il 24,9% su KVM e il 13,7% su VirtualBox. Eggs non viene usato solo per giocare in una sandbox, ma per installare e salvare macchine di produzione.
  • Il ciclo vitale (3 a 1): su circa 1.000 eventi, 750 sono remaster e 243 sono installazioni di sistema (sysinstall). In media, chi lavora a un'immagine fa tre prove di rifinitura prima di andare in produzione e installarla. E quasi la metà delle installazioni (116 su 243) avviene con il flag clone: backup completi e disaster recovery di workstation reali, con utenti e dati al seguito.
  • Pragmatismo sul Desktop: XFCE (32,2%) domina la classifica, seguito da KDE Plasma (20,7%), GNOME (14,3%), Cinnamon (11,3%) e installazioni puramente CLI/Server (10,8%). X11 (62,5%) mantiene ancora la maggioranza, ma Wayland (24,5%) è ormai una realtà solida anche nel remastering.

Il giro del mondo in 1.000 ISO​

1. Nord America: Chromebook salvati dalle discariche e scuole nel Québec​

Negli Stati Uniti (13,2% del totale, primi per client connessi ai repository) emerge un fenomeno straordinario: il recupero dell'hardware destinato all'obsolescenza. Vediamo sequenze serrate di remaster e installazioni su ferro reale di una derivata chiamata fantastic (Debian con sysvinit e XFCE) e sistemi Garuda/Arch leggeri. Negli USA milioni di Chromebook scolastici raggiungono la scadenza degli aggiornamenti Google (AUE): con il firmware sbloccato e un'immagine leggera creata con Eggs, questi portatili con 2 o 4 GB di RAM tornano a nuova vita invece di finire nei rifiuti elettronici.

Salendo in Canada (6,6%), oltre a un instancabile laboratorio che testa immagini Arch + KDE su KVM giorno e notte, è spuntata una storia bellissima dal Québec: il progetto fleurdelix. Venerdì sera tardi (fuso orario di Montreal) abbiamo visto partire una raffica di installazioni fisiche a distanza di pochi minuti l'una dall'altra. Qualcuno, armato di chiavette USB e krill, stava allestendo un'aula informatica o preparando un lotto di PC con una distribuzione francofona creata in casa.

2. America Latina: Il continente del "ferro reale"​

L'America Latina è una colonna portante del progetto, con oltre 140 eventi tra Argentina (5,9%), Brasile (5,2%), Cile, Messico, Perù, Venezuela, Colombia, Uruguay ed Ecuador. Qui quasi nessuno usa macchine virtuali: si lavora direttamente sui PC fisici.

  • In Argentina brilla lo sviluppo continuo di Soplos Linux (con KDE Wayland) e il lavoro su BigLinux.
  • In Brasile c'è una vera e propria officina basata su Linux Mint e un nucleo fortissimo di puristi Devuan + runit.
  • In Cile il numero di installazioni (sysinstall) supera il doppio dei remaster: si prepara una ISO di Linux Mint e la si installa a tappeto.
  • In Perù abbiamo registrato 4 eventi che sembrano usciti da un manuale: un remaster di Debian Trixie + XFCE, una seconda rifinitura, e subito dopo due installazioni fisiche su due computer diversi a distanza di 7 minuti.

3. Europa e Russia: Tra produzioni indipendenti e sistemi sovrani​

L'Europa raccoglie quasi la metà degli eventi mondiali (47,7%):

  • L'Italia (20,7%) guida la classifica. Anche ripulendo il dato dalla mia personale "carovana" di test su Proxmox/KVM (le mie classiche 8 distro CLI + 7 XFCE che lancio a ogni rilascio), l'Italia resta saldamente al secondo posto mondiale dietro gli USA, con una comunità fortissima su Arch Linux, Debian Trixie e progetti derivati come Synex e Nexiquar.
  • La Spagna (7,2%) è la patria di Quirinux (la distro per il cinema d'animazione del nostro amico Charlie) e mostra un uso intensivo di Ubuntu e Debian su bare-metal. Soplos, invece - nativo ispanico - se lo fanno da soli!
  • La Germania (7,4%) e la Francia (4,2%) sono motori instancabili su Linux Mint, Ubuntu, CachyOS e Manjaro.
  • Dall'Est arriva una chicca tecnica: in Russia qualcuno ha rimasterizzato con successo Astra Linux con il suo desktop proprietario Fly su hardware reale, mentre in Ucraina si clonano sistemi leggeri con Debian, XFCE e BunsenLabs. Davanti a due popoli vicini che condividono anche la passione per la tecnica ed il software libero, e fa ancora più male pensare alla tragedia della guerra e alle vite spezzate: la speranza è che torni presto la ragionevolezza e la pace.

4. Medio Oriente: Fucine indipendenti, resilienza e reti invisibili​

Qui si respira forte la voglia di indipendenza tecnologica, ma anche il riflesso delle tensioni che attraversano la regione:

  • In Iran, un singolo sviluppatore sta forgiando a ciclo continuo una derivata Arch chiamata crow con Hyprland su Wayland. Dove la rete è soggetta a pesanti restrizioni, avere una ISO completa, autonoma e con tutti i propri strumenti preinstallati fa davvero la differenza. Dietro a questo dato tecnico c'è la realtà di un Paese e di intere generazioni cresciute tra guerre ed embarghi che durano da quarant'anni. Un amico con tristezza mi diceva che forse l'unica via d'uscita rimasta sembra un conflitto globale: parole amare che, più che spaventare, devono far riflettere sul senso di isolamento e sulla fatica quotidiana di chi vive lì. Vedere qualcuno che, nonostante tutto, si ritaglia uno spazio di autonomia costruendosi il proprio sistema operativo è una piccola, silenziosa testimonianza di resilienza.
  • In Turchia fioriscono le distribuzioni locali: abbiamo visto nascere e crescere le immagini di aquarevive (GNOME) e parsos (LXQt).
  • Da Israele, invece, non compaiono record diretti nei log di censimento. So di avere utenti attivi anche lì, ma l'assenza della sigla IL non significa affatto assenza di persone: racconta piuttosto la realtà di una rete pesantemente schermata, protetta da firewall perimetrali e instradata su tunnel VPN.

5. Asia e Oceania: Dal dragone cinese al Vietnam, passando per l'Australia​

  • Cina e Taiwan: la Cina è già al quarto posto mondiale per accesso ai nostri repository (45 client). Nei log vediamo il lavoro nativo su openKylin 3.0 con desktop UKUI, uno sviluppatore che rimasterizza senza sosta Omarchy (Arch + Hyprland) e persino l'unico evento ARM64 di tutto il censimento (un server Ubuntu 24.04 CLI rimasterizzato su ferro reale). Con gli ultimi fix che hanno eliminato i colli di bottiglia di rete sui bootloader e migliorato il supporto a openKylin, ci aspettiamo grandi cose da Oriente.
  • Giappone e Vietnam: in Giappone regna la precisione, con un server KVM che esegue il backup con Eggs ogni giorno spaccato alle 18:01 UTC e sessioni certosine su Linux Mint e Debian + i3. In Vietnam, invece, usano Eggs come catena di montaggio: preparano un'immagine Ubuntu 24.04 in VM e la scaricano in serie sulle macchine fisiche.
  • Australia (2,3%): zero macchine virtuali. Gli australiani lavorano solo su ferro vero, spingendo su SparkyLinux, CachyOS, EndeavourOS e una maratona notturna di clonazione su Debian Trixie + MATE.

6. Africa: Dai laboratori di Nairobi all'Oceano Indiano​

Anche se i numeri sono più piccoli (18 eventi in 7 Paesi), le storie sono preziose: in Kenya si prepara una immagine master di Linux Mint e la si installa in serie su più postazioni; postazioni fisiche lavorano in Sudafrica, Mozambico, Algeria, Egitto e Marocco. E sull'Isola della Réunion, in pieno Oceano Indiano, un purista rimasterizza e installa Arch Linux con il window manager River.


Una fabbrica di distribuzioni​

Scorrendo la lista delle 41 distribuzioni rilevate in soli nove giorni, oltre alle grandi classiche (Debian, Ubuntu, Mint, Arch, Devuan, Fedora, openSUSE, Manjaro, Alpine), è emerso un sottobosco meraviglioso di distribuzioni figlie e respin indipendenti che usano penguins-eggs come motore:

Quirinux, Soplos, OpenKylin, CachyOS, Crow, Fleurdelix, Fantastic, Omarchy, BigLinux, OpenOS, Zorin, Aquarevive, EndeavourOS, KDE Neon, Synex, AnduinOS, JCN, ParsOS, Sparky, Nexiquar, Antarctic, BigCommunity, ObsidianOS, Parrot, Pop!_OS, Astra, BunsenLabs, KayelOS, Lware, PawnOS, Siduction.

L'albero genealogico: quando l'uovo si schiude​

C'è un parametro nei dati del censimento che racconta una storia ancora più profonda delle semplici statistiche geografiche: il parent_id.

In Penguins' Eggs, ogni volta che viene generata una ISO, a quella macchina "madre" viene associato un identificativo unico. Quando poi quell'uovo viene portato su un altro computer e installato tramite krill (sysinstall), il nuovo sistema registra e trasmette il codice identificativo della matrice da cui è nato.

Guardando questi legami di parentela emergono dinamiche affascinanti:

  • L'albero a raggiera (una madre, molti figli): è lo schema tipico delle aule informatiche e dei parchi macchine aziendali. In Québec, a Nairobi e in Vietnam, vediamo un'unica macchina madre che prepara la distribuzione ideale e, nel giro di poche ore, genera una covata di 4 o 5 installazioni figlie su computer fisici indipendenti.
  • La staffetta generazionale (madre -> figlia -> nipote): è il ciclo biologico dell'open source nella sua forma più pura. Una macchina nata da un'installazione (sysinstall) viene riconfigurata, arricchita di nuovi pacchetti e a sua volta rimasterizzata (remaster), diventando una nuova madre che dà vita a una seconda generazione di sistemi.
  • La gemmazione (il backup di se stessi): in moltissimi casi, soprattutto tra gli utenti di workstation personali in Italia, Giappone e Germania con il flag --clone, il parent_id traccia la storia del disaster recovery e dell'aggiornamento hardware. Una macchina clona se stessa per rinascere identica su un nuovo disco NVMe o su un nuovo portatile.

In termini biologici, il parent_id dimostra che Penguins' Eggs non è un binario morto: trasforma ogni singola installazione in un organismo vitale, capace di riprodursi, evolvere e adattarsi all'ambiente in cui viene trapiantato.

Conclusioni​

Quando ho iniziato a scrivere questo progetto a Roma, l'idea era semplice: dare a chiunque la libertà di prendere il proprio sistema Linux, chiuderlo in un uovo (una ISO live installabile) e portarlo con sé o regalarlo agli altri, indipendentemente dalla distribuzione usata. Anzi a dire il vero, l'idea era ed è rendere il proprio sistema fertile e riproduttivo, che è la soluzione più semplice di tanti mali e favorisce la diffusione.

Vedere che oggi quell'uovo schiude sistemi operativi in un'aula del Québec, su un vecchio Chromebook nel Midwest, in un centro di formazione a Nairobi e su una workstation con openKylin in Cina è la ricompensa più grande che potessi desiderare.

Grazie a tutti voi che state covando queste uova in giro per il mondo.

Siate fecondi e buona rimasterizzazione! 🐣🐧


(I dati in tempo reale sono consultabili in qualunque momento su penguins-eggs.net/api/census)

Facciamo il punto: le statistiche sulle ISO naked e sui pacchetti

· 9 min read
Piero Proietti
penguins-eggs author
Deutsch  •  English  •  Español  •  Français  •  Italiano  •  Polska  •  Portuguese  •  Български  •  Русский  •  Українська  •  やまと  •  中国  •  فارsi

Ogni tanto è utile fermarsi, mettere da parte per un'ora il compilatore e l'editor di testo, e guardare i log del server per capire cosa succede davvero là fuori.

Ho appena estratto con GoAccess le statistiche di traffico di penguins-eggs.net relative alle ultime due settimane — dal 4 al 18 ottobre 2026 — per fare il punto della situazione, concentrandoci in particolare su due aspetti concreti: lo scarico delle ISO di tipo naked e la distribuzione dei pacchetti della nuova suite (penguins-eggs, penguins-gui, penguins-chef) rispetto alla versione storica (penguins-eggs-legacy).

Lavorare con la AI

· 5 min read
Piero Proietti
penguins-eggs author
Deutsch  •  English  •  Español  •  Français  •  Italiano  •  Polska  •  Portuguese  •  Български  •  Русский  •  Українська  •  やまと  •  中国  •  فارsi

Questo post nasce al termine di un pomeriggio passato a limare la documentazione di penguins-gui, penguins-eggs, penguins-chef e la pagina principale del sito insieme alla AI.

Non stavamo scrivendo un nuovo modulo in C o in Go, né stavamo risolvendo un bug del kernel: stavamo facendo quel lavoro silenzioso di rifinitura su parole, titoli e pulsanti che fa la differenza tra un progetto buttato lì e uno strumento accogliente per chi arriva da fuori. Ed è proprio in queste pieghe apparentemente piccole che si capisce cosa significhi davvero, oggi, lavorare con la AI.

penguins-chef incontra penguins-gui: cucinare il proprio Linux con un clic

· 4 min read
Piero Proietti
penguins-eggs author
Deutsch  •  English  •  Español  •  Français  •  Italiano  •  Polska  •  Portuguese  •  Български  •  Русский  •  Українська  •  やまと  •  中国  •  فارsi

Nei post recenti abbiamo esplorato due tasselli fondamentali della nostra idea di sistema su misura: da una parte penguins-gui, l'interfaccia desktop che rende immediata e visuale la creazione di una live con Eggs; dall'altra penguins-chef, lo strumento dichiarativo a ricette YAML che permette di plasmare il sistema dal basso, componendo desktop, strumenti e costumi senza bloatware.

Mancava l'ultimo passo logico per unire questi due mondi: poter scegliere e cucinare le ricette direttamente dalla scrivania, senza dover passare per il terminale.

Oggi questo ponte c'è: penguins-chef è integrato nativamente all'interno di penguins-gui.

penguins-chef: cucinare il proprio Linux, ricetta per ricetta

· 6 min read
Piero Proietti
penguins-eggs author
Deutsch  •  English  •  Español  •  Français  •  Italiano  •  Polska  •  Portuguese  •  Български  •  Русский  •  Українська  •  やまと  •  中国  •  فارsi

Nel post precedente parlavo di Plastilinux: della voglia di riprenderci il controllo del ferro, di partire da un sistema e plasmarlo come vogliamo invece di accettare immagini pre-confezionate e blindate.

Spesso chi crea una respin o allestisce un sistema su misura fa il percorso al contrario: parte da una ISO "completa" preparata da altri, e poi passa ore a togliere software indesiderato, ripulire configurazioni e sperare di non aver rotto qualche dipendenza nascosta.

È un approccio faticoso e poco pulito. La vera via è partire dal basso: un sistema essenziale a riga di comando (naked) e aggiungere solo ciò che vogliamo, in modo chiaro, controllabile e ripetibile.

Per fare questo è nato penguins-chef.