Frage von DerLappen, 3

Was genau stellen z.B. Windows Updates auf Windows an?

moin moin Lappen Mal wieder hier ;)

Ich stelle mir das immer bildlich vor, dass ein Software Produkt eine Stahlwand mit viele Löschern ist und dass Updates wie lumpige Lappen sind, die man einfach in die Löcher steckt, irgendwie provisorisch. Verändern Updates vorhandene Daten, sodass es eine perfekte Verschmelzung mit den Updates gibt, oder, bleiben die alten fehlerhaften Daten da und werden nur irgendwie "übersprungen"? Ich bin mir bewusst, dass ich komische Fragen steller aber, ich hab halt eine komische Fantasie! ganz einfach. ;)

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von FaronWeissAlles, 2

Stark vereinfacht: Eine Software besteht aus Daten(variablen) und Funktionen (die mit Daten handtieren). Diese Variablen und Funktionen (nennen wir´s mal "Programminhalt") haben einen bestimmten Zweck / Nutzen, stammen von verschiedenen Entwicklern innerhalb und ggf. auch außerhalb von Microsoft. Der Programminhalt wird (meist zweckgebunden) in mehrere Module aufgeteilt, auch "Programmbilbiothek" genannt (Laien kennen das als EXE oder DLL). Manche Funktionen und Variablen sind öffentlich ("Schnittstelle"), andere sind  DLL-intern. Die öffentlichen kann jeder nutzen der die DLL anspricht, das können auch Programme anderer Unternehmen sein, so wie DirectX und dessen Unterkomponenten Direct3D, Direct2D, XAudio, XInput, etc (aufgeteilt in viele DLLs, die meist dx*.dll, d3d*.dll heißen) was z.B. von Spieleengines dann benutzt wird. Jede Programmbibliothek, jede Komponente (die aus 1 oder mehreren Bibliotheken bestehen), jedes Produkt und Unterprodukt hat eine Versionsnummer die einmalig ist. Optimalerweise wird bei jeder Änderung (zumindest bei einer öffentlich verteilten) die Versionsnummer geändert, um nachvollziehen zu können wenn irgendeine Datei/Modul/Komponente/Programm ein Problem macht bzw. was es kann und anbietet.

Ein Programmfehler kann jetzt sein wenn ein Programm nicht das macht was es tun sollte, weil z.B. bei den unzähligen Funktionen die aufgerufen werden irgendwann eine Funktion A Daten in einem bestimmten Format erwartet hat, aber Funktion B sie in einem anderen geliefert hat. Kann das dann genutzt werden um die Sicherheit des Computers zu gefährden (z.B. weil man dadurch Code einschleusen kann der was böses macht) hat man nicht nur ein Bug sondern einen gefährlichen Bug (eine "Sicherheitslücke"). Spätestens hier sollte dann ein Update eingespielt werden.

Ein Update kann dabei nicht nur 1 behobenen Fehler an einer (oder mehreren) DLLs/EXen beinhalten sondern mehrere die zu dem Update zusammengefasst wurden. Es können auch völlig neue Funktionen in die Programmbibliotheken eingefügt worden sein, muss also nicht nur Bugfix sein. Wobei hier gerne die Sicherheitsänderungen von den Featureänderungen in getrennten Updates ausgeliefert werden.

Das Aufspielen des Updates funktioniert dabei transaktionell, im Grunde nach folgenden Schritten (da Microsoft nicht wirklich verrät was da technisch genau abläuft kann ich auch nur schätzen):


- checken obs neue Updates gibt und ob das Windows betroffen ist / sie noch nicht hat

- Alles herunterladen

- Installation vorbereiten  - Wiederherstellungspunkt erstellen, neue Versionen entpacken und Prüfung der Integrität (alles korrekt übertragen, signiert, etc)

- "Installieren" - dazu zählt die Datei an den richtigen Ort schieben, sich vormerken was die alten, aktuell verwendeten Dateien sind und was die neuen, sowie nochmal überprüfen ob alles ok ist. Wenns bei einem Update Fehler gab, abbrechen und wieder aufräumen (bisher wurde noch keine wirkliche Änderung am System vorgenommen).

- Nach "Installation" um Neustart bittenBeim Neustart werden dann die neuen Komponenten und Module verwendet anstatt den alten

- Nach dem Neustart werden ggf. noch Konfigurationen durchgeführt und aufgeräumt (alte Dateien entfernt/verschoben)

So ungefähr. Wichtig ist im Updateprozess jedenfalls dass alle kritischen Änderungen möglichst atomar geschehen, also möglichst alles so weit wie möglich ohne Störung / Interaktion mit dem laufenden System vorbereiten, den "Schalter" umlegen die neuen Versionen zu nutzen und dann das alte, nicht mehr benötigte aufräumen - damit möglichst wenig während des Updateprozesses schieflaufen kann. Deswegen brauchts auch sehr oft einen Neustart bei Windows Updates, da fast alle Updates irgend eine wichtige Komponente betrifft die gerade am laufen ist. Die Änderung wird eingespielt, aber erst benutzt wenn du das nächste mal hochfährst. Bei Komponenten die nicht so kritisch sind / nicht in gerade in Verwendung sind kann das auch ohne Neustart passieren (zumindest theoretisch).




Kommentar von DerLappen ,

Wow danke für die ausführliche Antwort^^

Antwort
von DrErika, 2

So ein Softwareprodukt wie Windows ist eher wie ein Schuppen. Die Updates betreffen dann z.B. ein Fenster, welches ausgetauscht wird.

Keine passende Antwort gefunden?

Fragen Sie die Community