IT-Lexikon › Infrastruktur › BIG-REQUESTS

BIG-REQUESTS

Infrastruktur Svenska → Aktualisiert: 2026-10-08

Die X11-Erweiterung, die die Obergrenze für eine einzelne Anfrage von 256 Kilobyte auf 16 Megabyte anhob, mit einem Trick beim Längenfeld, den alte Server nie verstehen mussten.

Im X-Kernprotokoll beginnt jede Anfrage mit einem Header, dessen Länge in einem 16-Bit-Feld in Einheiten zu vier Byte angegeben wird. Das erlaubt höchstens 65.535 Wörter oder 262.140 Byte, und 1987 war das reichlich. Dann kamen Bilder. Ein PutImage eines bildschirmgroßen Bildes in 24-Bit-Farbe umfasst mehrere Megabyte, und Xlib musste es unauffällig in Streifen zerlegen, die einzeln gesendet und vom Server nacheinander gezeichnet wurden. BIG-REQUESTS, mit X11R6 im Jahr 1994 eingeführt, löst das mit einer einzigen neuen Anfrage, BigReqEnable. Von da an darf der Client das Längenfeld auf null setzen und ein 32-Bit-Wort mit der tatsächlichen Länge folgen lassen. Der Server antwortet, was er annehmen kann; bei X.Org sind das etwa 16 Megabyte.

Elegant daran ist, dass ein Server ohne die Erweiterung das Format nie zu sehen bekommt, weil der Client zuerst fragen muss, und dass der alte Header seine Form behält. Xlib schaltet die Erweiterung beim Verbindungsaufbau automatisch ein, und XExtendedMaxRequestSize meldet, wie hoch die Grenze danach liegt, neben dem alten XMaxRequestSize; XCB verfährt genauso und zerteilt, was dennoch zu groß ist, selbstständig. Für wirklich große Bilder auf demselben Rechner ist MIT-SHM weiterhin schneller, da es gar nicht kopiert. BIG-REQUESTS erschien im selben Release wie XC-MISC, das Clients frische Ressourcen-IDs verschaffte; beide gehören zu der Sorte Erweiterung, die niemand sieht, die aber jeder moderne X-Client in seiner ersten Millisekunde benutzt.

← Zurück zum Lexikon