Cosa rende Windows necessario il riavvio costante mentre Linux no? [duplicare]


21

Come molte persone, eseguo due sistemi sul mio computer. Gli aggiornamenti importanti richiedono riavvii costanti su Windows, mentre non credo che questo mi sia mai successo su Linux. Quali proprietà di ciascun sistema operativo decidono se questo è possibile o no?


5
Devo ancora riavviare i miei sistemi Linux per installare un aggiornamento del kernel. So che ci sono modi per aggirare anche quello, ma non ho bisogno di tempi di attività estremi. Mentre raramente c'è un aggiornamento del kernel per i miei server o installazioni di supporto a lungo termine, ricevo aggiornamenti del kernel occasionali sui miei sistemi più all'avanguardia - non vedo molta differenza tra Linux e Windows qui. Tuttavia, gli aggiornamenti di Linux sono molto meno ostruttivi degli aggiornamenti di Windows, poiché non trasformano il riavvio in un gioco in attesa.
Amon,

1
Bene, in realtà ... 1. Questo è un problema con Windows meno di quanto non fosse in passato. Quando ciò accade, di solito è perché qualcuno ha dimenticato di chiudere un'applicazione che sta bloccando alcuni file che Windows deve aggiornare e, anziché interrompere l'installazione, Windows registra semplicemente le modifiche ai file per l'avvio successivo. 2. Un riavvio a freddo sulla mia macchina corrente che esegue Windows 10 richiede circa 15 secondi, metà dei quali è tempo POST.
Robert Harvey,

@ Robert-Qual è la tua definizione di avvio startup? Arrivare alla schermata di accesso / desktop non è poi così male, sta aspettando che tutti questi servizi vengano avviati in modo da poter effettivamente utilizzare il computer che è un problema. Se il tuo tempo include l'avvio dei servizi, qual è la tua configurazione? Concesso che non ho l'ultimo e il più grande ma ho abbastanza computer decenti e il mio computer di lavoro impiega circa 3 minuti e la mia casa circa 2 1/2 prima di poter iniziare a lavorarci.
Dunk

@Dunk: acquista un SSD.
Ben Voigt,

@ Ben-Non sono il prossimo a casa per un nuovo computer, ma mio figlio lo è. Quindi lo costruirò per Natale e lo controllerò di persona. Tuttavia, i rapporti sui test di riferimento che ho letto mostrano miglioramenti della velocità del 50%, non del 1000% come Robert vede sui miei sistemi. Il 1000% vale sicuramente la seccatura di un aggiornamento. 50% non così tanto.
Dunk,

Risposte:


49

È una conseguenza delle decisioni ingegneristiche.

Su un sistema Linux, è possibile eliminare un file ancora in uso; il file system utilizza essenzialmente una forma di conteggio dei riferimenti e avere il file aperto è semplicemente un altro riferimento ad esso. Quando lo chiudi, il file verrà ripulito. Di conseguenza, è possibile sostituire il codice del sistema operativo principale e i file di dati senza doverli arrestare e riavviare (ovvero riavviare).

Su Windows, l'apertura di un file lo blocca nel file system e non può essere eliminato. Ciò significa che il codice attualmente in esecuzione non può essere aggiornato senza un riavvio. Ma questo significa anche che puoi sempre sapere esattamente quale versione è in esecuzione sul tuo sistema; con il modello Linux, è possibile ricevere un importante aggiornamento del software di sistema, applicarlo correttamente e non averlo ancora operativo sul proprio sistema, poiché la vecchia versione non aggiornata è ancora in esecuzione.

È un compromesso ingegneristico, come la maggior parte delle cose nell'informatica.


6
@Ian No, è possibile riavviare i servizi per applicare gli aggiornamenti. Oppure, nel caso del kernel, puoi usare ksplice, kpatch, ecc. O le nuove funzionalità di Linux 4.0.
tata

2
@Deduplicator, certo; Sono solo pessimista sul tasso di adozione. Un team di sviluppo con cui lavoro ha annunciato che non accetteranno più alcuna patch che aggiunge il supporto per le funzionalità opzionali di systemd dopo un bug nel supporto di watchdog basato su socket di notifica di systemd sufficientemente antico ha portato a una nuova copia del loro demone essere girato (oltre a quelli vecchi!) una volta al secondo.
Charles Duffy,

1
@krlmlr: ciò non ti consente di eliminare un file aperto. Dalla documentazione : "La funzione DeleteFile contrassegna un file per l'eliminazione alla chiusura. Pertanto, l'eliminazione del file non si verifica fino alla chiusura dell'ultimo handle per il file" È ancora possibile sostituirlo, usando MoveFileper rimuovere quello vecchio .
Ben Voigt,

1
@Ian, per "banale" intendo chiunque sia responsabile della costruzione di un sistema di aggiornamento di una distribuzione Linux saprà come farlo accadere dalla testa della testa, quindi la domanda diventa se è una buona idea eseguire automaticamente (o come esporlo all'utente), non se sia possibile.
Charles Duffy,

2
@CharlesDuffy Non so come funzioni, ma il pacchetto needrestart di Debian fa il lavoro che stai descrivendo, ovvero riavvia automaticamente i servizi i cui eseguibili / librerie sono stati appena aggiornati.
zwol,

3

È una conseguenza della visione delle aspettative degli utenti previste.

I sistemi Linux sono modellati dopo l'esecuzione di unix sui server. L'uptime è stato un punto di vanto in queste comunità. Tutto ciò che ha ridotto i tempi di funzionamento è stato negativo. E questo è un effetto collaterale dell'aspettativa che il computer avesse più utenti e che i tempi di inattività della pianificazione dovevano essere coordinati con più utenti.

Windows è stato progettato per il mercato dei PC. Al momento in cui è stato introdotto il fatto di poter uscire da un programma e avviarne un altro senza riavviare, era il segno di un utente esperto di computer. Per questo motivo non c'era motivo di non usare i nomi di file come identificatore principale durante la progettazione di ntfs.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.