From 219b9379d173dfc3e091bd8ef6431b26825056f5 Mon Sep 17 00:00:00 2001
From: Jan Altenberg <jan@linutronix.de>
Date: Thu, 24 Feb 2011 16:03:09 +0100
Subject: Introduced a basic chapter about the X windows system: XFree <-> Xorg
 The X protocol What is a Windowmanager? Starting X What is a Display Manager?

---
 linux-basics/xorg-basics/pres_xorg_en.tex | 182 ++++++++++++++++++++++++++++++
 1 file changed, 182 insertions(+)
 create mode 100644 linux-basics/xorg-basics/pres_xorg_en.tex

(limited to 'linux-basics/xorg-basics/pres_xorg_en.tex')

diff --git a/linux-basics/xorg-basics/pres_xorg_en.tex b/linux-basics/xorg-basics/pres_xorg_en.tex
new file mode 100644
index 0000000..80cd146
--- /dev/null
+++ b/linux-basics/xorg-basics/pres_xorg_en.tex
@@ -0,0 +1,182 @@
+% on the following slides, include icon in the left sidebar
+\def\lximg{/usr/share/lx/icons/fueller.png}
+
+\input{configpres}
+
+\section{X Windows}
+
+\title{The X Window System}
+\maketitle
+
+% stop displaying 'fueller.png' on the following slides
+\def\lximg{none}
+
+\begin{frame}
+\frametitle{X / X11 / XFree / Xorg ???}
+\begin{itemize}
+\item X11 is a graphical environment for UNIX systems (and windows systems...)
+\item XFree86 is an open source X11 implementation
+\item Xorg is the XServer release by the X.org foundation
+\item Xorg was forked from XFree86 4.4 RC2 (due to a license change in XFree)
+\item Most of the XFree developers moved to X.org
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Client / Server}
+\begin{figure}[h]
+\centering
+\includegraphics[width=10cm]{images/x_server_client.png}
+\end{figure}
+The X protocol is standardized!!!
+\end{frame}
+
+\begin{frame}
+\frametitle{The X protocol}
+The X-Server understands four different types of packets:
+\begin{itemize}
+\item Event
+\item Request
+\item Reply
+\item Error
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{X protocol: Example}
+\tiny
+1)
+\begin{verbatim}
+$ xtrace -D:9 -d:0 -k
+\end{verbatim}
+2)
+\begin{verbatim}
+$ xclock -display :9
+\end{verbatim}
+Then xtrace will show the communication:
+\begin{verbatim}
+...
+000:<:0001: 20: Request(98): QueryExtension name='BIG-REQUESTS'
+000:>:0001:32: Reply to QueryExtension: present=true(0x01) major-opcode=145 
+               first-event=0 first-error=0
+000:<:0002:  4: BIG-REQUESTS-Request(145,0): Enable 
+....
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{X protocol: Forward to a remote machine}
+Assuming you DIDN'T start your Xserver using ''-nolisten tcp'':
+\begin{verbatim}
+# On the host which should display the app
+$ xhost +192.168.0.104
+\end{verbatim}
+\begin{verbatim}
+$ On the machine which starts the app
+$ xlock -display 192.168.0.182:0
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{X via SSH}
+\begin{enumerate}
+\item Enable X11 forwarding on the server side:
+\begin{verbatim}
+# /etc/ssh/sshd_config
+X11Forwarding yes
+\end{verbatim}
+\item Connect from the client side using:
+\begin{verbatim}
+$ ssh -Y my_server
+# In the SSH session
+$ xclock
+\end{verbatim}
+Xclock will be displayed on the client's X server
+\end{enumerate}
+\end{frame}
+
+\begin{frame}
+\frametitle{What is a Window Manager OR Why do all the systems look different?}
+\begin{itemize}
+\item A window manager runs on top of the X window system
+\item Remember: X is based on a Client / Server infrastructure:
+\begin{itemize}
+\item The communication between client and server is redirected through the
+window manager
+\end{itemize}
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Architecture: Graphics / Graphics acceleration}
+\begin{figure}[h]
+\centering
+\includegraphics[width=6cm]{images/x_arch.png}
+\end{figure}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Configuration}
+\begin{verbatim}
+# First of all
+cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
+# then you can do
+$ Xorg -configure
+# On debian based systems you can do
+$ dpkg-reconfigure xserver-xorg 
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Starting X}
+\begin{verbatim}
+# This will evaluate several files (Xsession, ...)
+$ startx
+# Evaluates xinitrc
+$ xinit
+# xinit can also explicitely start an application
+$ xinit xclock
+\end{verbatim}
+\end{frame}
+
+\begin{frame}
+\frametitle{The display manager}
+\begin{itemize}
+\item Managing X sessions (select the window manager, ...)
+\item Providing a login prompt
+\item Examples:
+\begin{itemize}
+\item XDM
+\item GDM
+\item KDM
+\item WDM
+\item entrance
+\end{itemize}
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{X on small systems}
+KDrive aka TinyX:
+\begin{itemize}
+\item Part of the Xorg release since 7.1
+\item Can directly run on on the framebuffer
+\item Debian package: \textbf{xserver-xfbdev}
+\item Can be built using something like:
+\begin{verbatim}
+./configure $XORG_OPTS \
+     --disable-xorg --disable-kdrive \
+     --enable-xfbdev --disable-glx \
+     --disable-dri
+\end{verbatim}
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\begin{thebibliography}{1}
+\bibitem{X} http://en.wikibooks.org/wiki/Guide\_to\_X11/Introduction
+\bibitem{XFree} http://en.wikipedia.org/wiki/X\_Window\_System
+\end{thebibliography} 
+\end{frame}
+
+\input{tailpres}
-- 
cgit v1.2.3

