![Page 1: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/1.jpg)
Unix GUI
Guntis BarzdinsGirts Folkmanis
![Page 2: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/2.jpg)
GUI History In 1962, Douglas Engelbart invented the
first “mouse,” which he called an “X-Y Position Indicator.”
It was a little gizmo housed in a wooden box on wheels that moved around the desktop and took the cursor with it on the display.
Source: US Patent Office
![Page 3: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/3.jpg)
GUI History
In 1963 a grad student at MIT, Ivan Sutherland, submitted as his thesis a program called “Sketchpad.” This was the first GUI (Graphical User Interface) long before the term was coined."
http://accad.osu.edu/~waynec/history/images/ivan-sutherland.jpg
![Page 4: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/4.jpg)
GUI History
In the 1970s, at Xerox’s PARC facility, Alan Keys created an object-oriented graphical programming language called “Smalltalk.” Smalltalk featured a graphical user interface (GUI) that looked suspiciously similar to later iterations from both Apple and Microsoft.
http://www.sra.co.jp/people/aoki/SqueakIdioms/chapter01/Xerox1100SIP.jpg
![Page 5: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/5.jpg)
GUI History
1981, Xerox attempted to market the “Star.” It introduced the idea of what you see is what you get (WYSIWYG).
Commercial failure cost ($15,000);
IBM had just announced a less expensive machine
limited functionality e.g., no spreadsheet
closed architecture, 3rd party vendors could not add
applications perceived as slow
but really fast! slavish adherence to direct manipulation
http://www.catb.org/~esr/writings/taouu/html/graphics/xerox_star.jpg
![Page 6: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/6.jpg)
Apple gets a GUI In 1983, the Apple Lisa was
first GUI offering.
http://fp3.antelecom.net/gcifu/applemuseum/lisa2.html
http://www.s-line.de/homepages/horber-privat/bilder/apple2a.jpg
Apple II, 1980
Lisa
![Page 7: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/7.jpg)
Apple gets a GUI In 1984, Macintosh was the first computer with
a GUI marketed to the masses. “old ideas” but well done!
Commercial success because: aggressive pricing ($2500) did not need to trail blaze
learned from mistakes of Lisa and corrected them; ideas now “mature”
market now ready for them developer’s toolkit encouraged 3rd party non-
Apple software interface guidelines encouraged consistency
between applications domination in desktop publishing because of
affordable laser printer and excellent graphics
Full Microsoft Office suite(Apple was the dominant player at this time.)
http://computermuseum.50megs.com/images/collection/apple-mac-plus.jpg
http://toastytech.com/guis/bigmac1.gif
![Page 8: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/8.jpg)
Microsoft Gets a GUI Microsoft introduced Windows
1.0 in 1985 Tiled Windows, no overlapping
Windows 2.03 in 1987 Overlapping windows
Windows 3.0 in 1990 Features Program Manager
![Page 9: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/9.jpg)
Windows Timeline
It took roughly 15 years to consolidate its shell-based GUI architecture offerings with its embedded GUI architecture offerings.
http://www.microsoft.com/windows/WinHistoryProGraphic.mspx
![Page 10: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/10.jpg)
Unix Gets a GUI The X Windows System was introduced
in the mid-1980s to provide graphical support for unix operating systems.
The implementation was a client-server approach, where an X window system server ran on the displaying machine, and the client programs communicated with it using a network protocol.
X provides only a communication mechanism, not policy. At least three major user interface look & feel styles are widely used on X - MIT's own Athena style, Sun and AT&T's OpenLook, and OSF's Motif (supported primarily by HP and IBM).
http://www.pattosoft.com.au/jason/Articles/HistoryOfComputers/X11.gif
![Page 11: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/11.jpg)
Exceptions: MacOS X uses a proprietary Aqua windowing system (more efficient than X11), mobile phone interfaces
![Page 12: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/12.jpg)
Topics
X Windows X Protocol Classic X apps Starting X apps
Window managers Desktop environments Desktop applications
![Page 13: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/13.jpg)
X Window
The X Window system was developed as part of Project Athena at MIT. In 1987, X Version 11 is released. X is now controlled and maintained by the Open Group.
The X Windows System, also referred to as ‘X’ or “X11”, is the standard graphical engine for Unix and Linux.
It is largely OS and hardware independent, it is network-transparent, and it supports many different desktops.
![Page 14: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/14.jpg)
The Graphic User Interface in X
X Window uses a bit-mapped display where each pixel can be manipulated individually.
The entire display is known as the root window, and individual applications are displayed as windows on this root window.
X is started with the startx or xinit commands. X can also be invoked during system startup
![Page 15: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/15.jpg)
X Protocol
The X Protocol provides a client-server architecture at the application level:
The X client is the processing part of the application and often runs on a remote machine.
The X server is the display and interaction system.
![Page 16: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/16.jpg)
X Protocol cont’d
The X Protocol is also divided into device dependent and device independent layers.
![Page 17: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/17.jpg)
X Server Design
Device Dependent Layer It is this layer that is responsible for localizing the X server to
the native environment, be it MS Windows or Solaris. This layer swaps bytes of data from machines with differing byte
ordering. Byte ordering (MSB and LSB) is noted in each X request.
This layer hides the architectural differences in hardware and operating systems.
Maintains device driver dependencies for keyboard, mouse and video.
![Page 18: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/18.jpg)
Networked Windowing
X Window designed to allow apps to run on remote machines
Uses client-server model
X Serverstd system software
Clientapp software
Network
User
![Page 19: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/19.jpg)
X architecture
The client-server nature of the X Protocol allows a single X server to support many clients (applications) on several hosts.
![Page 20: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/20.jpg)
Client-Server Window System
Application 1 Application 2 Application nClient ApplicationPrograms
Virtualdisplay 1
Virtualdisplay n
Resourceallocator
Devicedriver
Window2 Window
n
Window1
MouseKeyboard
(After Fig 10.2, Dix, Finlay, Abowd and Beale)
Virtualdisplay 2
Server
Devices
Device-independent abstraction level
Translates abstraction into reality:one per terminal type
Could beWindowManager
![Page 21: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/21.jpg)
X Protocol messages
Requests – client sends requests to the server (e.g. create window)
Replies – server response to client requests
Events – server forwards events (such as mouse clicks or keyboard entry) to the client
Errors – server reports errors to the client
![Page 22: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/22.jpg)
![Page 23: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/23.jpg)
X Server
The X server therefore: displays drawing requests on the screen. replies to information requests. reports an error in a request. Manages the keyboard, mouse and display device.
Multiplexes keyboard and mouse input onto the network (or via local IPC) to the respective X clients. (X events)
creates, maps and destroys windows. writes and draws in windows
![Page 24: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/24.jpg)
X Client
sends requests to the server. receives events from server. receives errors from the server
![Page 25: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/25.jpg)
Protocol Messages
Requests X clients make requests to the X server for a
certain action to take place. i.e.: Create Window To enhance performance, the X client normally
does not expect nor wait for a response. The request is typically left to the reliable network layer to deliver.
![Page 26: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/26.jpg)
Protocol Messages
Replies The X server will respond to certain X client
requests that require a reply. As noted, not all requests require a reply.
![Page 27: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/27.jpg)
Protocol Messages
Events The X server will forward to the X client an event
that the application is expecting. This could include keyboard or mouse input. To minimize network traffic, only expected events are sent to X clients.
X events are 32 bytes
![Page 28: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/28.jpg)
Protocol Messages
Errors The X server will report errors in requests to the X
client. Errors are like an event but are handled differently.
X errors are the same size as events to simplify their handling. They are sent to the error handling routine of the X client.
![Page 29: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/29.jpg)
X Windows Protocol OverviewX Windows is the predominate windowing system on UNIX computers, developed by the X Consortium, lead by M.I.T. An X server manages the display on the workstation. Clients can connect to server via TCP/IP and perform graphics operations. This makes X Windows much more network capable than Microsoft Windows, for example, which can only be accessed via a local API. X Windows operates over TCP, typically using server port numbers starting with 6000. The X server for a system's first display listens on port 6000; if the system has a second display, its server listens on port 6001; a third display would listen on 6002; etc. The protocol used over this reliable stream connection is essentially request/reply, and it's reputation is as a fat protocol that consumes a lot of bandwidth. Lightweight X (LWX), introduced in X11R6, attempts to reduces X's bandwidth needs to the point where it can be run over dialup modem connections.
The X Protocol, documented in a postscript file, defines dozens of messages that can be exchanged between a client and a server. They can generally be classified into four categories: Requests, Replies, Events, and Errors. Typical requests include Draw PolyLine, Draw Text, Create Window, Fill. Replies are matched to particular Requests. Events are asynchronous occurances such as keystrokes and mouse clicks. Errors are matched to particular Requests. If a window is partially or fully obscured by another, overlapping window, the server has two options available to it. The server can allocate additional memory, called backing store, to record to contents of the obscured window. This is purely optional, however. The server can simply ignore the obscured part of the window. Later, when that part of the window becomes visible again, the server sends an Expose event to the client, which must then redraw the affected area. The client, therefore, must be prepared to redraw any part of its windows at any time.
Applications do not need to access the X Windows protocol directly. X Windows supports several APIs. The most basic of these is Xlib, which interfaces fairly directly to the underlying network protocol. Most X client applications are linked against Xlib, which allows them to operate on either a local or remote X server, simply by adjusting either an environment variable or a command-line argument. Widgets layer on top of Xlib and provide X Windows with an object-oriented programming model. A widget is an X window capable of handling most of its own protocol interaction. The most popular widget sets are Athena Widgets (aw) and Motif. X Window's security model is all-or-nothing. Either an application can perform any operation on an X desktop, or it can perform none. There is no concept of limiting an application to a single top-level window, for example. Although there is power in this model, such as allowing the window manager to be a normal X client, there are also serious security implications. A hostile X client could connect to an X server and arrange to capture any screen image, or even to capture keystrokes as a password is being typing in one of the windows. For this reasons, X servers are typically fairly restrictive about which clients they will accept connections from. Two major security models are available. Host-based security (traditionally controlled by the xhost program), permits or denies connections based on their source IP addresses. Authentication (traditionally controlled by the xauth program), requires the connecting program to possess a secret password, typically stored in a UNIX file and subject to standard UNIX access controls. Kerberos-based authentication is also available.
![Page 30: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/30.jpg)
Starting X Windows
On a local PC or workstation, you can usually start the X server with the “xinit” (“startx”) command or it may be started automatically by “xdm” (graphical login display).
Configuration stored in /etc/XF86ConfigUsually edited with utility /usr/X11R6/bin/xf86configor /usr/X11R6/bin/xf86cfg
![Page 31: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/31.jpg)
xf86cfg
![Page 32: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/32.jpg)
Configuring X Windows
mouseconfig Command used to configure a mouse for use by X
Windows xconfigurator
A program that is used to configure video adapter card and monitor information for use by X Windows
redhat-config-xfree86 used in recent Red Hat & in Fedora
![Page 33: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/33.jpg)
Configuring X Windows
Fedora and X Windows configuration Fedora has greatly improved video & monitor
detection Not included in Fedora (Red Hat only):
SuperProbeXf86configXconfigurator
![Page 34: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/34.jpg)
Starting X applications
To launch an X client from a remote host for display on the local X server, you need to set two things:1) Permission for the remote host to display X clients on the local machine.
xhost +remotehost2) The target display for the remote application.
setenv DISPLAY=server:display
[hostname]:displaynumber[.screennumber]
not needed, if same host
“0” in most cases defaults to “0”
![Page 35: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/35.jpg)
/etc/X11/xinit/xinitrc (xinit)or /home/g/.xsession (xdm)
#!/bin/sh# $Id: xinitrc,v 1.2 2003/02/27 19:03:30 jharper Exp $
xrdb -load $HOME/.Xresources
xsetroot -solid gray &xclock -g 50x50-0+0 -bw 0 &
xterm &
# start the window manager
exec twm
#!/bin/sh# $Id: xinitrc,v 1.2 2003/02/27 19:03:30 jharper Exp $
xrdb -load $HOME/.Xresources
xsetroot -solid gray &xclock -g 50x50-0+0 -bw 0 &
xterm &
# start the window manager
exec twm
last line: replaces shell-script with window manager, will terminate all background processes on exit
loads resources: default fonts, colours, window sizes
xinit executes this script
![Page 36: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/36.jpg)
Shells Unix and DOS operating systems circa 1980s support text-based user
interfaces via a program called a shell. These shells insert another layer between the user and the operating system. Typical text shells under unix are csh and ksh. The typical text shell under microsoft is command.com. It is still emulated today by cmd.exe.
Original unix and Microsoft GUI support was also implemented as shells. The dominant unix GUI library became an open library called X11 supported by the X.org foundation. Microsoft introduced Windows 1.0 as a shell that ran on a layer above MS-DOS.
The original Apple GUI is embedded into its operating system kernel. Windows migrated to embedding GUI support beginning with Windows NT.
![Page 37: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/37.jpg)
Classic X11
[Guntis-Computer:/usr/X11R6/bin] guntis% lsX luit xbiff xlsclientsXmark makedepend xcalc xlsfontsXnest makeg xclipboard xmagXprt makepsres xclock xmanXquartz makestrs xcmsdb xmessageXvfb mergelib xconsole xmhappres mkcfm xcursor-config xmkmfatobm mkdirhier xcutsel xmodmapbdftopcf mkfontdir xditview xonbdftruncate mkfontscale xdm xpropbeforelight mkhtmlindex xdpyinfo xrandrbitmap oclock xedit xrdbbmtoa proxymngr xev xrefreshccmakedep pswrap xeyes xsetcleanlinks quartz-wm xfd xsetmodecxpm resize xfindproxy xsetpointerdpsexec revpath xfontsel xsetrootdpsinfo rman xfs xsmdumpkeymap rstart xfsinfo xstdcmapeditres rstartd xft-config xtermfc-cache sessreg xfwp xtrapcharfc-list setxkbmap xgamma xtrapinfontconfig-config showfont xgc xtrapinfofreetype-config showrgb xhost xtrapoutfslsfonts smproxy xinit xtrapprotofstobdf startx xkbbell xtrapresetgccmakedep sxpm xkbcomp xtrapstatsglxgears texteroids xkbevd xvidtuneglxinfo twm xkbprint xvinfoiceauth ucs2any xkbvleds xwdico uxterm xkbwatch xwininfoimake viewres xkill xwudlbxproxy x11perf xloadlistres x11perfcomp xlogolndir xauth xlsatoms[Guntis-Computer:/usr/X11R6/bin] guntis% man xwud
![Page 38: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/38.jpg)
xterm
The most important X application is, rather ironically, the terminal program xterm.
Old school xterm:
![Page 39: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/39.jpg)
xterm: The Main Client
You can invoke all UNIX commands and X programs form the UNIX command line available in an xterm window.
xterm can also be used with a scrollbar (-sb), and the number of lines saved can be specified (-sl). You can position and specify the size and position of a window (-
geometry) and its foreground and background color (-fg and -bg).
You can start a program as an icon (-icon) and provide a name (-name) or title (-title).
![Page 40: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/40.jpg)
Some classic X apps
xclock – pretty self-explanatory
![Page 41: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/41.jpg)
Some classic X apps
xeyes – ok, this is really the most important
![Page 42: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/42.jpg)
xnest
![Page 43: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/43.jpg)
XFree86
“In short, XFree86 is an open source X11-based desktop infrastructure.” – xfree86.org
X.org Foundation – sucessor of XFree86
Used in most Linux distributions
![Page 44: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/44.jpg)
Window managers,Widget toolkits,
Desktop environments,Desktop applications
![Page 45: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/45.jpg)
X Architecture1. The kernel gets an event from an input device
and sends it to X.2. The X server determines which window the
event affects and sends it to the clients that have selected for the event in question on that window.
3. The client looks at the event and decides what to do.
4. When the X server receives the rendering request, it sends it to the driver to let it program the hardware to do the rendering.
5. The damage event tells the compositor that something changed in the window and that it has to recomposite the part of the screen where that window is visible.
6. The X server receives the rendering requests from the compositor and either copies the compositor back buffer to the front buffer or does a pageflip.
![Page 46: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/46.jpg)
X and the GUI
X itself provides the back end needed for a GUI. It doesn’t, however, provide an interface itself.
Window management functions – e.g. moving or resizing windows – are performed by a window manager, which is itself an X client. These range from the spartan (twm) to the complex and graphically intensive (Enlightenment).
There are various different toolkits for creating graphical applications, providing libraries of widgets such as buttons etc. These range from the old and ugly (Motif) to the new and shiny (GTK+, Qt)
No two users can be assumed to have the same window manager and different applications can use different toolkits (or even write their own). Therefore, there’s a lack of consistency about the average X desktop – this makes things ugly and can be hard to use.
![Page 47: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/47.jpg)
Why not only a basic X11 environment?
Most X11 applications have important shortcomings: Application Interoperability is too hard User Interface is inconsistent and of unequal quality
Modern desktop environment brings the "glue" Drag & Drop, Session Management, etc... Consistent "look and feel" Unified Help System Easy dialog based desktop configuration Common application development framework (-> MFC) Compound document framework (-> OLE)
New exciting possibilities: Hundreds of new applications (including Office) Powerful application development environment
![Page 48: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/48.jpg)
Window managersOne can use X11 without a window manager.
Typically, one writes a session script which starts an "xterm" at a "-geometry" location. One then starts other X11 clients by giving their "-geometry" explicitly, because there is no window manager
The window manager is a special X client that controls the placement and movement of applications, provides title bars and control buttons, menus and taskbars. Some support virtual desktops and very fancy graphics.
When a window manager is running, some of interaction between the X server and its clients is redirected through the window manager.
Classic window managers include: TWM MWM - Motif Window Manager
Nowadays, KDE (kwm) and GNOME (sawfish) are two widely used window managers in Linux.
![Page 49: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/49.jpg)
The Tab Window Manager (TWM)
![Page 50: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/50.jpg)
![Page 51: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/51.jpg)
![Page 52: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/52.jpg)
Linux GUI Components
Desktop Environment
Window Manager
X Windows
Graphical Programs (X clients)
Video Adapter Card Hardware
![Page 53: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/53.jpg)
Motif Window manager and Widgets
![Page 54: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/54.jpg)
KDE
KDE is the traditional desktop environment used on Linux systems
K Windows Manager (kwm) The window manager that works under the KDE
Desktop Environment Qt toolkit
Software toolkit used with the KDE Desktop environment
![Page 55: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/55.jpg)
Linux Developement
Qt Class Library C++ Cross Platform
Qt/Windows Qt/X11 (Linux, Solaris, HPUX,
AIX, etc) Qt/Mac
GPL – Free for non-commercial apps Qt was used to build KDE from Trolltech in Norway www.trolltech.com
![Page 56: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/56.jpg)
![Page 57: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/57.jpg)
![Page 58: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/58.jpg)
Gnome
GNOME Desktop Environment Default desktop environment in Red Hat Linux Typically uses the Sawfish Window Manager and
the GTK+ toolkit for the C programming languageThe GTK+ toolkit was originally developed for the
GNU Image Manipulation Program (GIMP)Ported also to MS Win, MacOS X planned
![Page 59: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/59.jpg)
Bluecurve
Bluecurve Both a visual theme and a set of modifications to
the KDE and GNOME environments Gives both a common “look & feel” Smooths out inconsistent behaviors between the
different WMs
![Page 60: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/60.jpg)
The KDE Desktop Environment
![Page 61: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/61.jpg)
The Bluecurve + KDE in Fedora
![Page 62: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/62.jpg)
The GNOME Desktop Environment
![Page 63: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/63.jpg)
The Bluecurve + GNOME in Fedora
![Page 64: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/64.jpg)
KDE and Gnome architectures
![Page 65: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/65.jpg)
What is a desktop?
It is the top of a desk
It is a pc cabinet for the desktop
It is the graphical user interface (GUI) on a pc
It is the graphical enviroment for the average user on a pc
![Page 66: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/66.jpg)
KDE and GNOME
K Desktop Environment KDE is a "complete desktop environment that try to
make linux accessible to everybody" At present KDE 3.5
GNU Network Object Model Environment AIM: "GNOME Intends to build a complete, user-
friendly desktop, similar to CDE or KDE, but based entirely on free software"
At present GNOME 2.14
![Page 67: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/67.jpg)
KDE
http://www.kde.org/
![Page 68: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/68.jpg)
KDE
![Page 69: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/69.jpg)
GNOME
http://www.gnome.org/
![Page 70: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/70.jpg)
Render Extension Render Extension - - ShadowsShadows
![Page 71: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/71.jpg)
Render Extension Render Extension - - TranslucencyTranslucency
![Page 72: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/72.jpg)
Render Extension Render Extension – – anti-alias fontanti-alias font
![Page 73: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/73.jpg)
SuperKaramba -SuperKaramba -dynamic background infodynamic background info
![Page 74: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/74.jpg)
More GUI on Linux
X Window server Window Managers
KDE GNOME WindowMaker FVWM Enlightenment IceWM CorelLinux
![Page 75: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/75.jpg)
WindowMaker
http://www.windowmaker.org/
![Page 76: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/76.jpg)
FVWM
http://www.fvwm.org/
![Page 77: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/77.jpg)
Enlightment
http://www.enlightenment.org/
![Page 78: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/78.jpg)
IceWM
http://iceorg.sourceforge.net/
![Page 79: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/79.jpg)
Corel Linux
http://linux.corel.com/
![Page 80: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/80.jpg)
Office suites for Linux WordPerfect Office
ApplixWare
StarOffice
GNOME Office
KOffice
![Page 81: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/81.jpg)
StarOffice / OpenOffice / LibreOffice
SUN Microsystems Writer Calc Impress Draw Base
Danish in june Free, not Open Source
![Page 82: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/82.jpg)
KOffice
KDE project KWord KSpread
Kpresenter Killustrator KChart
Open Source
![Page 83: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/83.jpg)
![Page 84: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/84.jpg)
GNOME Office
GNOME project AbiWord Gnumeric GIMP Dia GNOME-DB
Open Source
![Page 85: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/85.jpg)
Other desktop applications
GIMP Image editor á la Adobe
Photoshop Free and open Thousands of plug-ins
Mozilla Webbrowser (Firefox) Mailclient (Thunderbird)
![Page 86: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/86.jpg)
Office Suites
StarOffice KDE GNOME MS WindowsSpreadSheet StarCalc Kspread Gnumeric ExcelPresentation StarImpress Kpresenter Achtung PowerPointVector Drawing StarDraw Killustrator Gill PaintWord Processor StarWriter Kword AbiWord WordChart Drawing StarChart Kdiagramm Guppi Excel Graphic FeatureFormula Editor StarMath Kformula Equation Editor Image Processor StarImage Kimage Gimp Ms. ImageDiagram Creation Dia VisioPlanning Events StarScheduleCalendar Korganizer Gcalendar
![Page 87: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/87.jpg)
Using X windows remotely on a MS-Windows machine.
You need to get a program called an “Xserver”. Exceed works well and is free for academic use. Cygwin is another option.
You must allow X-forwarding through your ssh client. Putty is good for this.
![Page 88: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/88.jpg)
![Page 89: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/89.jpg)
![Page 90: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/90.jpg)
![Page 91: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/91.jpg)
![Page 92: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/92.jpg)
X server security configuration
xhost xhost simply allows you to specify which machines are, or aren't allowed to connect to the X server, this is a very simplistic security mechanism and is not really suitable in any modern environment, however used in conjunction with other mechanisms it can help. The command is quite simple: 'xhost +example.org' adds example.org, 'xhost -example.org' removes example.org from the list, you must also specify 'xhost -' to turn on the access control list, or else everyone is let in by default.
mkxauth mkxauth is definitely a step up from xhost. mkxauth helps create ~/.Xauthority files, and merge them, which are used to specify hostnames and the related magic cookies (basically a token used to gain access). These cookies can then be used to gain access to a remote X host (you essentially have a copy of the cookie on each end) and are transferred either plain text (insecure) or DES encrypted (quite secure). Using this method you can be relatively safe and secure. Xauthority files can also be used in conjunction with Kerberos, removing the necessity to copy Xauthority files around and keep them in synchronization. Hosts authenticate to each other through a central Kerberos key server(s) in an encrypted fashion, this method is most appropriate for large installations/etc. mkxauth has an excellent man page 'man mkxauth' and more generalized details are available in the Xsecurity man page (not sure how common this name page is) 'man Xsecurity'.
SSH tunnelSSH or OpenSSH can be used to create a tunnel between hosts (or more specifically between two X servers), thus encrypting the channel, providing authentication, and generally making things safer. The following web page explains it http://csociety.ecn.purdue.edu/~sigos/projects/ssh/forwarding/.
![Page 93: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/93.jpg)
Mac OS X
![Page 94: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/94.jpg)
Mac OS X ArchitectureApple’s Boiled Sweets diagram
http://developer.apple.com/macosx/architecture/
![Page 95: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/95.jpg)
The Smartphone Platform
With the iPhone being the first to the marketplace it sets the configuration of the Smartphone Platform
3G/4G connectivity WiFi connectivity Bluetooth connectivity accelerometer w/compass ambient light sensor proximity sensor GPS gyroscope
![Page 96: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/96.jpg)
What is iOS
Apple’s mobile OS for phones (iPhone), tablets (iPad), handhelds (iPod),
based on BSD Unix Application programming done in Objective C Supports Bluetooth, Wi-Fi, and 3G and 4G
networking
![Page 97: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/97.jpg)
Apple iOS
![Page 98: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/98.jpg)
What is Android Android is an open source operating system,
created by Google specifically for use on mobile devices (cell phones and tablets)
Linux based (2.6 kernel) Can be programmed in C/C++ but most app
development is done in Java (Java access to C Libraries via JNI (Java Native Interface))
Supports Bluetooth, Wi-Fi, and 3G and 4G networking
![Page 99: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/99.jpg)
The Android Software Stack
![Page 100: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/100.jpg)
Main GUI parts
Status Bar
Home Screen
App Screen
Favourites Tray
Navigation bar(Android 3.0+)
![Page 101: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/101.jpg)
Commonly Used Packages
User interface controls and widgets User interface layout Secure networking and web browsing Structured storage and relational databases (SQLite
RDBMS) 2D and 3D Graphics SGL and OpenGL Audio and visual media support Access to optional hardware (GPS)
![Page 102: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/102.jpg)
Security
Semantic
![Page 103: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/103.jpg)
Android Application Development
Eclipse IDE
AndroidSDK
AndroidEmulato
r
AndroidMobileDevice
![Page 104: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/104.jpg)
iOS Application Development
XCODE IDE
iOSSDK
iOSSimulat
or
iOSMobileDevice
![Page 105: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/105.jpg)
Android development
Android Manifest
Resource XML
Java Source
Generated Class
Java Compile
rAndroid Libraries
.dexFile
DalvikVM
![Page 106: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/106.jpg)
iOS development
Objective C Source .xib file Objective
C Compiler
Foundation FrameworkCocoa Libraries
. Simulator or
Device
Interface Builder
Xcode
![Page 107: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/107.jpg)
Sams Teach Yourself Android™Application Development in 24 Hours (0321673352)
Copyright ©2010 Lauren Darcey and Shane Conder
FIGURE 5.6 Simplified Android platform architecture from a security perspective.
![Page 108: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/108.jpg)
UI With GUI Builder
![Page 109: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/109.jpg)
Android Basics• Open source OS
• Uses Linux kernel• Optimized for limited-resource environment
• Apps typically written in Java• Apps run on the Dalvik Virtual Machine
• Not a JVM, but works similarly from developer’s point of view
• Usually one app per DVM• Each DVM runs under Linux as a separate user• App permissions set at install time
• Possible to use C or C++ compiled to machine code, but still runs on VM.
![Page 110: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/110.jpg)
X11, X12, What next…
![Page 111: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/111.jpg)
X12
X11 was defined in the middle of the 1980's. Since then, computers have changed almost beyond recognition; the simple framebuffer model used by computers at the time has been replaced programmable graphics hardware that is both complex and powerful. Not only has graphics hardware changed, but the basic processing model has and continues to change; parallelism in core system design is becoming the norm, rather than a special case for 'large' systems.
And that's just talking about desktop systems; now there are smart phones, netbooks, tablets, and probably will shortly be other device types that this author can't imagine (else I'd be working on them...).
In short, X11 was designed for a different era of computing.
This is not to say that there's an X12 project. There isn't. But if one day there is...
…You can read the full story at http://www.x.org/wiki/Development/X12/
![Page 112: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/112.jpg)
Wayland1. The kernel gets an event and sends it to the
compositor. This is similar to the X case.2. The compositor looks through its scenegraph
to determine which window should receive the event.
3. As in the X case, when the client receives the event, it updates the UI in response.
4. The compositor collects damage requests from its clients and then recomposites the screen.
XWayland was written to enable running X11 applications through an X server, optionally rootless, running as a Wayland client. This is similar to the way X applications run in OS X’s native graphics environment
Wayland architecture
![Page 113: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/113.jpg)
WaylandWayland compositorsDisplay servers that implement the Wayland display server protocol are also called Wayland compositors because they additionally perform the task of a compositing window manager.Weston – the reference implementation of a Wayland compositor; Weston implements client-side decorationLipstick – mobile user experience (UX) framework which implements Wayland compositor. It is used in Sailfish OS and Nemo Mobile.Enlightenment 0.19 (E19) is expected to have full Wayland support.KWin had incomplete Wayland support in April 2013.Mutter maintains a separate branch for the integration of Wayland for GNOME 3.9 (in September 2013).Clayland is a simple example Wayland compositor using Clutter.
Wayland uses direct rendering over EGL
![Page 114: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/114.jpg)
Wayland: Planned adoption
Enlightenment: The Enlightenment project declared full support for Wayland with their Enlightenment Foundation Libraries and window manager.
Fedora: Fedora ships Wayland since release 17. Fedora developer Matthias Clasen released a tentative roadmap in March 2013, targeting to use Wayland as default by Fedora 21. Fedora 20 ships with a technology preview of a Wayland-enabled Gnome 3.10 session.
GNOME: In March 2013 GNOME developers announced plans for a complete Wayland port within a year. GNOME 3.10 includes initial support that "will enable the project to fully adopt the next generation display and input technology in the future". The current roadmap targets GNOME 3.12 as the first version to be fully ported to Wayland.
KWin, the KDE's window manager, added support for OpenGL ES output in version 4.7. In January 2013 KWin’s main developer Martin Grässlin started working for Blue Systems with one of the goals being a complete Wayland port. Experimental Wayland support is now working in current KWin 4.11.
KDE’s Calligra Suite already has an unofficial but working port to Wayland. Mate desktop: Wayland support is on Mate’s roadmap. The targeted Mate version is 1.10. Raspberry Pi: The Raspberry Pi Foundation are working in collaboration with Collabora to improve
performance and memory consumption, but do not expect to be able to replace X11 as the default display server until later in 2013.
Intelligent Input Bus is working on Wayland support, it could be ready for Fedora 22
![Page 115: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/115.jpg)
Mir
Mir is a computer display server for Linux in development by Canonical Ltd. It is planned to replace the currently used X Window System for Ubuntu.
Mir, like Wayland, is built on EGL and uses some of the infrastructure originally developed for Wayland such as Mesa’s EGL implementation and Jolla’s libhybris. The compatibility layer for X, XMir, is based on XWayland.
![Page 116: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/116.jpg)
Mir: Adoption
As of May 2014 the only announced desktop environment with native support for Mir is Canonical's Unity 8. No other Linux distribution has announced plans to adopt Mir as default display manager.
On 23 July 2013, Compiz developer Sam Spilsbury announced a proof-of-concept port of XBMC to Mir, based on the previous proof-of-concept port of XBMC to Wayland. On the same day Canonical developer Oliver Ries confirmed that "this is the first native Mir client out in the wild".
Among Ubuntu derivatives using a non-Unity environment, Xubuntu developers announced in early August 2013 that they would evaluate running Xfce via XMir, but three weeks later decided to refrain from adopting it.
Ubuntu:In June 2013 Canonical's publicly announced milestones for Mir development were to ship Unity 7 with XMir by default and a pure X11 fallback mode with Ubuntu 13.10, remove the X11 fallback with Ubuntu 14.04 LTS, and Unity 8 running natively on Mir by Ubuntu 14.10.Later, on 1 October 2013, Canonical announced a postponement of their Mir plans for desktop use and not use XMir as default in Ubuntu 13.10. Ubuntu Touch, however is targeted to ship with Mir and a smartphone version of Unity 8.In March 2014 Mark Shuttleworth confirmed that Mir development had been delayed and that it was now forecast to be default for desktop use in Ubuntu 16.04 LTS, expected to be released in April 2016.
![Page 117: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/117.jpg)
ROOT GUI
X11 Will (sooner or later) disappear, and a compatibility layer will probably stay for a while, but be prepared for the change
Adding another incarnation of TVirtualX to support yet another backend could be a solution, but using which architecture/technology?
A complete rewrite of the GUI, without having a “X11 like” approach would be nice, but the cross-platform layer is still an issue: implementing the platform-dependent layers would be a killer
Possible solution: Use existing GUI toolkit
![Page 118: Unix GUI Guntis Barzdins Girts Folkmanis. GUI History In 1962, Douglas Engelbart invented the first “mouse,” which he called an “X-Y Position Indicator.”](https://reader030.vdocuments.us/reader030/viewer/2022032709/56649eac5503460f94bb3800/html5/thumbnails/118.jpg)
GUI Toolkits
Many cross-platform C++ GUI toolkits already exist:• Qt• GTK+• FLTK• Fox (based on Xclass 95, like ROOT)• TnFOX• wxWidgets (WxWindows license)• CEGUI (MIT license)• Juce (GPL, commercial)