Guida Introduzione a Void Linux

22 Febbraio 2022
479
44
368
348
Ultima modifica:
Introduzione
Void Linux è una distro GNU/Linux INDIPENDENTE, ossia non è un fork di nessun altra distro, mantenuta interamente da volontari che nel tempo libero si divertono a svilupparla.
L'installazione avviene tramite riga di comando (chroot) oppure utilizzando l'installer ufficiale void-installer (sempre da CLI).
Distribuita come Rolling-release, la si installa una volta e la si tiene aggiornata nel tempo, punta alla stabilità rispetto ad altro.
Supporta sia un implementazione musl sia una glibc.

Nasce nel 2008 dall'idea Juan Romero Pardines, ex mantenitore di NetBSD, difatti ricorda molto un sistema BSD, il nome deriva dal C void e non ha alcun significato particolare se non quello che gli si vuol dare; Juan abbandonerà il progetto nel 2018 a causa di problemi interni.

XBPS
XBPS è il Gestore di pacchetti ufficiale di Void programmato from scratch e mantenuto dallo stesso team su GitHub, rilasciato sotto una licenza BSD a 2 clausole
  • xbps-query: cercare e visualizzare info su un pacchetto localmente, fare uso della flag -R per cercare all'interno dei repo
  • xbps-install: installa e aggiorna i pacchetti, sincronizza le repository.
  • xbps-remove: rimuove un pacchetto.
  • xbps-reconfigure: configura/rinconfigura un pacchetto installato
  • xbps-pkgdb: individua, risolve i problemi nel database dei pacchetti, consente di apportare modifiche al database.
  • xbps-rindex: gestisce i repository locali dei pacchetti binari.
Questi sono alcuni dei comandi base per gestire i pacchetti.

init system
A differenza delle altre distro che (quasi sempre) usano Systemd, Void utilizza Runit, questo permette un avvio semplice, pulito e affidabile del sistema.

Partiamo spiegando la gestione basica dei servizi per adesso, piu' in la ci addentremo sempre di piu'.
I servizi sono dei semplici script bash/sh situati nella directory /var/service che vengono eseguiti in runtime, facendo il cat su /var/service/NetworkManager/run:
Bash:
#!/bin/sh
exec 2>&1
sv check dbus >/dev/null || exit 1
exec NetworkManager -n > /dev/null 2>&1
NOTA: la directory /var/service e' un symlink a /etc/runit/runsvdir/default/.

Per abilitare un servizio possiamo creare un symlink da /etc/sv/<service> a /var/service, allo stesso modo per disabilitarlo lo eliminiamo:
Bash:
ln -s /etc/sv/<service> /var/service/
rm /var/service/<service>
In questo modo il servizio sarà sempre in esecuzione all'avvio e si riavvierà nel caso si interrompesse.

Per avviare, arrestare, riavviare o ottenere lo status si usa sv:
Bash:
sv up <services>
sv down <services>
sv restart <services>
sv status <services>


Passaggio a OpenSSL
Fu una delle prime distro ad adottare LibreSSL come libreria di crittografia di sistema predefinita, tuttavia nel 2020/21 si è deciso a passare a OpenSSL, questa scelta è stata presa in seguito ad una RFC dove la maggior parte degli sviluppatori preferiva usare OpenSSL per vari motivi:
- Dal momento che la maggior parte del software è orientata verso OpenSSL, Void non dovrà più gestire patch (alcune delle quali possono essere molto complesse) per supportare LibreSSL. La complessità dell'API di OpenSSL rende tali patch onerose e rischiose, con il potenziale di causare errori durante l'esecuzione o problemi di sicurezza. Finora siamo stati in grado di evitarli, ma ciò ha richiesto molto sforzo.
- Accesso anticipato a nuovi standard e algoritmi, tra cui il supporto completo di TLS 1.3.
- Ampio supporto per ottimizzazioni specifiche della piattaforma al di fuori dell'architettura x86.
Altre distro come Gentoo o Alpine hanno interrotto il supporto a LibreSSL favorendo Open:
- Alpine, che è passata temporaneamente a LibreSSL, è tornata a OpenSSL nel gennaio 2019, con la versione 3.9.0.
- Più recentemente, Gentoo, che offriva LibreSSL come opzione, ha interrotto anche quel supporto.

Conclusione
Questa vuole essere una piccola introduzione ad una distro leggera, minimale e altamente configurabile (e free-systemd:rofl:), un alternativa alla solita Arch o alla complicata Gentoo, se state cercando qualcosa di semplice e nuovo ve la consiglio.
Si potrebbe parlare ancora tanto su Void, ma per ora ci fermiamo qua! Grazie dell'attenzione.
 

Allegati

  • 1697386773110.png
    1697386773110.png
    6.9 KB · Visualizzazioni: 22
  • Mi piace
Reazioni: haxo e --- Ra ---
Grazie del contenuto @PwnTheWeb! Interessante il fatto che questo SO abbia Runit come padre di tutti i processi e non systemd. Qual è la differenza sostanziale, se c'è, tra systemd e runit? Comporta dei vantaggi questa cosa?
 
Grazie del contenuto @PwnTheWeb! Interessante il fatto che questo SO abbia Runit come padre di tutti i processi e non systemd. Qual è la differenza sostanziale, se c'è, tra systemd e runit? Comporta dei vantaggi questa cosa?
La semplicità, systemd svolge altre funzioni al di fuori di quella di init, creando un vero e proprio ecosistema, che può piacere o no.
Runit al contrario è semplicemente un init. k.i.s.s.
 
  • Mi piace
Reazioni: --- Ra ---