Ubuntu

Ubuntu își revizuiește abordarea de compresie Initramfs

Cu aproximativ un an în urmă, Ubuntu a schimbat nivelul de compresie implicit pentru gestionarea initramfs la nivelul unu al Zstd pentru a face față timpilor de creare lentă a initramfs pe sistemele low-end / plăcile de dezvoltare.

Dar, de atunci, acest lucru a adus la dimensiuni mai mari ale initramfs și la apariția altor probleme, cum ar fi umplerea rapidă a partiției /boot pe sistemele cu Ubuntu.

Astfel, dezvoltatorii s-au întors la masa de proiectare și încearcă să găsească o cale de urmat pentru o mai bună gestionare a initramfs care să funcționeze bine pentru calculatoarele single board low-end, maximizând bine pentru toate cazurile de utilizare a Ubuntu.

Benjamin Drung, dezvoltator Ubuntu/Debian, a lucrat pentru a găsi echilibrul corect al opțiunilor de compresie pentru ca initramfs din Ubuntu să fie rapid și să producă o compresie bună.

Propunerea sa inițială prezentată săptămâna trecută pe lista ubuntu-devel include:

Propun următoarea abordare pentru a remedia acest dezavantaj: Crearea de arhive cpio (comprimate cu xz -9) pentru modulele de nucleu și fișierele firmware la construirea pachetului de kernel/firmware pentru Debian. Apoi livrați aceste arhive cpio în pachete (sau într-un pachet binar separat). Apoi, sarcina CPU este pusă pe constructori. Arhivele cpio ar conține modulele pentru MODULES=most.

mkinitramfs va căuta aceste arhive cpio și le va folosi în cazul în care sunt prezente. Un astfel de initramfs ar arăta astfel:

  • Arhiva cpio microcod AMD/Intel (pe amd64).
  • Arhiva cpio principală comprimată cu zstd -1.
  • modulele de nucleul din pachetul Debian comprimate cu xz -9.
  • fișierele firmware din pachetul Debian comprimate cu zx -9.

Între timp, inginerul Canonical Dimitri John Ledkov a prezentat o altă posibilă metodă:

Creearea arhivei comprimate xz -9 a tuturor modulelor, totuși se plătește penalizarea de a le decomprima pe cele mai multe dintre ele, iar apoi nu le mai face modprobe. Am sperat să realizez o abordare similară, dar nu am avut timp să o implementez.

  1. Schimbați linux-modules și linux-firmware pentru a livra .ko.zst firmware.bin.zst comprimat cu zstd -19 la momentul construirii .deb.
  2. Acest lucru economisește dimensiune de instalare a pachetelor, cu o dimensiune de descărcare doar ușor crescută.
  3. Modificați initramfs-tools pentru a include comprimate într-o initrd separată, care nu este comprimată (adică excludeți fișierele .zst din arhiva cpio principală comprimată implicit și adăugați-le în a doua arhivă cpio principală care nu este comprimată).
  4. Acest lucru ar trebui să realizeze crearea rapidă a initrd, care va avea o dimensiune mai mică decât starea actuală și va porni mai repede, deoarece va decomprima doar modulele/firmware-ul de care are nevoie la pornire.

Această cale este în curs de examinare. Nimic nu este încă stabilit, dar se pare că se va întâmpla ceva pentru a schimba modul de gestionare a compresiei initramfs în Ubuntu, pentru a oferi un echilibru mai bun între mărimea compresiei/cerințele de decompresie pentru a se potrivi cu gama largă de hardware în care Ubuntu este utilizat.

Probabil că orice schimbare se va întâmpla pentru ciclul Ubuntu 23.10 pentru a permite suficient timp pentru testare înainte de lansarea Ubuntu 24.04 LTS de anul viitor.

ThinkRoot99

Numele meu este Cristian Moldovan și sunt utilizator de Linux de peste 10 ani.Am făcut parte din mai multe echipe open source din România: Fundația Ceata, Linux Mint România, Rogentos Linux Group. Între 2014 și 2018 am fost propietarul și editorul site-ului de știri despre linux, gnulinux.ro și actual proprietar al rootlinux.ro

View all posts by ThinkRoot99 →

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *