Pre-XP Softwareentwicklung

Es ist endlich so weit: Ich teste das GATE Framework auf Windows 2000, NT4 und Windows 98.

Das witzige dabei: Das Entwicklungs-Konzept hierfür stammt von den Anpassungen für den Docker-Support für Windows Nano Server 2019.

Und so schließt sich ein Kreis von fast 25 Jahren Software-Erfahrung.


Optionale Schnittstellen

Damit GATE Software in Docker Images für Server 2016 und 2019 läuft, mussten einige APIs in den “platform-support layer” verschoben werden.
Dieser verwaltet eine Tabelle von Funktionszeigern, die beim Starten Schritt für Schritt dynamisch geladen werden (per LoadLibrary und GetProcAddress).

Die Idee ist, dass das GATE Framework nur gegen elementare Kernfunktionen einer Plattform direkt linkt und alles andere “optional” bei Bedarf nachlädt.

Das Framework kann auf diese Weise z.B.: Windows 10 Features nutzen (wenn verfügbar), bleibt aber weiter zu älteren Windows Versionen ohne Anpassungen und Hacks kompatibel.

So wird z.B. beim “Terminieren” von fremden Prozessen unter einem regulärem Windows System versucht, die entsprechenden Fenster über die bevorstehende Schließung zu benachrichtigen.
Aber in einer Docker-Sitzung existieren keine GUI APIs. Würden wir dieses Feature also fix einbinden, wäre die Anwendung nicht Docker-tauglich, doch über die “optionale” Variante läuft GATE Code eben in allen … oder sagen wir mal: in vielen Umgebungen.

Antike Windows Setups

Da nun mein aktuell “ältester” Hyper-Visor jener von Server 2012 ist, wird kein System älter als Windows XP SP3 und Server 2003 SP2 unterstützt. Windows 2000 lässt sich zwar noch installieren und mit den Integrations-Tools von Server 2008 sogar halbwegs benutzen, aber bei NT 4 und Win9x beißt man auf Granit.

Und leider kann ich wegen Docker auf meinem Entwicklersystem nicht mehr parallel VirtualBox laufen lassen.

Die umständliche Lösung:
Hyper-V hosted Windows XP und dieses hostet per Virtual-PC die älteren Systeme.

Und wenn man viel Zeit und Geduld hat, stellt man fest: Es funktioniert!

Etwas unterschätzt habe ich, wie schlecht diese Sandkisten auf meinem Celeron 1.6 GHz System performen. So weit ich erkennen kann liegt das auch zu einem großen Teil am I/O. Die CPU unterstützt keine I/O Virtualisierung und somit läuft der Zugriff auf eine Festplatte in einer VM in einer anderen VM über eine sehr sehr langsame Transportstrecke.

NT 4 Wiederauferstehung

NT4 Workstation ließ sich problemlos in Virtual PC installieren. Einzig der alte DHCP Dienst konnte keine IP empfangen, was durch eine statische Adresse schnell gelöst war.
Umständlich war dann “meine” übliche NT-Update-Routine.

  • Zuerst wird das Service Pack 3 eingespielt, welches eine Voraussetzung für den IE 4 ist. Leider musste ich erst ein deutsche Version davon finden, doch zum Glück stehen ja noch die alten PC-Magazin CDs in meinem Regal, wo eine solche Version auf CD 4 von 1998 zu finden war.
  • Nun wird der IE 4 mit der Active-Desktop Erweiterung installiert. Dieses Setup bringt nämlich die NT4-DLLs auf den Stand von Windows 98 was die UI-Kompatibilität erhöhen kann.
  • Jetzt wird auf das letzte verfügbare Service Pack 6a aktualisiert.
  • Danach werden die Virtual-PC Integration Tools eingespielt. Diese brauchen nämlich SP6 bevor sie sich installieren lassen.
  • Und am Ende folgt noch der IE6 SP1 um NT4 auf die “letzte” Stufe vor seinem Support-Ende zu bekommen. So erhält man zumindest ein paar Verschlüsselungsroutinen in den Crypto-APIs, die zur Zeit der Veröffentlichung von NT4 nicht Teil des Standards waren.

Nun konnte ich zuerst die GATE Tools auf den Host übertragen und von dort aus weiter zur NT4 Installation.

Beim ersten Start kam es noch zur Anzeige, dass ein Einsprungpunkt für eine Systemfunktion nicht gefunden wurde, doch das war nur eine, die ich wohl vergessen hatte.
Das Problem war schnell gelöst und dann startete ich erfolgreich gatecli unter NT4.

Fazit

Ja, diese Retro-Erfahrung hat mir wieder sehr viel Spaß gemacht und ich wünschte, ich könnte sofort meine Sourcen zu meinem jüngeren Ich in die Vergangenheit schicken.
Damals war Softwareentwicklung noch ein exotisches Neuland. Man freute sich über jedes Steinchen am Wegrand und war froh einfach dabei zu sein.

Der GATE Test belegt mir auf jeden Fall, dass das “Unabhängigkeitskonzept” durchführbar ist und sich somit eine ganz neue Bandbreite von Zielplattformen eröffnet.
Bin schon gespannt, ob ich dann demnächst unter Windows 98 auch Erfolge feiern kann.


Wenn sich eine triviale Erkenntnis mit Dummheit in der Interpretation paart, dann gibt es in der Regel Kollateralschäden in der Anwendung.
frei zitiert nach A. Van der Bellen
... also dann paaren wir mal eine komplexe Erkenntnis mit Klugheit in der Interpretation!