X-Windows is a bit like an operating system. It provides all functions needed for a graphical user interface except a user interface. This works in the same way the operating system needs a shell to communicate with the user. X-Windows needs a window manager which provides functions like resizing of windows, dragging windows across the desktop, deciding the focus policy and other features.