Guntis Barzdins Girts Folkmanis

Slides:



Advertisements
Similar presentations
Operating-System Structures
Advertisements

Introduction to Linux X-Windows, Desktop Environments Other commonly used programs.
CS 497C – Introduction to UNIX Lecture 37: - X Windows Chin-Chih Chang
Guide to Linux Installation and Administration, 2e1 Chapter 5 Using Linux Graphical Environments.
Chapter 11: The X Window System Guide To UNIX Using Linux Third Edition.
1. Reasons for logging on as a root •Most people are familiar with Windows systems with regard to administrative privileges. Many user running windows.
Operating System Structures
X Window JianJing Cao (ID #98284). Content Introduction X Window System Function Window Principle How X Window Works Security.
Intro to Android and iOS CS-328 Dick Steflik. The Players Android – Open source mobile OS developed ny the Open Handset Alliance led by Google. Based.
Objectives Overview Define an operating system
CMPTR1 CHAPTER 3 COMPUTER SOFTWARE Application Software – The programs/software/apps that we run to do things like word processing, web browsing, and games.
Mobile Application Development
Google Android as a mobile development platform T Internet Technologies for Mobile Computing Olli Mäkinen.
Linux GUI X-Windows System. X-Windows System A stable and extremely powerful GUI system that provides a complete Client/Server framework. The X-org foundation.
Introduction to windows operating system i
Chapter 2: Exploring the Desktop The Complete Guide to Linux System Administration.
Operating Systems.
The University of Akron Summit College Business Technology Department Computer Information Systems 2440: 145 Operating Systems Introduction to UNIX/Linux.
SOFTWARE.
Telnet/SSH: Connecting to Hosts Internet Technology1.
Section 6.1 Explain the development of operating systems Differentiate between operating systems Section 6.2 Demonstrate knowledge of basic GUI components.
Linux GUI Chapter 5. Graphical User Interface GUI vs. CLI Easier and more intuitive More popular and advanced Needed for graphics, web browsing Linux.
Operating Systems Operating System
Guide to Linux Installation and Administration, 2e1 Chapter 3 Installing Linux.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
XP New Perspectives on Browser and Basics Tutorial 1 1 Browser and Basics Tutorial 1.
X Window System.
Explain the purpose of an operating system
ANDROID 응용 프로그래밍 과정 – 목차 - 안드로이드란 - 안드로이드가 만들어지게 된배경 - 안드로이드의 철학 - 안드로이드 환경설정 ( SDK download, eclipse plug-in 설정, 간단한 프로그램 실행 ) - 안드로이드 동작원리 - 안드로이드 핵심.
FTP Server and FTP Commands By Nanda Ganesan, Ph.D. © Nanda Ganesan, All Rights Reserved.
Linux+ Guide to Linux Certification Chapter Ten The X Window System.
2.1 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 2: Operating-System Structures Overview of topics covered Operating System Services.
1 Introduction to Microsoft Windows 2000 Windows 2000 Overview Windows 2000 Architecture Overview Windows 2000 Directory Services Overview Logging On to.
* Property of STI Page 1 of 18 Software: Systems and Applications Basic Computer Concepts Software  Software: can be divided into:  systems software.
Computer Networking From LANs to WANs: Hardware, Software, and Security Chapter 13 FTP and Telnet.
INTRO TO IOS AND ANDROID. THE PLAYERS AAndroid – Open source mobile OS developed ny the Open Handset Alliance led by Google. Based on Linux 2.6 kernel.
ANDROID BY:-AANCHAL MEHTA MNW-880-2K11. Introduction to Android Open software platform for mobile development A complete stack – OS, Middleware, Applications.
10/8: Software What is software? –Types of software System software: Operating systems Applications Creating software –Evolution of software development.
Copyright © by Shayne R Flint Simplified Web Application Development Shayne R Flint Department of Computer Science Australian National University.
X-WindowsP.K.K.Thambi The X Window System Module 5.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Unix GUI Guntis Barzdins Girts Folkmanis. Exception: MacOS X uses a proprietary Aqua windowing system (more efficient than X11)
1 Lecture 6 Introduction to Process Management COP 3353 Introduction to UNIX.
© Paradigm Publishing, Inc. 4-1 Chapter 4 System Software Chapter 4 System Software.
Chapter 9 Operating Systems Discovering Computers Technology in a World of Computers, Mobile Devices, and the Internet.
CIS Lesson 7 X. Understanding X Overview One of the original open source projects Developed at MIT Criticisms of X Handles fonts poorly Security.
Copyright © 2015 McGraw-Hill Education. All rights reserved. No reproduction or distribution without the prior written consent of McGraw-Hill Education.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Operating Systems Overview Basic Computer Concepts Operating System What does an operating system do  A computer’s software acts similarly with.
By Adam Reimel. Outline Introduction Platform Architecture Future Conclusion.
System Software Chapter Handles technical details Works with end users, application software, and computer hardware Four types of programs –Operating.
 This work confers an application which makes possible to use a Bluetooth enabled mobile phone to remote control home appliances such electric fan, LEDs.
CHAPTER 7 Operating System Copyright © Cengage Learning. All rights reserved.
DISCOVERING COMPUTERS 2018 Digital Technology, Data, and Devices
Computer System Structures
Operating System & Application Software
Nature & Types of Software
Lecture 1-Part 2: Operating-System Structures
Chapter 2: Operating-System Structures
Chapter 2: Operating-System Structures
Telnet/SSH Connecting to Hosts Internet Technology.
Chapter 4.
Chapter 2: System Structures
X Windows.
Chapter 2: The Linux System Part 1
Lecture 1-Part 2: Operating-System Structures
Chapter 2: Operating-System Structures
Lecture 6 Introduction to Process Management
Presentation transcript:

Guntis Barzdins Girts Folkmanis Unix GUI Guntis Barzdins Girts Folkmanis

Semestrvidus aptauja

Exceptions: MacOS X uses a proprietary Aqua windowing system (more efficient than X11), mobile phone interfaces

Classic X11 [Guntis-Computer:/usr/X11R6/bin] guntis% ls X luit xbiff xlsclients Xmark makedepend xcalc xlsfonts Xnest makeg xclipboard xmag Xprt makepsres xclock xman Xquartz makestrs xcmsdb xmessage Xvfb mergelib xconsole xmh appres mkcfm xcursor-config xmkmf atobm mkdirhier xcutsel xmodmap bdftopcf mkfontdir xditview xon bdftruncate mkfontscale xdm xprop beforelight mkhtmlindex xdpyinfo xrandr bitmap oclock xedit xrdb bmtoa proxymngr xev xrefresh ccmakedep pswrap xeyes xset cleanlinks quartz-wm xfd xsetmode cxpm resize xfindproxy xsetpointer dpsexec revpath xfontsel xsetroot dpsinfo rman xfs xsm dumpkeymap rstart xfsinfo xstdcmap editres rstartd xft-config xterm fc-cache sessreg xfwp xtrapchar fc-list setxkbmap xgamma xtrapin fontconfig-config showfont xgc xtrapinfo freetype-config showrgb xhost xtrapout fslsfonts smproxy xinit xtrapproto fstobdf startx xkbbell xtrapreset gccmakedep sxpm xkbcomp xtrapstats glxgears texteroids xkbevd xvidtune glxinfo twm xkbprint xvinfo iceauth ucs2any xkbvleds xwd ico uxterm xkbwatch xwininfo imake viewres xkill xwud lbxproxy x11perf xload listres x11perfcomp xlogo lndir xauth xlsatoms [Guntis-Computer:/usr/X11R6/bin] guntis% man xwud

Topics X Windows X Protocol Classic X apps Starting X apps Window managers Desktop environments Desktop applications

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.

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

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.

X Protocol cont’d The X Protocol is also divided into device dependent and device independent layers.

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.

Networked Windowing X Window designed to allow apps to run on remote machines Uses client-server model X Server std system software Client app software Network User

X architecture The client-server nature of the X Protocol allows a single X server to support many clients (applications) on several hosts.

Client-Server Window System Could be Window Manager Client Application Programs Application 1 Application 2 Application n Virtual display 1 Virtual display 2 Virtual display n Server Resource allocator Device-independent abstraction level Device driver Translates abstraction into reality: one per terminal type Window 1 Devices Keyboard Mouse Window 2 Window n (After Fig 10.2, Dix, Finlay, Abowd and Beale)

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

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

X Client sends requests to the server. receives events from server. receives errors from the server

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.

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.

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

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.

X Windows Protocol Overview X 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.

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/XF86Config Usually edited with utility /usr/X11R6/bin/xf86config or /usr/X11R6/bin/xf86cfg

xf86cfg

Configuring X Windows mouseconfig xconfigurator 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

Configuring X Windows Fedora and X Windows configuration Fedora has greatly improved video & monitor detection Not included in Fedora (Red Hat only): SuperProbe Xf86config Xconfigurator

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 +remotehost 2) 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”

/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 loads resources: default fonts, colours, window sizes last line: replaces shell-script with window manager, will terminate all background processes on exit xinit executes this script

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. Sketchpad pioneered the concepts of graphical computing, including memory structures to store objects, rubber-banding of lines, the ability to zoom in and out on the display, and the ability to make perfect lines, corners, and joints. Source: US Patent Office

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

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 First system based upon usability engineering inspired design extensive paper prototyping and usage analysis usability testing with potential users iterative refinement of interface

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

Apple gets a GUI In 1983, the Apple Lisa was first GUI offering. Apple II, 1980 http://www.s-line.de/homepages/horber-privat/bilder/apple2a.jpg Lisa http://fp3.antelecom.net/gcifu/applemuseum/lisa2.html

Apple gets a GUI http://computermuseum.50megs.com/images/collection/apple-mac-plus.jpg 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://toastytech.com/guis/bigmac1.gif

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

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

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. The Microsoft shell command.com is delivered as part of its MS-DOS operating system. IBM’s proprietary clone PC-DOS, and its original competitor DR-DOS.

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

Window managers One 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.

The Tab Window Manager (TWM)

xterm The most important X application is, rather ironically, the terminal program xterm. Old school xterm:

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).

Some classic X apps xclock – pretty self-explanatory

Some classic X apps xeyes – ok, this is really the most important

xnest

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

Window managers, Widget toolkits, Desktop environments, Desktop applications

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.

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

Linux GUI Components Graphical Programs (X clients) Desktop Environment Window Manager X Windows Video Adapter Card Hardware

Motif Window manager and Widgets

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

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

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 language The GTK+ toolkit was originally developed for the GNU Image Manipulation Program (GIMP) Ported also to MS Win, MacOS X planned

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

The KDE Desktop Environment

The Bluecurve + KDE in Fedora

The GNOME Desktop Environment

The Bluecurve + GNOME in Fedora

KDE and Gnome architectures

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

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

KDE http://www.kde.org/

KDE

GNOME http://www.gnome.org/

Render Extension - Shadows

Render Extension - Translucency

Render Extension – anti-alias font

SuperKaramba - dynamic background info

More GUI on Linux X Window server Window Managers KDE GNOME WindowMaker FVWM Enlightenment IceWM CorelLinux

WindowMaker http://www.windowmaker.org/

FVWM http://www.fvwm.org/

Enlightment http://www.enlightenment.org/

IceWM http://iceorg.sourceforge.net/

Corel Linux http://linux.corel.com/

Office suites for Linux WordPerfect Office ApplixWare StarOffice GNOME Office KOffice

StarOffice / OpenOffice / LibreOffice SUN Microsystems Writer Calc Impress Draw Base Danish in june Free, not Open Source

KOffice KDE project Open Source KWord KSpread Kpresenter Killustrator KChart Open Source

GNOME Office GNOME project Open Source AbiWord Gnumeric GIMP Dia GNOME-DB Open Source

Other desktop applications GIMP Image editor á la Adobe Photoshop Free and open Thousands of plug-ins Mozilla Webbrowser (Firefox) Mailclient (Thunderbird)

Office Suites

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.

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 tunnel SSH 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/.

Mac OS X

Apple’s Boiled Sweets diagram Mac OS X Architecture Apple’s Boiled Sweets diagram http://developer.apple.com/macosx/architecture/

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

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

Apple iOS

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

The Android Software Stack

Main GUI parts Status Bar Home Screen App Screen Favourites Tray Navigation bar (Android 3.0+)

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)

Security Semantic

Android Application Development SDK Eclipse IDE Android Mobile Device Android Emulator

iOS Application Development SDK XCODE IDE iOS Mobile Device iOS Simulator

Android development Java Source Android Manifest Generated Class Java Compiler .dex File Dalvik VM Resource XML Android Libraries

iOS development Xcode Objective C Source Interface Builder .xib file Objective C Compiler . Simulator or Device Foundation Framework Cocoa Libraries

Copyright ©2010 Lauren Darcey and Shane Conder Sams Teach Yourself Android™Application Development in 24 Hours (0321673352) FIGURE 5.6 Simplified Android platform architecture from a security perspective. Copyright ©2010 Lauren Darcey and Shane Conder

UI With GUI Builder

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.