Each currently running application
is assigned a usually resizable and usually rectangular surface of the
display to present its GUI to the user; these windows may overlap each
other, as opposed to a tiling interface where they are not allowed to overlap. Usually a window decoration is drawn around each window. The programming of both the window decoration and of available widgets inside of the window, which are graphical elements for direct user interaction, such as sliders, buttons, etc., is eased and simplified through the use of widget toolkits.
Technical details
The main component of any windowing system is usually called the display server,
although alternative denominations such as window server or compositor
are also in use. Any application that runs and presents its GUI in a
window, is a client of the display server. The display server and its
clients communicate with each other over an application programming interface (API) or a communications protocol,
which is usually called display server protocol, the display server
being the mediator between the clients and the user. It receives all the
input from the kernel, that the kernel receives from all attached input devices, such as keyboard, pointing devices, or touchscreen and transmits it to the correct client. The display server is also responsible for the output of the clients to the computer monitor.
The output of sound is usually not managed by the display server, but
the sound volume is usually handled through GUI applets and it is the
display server who decides which applications are on top. A windowing
system enables the computer user to work with several programs at the
same time. Each program presents its GUI in its own window, which is
generally a rectangular area of the screen.
From a programmer's point of view, a windowing system implements graphical primitives. For example: rendering fonts
or drawing a line on the screen. It provides an abstraction of the
graphics hardware for use by higher-level elements of the graphical
interface such as a window manager.
A display server protocol can be network capable or even network transparent, facilitating the implementation of thin clients.
Display server
A display server or window server is a program whose
primary task is to coordinate the input and output of its clients to and
from the rest of the operating system, the hardware, and each other.
The display server communicates with its clients over the display server
protocol, a communications protocol, which can be network-transparent or simply network-capable.
The display server is a key component in any graphical user interface, specifically the windowing system.
The server/client relationship of a standalone display server is
somewhat counterintuitive in that a "server" is usually thought of as a
large, remote machine, whereas a standalone "display server" is a small
local system, with most clients being executed on a larger central
machine. The explanation is that a display server provides the services of a display and input devices.
One example of a display server is the X.Org Server, which runs on top of the kernel (usually a Unix-like kernel, such as Linux or BSD). It receives user input data (e.g. from evdev
on Linux) and passes it to one of its clients. The display server also
receives data from its clients; it processes the data, it does the
compositing and on Linux it passes the data to one of three kernel
components – DRM, gem or KMS driver. The component writes the data into the framebuffer and content of the framebuffer is transmitted to the connected screen and displayed. X relies on GLX.
One of the implementations of display server concept is X Window System, in particular its actually used version – X.Org Server and Xlib and XCB client libraries. The X.Org Server is a display server, but in its current implementation it relies on a second program, the compositing window manager, to do the compositing. Examples are Mutter or KWin.
Notable examples of display servers implementing the X11 display server protocol are X.Org Server, XFree86, XQuartz and Cygwin/X, while client libraries implementing the X11 display server protocol are Xlib and XCB.
Display servers that implement the Wayland display server protocol are called Wayland compositors.
Like any display server, a Wayland compositor is responsible for
handling input and output for its clients and, in contrast to X11, the compositing as well. Examples are Weston, Mutter, KWin or Enlightenment.
Wayland compositors communicate with Wayland clients over the Wayland display server protocol. This protocol defines that clients can directly write data into the framebuffer using the EGLrendering API.
The display server still gets to decide which window is on top and thus
visible to the user and also still is responsible for passing data
regarding to input devices from evdev to its clients.
Wayland is used to a certain degree in some Linux desktop distributions, such as Fedora. It is also well suited for mobile computing and has been adopted, for example, by the smartphone- and tablet-focused projects Tizen, Sailfish OS and AsteroidOS.
An implementation of Wayland is available under the MIT License, the libwayland-client and libwayland-server libraries.
There is an ongoing effort to add Wayland support to ChromeOS.
The Mir display server
comes with its own Mir display server protocol which is different from
those used by X11 and Wayland. Mir additionally supports the X11
protocol. It was developed by Canonical and was intended to be the display server of choice for Ubuntu. As of 2017, it has been replaced with the Wayland display server for desktop editions of Ubuntu.
There are implementations of the Mir display server, the libmir-server and the libmir-client libraries available under the GPLv3.
Windowing systems with APIs
SurfaceFlinger
Google developed a display server called SurfaceFlinger for Android (another Linux kernel-based operating system primarily for mobile devices):
Everything in Android is rendered to a "surface"; "surfaces" are
produced by applications and placed into a queue that is managed by
SurfaceFlinger.
Yet another Android-specific solution is "Gralloc". Gralloc
handles device memory i.e. it does allocation, arbitration, it handles
synchronization via Android/Linux fence file descriptors. Gralloc
competes with other solutions like e.g. Mesa's Generic Buffer Management (GBM) or Nvidia's EGLStreams. The Gralloc hardware abstraction layer (HAL) is used to allocate the buffers that underlie "surfaces".
For compositing in Android, Surfaces are sent to SurfaceFlinger, which uses OpenGL ES to do the compositing.
Hardware Composer HAL (HWC) was introduced in Android 3.0 and has
evolved steadily over the years. Its primary purpose is to determine
the most efficient way to composite buffers with the available hardware.
As a HAL, its implementation is device-specific and usually done by the
display hardware OEM.
Quartz Compositor
For Apple's macOS family of operating systems, Quartz Compositor fulfils the tasks of a display server and of a window manager in the windowing system.
Desktop Window Manager
For Microsoft Windows, from Windows Vista onward, Desktop Window Manager
enables the use of hardware acceleration to render the graphical user
interface. It was originally created to enable portions of the new
"Windows Aero" user experience, which allowed for effects such as
transparency, 3D window switching and more. It is also included with
Windows Server 2008, but requires the "Desktop Experience" feature and
compatible graphics drivers to be installed. From Windows 8 onwards DWM
can't be disabled and is software rendered if no suitable graphics card is installed.
The history of the graphical user interface, understood as the use of graphic icons and a pointing device to control a computer,
covers a five-decade span of incremental refinements, built on some
constant core principles. Several vendors have created their own
windowing systems based on independent code, but with basic elements in
common that define the WIMP "window, icon, menu and pointing device" paradigm.
There have been important technological achievements, and
enhancements to the general interaction in small steps over previous
systems. There have been a few significant breakthroughs in terms of
use, but the same organizational metaphors and interaction idioms are still in use. Desktop computers are often controlled by computer mice and/or keyboards while laptops often have a pointing stick or touchpad, and smartphones and tablet computers have a touchscreen. The influence of game computers and joystick operation has been omitted.
Early research and developments
Early dynamic information devices such as radar
displays, where input devices were used for direct control of
computer-created data, set the basis for later improvements of graphical
interfaces. Some early cathode-ray-tube (CRT) screens used a light pen, rather than a mouse, as the pointing device.
The concept of a multi-panel windowing system was introduced by the first real-time graphic display systems for computers: the SAGE Project and Ivan Sutherland's Sketchpad.
Much of the early research was based on how young children learn. So, the design was based on the childlike characteristics of hand–eye coordination, rather than use of command languages, user-defined macro procedures, or automated transformation of data as later used by adult professionals.
Engelbart's work directly led to the advances at Xerox PARC. Several people went from SRI to Xerox PARC in the early 1970s.
In 1973, Xerox PARC developed the Alto personal computer. It had a bitmapped screen, and was the first computer to demonstrate the desktop metaphor and graphical user interface
(GUI). It was not a commercial product, but several thousand units were
built and were heavily used at PARC, as well as other XEROX offices,
and at several universities for many years. The Alto greatly influenced
the design of personal computers during the late 1970s and early 1980s,
notably the Three Rivers PERQ, the Apple Lisa and Macintosh, and the first Sun workstations.
The modern WIMP GUI was first developed at Xerox PARC by Alan Kay, Larry Tesler, Dan Ingalls, David Smith, Clarence Ellis and a number of other researchers. This was introduced in the Smalltalk programming environment. It used windows, icons, and menus
(including the first fixed drop-down menu) to support commands such as
opening files, deleting files, moving files, etc. In 1974, work began at
PARC on Gypsy, the first bitmap What-You-See-Is-What-You-Get (WYSIWYG)
cut and paste editor. In 1975, Xerox engineers demonstrated a Graphical
User Interface "including icons and the first use of pop-up menus".
In 1981 Xerox introduced a pioneering product, Star, a workstation
incorporating many of PARC's innovations. Although not commercially
successful, Star greatly influenced future developments, for example at Apple, Microsoft and Sun Microsystems.
Quantel Paintbox
Released by digital imaging company Quantel in 1981, the Paintbox was a color graphical workstation with supporting of mouse input, but more oriented for graphics tablets; this model also was notable as one of the first systems with implementation of pop-up menus.
Blit
The Blit, a graphics terminal, was developed at Bell Labs in 1982.
Lisp machines, Symbolics
Lisp machines originally developed at MIT and later commercialized by Symbolics
and other manufacturers, were early high-end single user computer
workstations with advanced graphical user interfaces, windowing, and
mouse as an input device. First workstations from Symbolics came to
market in 1981, with more advanced designs in the subsequent years.
Apple Lisa and Macintosh (and later, the Apple IIGS)
Beginning in 1979, started by Steve Jobs and led by Jef Raskin, the Apple Lisa and Macintosh teams at Apple Computer
(which included former members of the Xerox PARC group) continued to
develop such ideas. The Lisa, released in 1983, featured a
high-resolution stationery-based (document-centric) graphical interface
atop an advanced hard disk based OS that featured such things as preemptive multitasking and graphically orientedinter-process communication.
The comparatively simplified Macintosh, released in 1984 and designed
to be lower in cost, was the first commercially successful product to
use a multi-panel window interface. A desktop metaphor was used, in which files looked like pieces of paper, file directories looked like file folders, there were a set of desk accessories
like a calculator, notepad, and alarm clock that the user could place
around the screen as desired, and the user could delete files and
folders by dragging them to a trash-can
icon on the screen. The Macintosh, in contrast to the Lisa, used a
program-centric rather than document-centric design. Apple revisited the
document-centric design, in a limited manner, much later with OpenDoc.
There is still some controversy over the amount of influence that Xerox's PARC work, as opposed to previous academic research, had on the GUIs of the Apple Lisa and Macintosh, but it is clear that the influence was extensive, because first versions of Lisa GUIs even lacked icons. These prototype GUIs are at least mouse-driven, but completely ignored the WIMP
( "window, icon, menu, pointing device") concept. Screenshots of first
GUIs of Apple Lisa prototypes show the early designs. Apple engineers
visited the PARC facilities (Apple secured the rights for the visit by
compensating Xerox with a pre-IPO purchase of Apple stock) and a number
of PARC employees subsequently moved to Apple to work on the Lisa and
Macintosh GUI. However, the Apple work extended PARC's considerably,
adding manipulatable icons, and drag and drop manipulation of objects in the file system (see Macintosh Finder) for example. A list of the improvements made by Apple, beyond the PARC interface, can be read at Folklore.org.
Jef Raskin warns that many of the reported facts in the history of the
PARC and Macintosh development are inaccurate, distorted or even
fabricated, due to the lack of usage by historians of direct primary
sources.
In 1984, Apple released a television commercial which introduced the Apple Macintosh during the telecast of Super Bowl XVIII by CBS, with allusions to George Orwell's noted novel, Nineteen Eighty-Four.
The commercial was aimed at making people think about computers,
identifying the user-friendly interface as a personal computer which
departed from previous business-oriented systems, and becoming a signature representation of Apple products.
In 1986, the Apple IIGS was launched. The IIGS was a very advanced model of the successful Apple II series, based on 16-bit technology (in fact, virtually two machines into one). It came with a new operating system, the Apple GS/OS, which features a Finder-like
GUI, very similar to that of the Macintosh series, able to deal with
the advanced graphic abilities of its Video Graphics Chip (VGC).
Agat
The Soviet Union Agat PC featured a graphical interface and a mouse device and was released in 1983.
SGI 1000 series and MEX
Founded 1982, SGI introduced the IRIS 1000 Series in 1983.
The first graphical terminals (IRIS 1000) shipped in late 1983, and the
corresponding workstation model (IRIS 1400) was released in mid-1984.
The machines used an early version of the MEX windowing system on top of the GL2 Release 1 operating environment. Examples of the MEX user interface can be seen in a 1988 article in the journal "Computer Graphics",
while earlier screenshots can not be found. The first commercial
GUI-based systems, these did not find widespread use as to their
(discounted) academic list price of $22,500 and $35,700 for the IRIS
1000 and IRIS 1400, respectively.
However, these systems were commercially successful enough to start
SGI's business as one of the main graphical workstation vendors. In
later revisions of graphical workstations, SGI switched to the X window system, which had been developed starting at MIT since 1984 and which became the standard for UNIX workstations.
Visi On
VisiCorp's Visi On
was a GUI designed to run on DOS for IBM PCs. It was released in
December 1983. Visi On had many features of a modern GUI, and included a
few that did not become common until many years later. It was fully
mouse-driven, used a bit-mapped display for both text and graphics,
included on-line help, and allowed the user to open a number of programs
at once, each in its own window, and switch between them to multitask.
Visi On did not, however, include a graphical file manager. Visi On
also demanded a hard drive in order to implement its virtual memory
system used for "fast switching", at a time when hard drives were very
expensive.
Digital Research (DRI) created GEM as an add-on program for personal computers. GEM was developed to work with existing CP/M and MS-DOS compatible operating systems on business computers such as IBM PC compatibles. It was developed from DRI software, known as GSX, designed by a former PARC employee. Its similarity to the Macintosh desktop led to a copyright lawsuit from Apple Computer, and a settlement which involved some changes to GEM. This was to be the first of a series of "look and feel" lawsuits related to GUI design in the 1980s.
GEM received widespread use in the consumer market from 1985, when it was made the default user interface built into the Atari TOS operating system of the Atari ST line of personal computers. It was also bundled by other computer manufacturers and distributors, such as Amstrad. Later, it was distributed with the best-sold Digital Research version of DOS for IBM PC compatibles, the DR-DOS 6.0. The GEM desktop faded from the market with the withdrawal of the Atari ST line in 1992 and with the popularity of the MicrosoftWindows 3.0 in the PC front around the same period of time. The Falcon030, released in 1993 was the last computer from Atari to use GEM.
Tandy's DeskMate appeared in the early 1980s on its TRS-80 machines and was ported to its Tandy 1000 range in 1984. Like most PC GUIs of the time, it depended on a disk operating system such as TRSDOS or MS-DOS.
The application was popular at the time and included a number of
programs like Draw, Text and Calendar, as well as attracting outside
investment such as Lotus 1-2-3 for DeskMate.
MSX-View
MSX-View was developed for MSX computers by ASCII Corporation and HAL Laboratory.
MSX-View contains software such as Page Edit, Page View, Page Link,
VShell, VTed, VPaint and VDraw. An external version of the built-in MSX
View of the Panasonic FS-A1GT was released as an add-on for the
Panasonic FS-A1ST on disk instead of 512 KB ROM DISK.
Amiga Intuition and the Workbench
The Amiga computer was launched by Commodore in 1985 with a GUI called Workbench. Workbench was based on an internal engine developed mostly by RJ Mical, called Intuition,
which drove all the input events. The first versions used a
blue/orange/white/black default palette, which was selected for high
contrast on televisions and composite monitors. Workbench presented directories as drawers to fit in with the "workbench" theme. Intuition was the widget and graphics library that made the GUI work. It was driven by user events through the mouse, keyboard, and other input devices.
Due to a mistake made by the Commodore sales department, the first floppies of AmigaOS
(released with the Amiga1000) named the whole OS "Workbench". Since
then, users and CBM itself referred to "Workbench" as the nickname for
the whole AmigaOS (including Amiga DOS, Extras, etc.). This common consent ended with release of version 2.0 of AmigaOS, which re-introduced proper names to the installation floppies of AmigaDOS, Workbench, Extras, etc.
Starting with Workbench 1.0, AmigaOS treated the Workbench as a backdrop, borderless window sitting atop a blank screen. With the introduction of AmigaOS
2.0, however, the user was free to select whether the main Workbench
window appeared as a normally layered window, complete with a border and
scrollbars, through a menu item.
Amiga users were able to boot their computer into a command-line interface
(also known as the CLI or Amiga Shell). This was a keyboard-based
environment without the Workbench GUI. Later they could invoke it with
the CLI/SHELL command "LoadWB" which loaded Workbench GUI.
One major difference between other OS's of the time (and for some time after) was the Amiga's fully multi-tasking operating system, a powerful built-in animation system using a hardware blitter and copper and four channels of 26 kHz 8-bit sampled sound. This made the Amiga the first multi-media computer years before other OS's.
Like most GUIs of the day, Amiga's Intuition followed Xerox's, and sometimes Apple's, lead. But a CLI
was included which dramatically extended the functionality of the
platform. However, the CLI/Shell of Amiga is not just a simple text-based interface like in MS-DOS,
but another graphic process driven by Intuition, and with the same
gadgets included in Amiga's graphics.library. The CLI/Shell interface
integrates itself with the Workbench, sharing privileges with the GUI.
The Amiga Workbench evolved over the 1990s, even after Commodore's 1994 bankruptcy.
Acorn's 8-bit BBC Master Compact shipped with Acorn's first public GUI interface in 1986.
Little commercial software, beyond that included on the Welcome disk,
was ever made available for the system, despite the claim by Acorn at
the time that "the major software houses have worked with Acorn to make
over 100 titles available on compilation discs at launch". The most avid supporter of the Master Compact appeared to be Superior Software, who produced and specifically labelled their games as 'Master Compact' compatible.
Originally branded as the Arthur 1.20 the subsequent Arthur 2 release was shipped under the name RISC OS 2.
Desktop
The WIMP interface incorporates three mouse buttons (named Select, Menu and Adjust), context-sensitive menus, window stack control (i.e. send to back) and dynamic window focus (a window can have input focus at any position on the stack). The Icon bar (Dock)
holds icons which represent mounted disc drives, RAM discs, network
directories, running applications, system utilities and docked: Files,
Directories or inactive Applications. These icons and open windows have
context-sensitive menus and support drag-and-drop behaviour. They represent the running application as a whole, irrespective of whether it has open windows.
The application has control of the context-sensitive menus,
inapplicable menu choices can be 'greyed out' to make them unavailable.
Menus have their own titles and may be moved around the desktop by the
user. Any menu can have further sub-menus or a new window for
complicated choices.
The GUI is centered around the concept of files. The Filer
displays the contents of a disc. Applications are run from the Filer
view and files can be dragged to the Filer view from applications to
perform saves. The opposite can perform a load. With their co-operation
data can be copied or moved directly between applications by saving
(dragging) to another application.
Application directories are used to store applications. The OS differentiates them from normal directories through the use of a pling
(exclamation mark, also called shriek) prefix. Double-clicking on such a
directory launches the application rather than opening the directory.
The application's executable files and resources are contained within
the directory, but normally they remain hidden from the user. Because
applications are self-contained, this allows drag-and-drop installation
and removal.
Files are normally typed. RISC OS has some predefined types.
Applications can supplement the set of known types. Double-clicking a
file with a known type will launch the appropriate application to load
the file.
The RISC OSStyle Guide encourages a consistent look and feel across applications. This was introduced in RISC OS 3 and specifies application appearance and behaviour. Acorn's own main bundled applications were not updated to comply with the guide until RISCOS Ltd's Select release in 2001.
Font manager
The outline fonts manager provides spatial anti-aliasing of fonts, the OS being the first operating system to include such a feature, having included it since before January 1989.
Since 1994, in RISC OS 3.5, it has been possible to use an outline
anti-aliased font in the WindowManager for UI elements, rather than the bitmap system font from previous versions.
MS-DOS file managers and utility suites
Because most of the very early IBM PC and compatibles lacked any common true graphical capability (they used the 80-column basic text mode compatible with the original MDA display adapter), a series of file managers arose, including Microsoft's DOS Shell, which features typical GUI elements as menus, push buttons, lists with scrollbars and mouse pointer. The name text-based user interface
was later invented to name this kind of interface. Many MS-DOS text
mode applications, like the default text editor for MS-DOS 5.0 (and
related tools, like QBasic),
also used the same philosophy. The IBM DOS Shell included with IBM DOS
5.0 (circa 1992) supported both text display modes and actual graphics
display modes, making it both a TUI and a GUI, depending on the chosen
mode.
Advanced file managers for MS-DOS were able to redefine character shapes with EGA
and better display adapters, giving some basic low resolution icons and
graphical interface elements, including an arrow (instead of a coloured
cell block) for the mouse pointer. When the display adapter lacks the
ability to change the character's shapes, they default to the CP437 character set found in the adapter's ROM. Some popular utility suites for MS-DOS, as Norton Utilities (pictured) and PC Tools used these techniques as well.
DESQview was a text mode multitasking program introduced in July 1985. Running on top of MS-DOS,
it allowed users to run multiple DOS programs concurrently in windows.
It was the first program to bring multitasking and windowing
capabilities to a DOS environment in which existing DOS programs could
be used. DESQview was not a true GUI but offered certain components of
one, such as resizable, overlapping windows and mouse pointing.
Applications under MS-DOS with proprietary GUIs
Before the MS-Windows age, and with the lack of a true common GUI under MS-DOS, most graphical applications which worked with EGA, VGA and better graphic cards had proprietary built-in GUIs. One of the best known such graphical applications was Deluxe Paint, a popular painting software with a typical WIMP interface.
The original Adobe Acrobat
Reader executable file for MS-DOS was able to run on both the standard
Windows 3.x GUI and the standard DOS command prompt. When it was
launched from the command prompt, on a machine with a VGA graphics card, it provided its own GUI.
The main window of a given application can occupy the full screen in maximized
status. The users must then to switch between maximized applications
using the Alt+Tab keyboard shortcut; no alternative with the mouse
except for de-maximize. When none of the running application windows
are maximized, switching can be done by clicking on a partially visible
window, as is the common way in other GUIs.
In 1988, Apple sued Microsoft for copyright infringement of the Lisa and Apple Macintosh
GUI. The court case lasted 4 years before almost all of Apple's claims
were denied on a contractual technicality. Subsequent appeals by Apple
were also denied. Microsoft and Apple apparently entered a final,
private settlement of the matter in 1997.
GEOS was launched in 1986, originally written for the 8-bit home computer Commodore 64, and shortly after, the Apple II
series. The name was later used by the company as PC/Geos for IBM PC
systems, then Geoworks Ensemble. It came with several application
programs like a calendar and word processor. A cut-down version served
as the basis for America Online's
DOS client. Compared to the competing Windows 3.0 GUI, it could run
reasonably well on simpler hardware, but its developer had a restrictive
policy towards third-party developers that prevented it from becoming a
serious competitor. Additionally, it was targeted at 8-bit machines, whilst the 16-bit computer age was dawning.
The standard windowing system in the Unix world is the X Window System (commonly X11 or X), first released in the mid-1980s. The W Window System (1983) was the precursor to X; X was developed at MIT as Project Athena. Its original purpose was to allow users of the newly emerging graphic terminals to access remote graphics workstations
without regard to the workstation's operating system or the hardware.
Due largely to the availability of the source code used to write X, it
has become the standard layer for management of graphical and
input/output devices and for the building of both local and remote
graphical interfaces on virtually all Unix, Linux and other Unix-like operating systems, with the notable exceptions of macOS and Android.
X allows a graphical terminal user to make use of remote
resources on the network as if they were all located locally to the user
by running a single module of software called the X server. The
software running on the remote machine is called the client application.
X's network transparency protocols allow the display and input portions
of any application to be separated from the remainder of the
application and 'served up' to any of a large number of remote users. X
is available today as free software.
The PostScript-based NeWS (Network extensible Window System) was developed by Sun Microsystems in the mid-1980s. For several years SunOS included a window system combining NeWS and the X Window System.
Although NeWS was considered technically elegant by some commentators,
Sun eventually dropped the product. Unlike X, NeWS was always proprietary software.
The 1990s: Mainstream usage of the desktop
The
widespread adoption of the PC platform in homes and small businesses
popularized computers among people with no formal training. This created
a fast-growing market, opening an opportunity for commercial
exploitation and of easy-to-use interfaces and making economically
viable the incremental refinement of the existing GUIs for home systems.
After Windows 3.11, Microsoft started development on a new
consumer-oriented version of the operating system. Windows 95 was
intended to integrate Microsoft's formerly separate MS-DOS and Windows
products and included an enhanced version of DOS, often referred to as
MS-DOS 7.0. It also featured a significant redesign of the GUI, dubbed
"Cairo". While Cairo never really materialized, parts of Cairo found
their way into subsequent versions of the operating system starting with
Windows 95. Both Win95 and WinNT could run 32-bit applications, and
could exploit the abilities of the Intel 80386CPU, as the preemptivemultitasking and up to 4 GiB of linear address memory space.
Windows 95 was touted as a 32-bit based operating system but it was
actually based on a hybrid kernel (VWIN32.VXD) with the 16-bit user
interface (USER.EXE) and graphic device interface (GDI.EXE) of Windows
for Workgroups (3.11), which had 16-bit kernel components with a 32-bit
subsystem (USER32.DLL and GDI32.DLL) that allowed it to run native
16-bit applications as well as 32-bit applications. In the marketplace,
Windows 95 was an unqualified success, promoting a general upgrade to
32-bit technology, and within a year or two of its release had become
the most successful operating system ever produced.
Accompanied by an extensive marketing campaign, Windows 95 was a major success in the marketplace at launch and shortly became the most popular desktop operating system.
Windows 95 saw the beginning of the browser wars,
when the World Wide Web began receiving a great deal of attention in
popular culture and mass media. Microsoft at first did not see potential
in the Web, and Windows 95 was shipped with Microsoft's own online
service called The Microsoft Network, which was dial-up only and was used primarily for its own content, not internet access. As versions of Netscape Navigator and Internet Explorer
were released at a rapid pace over the following few years, Microsoft
used its desktop dominance to push its browser and shape the ecology of
the web mainly as a monoculture.
Windows 95 evolved through the years into Windows 98 and Windows ME.
Windows ME was the last in the line of the Windows 3.x-based operating
systems from Microsoft. Windows underwent a parallel 32-bit
evolutionary path, where Windows NT 3.1 was released in 1993. Windows NT
(for New Technology)
was a native 32-bit operating system with a new driver model, was
unicode-based, and provided for true separation between applications.
Windows NT also supported 16-bit applications in an NTVDM, but it did
not support VxD based drivers. Windows 95 was supposed to be released
before 1993 as the predecessor to Windows NT. The idea was to promote
the development of 32-bit applications with backward compatibility –
leading the way for more successful NT release. After multiple delays,
Windows 95 was released without unicode and used the VxD driver model.
Windows NT 3.1 evolved to Windows NT 3.5, 3.51 and then 4.0 when it
finally shared a similar interface with its Windows 9x desktop
counterpart and included a Start button. The evolution continued with
Windows 2000, Windows XP, Windows Vista, then Windows 7. Windows XP and
higher were also made available in 64-bit modes. Windows server products
branched off with the introduction of Windows Server 2003 (available in
32-bit and 64-bit IA64 or x64), then Windows Server 2008 and then
Windows Server 2008 R2. Windows 2000 and XP shared the same basic GUI
although XP introduced Visual Styles. With Windows 98, the Active Desktop theme was introduced, allowing an HTML
approach for the desktop, but this feature was coldly received by
customers, who frequently disabled it. At the end, Windows Vista
definitively discontinued it, but put a new SideBar on the desktop.
Mac OS
The Macintosh's GUI has been revised multiple times since 1984, with major updates including System 7 and Mac OS 8. It underwent its largest revision to date with the introduction of the "Aqua" interface in 2001's Mac OS X. It was a new operating system built primarily on technology from NeXTSTEP with UI elements of the original Mac OS grafted on. macOS uses a technology known as Quartz, for graphics rendering and drawing on-screen. Some interface features of macOS are inherited from NeXTSTEP (such as the Dock,
the automatic wait cursor, or double-buffered windows giving a solid
appearance and flicker-free window redraws), while others are inherited
from the old Mac OS operating system (the single system-wide menu-bar). Mac OS X 10.3 introduced features to improve usability including Exposé, which is designed to make finding open windows easier.
With Mac OS X 10.4 released in April 2005, new features were added, including Dashboard (a virtual alternate desktop for mini specific-purpose applications) and a search tool called Spotlight, which provides users with an option for searching through files instead of browsing through folders.
With Mac OS X 10.7 released in July 2011, included support for full screen apps and Mac OS X 10.11
(El Capitan) released in September 2015 support creating a full screen
split view by pressing the green button on left upper corner of the
window or Control+Cmd+F keyboard shortcut.
GUIs built on the X Window System
In the early days of X Window development, Sun Microsystems and AT&T attempted to push for a GUI standard called OPEN LOOK in competition with Motif. OPEN LOOK was developed from scratch in conjunction with Xerox, while Motif was a collective effort. Motif eventually gained prominence and became the basis for Hewlett-Packard's Visual User Environment (VUE), which later became the Common Desktop Environment (CDE).
In the late 1990s, there was significant growth in the Unix world, especially among the free software community.
New graphical desktop movements grew up around Linux and similar
operating systems, based on the X Window System. A new emphasis on
providing an integrated and uniform interface to the user brought about
new desktop environments, such as KDE Plasma 5, GNOME and Xfce
which have supplanted CDE in popularity on both Unix and Unix-like
operating systems. The Xfce, KDE and GNOME look and feel each tend to
undergo more rapid change and less codification than the earlier OPEN
LOOK and Motif environments.
Amiga
Later
releases added improvements over the original Workbench, like support
for high-color Workbench screens, context menus, and embossed 2D icons
with pseudo-3D aspect. Some Amiga users preferred alternative interfaces
to standard Workbench, such as Directory Opus Magellan.
The use of improved, third-party GUI engines became common amongst users who preferred more attractive interfaces – such as Magic User Interface (MUI), and ReAction.
These object-oriented graphic engines driven by user interface classes
and methods were then standardized into the Amiga environment and
changed Amiga Workbench to a complete and modern guided interface, with
new standard gadgets, animated buttons, true 24-bit-color icons,
increased use of wallpapers for screens and windows, alpha channel,
transparencies and shadows as any modern GUI provides.
Use of object oriented graphic engines dramatically changes the look and feel of a GUI to match actual styleguides.
OS/2
Originally collaboratively developed by Microsoft and IBM to replace DOS, OS/2
version 1.0 (released in 1987) had no GUI at all. Version 1.1 (released
1988) included Presentation Manager (PM), an implementation of IBM Common User Access, which looked a lot like the later Windows 3.1 UI. After the split with Microsoft, IBM developed the Workplace Shell
(WPS) for version 2.0 (released in 1992), a quite radical,
object-oriented approach to GUIs. Microsoft later imitated much of this
look in Windows 95.
NeXTSTEP
The NeXTSTEP user interface was used in the NeXT line of computers. NeXTSTEP's first major version was released in 1989. It used Display PostScript for its graphical underpinning. The NeXTSTEP interface's most significant feature was the Dock, carried with some modification into Mac OS X,
and had other minor interface details that some found made it easier
and more intuitive to use than previous GUIs. NeXTSTEP's GUI was the
first to feature opaque dragging of windows in its user interface, on a
comparatively weak machine by today's standards, ideally aided by high performance graphics hardware.
BeOS
BeOS was developed on custom AT&T Hobbit-based computers before switching to PowerPC hardware by a team led by former Apple executive Jean-Louis Gassée
as an alternative to Mac OS. BeOS was later ported to Intel hardware.
It used an object-oriented kernel written by Be, and did not use the X Window System, but a different GUI
written from scratch. Much effort was spent by the developers to make
it an efficient platform for multimedia applications. Be Inc. was acquired by PalmSource, Inc. (Palm Inc. at the time) in 2001. The BeOS GUI still lives in Haiku, an open-source software reimplementation of the BeOS.
Current trends
Mobile devices
General Magic is the apparent parent of all modern smartphone GUI, i.e. touch-screen based including the iPhone et al. In 2007, with the iPhone and later in 2010 with the introduction of the iPad, Apple popularized the post-WIMP style of interaction for multi-touch screens, with those devices considered to be milestones in the development of mobile devices.
Other portable devices such as MP3 players and cell phones
have been a burgeoning area of deployment for GUIs in recent years.
Since the mid-2000s, a vast majority of portable devices have advanced
to having high-screen resolutions and sizes. (The Galaxy Note 4's 2,560 × 1,440 pixel display is an example). Because of this, these devices have their own famed user interfaces and operating systems that have large homebrew
communities dedicated to creating their own visual elements, such as
icons, menus, wallpapers, and more. Post-WIMP interfaces are often used
in these mobile devices, where the traditional pointing devices required
by the desktop metaphor are not practical.
As high-powered graphics hardware draws considerable power and
generates significant heat, many of the 3D effects developed between
2000 and 2010 are not practical on this class of device. This has led to
the development of simpler interfaces making a design feature of two dimensionality such as exhibited by the Metro (Modern) UI first used in Windows 8 and the 2012 Gmail redesign.
In the first decade of the 21st century, the rapid development of GPUs led to a trend for the inclusion of 3D effects in window management. It is based in experimental research in user interface design trying to expand the expressive power of the existing toolkits in order to enhance the physical cues that allow for direct manipulation.
New effects common to several projects are scale resizing and zooming,
several windows transformations and animations (wobbly windows, smooth
minimization to system tray...), composition of images (used for window
drop shadows and transparency) and enhancing the global organization of
open windows (zooming to virtual desktops, desktop cube, Exposé, etc.) The proof-of-concept BumpTop desktop combines a physical representation of documents with tools for document classification possible only in the simulated environment, like instant reordering and automated grouping of related documents.
These effects are popularized thanks to the widespread use of 3D
video cards (mainly due to gaming) which allow for complex visual
processing with low CPU use, using the 3D acceleration in most modern
graphics cards to render the application clients in a 3D scene. The
application window is drawn off-screen in a pixel buffer, and the
graphics card renders it into the 3D scene.
This can have the advantage of moving some of the window rendering to the GPU on the graphics card and thus reducing the load on the main CPU, but the facilities that allow this must be available on the graphics card to be able to take advantage of this.
The notebook interface is widely used in data science
and other areas of research. Notebooks allow users to mix text,
calculations, and graphs in the same interface which was previously
impossible with a command-line interface.
Virtual reality devices such as the Oculus Rift and Sony's PlayStation VR (formerly Project Morpheus) aim to provide users with presence, a perception of full immersion into a virtual environment.