web analytics

[Guida] Kernel Linux: come gestirne i parametri con sysctl

kernel linux news

Spesso quando si parla di distribuzioni si usa il termine Linux. Questa abbreviazione, che nasce sovente dalla pigrizia di chi scrive o di chi ne parla, è in realtà errata. Il termine corretto con cui definire il sistema operativo nel suo complesso è GNU/Linux (o per alcuni GNU+Linux). Linux, infatti, fa riferimento solo ad una componente, ovvero il kernel. In questa mini guida, vi parlerò di che ruolo ricopre e di come gestirne i parametri con sysctl.

Kernel Linux: a cosa serve e come si configura

Il kernel è un componente essenziale di un sistema operativo, la sua funzione principale consiste nel collegare il software e l’hardware di un dispositivo. Volendo essere più precisi, i compiti principali sono i seguenti:

  • Inizializzare ed avviare il sistema;
  • Implementare i filesystem locali o di rete;
  • Controllare l’accesso all’hardware e rendere disponibili al sistema operativo i dispositivi collegati utilizzando i driver;
  • Effettuare lo scheduling dei processi e gestire la memoria;
  • Gestire l’I/O tra le applicazioni ed i dispositivi di archiviazione;
  • Funzioni di sicurezza.
sysctl parameter list
L’output del comando sysctl -a elenca i parametri del kernel.

 

Parlando di avvio di sistema, ad esempio, vi sarà sicuramente capitato di avere a che fare con i parametri di avvio del kernel. Si tratta di stringhe di testo che vengono interpretate dal sistema per abilitare, o disabilitare, determinate funzionalità. Un elenco con la spiegazione dei vari parametri può essere trovato in man bootparam. Esempi possono essere:

  • Root: specifica il filesystem di root;
  • Ro: monta il root device come read only;
  • Quite: disabilità molti messaggi di log.

Molti di voi, ad esempio, hanno una scheda video Nvidia. In caso di errori durante la fase di installazione di Linux una possibile soluzione è quella di aggiungere ad una determinata riga di grub la voce nomodeset. Per visualizzare proprio con quale riga di comando è stato avviato il sistema, la direttiva da utilizzare è:

cat /proc/cmdline

kernel cmdline

Sysctl e /proc: due facce della stessa medaglia

Sysctl può essere utilizzata per leggere e regolare i parametri del kernel in runtime. Per visualizzare i valori di tutti i parametri, utilizzate la direttiva sysctl -a. Ogni riga corrisponde ad un particolare file dello pseudo filesystem /proc/sys, di cui vi avevo parlato già in questo articolo. Ad esempio, il valore associato al pid_max (il valore massimo raggiungibile dal process ID, superato il quale si ricomincia da un valore più basso) può essere ottenuto specularmente nelle seguenti modalità:

sysctl kernel.pid_max
cat /proc/sys/kernel/pid_max
sysctl kernel proc fs
Sysctl e i file in /proc/sys/kernel.

La modifica al runtime di questo valore, quindi, può essere effettuata utilizzando uno dei seguenti metodi:

#tramite sysctl
sudo sysctl kernel.pid_max=2000
#manualmente
su
echo 2000 > /proc/sys/kernel/pid_max  #questa istruzione, in questa forma, è possibile solo se eseguita dal root

Per avere maggiori dettagli su come usare sysctl, basta far riferimento alla relativa pagina del manuale, accessibile tramite l’istruzione man sysctl.

sharing-caring-1Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.