1 / 10

X Window System

X Window System. Introduction. In computing , the X Window System (commonly X11 or X ) provides windowing for bitmap displays.

vianca
Télécharger la présentation

X Window System

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. X Window System

  2. Introduction • In computing, the X Window System (commonly X11 or X) provides windowing for bitmap displays. • It provides the standard toolkit and protocol to build graphical user interfaces (GUI) on Unix, Unix-likeoperating systems, and OpenVMS; and almost all modern operating systems support it. • X provides the basic framework for a GUI environment: • drawing and moving windows on the screen and interacting with a mouse and keyboard. • X does not mandate the user interface — individual client programs handle this. As such, the visual styling of X-based environments varies greatly; different programs may present radically different interfaces. • X features network transparency: • the machine where application programs (the client applications) run can differ from the user's local machine (the display server). X's usage of the terms "client" and "server" reverses what people often expect, in that "server" refers to the user's local display ("display server") rather than to a remote machine. • X originated at MIT in 1984. • The current protocol version, X11, appeared in September 1987. The X.Org Foundation leads the X project, with the currentreference implementation, version 11 release 7.0, available as free software under the MIT License and similar permissive licenses [1].

  3. The X client-server model and network transparency • X uses a client-server model: • an X server communicates with various client programs. • The server accepts requests for graphical output (windows) and sends back user input (from keyboard, mouse, or touchscreen). • The server may function as any one of: • an application displaying to a window of another display system • a system program controlling the video output of a PC • a dedicated piece of hardware. • This client-server terminology — the user's terminal as the "server", the remote applications as the "clients" — often confuses new X users, because the terms appear reversed. • But X takes the perspective of the program, rather than that of the end-user or of the hardware: • the local X display provides display services to programs, so it acts as a server; • any remote program uses these services, thus it acts as a client.

  4. User interfaces • X deliberately contains no specification as to application user interface, such as buttons, menus, window title bars and so on. Instead, user software - such as window managers, GUI widget toolkits and desktop environments, or application-specific GUIs, such as point of sale - provide/define all such details. • As such, the "typical" X interface has varied tremendously over the years. • A window manager controls the placement and appearance of application windows. • This may have an interface akin to that of Microsoft Windows or of the Macintosh (examples include Kwin in KDE or Metacity in GNOME) or have radically different controls (for example: twm, the basic window manager supplied with X). • The window manager may be bare-bones (e.g. twm) or offer functionality verging on that of a full desktop environment (e.g.Enlightenment). • Most users use X with a full desktop environment, which includes a window manager, various applications and a consistent interface. GNOME and KDE occur most commonly. • The Unix standard environment is the Common Desktop Environment (CDE). • The freedesktop.org initiative addresses interoperability between desktops and the components needed for a competitive X desktop.

  5. Implementations • The X.Org reference implementation serves as the canonical implementation of X. • Due to the liberal licensing, a number of variations, both free and proprietary, have appeared. Commercial UNIX vendors have tended to take the reference implementation and adapt it for their hardware, usually customising it heavily and adding proprietary extensions. • Up to 2004, XFree86 provided the most common X variant on free Unix-like systems. XFree86 started as a port of X for 386-compatible PCs and, by the end of the 1990s, had become the greatest source of technical innovation in X and the de facto steward of X development [2]. Since 2004, however, the X.Org reference implementation, a fork of XFree86, has become predominant. • While computer aficionados most often associate X with Unix, X servers also exist natively within other graphical environments. • Hewlett-Packard's OpenVMS operating system includes a version of X with CDE, known as DECwindows, as its standard desktop environment. Apple's Mac OS X v10.3 (Panther) includes X11.app, based on XFree86 4.3 and X11R6.6, with better Mac OS X integration. Third-party servers under Macintosh System 7, 8 and 9 included MacX. • Microsoft Windows does not come with support for X, but many third-party implementations exist, both free software such as Cygwin/X, Xming, X-Deep/32, WeirdMind and WeirdX; and proprietary products such as Xmanager, WiredX, Exceed and X-Win32. • They normally serve to control remote X clients. • When another windowing system (such as those of Microsoft Windows or Mac OS) hosts X, the X system generally runs "rootless", meaning the host windowing environment looks after the root window (the background and associated menus) and manages the geometry of the hosted X windows — although some servers (Exceed, for example) can also create the root window for the remote clients to display to as a separate window in the host system.

  6. X terminals • An X terminal consists of a piece of dedicated hardware running an X server as a thin client. This architecture became popular for building inexpensive terminal parks for many users to simultaneously use the same large server. This use very much aligns with the original intention of the MIT project. • X terminals can explore the network (the local broadcast domain) using the X Display Manager Control Protocol to generate a list of available hosts that they can run clients from. The initial host needs to run an X display manager. • Dedicated (hardware) X terminals have become less common; a PC with an X server typically provides the same functionality at a lower cost.

  7. Network • One cannot currently detach an X client or session from one server and reattach it to another, as with Virtual Network Computing (VNC). • Work has started to add this facility to X. • Workarounds (VNC :0 viewers) exist to make the current X-server screen available via VNC. • Network traffic between an X server and remote X clients has no default encryption. • An attacker with a packet sniffer can intercept and read it. • Most users address this issue by tunneling X over SSH; most SSH implementations do X tunneling automatically by default.

  8. Performance • The device-independence and the separation of client and server do incur an overhead. X's network transparency requires the clients and server to operate separately. • In the early days, this gave a significant performance penalty on a standalone system compared to then-current versions of Microsoft Windows or Mac OS, which embedded windowing deep in the operating system. • X advocates recommended 4 to 8 MB of RAM for reasonable performance; until the mid-1990s, this then seemed bloated compared to Windows or Mac OS. • Current versions of Windows and Mac OS XQuartz have internal subsystem separation similar to the client/server divide in X and comparable performance and resource usage to X with KDE or GNOME. • Most of the overhead comes from network round-trip delay time between client and server (latency rather than from the protocol itself): the best solutions to performance issues involve paying attention to application design [5]. • Common misconceptions exist that X's network features result in excessive complexity if only used locally, and that X's network capabilities cause an undesirable performance hit; • modern X implementations use local sockets and shared memory, requiring very little overhead.

  9. Competitors to X • Unix-like systems use X almost universally for graphics. Nevertheless, some people have attempted writing alternatives to and replacements for X. • Historical alternatives include • Sun's NeWS, which failed in the market, and • NeXT's Display PostScript, which eventually became Apple's Quartz for Mac OS X. • Modern attempts to address criticisms of X by replacing it completely • include • Berlin/Fresco • and the Y Window System. • These alternatives have seen negligible take-up, however, and commentators widely doubt theviability of any replacement that does not preserve backwards-compatibility with X. • Other competitors attempt to avoid the overhead of X by working directly with the hardware. • Such projects include DirectFB and the very small FBUI. The Direct Rendering Infrastructure, which aims to provide a reliable kernel-level interface to the framebuffer, may make these efforts redundant. • Other ways to achieve network transparency for graphical services include: • the SVG Terminal, a protocol to update Scalable Vector Graphics (SVG) content in a browser in near-real-time • Virtual Network Computing (VNC), a very low-level system which sends compressed bitmaps across the network; the Unix implementation includes an X server • Citrix MetaFrame, an X-like product for Microsoft Windows • Tarantella, which provides a Java client for use in web browsers • NX technology, a bandwidth-saving protocol for remote display

  10. --

More Related