Windows Nano Server API

2016 ließ Microsoft mit dem Titel Nano Server aufhorchen. Offenbar war ihnen der Server-Core doch wieder zu groß geworden und so wurde eine neue Abspeck-Kur vollzogen, die eine Installation von Windows Server unter einem Gigabyte Festplattenplatz möglich machte.

Für mich stellte sich nun die Frage:

Welche APIs sind da wohl herausgefallen?


Die Antwort war schnell gefunden auf docs.microsoft.com.

Software, die gegen andere APIs linkt als die aufgelisteten, wird unter Nano Server einfach nicht laufen.

Natürlich musste ich das umgehend mit gatecli testen und stellte mit Bedauern fest: das GATE-Framework ist nicht Nano-Server-tauglich.

Das konnte ich natürlich nicht auf mir sitzen lassen und durchforstete die Quellcodes. Denn eigentlich sollten reine Konsolenanwendungen keine UI-Funktionen nutzen und nur wenige rudimentäre Windows APIs einsetzen.

Fündig wurde ich überraschenderweise bei den Prozess-APIs. Ich hatte dort eingebaut, dass gate_process_terminate() die Fenster eines Prozesses ausfindig machen soll um denen ein Exit-Signal zu senden. Und eben diese Funktionen stoßen beim Nano Server auf Ablehnung.

Die Lösung war aber denkbar einfach: Auch diese Funktionen wandern in den Platform-Support-Layer und werden nur geladen und genutzt, wenn sie auch vorhanden sind.

Und nach ein paar anderen Kleinigkeiten testete ich ein neues Release diesmal mit Erfolg.
Ich kann somit offiziell behaupten, dass das GATE Framework Nano-Server-tauglich ist und ich vermute mal, dass diesem Kriterium nicht jede Bibliothek gerecht wird.

Fazit

Ein guter Tag und eine schöne neue gewonnene Erkenntnis. So kann das Leben gerne weiterlaufen.

Der Nano Server war ursprünglich für VMs gedacht, doch in Zeiten von Docker hat Microsoft den Fokus neu ausgerichtet.
Mit dem Server 2019 sind Nano Server Instanzen nur noch Docker-Enterprise Container und zeichnen sich durch ihre geringe Größe aus. Nur noch wenige hundert Megabytes benötigt ein Nano-Image und das spart bei vielen Instanzen enorm viel Speicherplatz.

Ich werde diese Zielplattform also im Auge behalten und vermute, dass auch in Zukunft immer wieder kleine Änderungen deshalb notwendig sein werden.

… aber hey, ein paar Herausforderungen braucht man schließlich!