Patch (Software): Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
[[Datei:Harvard Mark I program tape.agr.jpg|mini|rechts|[[Lochstreifen]] mit zwei Flicken]]
[[Datei:Harvard Mark I program tape.agr.jpg|mini|rechts|[[Lochstreifen]] mit zwei Flicken]]


Ein '''{{lang|en|Patch}}''' ([[Maskulinum]], selten [[Neutrum]]; von {{enS|to patch}} = flicken, ausbessern und ''{{lang|en|patch}}'' = [aufgesetzter] Flicken, Flickwerk in der Bedeutung von ''Reparatur bzw. Nachbesserung'') ist eine Korrekturauslieferung für [[Software]] oder [[Daten]] aus Endanwendersicht, um Fehler zu beheben, bekannt gewordene Sicherheitslücken zu schließen sowie bislang nicht vorhandene Funktionen nachzurüsten. Teilweise werden auch Änderungen an einer Software ohne Wissen der Käufer oder Nutzer von Software installiert, denn oftmals wird im [[Änderungsprotokoll]] ({{enS|changelog}}), wenn überhaupt vorhanden, nicht jede einzelne Änderung (bzw. jeder Einzel-{{lang|en|Patch}}) auch dokumentiert. Größere Nachbesserungen, die nicht nur zahlreiche bereits davor erhältliche {{lang|en|Patches}} (nach teils wöchentlichen „{{lang|en|[[Patchday]]s}}“) enthalten, werden oft in Form von größeren Aktualisierungen verteilt, wie beispielsweise ''[[Service Pack]]s'' bei (älteren) [[Microsoft Windows|Windows]]- und [[Microsoft Office|Office]]-Versionen von Microsoft.
Ein '''{{lang|en|Patch}}''' ([[Maskulinum]], selten [[Neutrum]]; von {{enS|to patch}} = flicken, ausbessern und ''{{lang|en|patch}}'' = [aufgesetzter] Flicken, Flickwerk in der Bedeutung von ''Reparatur bzw.  
* Nachbesserung'') ist eine Korrekturauslieferung für [[Software]] oder [[Daten]] aus Endanwendersicht, um Fehler zu beheben, bekannt gewordene Sicherheitslücken zu schließen sowie bislang nicht vorhandene Funktionen nachzurüsten.  
* Teilweise werden auch Änderungen an einer Software ohne Wissen der Käufer oder Nutzer von Software installiert, denn oftmals wird im [[Änderungsprotokoll]] ({{enS|changelog}}), wenn überhaupt vorhanden, nicht jede einzelne Änderung (bzw.  
* jeder Einzel-{{lang|en|Patch}}) auch dokumentiert.  
* Größere Nachbesserungen, die nicht nur zahlreiche bereits davor erhältliche {{lang|en|Patches}} (nach teils wöchentlichen „{{lang|en|[[Patchday]]s}}“) enthalten, werden oft in Form von größeren Aktualisierungen verteilt, wie beispielsweise ''[[Service Pack]]s'' bei (älteren) [[Microsoft Windows|Windows]]- und [[Microsoft Office|Office]]-Versionen von Microsoft.


Der Begriff war bereits gebräuchlich, als (minimale) Korrekturen an Software noch auf [[Lochkarte]]n durch Stanzen beziehungsweise Zukleben einzelner Löcher bewerkstelligt wurden.
Der Begriff war bereits gebräuchlich, als (minimale) Korrekturen an Software noch auf [[Lochkarte]]n durch Stanzen beziehungsweise Zukleben einzelner Löcher bewerkstelligt wurden.


== Abgrenzung ==
== Abgrenzung ==
Ein Patch ist eine Fehlerbehebung für ausführbare Programme beziehungsweise [[Betriebssystem]]e und kann auch kleinere Funktionserweiterungen enthalten. Er wird mitunter zeitlich begrenzt angeboten, bis mit einem Versions-Update das Problem auch in der aktuell verfügbaren Programmversion behoben ist.
Ein Patch ist eine Fehlerbehebung für ausführbare Programme beziehungsweise [[Betriebssystem]]e und kann auch kleinere Funktionserweiterungen enthalten.  
* Er wird mitunter zeitlich begrenzt angeboten, bis mit einem Versions-Update das Problem auch in der aktuell verfügbaren Programmversion behoben ist.
* Ein Bugfix behebt [[Programmfehler|Fehler]] im [[Computerprogramm|Programm-Quellcode]], die Fehlfunktionen hervorrufen können.
* Ein Bugfix behebt [[Programmfehler|Fehler]] im [[Computerprogramm|Programm-Quellcode]], die Fehlfunktionen hervorrufen können.
* Ein [[Hotfix]] ist eine besonders wichtige, sehr dringende Fehlerbehebung für ausführbare Programme beziehungsweise Betriebssysteme.
* Ein [[Hotfix]] ist eine besonders wichtige, sehr dringende Fehlerbehebung für ausführbare Programme beziehungsweise Betriebssysteme.
Zeile 15: Zeile 20:
== Ziele für Patches ==
== Ziele für Patches ==
=== Patch für Binärprogramme ===
=== Patch für Binärprogramme ===
Ein Patch für ein Binärprogramm ersetzt in der Regel eine oder mehrere Dateien durch eine neue Version. {{lang|en|Patches}} für Binärprogramme werden meist von Herstellern proprietärer Software für ihre eigenen Programme veröffentlicht. Verbreitet sind {{lang|en|Patches}} für Binärprogramme auch unter Softwarepiraten. Hier wird mit einem Patch meist ein [[Kopierschutz]] umgangen. Auch in der Computerspieleszene sind {{lang|en|Patches}} verbreitet, um Spiele zu modifizieren.
Ein Patch für ein Binärprogramm ersetzt in der Regel eine oder mehrere Dateien durch eine neue Version. {{lang|en|Patches}} für Binärprogramme werden meist von Herstellern proprietärer Software für ihre eigenen Programme veröffentlicht.  
* Verbreitet sind {{lang|en|Patches}} für Binärprogramme auch unter Softwarepiraten.  
* Hier wird mit einem Patch meist ein [[Kopierschutz]] umgangen.  
* Auch in der Computerspieleszene sind {{lang|en|Patches}} verbreitet, um Spiele zu modifizieren.


Für [[Computerprogramm|Programme]] (oder seltener [[Betriebssystem]]e) werden auch Aktualisierungen per Internet angeboten, die heruntergeladen und eingespielt werden können. <!-- Microsoft Update Service --> <!-- Unter Linux können Paket-Management-Systeme einzelne Programm-Pakete wahlweise von einem lokalen Medium wie einer CD-ROM, oder von entfernten Quellen, so auch aus dem Internet, in das System einspielen. -->
Für [[Computerprogramm|Programme]] (oder seltener [[Betriebssystem]]e) werden auch Aktualisierungen per Internet angeboten, die heruntergeladen und eingespielt werden können. <!-- Microsoft Update Service --> <!-- Unter Linux können Paket-Management-Systeme einzelne Programm-Pakete wahlweise von einem lokalen Medium wie einer CD-ROM, oder von entfernten Quellen, so auch aus dem Internet, in das System einspielen. -->


Zu Zeiten des Betriebssystems [[CP/M]] waren Bildschirm- und Druckersteuerung noch nicht Teil des Betriebssystems selbst. Die Anpassung in Form von [[Escape-Sequenz]]en oder kleinen [[Maschinensprache|Maschinenprogrammen]] musste daher im Code des [[Anwenderprogramm]]s vorgenommen werden, der dazu bereits reservierte Patch-Bereiche vorsah. Beispiele dafür sind [[WordStar]], [[dBASE]] und [[SuperCalc]]. Das Patchen wurde meist mit Hilfe eines [[Debugger]]s vorgenommen.
Zu Zeiten des Betriebssystems [[CP/M]] waren Bildschirm- und Druckersteuerung noch nicht Teil des Betriebssystems selbst.  
* Die Anpassung in Form von [[Escape-Sequenz]]en oder kleinen [[Maschinensprache|Maschinenprogrammen]] musste daher im Code des [[Anwenderprogramm]]s vorgenommen werden, der dazu bereits reservierte Patch-Bereiche vorsah.  
* Beispiele dafür sind [[WordStar]], [[dBASE]] und [[SuperCalc]].  
* Das Patchen wurde meist mit Hilfe eines [[Debugger]]s vorgenommen.


=== {{Anker|Quellcode|Quelltext}}Patch für Quellcode ===
=== {{Anker|Quellcode|Quelltext}}Patch für Quellcode ===
Ein Patch für Quellcode enthält nur die geänderten Zeilen im Programmcode. Am weitesten verbreitet sind die Formate „Context-diff“ und „Unified-diff“. Diese {{lang|en|Patches}} dienen dazu, die Änderungen zu dokumentieren und kommunizieren. {{lang|en|Patches}} sind ein essenzieller Bestandteil der Softwareentwicklung.
Ein Patch für Quellcode enthält nur die geänderten Zeilen im Programmcode.  
* Am weitesten verbreitet sind die Formate „Context-diff“ und „Unified-diff“.  
* Diese {{lang|en|Patches}} dienen dazu, die Änderungen zu dokumentieren und kommunizieren. {{lang|en|Patches}} sind ein essenzieller Bestandteil der Softwareentwicklung.


Unter [[Unix]] werden Programmcode-{{lang|en|Patches}} mit dem Programm ''[[diff]]'' erzeugt. Mit dem Programm ''[[Patch (Unix)|patch]]'', ursprünglich von [[Larry Wall]] geschrieben, kann man einen Patch automatisch einspielen.
Unter [[Unix]] werden Programmcode-{{lang|en|Patches}} mit dem Programm ''[[diff]]'' erzeugt.  
* Mit dem Programm ''[[Patch (Unix)|patch]]'', ursprünglich von [[Larry Wall]] geschrieben, kann man einen Patch automatisch einspielen.


Die meisten verbreiteten [[Versionsverwaltung]]ssysteme benutzen Patches, um Änderungen zwischen Dateiversionen festzuhalten. In [[Git]]-[[Repository|Repositories]] können mittels <code>git diff</code> lokale Änderungen ausgegeben werden, mit <code>git format-patch</code> {{lang|en|Patches}} (für den Versand per E-Mail) erstellt werden und mittels <code>git apply</code> {{lang|en|Patches}} angewandt werden.
Die meisten verbreiteten [[Versionsverwaltung]]ssysteme benutzen Patches, um Änderungen zwischen Dateiversionen festzuhalten.  
* In [[Git]]-[[Repository|Repositories]] können mittels <code>git diff</code> lokale Änderungen ausgegeben werden, mit <code>git format-patch</code> {{lang|en|Patches}} (für den Versand per E-Mail) erstellt werden und mittels <code>git apply</code> {{lang|en|Patches}} angewandt werden.


== Patch-Pakete ==
== Patch-Pakete ==
Oft fassen die Hersteller mehrere {{lang|en|Patches}} zu einem „Paket“ zusammen, welches der Administrator insgesamt installieren sollte. Diese Pakete haben je nach Hersteller unterschiedliche Bezeichnungen. Auch unterscheidet man zwischen [[kumuliert]]en (oft auch als ''kumulativ'' bezeichnet) und nicht-kumulierten Paketen. Bei kumulierten Paketen muss nur das neueste installiert werden, weil es die {{lang|en|Patches}} der vorherigen Pakete enthält. Bei nicht-kumulierten Paketen muss man alle Pakete in der richtigen Reihenfolge installieren.
Oft fassen die Hersteller mehrere {{lang|en|Patches}} zu einem „Paket“ zusammen, welches der Administrator insgesamt installieren sollte.  
* Diese Pakete haben je nach Hersteller unterschiedliche Bezeichnungen.  
* Auch unterscheidet man zwischen [[kumuliert]]en (oft auch als ''kumulativ'' bezeichnet) und nicht-kumulierten Paketen.  
* Bei kumulierten Paketen muss nur das neueste installiert werden, weil es die {{lang|en|Patches}} der vorherigen Pakete enthält.  
* Bei nicht-kumulierten Paketen muss man alle Pakete in der richtigen Reihenfolge installieren.


Beispiele:
Beispiele:
Zeile 44: Zeile 63:
{{Hauptartikel|Crack (Software)}}
{{Hauptartikel|Crack (Software)}}


Ein Patch mit dem Zweck der Umgehung von Einschränkungen oder Sperren wird als „{{lang|en|Crack}}“ bezeichnet. Dabei wird der [[Binärcode]] eines meist kommerziellen Programms z.&nbsp;B. zur Schonung der empfindlichen Original-CD derart verändert, dass dieses danach ohne Kopierschutz funktioniert. Diese Änderung ist in den meisten Ländern verboten.
Ein Patch mit dem Zweck der Umgehung von Einschränkungen oder Sperren wird als „{{lang|en|Crack}}“ bezeichnet.  
* Dabei wird der [[Binärcode]] eines meist kommerziellen Programms z.&nbsp;B.  
* zur Schonung der empfindlichen Original-CD derart verändert, dass dieses danach ohne Kopierschutz funktioniert.  
* Diese Änderung ist in den meisten Ländern verboten.


=== Community-Patch ===
=== Community-Patch ===

Version vom 19. Dezember 2023, 10:35 Uhr

topic - Kurzbeschreibung

Beschreibung

Lochstreifen mit zwei Flicken

Ein Vorlage:Lang (Maskulinum, selten Neutrum; von = flicken, ausbessern und Vorlage:Lang = [aufgesetzter] Flicken, Flickwerk in der Bedeutung von Reparatur bzw.

  • Nachbesserung) ist eine Korrekturauslieferung für Software oder Daten aus Endanwendersicht, um Fehler zu beheben, bekannt gewordene Sicherheitslücken zu schließen sowie bislang nicht vorhandene Funktionen nachzurüsten.
  • Teilweise werden auch Änderungen an einer Software ohne Wissen der Käufer oder Nutzer von Software installiert, denn oftmals wird im Änderungsprotokoll (), wenn überhaupt vorhanden, nicht jede einzelne Änderung (bzw.
  • jeder Einzel-Vorlage:Lang) auch dokumentiert.
  • Größere Nachbesserungen, die nicht nur zahlreiche bereits davor erhältliche Vorlage:Lang (nach teils wöchentlichen „Vorlage:Lang“) enthalten, werden oft in Form von größeren Aktualisierungen verteilt, wie beispielsweise Service Packs bei (älteren) Windows- und Office-Versionen von Microsoft.

Der Begriff war bereits gebräuchlich, als (minimale) Korrekturen an Software noch auf Lochkarten durch Stanzen beziehungsweise Zukleben einzelner Löcher bewerkstelligt wurden.

Abgrenzung

Ein Patch ist eine Fehlerbehebung für ausführbare Programme beziehungsweise Betriebssysteme und kann auch kleinere Funktionserweiterungen enthalten.

  • Er wird mitunter zeitlich begrenzt angeboten, bis mit einem Versions-Update das Problem auch in der aktuell verfügbaren Programmversion behoben ist.
  • Ein Bugfix behebt Fehler im Programm-Quellcode, die Fehlfunktionen hervorrufen können.
  • Ein Hotfix ist eine besonders wichtige, sehr dringende Fehlerbehebung für ausführbare Programme beziehungsweise Betriebssysteme.
  • Eine Aktualisierung () verändert den bestehenden Funktionsumfang von ausführbaren Programmen und enthält oft auch Fehlerbereinigungen.

Ziele für Patches

Patch für Binärprogramme

Ein Patch für ein Binärprogramm ersetzt in der Regel eine oder mehrere Dateien durch eine neue Version. Vorlage:Lang für Binärprogramme werden meist von Herstellern proprietärer Software für ihre eigenen Programme veröffentlicht.

  • Verbreitet sind Vorlage:Lang für Binärprogramme auch unter Softwarepiraten.
  • Hier wird mit einem Patch meist ein Kopierschutz umgangen.
  • Auch in der Computerspieleszene sind Vorlage:Lang verbreitet, um Spiele zu modifizieren.

Für Programme (oder seltener Betriebssysteme) werden auch Aktualisierungen per Internet angeboten, die heruntergeladen und eingespielt werden können.

Zu Zeiten des Betriebssystems CP/M waren Bildschirm- und Druckersteuerung noch nicht Teil des Betriebssystems selbst.

Vorlage:AnkerPatch für Quellcode

Ein Patch für Quellcode enthält nur die geänderten Zeilen im Programmcode.

  • Am weitesten verbreitet sind die Formate „Context-diff“ und „Unified-diff“.
  • Diese Vorlage:Lang dienen dazu, die Änderungen zu dokumentieren und kommunizieren. Vorlage:Lang sind ein essenzieller Bestandteil der Softwareentwicklung.

Unter Unix werden Programmcode-Vorlage:Lang mit dem Programm diff erzeugt.

  • Mit dem Programm patch, ursprünglich von Larry Wall geschrieben, kann man einen Patch automatisch einspielen.

Die meisten verbreiteten Versionsverwaltungssysteme benutzen Patches, um Änderungen zwischen Dateiversionen festzuhalten.

  • In Git-Repositories können mittels git diff lokale Änderungen ausgegeben werden, mit git format-patch Vorlage:Lang (für den Versand per E-Mail) erstellt werden und mittels git apply Vorlage:Lang angewandt werden.

Patch-Pakete

Oft fassen die Hersteller mehrere Vorlage:Lang zu einem „Paket“ zusammen, welches der Administrator insgesamt installieren sollte.

  • Diese Pakete haben je nach Hersteller unterschiedliche Bezeichnungen.
  • Auch unterscheidet man zwischen kumulierten (oft auch als kumulativ bezeichnet) und nicht-kumulierten Paketen.
  • Bei kumulierten Paketen muss nur das neueste installiert werden, weil es die Vorlage:Lang der vorherigen Pakete enthält.
  • Bei nicht-kumulierten Paketen muss man alle Pakete in der richtigen Reihenfolge installieren.

Beispiele:

Herkunft

Patches werden nicht nur durch den ursprünglichen Softwarehersteller erstellt, sondern manchmal auch von Dritten mit unterschiedlicher Motivation.

Crack

Vorlage:Hauptartikel

Ein Patch mit dem Zweck der Umgehung von Einschränkungen oder Sperren wird als „Vorlage:Lang“ bezeichnet.

  • Dabei wird der Binärcode eines meist kommerziellen Programms z. B.
  • zur Schonung der empfindlichen Original-CD derart verändert, dass dieses danach ohne Kopierschutz funktioniert.
  • Diese Änderung ist in den meisten Ländern verboten.

Community-Patch

Vorlage:Hauptartikel

Eine Software wird durch den ursprünglichen Hersteller und Rechtehalter nicht mehr nachgebessert, gepflegt, wenn der Support beendet wurde, ein Nachfolgeprodukt vertrieben wird oder die Firma nicht mehr existiert. In diesen Fällen kann es vorkommen, dass die Nutzergemeinde versucht, die Pflege der Software mit Patches aufrechtzuerhalten, wenn dies nicht aus lizenzrechtlichen Gründen untersagt wird.


Anhang

Siehe auch


Links

Weblinks
  1. https://de.wikipedia.org/wiki/Patch_(Software)