Davide Muzzarelli

Linux non ha bisogno di essere riavviato

published on 02.12.2006 in * livello base, * livello intermedio, linux

Una delle cose più frustranti per chi usa Windows è che esso ha bisogno di essere riavviato spesso. Questo è vero specialmente quando ci sono degli aggiornamenti.

In Linux è possibile usare il computer anche per anni senza mai riavviarlo, questo è particolarmente vero se si tratta di server. Si può perfino aggiornare un programma nel momento stesso in cui si sta usando, quindi senza doverlo chiudere e senza dover riavviare il sistema.

Linux ha un file system (sistema di memorizzazione dei file) che gli permette di fare ciò. In termini semplici, quando un programma viene eseguito esso viene caricato in memoria, in questo modo è possibile sostituire i file del programma senza interromperlo.

In termini tecnici, il programma viene caricato in un buffer (memoria tampone) con cluster (pezzi di file) da 4KB. Quando si apre un file, il kernel (il cuore del sistema operativo, letteralmente “nocciolo”) legge il file dal suo inode (indirizzo del file sul file system). L’indirizzo inode rimane anche cancellando il file fino a quando il programma resta in esecuzione che quindi può essere ancora usato. Il file di rimpiazzo, quello che aggiorna il programma, prende un inode differente e quindi non va in conflitto con il vecchio programma in esecuzione. Alla successiva esecuzione del programma, il kernel caricherà la versione aggiornata. A questo punto è consigliabile riavviare il solo programma per poter usare gli aggiornamenti, onde evitare conflitti di versione.

Questo sistema funziona con tutti i file tranne uno: il kernel stesso. Il kernel è eseguito all’avvio del computer pertanto c’é bisogno di un nuovo riavvio per poter usare il kernel aggiornato. Fortunatamente questo tipo di aggiornamento può avvenire anche dopo uno o più anni di distanza ;)

Comments

Una Risposta to “Linux non ha bisogno di essere riavviato”. Tutti gli utenti che hanno commentato hanno accettato le note legali.
  1. arcano86 scrive:

    kexec -l /kernel/da/avviare –initrd=/initrd/da/avviare –command-line=”`cat /proc/cmdline`”

    neanche il kernel ha bisogno del riavvio!!!
    puoi riavviare il solo kernel!

Dicci Cosa Pensi

Lascia un commento qui sotto...

Confermando l'invio accetti di aver letto le note legali e di aderire ad esse.