Anmelden

View Full Version : Templates und Patches



Robi
27-09-01, 07:47
Hallo *All,

ich fand im Oktoberheft des Midrange Magazin einen interesanten Artikel über die Sicherheit unter V5R1.
Dort wird von Templates, Patch-Code, und der zukünfitgen Möglichkeit der Objektrücküber-setzung die Rede. Wenn ich ehrlich bin, habe ich nicht viel verstanden.

- Kennt jemand den Artikel ?
- Wie (und warum) Patche ich auf der
400 ein Objekt ?
- Was ist mit Templates gemeint ?

Danke,
Robi

Sven Schneider
28-09-01, 12:05
Hallo Robi,

Zur Architektur der AS/400 (vereinfacht):

Es wird mit einer maschinenunanhängigen Schnittstelle gearbeitet (MI-Code).
D.h. ein beliebiger Compiler erstellt ein Objekt-Template (auf MI-Ebene) und ein Translator erstellt den prozessorspezifischen Binärcode(für RISC oder CISC Prozessor).
Im PGM-Objekt wird immer beides gespeichert (Template und Binärcode).

Mit dem Objekt-Template kann der Translator immer wieder den prozessorspezifischen Binärcode erzeugen ohne das die Source vorhanden sein muss.
So wurde übrigens auch die Umstellung CISC->RISC bewerkstelligt.

Patches sind Änderungen am Binärcode.
Diese gehen natürlich verloren, wenn per Original-Template (wird ja mit dem Objekt gespeichert) der Binärcode neu übersetzt wird.

Zusätzlich zum Template kann man auch noch sogenannte Observability-Daten im PGM-Objekt speichern. Mit diesen Observability-Daten kann aber relativ leicht der Source-Code rekompiliert werden.

Deshalb generieren viele Lieferanten ihre Produkte ohne Observability-Daten.

Vor V5R1 wurde beim entfernen der Observability-Daten auch das Objekt-Template mit entfernt.
Das ist jetzt ab V5R1 nicht mehr so.
Somit kann der Binärcode jederzeit per Template neuerstellt werden.
Böswillige Veränderungen am Binärcode (auch Patches) können somit entfernt werden.

Warum Patches :
Der Translator kann nur das Umsetzen, was die MI-Schnittstelle bietet.
Der RISC-Prozessor hat aber u.U. effektivere Instruktionen. Um diese zu nutzen patche ich den Binärcode.
Ist im Prinzip Assembler auf Umwegen.

Ich hoffe das ich mich verständlich ausgedrückt habe.

Sven


[Dieser Beitrag wurde von Sven Schneider am 28. September 2001 editiert.]