How Operating Systems Work

User Interface

Just as the API provides a consistent way for applications to use the resources of the computer system, a user interface (UI) brings structure to the interaction between a user and the computer. In the last decade, almost all development in user interfaces has been in the graphical user interface (GUI), with Apple's macOS and Microsoft's Windows receiving most of the attention and most of the market share.

Most (but not all!) distributions of Linux include a GUI. For GUI-based Linux distributions, the organization that releases the distribution chooses the desktop environment for the operating system. However, Linux users may decide to change the environment if they want to. Cinnamon, GNOME, KDE and Xfce are some popular desktop environments for Linux.


UNIX is often associated with a command line interface (CLI), or shell, that is more flexible and powerful than a GUI. A shell interface is text-only and requires the use of typed command words, which can be intimidating to users used to pointing and clicking. The Korn Shell and the C Shell are text-based interfaces that add important utilities, but their main purpose is to make it easier for the user to manipulate the functions of the operating system. But UNIX users can use a GUI, too. One of the benefits for developers is the ability to open more than one shell window at a time to work on multiple things at once.

Windows, macOS and Linux all offer shell or terminal applications for those who want or need to access a command line.

It's important to remember that in all these examples, the user interface is a program or set of programs that sits as a layer above the operating system itself. The core operating-system functions — the management of the computer system — lie in the kernel of the operating system. The ties between the operating-system kernel and the user interface, utilities and other software define many of the differences in operating systems today and will further define them in the future.