Warum muss Windows ständig neu gestartet werden, Linux hingegen nicht? [Duplikat]

21

Diese Frage hat hier bereits eine Antwort:

Wie viele Menschen verwende ich auf meinem Computer duale Systeme. Wichtige Updates erfordern einen ständigen Neustart unter Windows, obwohl ich glaube, dass mir dies unter Linux noch nie passiert ist. Welche Eigenschaften der einzelnen Betriebssysteme entscheiden darüber, ob dies möglich ist oder nicht?

Benjamin Lindqvist
quelle
5
Ich muss meine Linux-Systeme immer noch neu starten, um ein Kernel-Update zu installieren. Ich weiß, dass es auch darum geht, aber ich benötige keine so extreme Betriebszeit. Obwohl es selten ein Kernel-Update für meine Server oder Installationen mit langfristiger Unterstützung gibt, erhalte ich gelegentlich Kernel-Updates für meine neuesten Systeme - ich sehe hier keinen großen Unterschied zwischen Linux und Windows. Linux-Updates sind jedoch weitaus weniger hinderlich als Windows-Updates, da sie einen Neustart nicht in ein Wartespiel verwandeln.
amon
1
Nun, eigentlich ... 1. Dies ist heute bei Windows weniger ein Problem als früher. In der Regel hat jemand vergessen, eine Anwendung zu schließen, die einige zu aktualisierende Dateien sperrt, und statt die Installation fehlzuschlagen, registriert Windows diese Dateiänderungen einfach für den nächsten Start. 2. Ein Kaltstart auf meinem aktuellen Computer unter Windows 10 dauert ungefähr 15 Sekunden, die Hälfte davon ist POST-Zeit.
Robert Harvey
@ Robert-Was ist Ihre Definition für das Beenden des Startvorgangs? Es ist nicht so schlimm, zum Anmelde- / Desktop-Bildschirm zu gelangen, sondern darauf zu warten, dass alle diese Dienste gestartet werden, damit Sie den Computer tatsächlich nutzen können, der Ihnen weh tut. Wenn Ihre Zeit das Starten der Dienste einschließt, wie ist Ihr Setup? Zugegeben, ich habe nicht den neuesten und besten Computer, aber ich habe genügend vernünftige Computer und mein Arbeitscomputer benötigt ungefähr 3 Minuten und mein Zuhause ungefähr 2 1/2, bevor ich anfangen kann, daran zu arbeiten.
Eintauchen
@Dunk: Kaufen Sie eine SSD.
Ben Voigt
@Ben-ich stehe in meinem Haus nicht in der Reihe nach einem neuen Computer, aber mein Sohn ist. Also baue ich ihm eine für Weihnachten und überprüfe sie aus erster Hand. Benchmark-Testberichte, die ich gelesen habe, zeigen jedoch etwa 50% Geschwindigkeitsverbesserungen, nicht 1000%, wie Robert meine Systeme sieht. 1000% sind definitiv den Aufwand eines Upgrades wert. 50% nicht so sehr.
Eintauchen

Antworten:

49

Es ist eine Folge von technischen Entscheidungen.

Auf einem Linux-System ist es möglich, eine Datei zu löschen, die noch verwendet wird. Das Dateisystem verwendet im Wesentlichen eine Form der Referenzzählung, und das Öffnen der Datei ist lediglich eine weitere Referenz darauf. Wenn Sie es schließen, wird die Datei bereinigt. Infolgedessen ist es möglich, Kern-OS-Code und -Datendateien zu ersetzen, ohne sie herunterzufahren und neu zu starten (auch Neustart genannt).

Unter Windows wird eine Datei beim Öffnen im Dateisystem gesperrt und kann nicht gelöscht werden. Dies bedeutet, dass der aktuell ausgeführte Code ohne einen Neustart nicht aktualisiert werden kann. Dies bedeutet aber auch, dass Sie immer genau wissen, welche Version auf Ihrem System ausgeführt wird. Nach dem Linux-Modell ist es möglich, ein wichtiges Systemsoftware-Update zu erhalten, erfolgreich anzuwenden und auf Ihrem System immer noch nicht betriebsbereit zu haben, da die alte, nicht aktualisierte Version noch ausgeführt wird.

Es ist ein technischer Kompromiss, wie die meisten Dinge im Computerbereich.

Mason Wheeler
quelle
6
@Ian Nein, Sie können Ihre Dienste neu starten, um die Updates anzuwenden. Im Fall des Kernels können Sie auch ksplice, kpatch usw. oder die neuen Funktionen in Linux 4.0 verwenden.
Kindermädchen
2
@ Deduplicator, klar; Ich bin nur pessimistisch in Bezug auf die Adoptionsrate. Ein Entwicklerteam, mit dem ich zusammenarbeite, hat angekündigt, dass es keine Patches mehr akzeptieren wird, die optionale Systemd-Funktionen unterstützen, nachdem ein Fehler in der Benachrichtigungs-Socket-basierten Watchdog-Unterstützung von ausreichend alten Systemd-Releases zu einer neuen Kopie des Daemons geführt hat einmal pro Sekunde (zusätzlich zu den alten!) hochgefahren werden.
Charles Duffy
1
@krlmlr: Damit können Sie keine geöffnete Datei löschen. In der Dokumentation heißt es : "Die DeleteFile-Funktion markiert eine Datei zum Löschen beim Schließen. Daher erfolgt das Löschen der Datei erst, wenn der letzte Punkt der Datei geschlossen ist." Sie können sie weiterhin ersetzen, indem MoveFileSie den alten Punkt aus dem Weg räumen .
Ben Voigt
1
@Ian, mit "trivial" meine ich, dass jeder, der für das Erstellen des Aktualisierungssystems einer Linux-Distribution verantwortlich ist, weiß, wie dies von Anfang an möglich ist. Daher stellt sich die Frage, ob es eine gute Idee ist, automatisch zu starten (oder wie man es verfügbar macht) nicht, ob es möglich ist.
Charles Duffy
2
@CharlesDuffy Ich weiß nicht, wie es unter der Haube funktioniert, aber das Debian- Needrestart- Paket erledigt den Job, den Sie beschreiben, dh startet Dienste, deren ausführbare Dateien / Bibliotheken gerade aktualisiert wurden, automatisch neu.
14.
3

Dies ist eine Konsequenz aus der Ansicht der erwarteten Benutzererwartungen.

Linux-Systeme werden nach Unix modelliert, das auf Servern ausgeführt wird. Die Betriebszeit war in diesen Gemeinden ein prahlerischer Punkt. Alles, was die Zeit verkürzte, war schlecht. Dies ist ein Nebeneffekt der Erwartung, dass der Computer mehrere Benutzer hatte und die Planung von Ausfallzeiten mit mehreren Benutzern koordiniert werden musste.

Windows wurde für den PC-Markt entwickelt. Zu der Zeit, als es eingeführt wurde, war das Wissen, dass man ein Programm beenden und ein anderes starten kann, ohne neu zu starten, das Zeichen eines erfahrenen Computerbenutzers. Aus diesem Grund gab es keinen Grund, beim Entwerfen von ntfs keine Dateinamen als primäre Kennung zu verwenden.

hildred
quelle