Allgemeines                                     Binary Diff/Binary Patch

Vor  nicht  allzu  langer  Zeit  galten  Computerfreaks noch als seltene
Gattung, whrend man heute Computer (und die zugehrigen Besitzer)  sehr
hufig antrifft.    Da  war es nicht verwunderlich, da mit dem Aufstieg
der Computer auch die Nutzung des Telefonnetzes per DF einen Aufschwung
erlebte.  So ist es heute nicht mehr selten, sich  neue  Versionen  oder
sogar  neue  Programme mittels Modem aus einer der zahlreichen Mailboxen
zu  besorgen,   anstatt   wie   frher   ber   den   langwierigen   und
kostenspieligen  Austausch  von  Disketten,  die  hin und wieder auf dem
Transportwege verloren gingen oder irreparabel beschdigt wurden.

Deshalb greift man heute (sofern man  schon  vom  DF-"Virus"  infiziert
ist)  zum Modem und zum Terminalprogramm und sucht sich in einer Mailbox
die neueste Software zum Download heraus.  Aber so ein  Download-Vorgang
dauert,  vor  allem  dann, wenn man keines der Highspeed-Modems besitzt.
Und je lnger der bertragungsvorgang  dauert,  desto  teurer  wird  der
Spa, sofern  man  sich  nicht  nur im Ortsnetz herumtreibt.  Jeder, der
schon mal einen 500 KByte Dateitransfer in  der  Fernzone  2  (z.B.  von
Mnchen nach Hamburg) mit 14400 BPS durchgefhrt hat, wei, wie "billig"
so etwas ist.

Trotz  der  leistungsfhigen  Archivierer  wie LHarc oder STZip sind die
Archive  nmlich  im   Schnitt   immer   grer   geworden,   denn   die
Atari-Programme   wurden   auch  immer  mehr  verbessert  und  in  ihrem
Leistungsumfang vergrert (was an und fr sich auch gut  ist,  denn  im
Moment  steht es um die Zukunft der Atari-Rechner wegen der Versumnisse
von Atari selber nicht gerade gut).

Besonders  problematisch  wird  es,  wenn  gerade  eine   neue   Version
herausgegeben  worden ist, und der Programmierer oder einer der Anwender
seiner Software entdeckt einen schwerwiegenden oder rgerlichen  Fehler,
bei  dem  man  eigentlich  eine  neue  Version sofort hinterher schicken
mte.  Manch einer tut das auch, aber bei den Anwendern, die erst  kurz
zuvor die neue Version erhalten haben, kommt dann keine Freude auf, weil
schon   wieder   ein   groes   Datenpaket   notwendig  ist  (die  etwas
"langsameren" Anwender strt so etwas natrlich nicht ;-)).

Hier greift Binary Diff ein.  Die blichen  Archivierer  knnen  Dateien
"nur"   komprimieren,  aber  sie  kennen  keinen  Bezugspunkt  oder  die
Umstnde, aus denen heraus die Dateien entstanden sind.  Wrde man  eine
x-beliebige  Datei  nehmen  und nur ein einziges Datenbyte verndern, so
wrde ein neu erstelltes Archiv  in  den  meisten  Fllen  den  gleichen
Umfang einnehmen.    Knnte  man aber dem Archivierer mitteilen, da die
neue Datei "zyx" aus der alten Datei "xyz" entstanden ist, so  wrde  im
optimalsten  Fall  der Archivierer nur folgende Informationen generieren
mssen, um aus "xyz" spter automatisch "zyx" erzeugen zu knnen:

    - Name der alten Datei als Referenz
    - Name, unter dem die neue Version gespeichert werden soll
    - Position des zu ndernden Datenbytes in der alten Datei
    - Neuer Wert fr dieses Datenbyte

So hnlich arbeitet auch Binary Diff, nur kann Binary Diff auch noch neu
hinzugekommene und entfernte Datenbytes erkennen, und dies nicht nur fr
eine einzelne Datei, sondern auch fr komplexe  Ver-  zeichnisstrukturen
innerhalb  eines  Laufwerks,  was  der  Arbeitsweise  eines Archivierers
hnelt, weshalb Archive, die von Binary Diff erzeugt worden  sind,  auch
fortan Diff-Archive genannt werden.

Wenn  man  einmal  ein Diff-Archiv erzeugt hat, so wird man feststellen,
da  es  einen  geringeren  Umfang  aufweist  (sofern  nicht  einer  der
berhmten  Ausnahmeflle,  die  bekanntlich  die  Regel besttigen, ein-
getreten ist; ich kann schlielich auch nicht zaubern, also warum sollte
Binary Diff das knnen?), aber mit der Hilfe von Binary  Patch  und  der
Vorgngerversion  der  zu  erneuernden  Software  erhlt  man  genau den
gleichen Stand, als wenn man ein Archiv auf die bliche  Art  und  Weise
erzeugt htte.  Der einzige Nachteil besteht nur darin, da man eben die
Vorgngerversion schon  besitzen mu.  In vielen Fllen trifft dies aber
zu (wer mchte schon mit veralteter Software arbeiten?), und genau  dann
ist  der  Einsatz  von Diff-Archiven nur von Vorteil, denn es wird nicht
nur ein kleineres  Archiv  mittels  Modem  bertragen  (das  schont  den
Geldbeutel),  sondern  whrend  der  Aktualisierung  der  alten Software
mittels Binary Patch wird auch gleich noch eine berprfung vorgenommen,
ob die alten Dateien auch wirklich in Ordnung sind.   Ist  dies  nmlich
nicht der Fall,  so kann die  Aktualisierung nicht  durchgefhrt werden,
was ansonsten dazu fhren knnte, da man mit einer beschdigten Version
weiterarbeiten wrde, und das will ja wohl niemand, oder?
