He is also the architect of the modern overlapping windowing graphical user interface (GUI). Graphical shells typically build on top of a windowing system. GDK is an intermediate layer which separates GTK from the details of the windowing system. GDK is an intermediate layer which isolates GTK from the details of the windowing system. Callbacks are used to program applications in windowing systems. It abbreviates from "Not Erik's Windowing Toolkit". The Amiga and ST both had GUIs with windowing technology. It comprises a command-line interface and desktop environment with a windowing system. They have uses as sentinel values in algorithms involving sorting, searching, or windowing. It uses variable-sized register windowing for parameter passing. A window manager facilitates the interactions between windows, applications, and the windowing system. In this case, one may use a terminal emulator application within the windowing environment. Programs written for many windowing environments consist predominantly of event handlers. X became the first windowing system environment to offer true hardware independence and vendor independence. The window manager generally runs on top of this windowing system.