Washi
10.07.2023, 10:47 Uhr
TinySharp: Die kleinste .NET Hello World-Binärdatei
Programmierer Washi geht der Frage nach, wie groß die minimale Anzahl von Bytes ist, die eine ausführbare .NET-Datei enthalten muss, damit die CLR die Zeichenfolge "Hello, World!" auf der Standardausgabe ausgibt.
In seinem Beitrag will Programmierer Washi die Grenzen des .NET-Moduldateiformats ausloten, es so klein wie möglich machen und es trotzdem wie eine normale ausführbare Datei auf einem typischen Windows-Rechner mit installiertem .NET Framework funktionieren lassen.
Sein Weg, den Washi ausführlich in diesem Blogbeitrag beschreibt, führt von einer 4,6 KByte großen Hello-World-Datei, die vom C#-Compiler kompiliert wurde, zu einer handgefertigten PE-Datei, die mit 834 Byte (ohne Nullbytes am Ende) auskommt. Noch kleiner, meint Washi, geht es nicht, er will sich aber gerne eines Besseren belehren lassen.
Der endgültige Quellcode für seinen Beitrag ist in diesem GitHub-Repository zu finden.