%% $Header: /cvsroot/lcdp/lpic/general-linux-2/notes/notes.tex,v 1.5 2003/05/30 05:42:55 waratah Exp $

\documentclass[a4paper,10pt,fullpage]{book}

%\usepackage{draftcopy} 
\usepackage{palatino}
\usepackage{pifont}
\usepackage{pstricks}
\usepackage{graphicx}
\usepackage{alltt}
\usepackage{rotating}
\usepackage{rotate}
\usepackage{boxedminipage}
\setlength{\columnsep}{30mm}

\newcommand{\cmd}[1]{%
\texttt{\$ \textbf{#1 \(\hookleftarrow\)}}
}

\newcommand{\rootcmd}[1]{%
\texttt{\# \textbf{#1 \(\hookleftarrow\)}}
}

\newcommand{\opt}[1]{%
{\bf\texttt{#1}}
}

%\title{ LPIC General Linux 1 }

\title{--- {\huge LPIC General Linux Part 2} ---
  \\[3mm]\Large{\textsf{(Study Notes)}    
    \footnote{Copyright \copyright 2002 Geoffrey Robertson. Permission
      is granted to make and distribute verbatim copies or modified
      versions of this document provided that this copyright notice
      and this permission notice are preserved on all copies under the
      terms of the GNU General Public License as published by the Free
      Software Foundation---either version 2 of the License or (at
      your option) any later version.}     
    \footnote{ {\scriptsize RCS Id = $ $Id: lpic.general-linux-1.notes.tex,v 1.2
        2002/02/28 23:06:04 geoffrey Exp geoffrey $ $} }}}

\author{geoffrey hector robertson \\geoffrey@zip.com.au}

%=============================================================================
\begin{document}%=============================================================
%=============================================================================




%----10->|-----20->|-----30->|-----40->|-----50->|-----60->|-----70->|-----80->

\maketitle

% \begin{abstract}
% The 
% \end{abstract}

% \begin{description}     
% \item[Document Description:] 
% \item[References:] \verb+ +
%   \begin{enumerate}
%   \item 
%   \end{enumerate}
% \item[Total Weighting:] 89 
% \end{description}

%\newpage
\tableofcontents
%\newpage


\noindent   



%******************************************************************************
%******************************************************************************
%\setcounter{part}{100}
\part*{\underline{\textsf{Topic 101}} \\[10mm]Hardware \& Architecture} 
%******************************************************************************


%##############################################################################
% \setcounter{chapter}{1}
\chapter*{\underline{\textsf{Objective 101.1}} \\[4mm]
Configure Fundamental BIOS Settings}








%=============================================================================
%=============================================================================
\chapter*{General Linux Part 2 []}
The information in this section is taken from the LPI Project
Objective Management System and is copyright to the Linux Professional
Institute. It should be noted that the latest version of this information will be found at:
\\ \textsf{http://www.lpi.org/cgi-bin/poms.py}.

\section*{A note about the numbering}
\begin{itemize}
\item The numbers hard on the left margin with one dot, e.g. 1.103,
  are LPI Exam Topic numbers.
\item The numbers in parentheses next to the LPI Exam Topic numbers
  are the old topic numbers and may be used to reference topics in
  older books and documentation.
\item The numbers hard on the left margin with two dots, e.g. 1.103.1,
  are LPI Exam Objectives.
\item The numbers in square brackets to the right of Topics and
  Objectives indicate weightings.
\end{itemize}


%=============================================================================
\setcounter{section}{100} 
\section{(1.1) Hardware \& Architecture [11]} 

%------------------------------------------------------------------------------
\subsection{ Configure Fundamental BIOS Settings [3]} 

\subsubsection*{Statement of Objective:}
 
Candidates should be able to configure fundamental system hardware by
making the correct settings in the system BIOS. This objective
includes a proper understanding of BIOS configuration issues such as
the use of LBA on IDE hard disks larger than 1024 cylinders, enabling
or disabling integrated peripherals, as well as configuring systems
with (or without) external peripherals such as keyboards. It also
includes the correct setting for IRQ, DMA and I/O addresses for all
BIOS administrated ports and settings for error handling.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/proc/ioports
/proc/interrupts
/proc/dma
/proc/pci
\end{alltt}

\subsubsection*{Resources of interest}
Large Disk HOWTO by Andries Brouwer 
\begin{alltt}
http://www.linuxdoc.org/HOWTO/Large-Disk-HOWTO.html
\end{alltt}

%------------------------------------------------------------------------------
\subsection{ Setup SCSI devices [2]}

\subsubsection*{Statement of Objective:} 

Candidates should be able to configure SCSI devices using the SCSI
BIOS as well as the necessary Linux tools. They also should be able to
differentiate between the various types of SCSI. This objective
includes manipulating the SCSI BIOS to detect used and available SCSI
IDs and setting the correct ID number for different devices especially
the boot device. It also includes managing the settings in the
computer's BIOS to determine the desired boot sequence if both SCSI
and IDE drives are used.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
SCSI ID
/proc/scsi/
scsi_info
\end{alltt}
\subsubsection*{Resources of interest}


%------------------------------------------------------------------------------
\subsection{ Setup different PC expansion cards [2]}

\subsubsection*{Statement of Objective:}

Candidates should be able to configure various cards for the various
expansion slots. They should know the differences between ISA and PCI
cards with respect to configuration issues. This objective includes
the correct settings of IRQs, DMAs and I/O Ports of the cards,
especially to avoid conflicts between devices. It also includes using
isapnp if the card is an ISA PnP device.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/proc/dma
/proc/interrupts
/proc/ioports
/proc/pci
pnpdump(8)
isapnp(8)
lspci(8)
\end{alltt}

\subsubsection*{Resources of Interest}
\begin{description}
  \item[Linux Hardware Compatibility HOWTO - Steven Pritchard]:
  \begin{alltt}
http://www.linuxdoc.org/HOWTO/Hardware-HOWTO/index.html  
  \end{alltt}
  \item[Linux PCI-HOWTO by Michael Will]:
  \begin{alltt}
 http://www.linuxdoc.org/HOWTO/PCI-HOWTO.html   
  \end{alltt}
  \item[Plug-and-Play-HOWTO David S.Lawyer]: 
  \begin{alltt}
http://www.linuxdoc.org/HOWTO/Plug-and-Play-HOWTO.html
  \end{alltt}
\end{description}

%------------------------------------------------------------------------------
\subsection{ Configure communication devices [2]}

\subsubsection*{Statement of Objective:}

Candidates should be able to install and configure different internal
and external communication devices like modems, ISDN adapters, and DSL
switches. This objective includes verification of compatibility
requirements (especially important if that modem is a winmodem),
necessary hardware settings for internal devices (IRQs, DMAs, I/O
ports), and loading and configuring suitable device drivers. It also
includes communication device and interface configuration
requirements, such as the right serial port for 115.2 Kbps, and the
correct modem settings for outbound PPP connection(s).

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/proc/dma
/proc/interrupts
/proc/ioports
setserial(8)
\end{alltt}
 
\subsubsection*{Resources of Interest}
\begin{description}
  \item[Linmodem-HOWTO by Sean Walbran and Marvin Stodolsky]: 
  \begin{alltt}
 http://www.linuxdoc.org/HOWTO/Linmodem-HOWTO.html   
  \end{alltt}
  \item[Modem-HOWTO - David S.Lawyer]: 
  \begin{alltt}
 http://www.linuxdoc.org/HOWTO/Modem-HOWTO.html   
  \end{alltt}
  \item[The Winmodems-and-Linux HOWTO by Alexandre J.]: 
  \begin{alltt}
 http://www.linuxdoc.org/HOWTO/Winmodems-and-Linux-HOWTO.html   
  \end{alltt}
  \item[Serial HOWTO - David S.Lawyer original by Greg Hankins]: 
  \begin{alltt}
 http://www.linuxdoc.org/HOWTO/Serial-HOWTO.html   
  \end{alltt}
  \item[The Linux Winmodem Support Website]: 
  \begin{alltt}
 http://www.linmodems.org   
  \end{alltt}
\end{description}


%------------------------------------------------------------------------------
\subsection{ Set Up USB devices [2]}

\subsubsection*{Statement of Objective:}

Candidates should be able to activate USB support, use and configure
different USB devices. This objective includes the correct selection
of the USB chipset and the corresponding module. It also includes the
knowledge of the basic architecture of the layer model of USB as well
as the different modules used in the different layers.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
lspci(8)
usb-uhci.o
usb-ohci.o
/etc/usbmgr/
usbmodules 
/etc/hotplug
\end{alltt} 

\subsubsection*{Resources of Interest}
\begin{description}
  \item[The Linux-USB Project ] 
  \begin{alltt}
http://www.linux-usb.org:    
  \end{alltt}
\end{description}


%------------------------------------------------------------------------------
%=============================================================================
\section{(2.2) Linux Installation \& Package Management [24]}

%------------------------------------------------------------------------------
\subsection{ Design hard disk layout [2]}

\subsubsection*{Statement of Objective:}

Candidates should be able to design a disk partitioning scheme for a
Linux system. This objective includes allocating filesystems or swap
space to separate partitions or disks, and tailoring the design to the
intended use of the system. It also includes placing /boot on a
partition that conforms with the BIOS' requirements for booting.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/ (root) filesystem
/var filesystem
/home filesystem
swap space
mount points
partitions
cylinder 1024
\end{alltt}
 
\subsubsection*{Resources of Interest:}
\begin{description}
  \item[Mini-FAQ from Karsten M Self on Linux Partitioning]: 
  \begin{alltt}
http://pw1.netcom.com/~kmself/Linux/FAQs/partition.html    
  \end{alltt}
\end{description}


%------------------------------------------------------------------------------
\subsection{Install a boot manager [3]}

\subsubsection*{Statement of Objective:}

Candidate should be able to select, install, and configure a boot
manager. This objective includes providing alternative boot locations
and backup boot options (for example, using a boot floppy).

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/etc/lilo.conf 
/boot/grub/grub.conf 
lilo 
grub-install
MBR
superblock
first stage boot loader
\end{alltt}
 
\subsubsection*{Resources of Interest:}
\begin{description}
  \item[LinuxGazette GRUB Article]: 
  \begin{alltt}
 http://www.linuxgazette.com/issue64/kohli.html 
  \end{alltt}  
  \item[The Gnu Grub Site]: 
  \begin{alltt}
http://www.gnu.org/software/grub/  
  \end{alltt}
\end{description}

%------------------------------------------------------------------------------
\subsection{Make and install programs from source [5]}

\subsubsection*{Statement of Objective:}

Candidates should be able to build and install an executable program
from source. This objective includes being able to unpack a file of
sources. Candidates should be able to make simple customisations to
the Makefile, for example changing paths or adding extra include
directories.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
gunzip
gzip
bzip2 
tar 
configure 
make
\end{alltt}
 
\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}

%------------------------------------------------------------------------------
\subsection{Manage shared libraries [3]}

\subsubsection*{Statement of Objective:}

Candidates should be able to determine the shared libraries that
executable programs depend on and install them when necessary.
Candidates should be able to state where system libraries are kept.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/etc/ld.so.conf 
LD_LIBRARY_PATH
\end{alltt}
 
\subsubsection*{Resources of Interest:}
\begin{description}
  \item[Shared-Library HOWTO] Used to be at: 
  \begin{alltt}
 http://www.linux.com/howto/Program-Library-HOWTO/shared-libraries.html 
  \end{alltt}
\end{description}

%------------------------------------------------------------------------------
\subsection{Use Debian package management [5]}

\subsubsection*{Statement of Objective:}

Candidates should be able to perform Debian package management.This
objective includes being able to use command-line and interactive
tools to install, upgrade, or uninstall packages, as well as find
packages containing specific files or software (such packages might or
might not be installed). This objective also includes being able to
obtain package information like version, content, dependencies,
package integrity and installation status (whether or not the package
is installed).

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/etc/dpkg/dpkg.cfg
/var/lib/dpkg/*
/etc/apt/apt.conf
/etc/apt/sources.list
dpkg
dselect
dpkg-reconfigure
apt-get
alien
\end{alltt}
 
\subsubsection*{Resources of Interest:}
\begin{description}
  \item[The Debian GNU/Linux FAQ]: 
  \begin{alltt}
http://www.debian.org/doc/FAQ/index.html  
  \end{alltt}
\end{description}

%------------------------------------------------------------------------------
\subsection{Use Red Hat Package Manager (RPM) [6]}

\subsubsection*{Statement of Objective:}

Candidates should be able to perform package management under Linux
distributions that use RPMs for package distribution. This objective
includes being able to install, re-install, upgrade, and remove
packages, as well as obtain status and version information on
packages. This objective also includes obtaining package information
such as version, status, dependencies, integrity, and signatures.
Candidates should be able to determine what files a package provides,
as well as find which package a specific file comes from.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/etc/rpmrc
/usr/lib/rpm/*
\end{alltt}
 
\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}



%------------------------------------------------------------------------------
%=============================================================================
\setcounter{section}{104}
\section{(1.5) Kernel [7]}


%------------------------------------------------------------------------------
\subsection{Manage/Query kernel and kernel modules at runtime [3]}
\subsubsection*{Statement of Objective:}

Candidates should be able to manage and/or query a kernel and kernel
loadable modules. This objective includes using command-line utilities
to get information about the currently running kernel and kernel
modules. It also includes manually loading and unloading modules as
appropriate. It also includes being able to determine when modules can
be unloaded and what parameters a module accepts. Candidates should be
able to configure the system to load modules by names other than their
file name.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/lib/modules/kernel-version/modules.dep 
/etc/modules.conf & /etc/conf.modules 
depmod 
insmod 
lsmod 
rmmod 
modinfo 
modprobe 
uname
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}


%------------------------------------------------------------------------------
\subsection{Reconfigure, build, and install a custom kernel and kernel modules  [4]}
\subsubsection*{Statement of Objective:}

Candidates should be able to customise, build, and install a kernel
and kernel loadable modules from source This objective includes
customising the current kernel configuration, building a new kernel,
and building kernel modules as appropriate. It also includes
installing the new kernel as well as any modules, and ensuring that
the boot manager can locate the new kernel and associated files
(generally located under /boot, see objective 1.102.2 for more details
about boot manager configuration).

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/usr/src/linux/* 
/usr/src/linux/.config 
/lib/modules/kernel-version/* 
/boot/* 
make 
make targets: config, menuconfig, xconfig, oldconfig, modules, install, modules_install, depmod 
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}


%=============================================================================
\setcounter{section}{106}
\section{(1.7) Printing [6]}

%------------------------------------------------------------------------------
\subsection{Manage printers and print queues [2]}

\subsubsection*{Statement of Objective:}

The candidate should be able to manage print queues and user print
jobs. This objective includes monitoring print server and user print
queues and troubleshooting general printing problems

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
lpc 
lpq 
lprm 
lpr 
/etc/printcap
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}

%------------------------------------------------------------------------------
\subsection{Print files [1]}
\subsubsection*{Statement of Objective:}

Candidates should be able to manage print queues and manipulate print
jobs. This objective includes adding and removing jobs from configured
printer queues and converting text files to postscript for printing.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
lpr 
lpq 
mpage
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}

%------------------------------------------------------------------------------
\subsection{Install and configure local and remote printers  [3]}

\subsubsection*{Statement of Objective:}

Candidate should be able to install a printer daemon, install and
configure a print filter (e.g.: apsfilter, magicfilter). This
objective includes making local and remote printers accessible for a
Linux system, including postscript, non-postscript, and Samba
printers.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
lpd
/etc/printcap
/etc/apsfilter/*
/var/lib/apsfilter/*/
/etc/magicfilter/*/
/var/spool/lpd/*/
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}


 
%=============================================================================
\setcounter{section}{108}
\section{(1.9) Shells, Scripting, Programming, Compiling [9]} 
 
%------------------------------------------------------------------------------
\subsection{Customise and use the shell environment [4]}

\subsubsection*{Statement of Objective:}

Candidate should be able to customise shell environments to meet
users' needs. This objective includes setting environment variables
(e.g. PATH) at login or when spawning a new shell. It also includes
writing bash functions for frequently used sequences of commands.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
~/.bash_profile 
~/.bash_login 
~/.profile 
~/.bashrc 
~/.bash_logout 
~/.inputrc
function (Bash built-in command) 
export 
env 
set (Bash built-in command) 
unset (Bash built-in command) 
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}

%------------------------------------------------------------------------------
\subsection{Customise or write simple scripts [5]}

\subsubsection*{Statement of Objective:}

Candidate should be able to customise existing scripts, or write
simple new (ba)sh scripts. This objective includes using standard sh
syntax (loops, tests), using command substitution, testing command
return values, testing of file status, and conditional mailing to the
superuser. This objective also includes making sure the correct
interpreter is called on the first (\#!) line of scripts. This
objective also includes managing location, ownership, execution and
suid-rights of scripts.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
while 
for 
test 
chmod
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[Bash Programming Introduction (LDP HOWTO)]: 
  \begin{alltt}
http://www.linux.org/docs/ldp/howto/Bash-Prog-Intro-HOWTO.html  
  \end{alltt}
\end{description}


%=============================================================================
\setcounter{section}{109}
\section{(2.10) X [10]} 
 
%------------------------------------------------------------------------------
\subsection{Install \& Configure XFree86 [4]}

\subsubsection*{Statement of Objective:}

Candidate should be able to configure and install X and an X font
server. This objective includes verifying that the video card and
monitor are supported by an X server, as well as customising and
tuning X for the videocard and monitor. It also includes installing an
X font server, installing fonts, and configuring X to use the font
server (may require a manual edit of /etc/X11/XF86Config in the
"Files" section).

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
XF86Setup
xf86config
xvidtune 
/etc/X11/XF86Config
.Xresources 
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[XWindow-User HOWTO (LDP)]: 
  \begin{alltt}
  
  \end{alltt}
\end{description}

 
%------------------------------------------------------------------------------
\subsection{Setup a display manager [1]}

\subsubsection*{Statement of Objective:}

Candidate should be able setup and customise a Display manager. This
objective includes turning the display manager on or off and changing
the display manager greeting. This objective includes changing default
bitplanes for the display manager. It also includes configuring
display managers for use by X-stations. This objective covers the
display managers XDM (X Display Manger), GDM (Gnome Display Manager)
and KDM (KDE Display Manager).

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}

\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[XDM and XDMCP HOWTO (LDP)]: 
  \begin{alltt}
http://www.linux.org/docs/ldp/howto/XDMCP-HOWTO/index.html  
  \end{alltt}
  \item[The Linux Gazette]: 
  \begin{alltt}
http://www.linuxgazette.com/search.html  
xdm, gdm, kdm
  \end{alltt}
\end{description}

 
%------------------------------------------------------------------------------
\subsection{Install \& Customise a Window Manager Environment [4]}

\subsubsection*{Statement of Objective:}

Candidate should be able to customise a system-wide desktop
environment and/or window manager, to demonstrate an understanding of
customisation procedures for window manager menus and/or desktop panel
menus. this objective includes selecting and configuring the desired
x-terminal (xterm, rxvt, aterm etc.), verifying and resolving library
dependency issues for X applications, exporting X-display to a client
workstation.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
.xinitrc 
.Xdefaults 
xhost 
DISPLAY environment variable
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}



%=============================================================================
\setcounter{section}{111}
\section{(1.12) Networking Fundamentals [18]} 
 
%------------------------------------------------------------------------------
\subsection{Fundamentals of TCP/IP [4]}

\subsubsection*{Statement of Objective:}

Candidates should demonstrate a proper understanding of network
fundamentals. This objective includes the understanding of
IP-addresses, network masks and what they mean (i.e. determine a
network and broadcast address for a host based on its subnet mask in
"dotted quad" or abbreviated notation or determine the network
address, broadcast address and netmask when given an IP-address and
number of bits). It also covers the understanding of the network
classes and classless subnets (CIDR) and the reserved addresses for
private network use. It includes the understanding of the function and
application of a default route. It also includes the understanding of
basic Internet protocols (IP, ICMP, TCP, UDP) and the more common TCP
and UDP ports (20, 21, 23, 25, 53, 80, 110, 119, 139, 143, 161).

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/etc/services 
ftp 
telnet 
host 
ping 
dig 
traceroute 
whois
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[Linux Networking HOWTO - Joshua Drake]: 
  \begin{alltt}
 http://www.linuxdoc.org/HOWTO/Net-HOWTO/index.html 
  \end{alltt}
  \item[The Linux Networking Overview HOWTO by Daniel Lopez Ridruejo]: 
  \begin{alltt}
http://www.linuxdoc.org/HOWTO/Networking-Overview-HOWTO.html  
  \end{alltt}
  \item[Linux Network Administrators Guide]: 
  \begin{alltt}
http://www.linuxdoc.org/LDP/nag2/index.html  
  \end{alltt}
\end{description}

  
%------------------------------------------------------------------------------
\subsection{TCP/IP configuration and troubleshooting [10]}

\subsubsection*{Statement of Objective:}

Candidates should be able to view, change and verify configuration
settings and operational status for various network interfaces. This
objective includes manual and automatic configuration of interfaces
and routing tables. This especially means to add, start, stop,
restart, delete or reconfigure network interfaces. It also means to
change, view or configure the routing table and to correct an
improperly set default route manually. Candidates should be able to
configure Linux as a DHCP client and a TCP/IP host and to debug
problems associated with the network configuration.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/etc/HOSTNAME or /etc/hostname 
/etc/hosts 
/etc/networks 
/etc/host.conf 
/etc/resolv.conf 
/etc/nsswitch.conf 
ifconfig 
route 
dhcpcd, dhcpclient, pump 
host 
hostname (domainname, dnsdomainname) 
netstat 
ping 
traceroute 
tcpdump 
the network scripts run during system initialisation.
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[Linux Networking HOWTO by Joshua Drake]: 
  \begin{alltt}
http://www.linuxdoc.org/HOWTO/Net-HOWTO/index.html  
  \end{alltt}
  \item[Linux Ethernet-Howto by Paul Gortmaker]: 
  \begin{alltt}
http://www.linuxdoc.org/HOWTO/Ethernet-HOWTO.html  
  \end{alltt}
\end{description}


%------------------------------------------------------------------------------
\subsection{Configure Linux as a PPP client [4]}

\subsubsection*{Statement of Objective:}

Candidates should understand the basics of the PPP protocol and be
able to configure and use PPP for outbound connections. This objective
includes the definition of the chat sequence to connect (given a login
example) and the setup commands to be run automatically when a PPP
connection is made. It also includes initialisation and termination of
a PPP connection, with a modem, ISDN or ADSL and setting PPP to
automatically reconnect if disconnected.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/etc/ppp/options.* 
/etc/ppp/peers/* 
/etc/wvdial.conf 
/etc/ppp/ip-up 
/etc/ppp/ip-down 
wvdial 
pppd
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[Linux PPP HOWTO Corwin Light-Williams and Joshua Drake]: 
  \begin{alltt}
http://www.linuxdoc.org/HOWTO/PPP-HOWTO/index.html  
  \end{alltt}
\end{description}


%=============================================================================
\setcounter{section}{112}
\section{(1.13) Networking Services [20]} 
 
%------------------------------------------------------------------------------
\subsection{Configure and manage inetd, xinetd, and related services [5]}

\subsubsection*{Statement of Objective:}

Candidates should be able to configure which services are available
through inetd, use tcpwrappers to allow or deny services on a
host-by-host basis, manually start, stop, and restart internet
services, configure basic network services including telnet and ftp.
Set a service to run as another user instead of the default in
inetd.conf.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/etc/inetd.conf 
/etc/hosts.allow 
/etc/hosts.deny 
/etc/services 
/etc/xinetd.conf 
/etc/xinetd.log
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}


%------------------------------------------------------------------------------
\subsection{Operate and perform basic configuration of sendmail [5]}

\subsubsection*{Statement of Objective:}

Candidate should be able to modify simple parameters in sendmail
configuration files (including the "Smart Host" parameter, if
necessary), create mail aliases, manage the mail queue, start and stop
sendmail, configure mail forwarding and perform basic troubleshooting
of sendmail. The objective includes checking for and closing open
relay on the mailserver. It does not include advanced custom
configuration of Sendmail.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/etc/sendmail.cf 
/etc/aliases or /etc/mail/aliases 
/etc/mail/* 
~/.forward 
mailq 
sendmail 
newaliases
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}

%------------------------------------------------------------------------------
\subsection{Operate and perform basic configuration of Apache [3]}

\subsubsection*{Statement of Objective:}

Candidates should be able to modify simple parameters in Apache
configuration files, start, stop, and restart httpd, arrange for
automatic restarting of httpd upon boot. Does not include advanced
custom configuration of Apache.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
apachectl 
httpd 
httpd.conf
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[Apache home page]: 
  \begin{alltt}
 http://www.apache.org 
  \end{alltt}
\end{description}

%------------------------------------------------------------------------------
\subsection{Properly manage the NFS, smb, and nmb daemons [4]}

\subsubsection*{Statement of Objective:}

Candidate should know how to mount remote filesystems using NFS,
configure NFS for exporting local filesystems, start, stop, and
restart the NFS server. Install and configure Samba using the included
GUI tools or direct edit of the /etc/smb.conf file (Note: this
deliberately excludes advanced NT domain issues but includes simple
sharing of home directories and printers, as well as correctly setting
the nmbd as a WINS client).

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/etc/exports 
/etc/fstab 
/etc/smb.conf
mount 
umount
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}

%------------------------------------------------------------------------------
\subsection{Setup and configure basic DNS services [3]}

\subsubsection*{Statement of Objective:}

Candidate should be able to configure hostname lookups and
troubleshoot problems with local caching-only name server. Requires an
understanding of the domain registration and DNS translation process.
Requires understanding key differences in configuration files for bind
4 and bind 8.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/etc/hosts 
/etc/resolv.conf 
/etc/nsswitch.conf 
/etc/named.boot (v.4) or /etc/named.conf (v.8) 
named
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}

%------------------------------------------------------------------------------
\subsection{Configure ntp.conf and ntp.drift to be used by xntpd [2]}

\subsubsection*{Statement of Objective:}

Candidate should be able to set up the system to synchronise the clock
over NTP. Configure it to correct clock drift to match NTP clock.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/etc/ntp.conf 
/etc/ntp.drift 
ntpd 
ntpdate
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}

%------------------------------------------------------------------------------
\subsection{Set up secure shell (OpenSSH) [2]}

\subsubsection*{Statement of Objective:}

The candidate should be able to obtain and configure OpenSSH. This
objective includes basic OpenSSH installation and troubleshooting, as
well as configuring sshd to start at system boot..

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/etc/hosts.allow 
/etc/hosts.deny 
/etc/nologin 
/etc/ssh/sshd_config 
/etc/ssh_known_hosts 
/etc/sshrc 
sshd 
ssh-keygen
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}


%=============================================================================
\setcounter{section}{113}
\section{(1.14) Security [10]} 

%------------------------------------------------------------------------------
\subsection{Perform security administration tasks [4]}

\subsubsection*{Statement of Objective:}

Candidates should know how to review system configuration to ensure
host security in accordance with local security policies. This
objective includes how to configure TCP wrappers, find files with
SUID/SGID bit set, verify packages, set or change user passwords and
password aging information, update binaries as recommended by CERT,
BUGTRAQ, and/or distribution's security alerts. Includes basic
knowledge of ipchains and iptables.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/proc/net/ip_fwchains 
/proc/net/ip_fwnames 
/proc/net/ip_masquerade 
find 
ipchains 
passwd 
socket 
iptables
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}

%------------------------------------------------------------------------------
\subsection{Setup host security [4]}

\subsubsection*{Statement of Objective:}

Candidate should know how to set up a basic level of host security.
Tasks include syslog configuration, shadowed passwords, set up of a
mail alias for root's mail and turning of all network services not in
use.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
/etc/inetd.conf or /etc/inet.d/* 
/etc/nologin 
/etc/passwd 
/etc/shadow 
/ets/syslog.conf
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}

%------------------------------------------------------------------------------
\subsection{Setup user level security [2]}

\subsubsection*{Statement of Objective:}

Candidate should be able to configure user level security. Tasks
include limits on user logins, processes, and memory usage.

\subsubsection*{Key files, terms, and utilities include:}
\begin{alltt}
quota 
usermod
\end{alltt}

\subsubsection*{Resources of Interest:}
\begin{description}
  \item[TBA] 
  \begin{alltt}
  
  \end{alltt}
\end{description}



%=============================================================================
%=============================================================================
%=============================================================================
\part{Resources}

%=============================================================================
%=============================================================================
\setcounter{chapter}{0}
\chapter{(1.1) Hardware \& Architecture [11]} 

{\Large Old number: ()}\\[2mm]
{\Large Weight: []}

\section*{Configure Fundamental BIOS Settings [3]}
\section*{Setup SCSI devices [2]}
\section*{Setup different PC expansion cards [2]}
\section*{Configure communication devices [2]}
\section*{Set Up USB devices [2]}

\newpage
%------------------------------------------------------------------------------
\section{Configure Fundamental BIOS Settings [3]}
\label{sec:101.1.re}

\newpage
%------------------------------------------------------------------------------
\section{Set Up USB devices [2]}
\label{sec:101.5.re}

\subsection{Statement of Objective:}

Candidates should be able to activate USB support, use and configure
different USB devices. This objective includes the correct selection
of the USB chipset and the corresponding module. It also includes the
knowledge of the basic architecture of the layer model of USB as well
as the different modules used in the different layers.

Key files, terms, and utilities include:
\begin{alltt}
lspci(8)
usb-uhci.o
usb-ohci.o
/etc/usbmgr/    \textrm{(A directory)}
usbmodules
/etc/hotplug 
\end{alltt}

\subsection{The Universal Serial Bus}
\begin{itemize}
  \item A serial transmission scheme
  \item Two versions of USB Version 1 \& Version 2
  \item Version 
  \begin{itemize}
    \item 1 released January 1996 
    \item supports speeds up to 12MBit/s (8.5Mbit/s in practice)
    \item  supports up to 127 devices connected to the bus
  \end{itemize}
  Version 2:
  \begin{itemize} 
    \item announced 1999 
    \item supports speeds up to 480Mbit/s
  \end{itemize}
  \item Devices can be self or bus powered
\end{itemize}


\subsection{USB Topology}

The system unit contains the host controller and one virtual root hub with at least one (and normally two) USB interfaces.  These interfaces can then be connected directly to a USB device or to another HUB.


                   

\subsection{USB Device Driver Layers}

The Device drivers used for the USB sub-system are split into two distinct layers:
        Hardware Layer  - usbcore \& usb-uhci / usb-ohci
        API Layer               - Application / Product specific





\subsection{USB Controllers}

        There are two categories of USB controller:
        usb-uhci   -  For Intel, PIIX4, Via controllers
        usb-ohci   -  For Compaq, iMacs, OPTi, SiS, ALi controllers 

To determine your controller type, examine /proc/pci for a clue:
\begin{alltt}
  [root@Node4] root]\# cat /proc/pci
PCI devices found:
   .........  
Bus  0, device   7, function  2:
    USB Controller: VIA Technologies, Inc. UHCI USB (rev 17).
      IRQ 10.
      Master Capable.  Latency=32.
      I/O at 0xe400 [0xe41f].
   .........    
\end{alltt}
The UHCI controllers use a 16 bit IO address:
\begin{alltt}
        I/O at 0xHHHH     eg:  I/O at 0xe400
\end{alltt}

The OHCI controllers use a 32 bit memory address:
 \begin{alltt}
       memory at 0xHH000000    eg memory at 0xee000000
\end{alltt}


\subsection{USB Modules}

Assuming you have a modular kernel, the following modules will be required:

usbcore - The base usb kernel module

plus one of the controller specific modules:
   usb-uhci   -  For Intel, PIIX4, Via controllers
   usb-ohci   -  For Compaq, iMacs, OPTi, SiS, ALi controllers 


Configuration:

An entry in /etc/modules.conf aliases the specific controller to usb-controller as follows:

        alias usb-controller usb-uhci


Starting up the USB sub-system

To have the usb sub-sytem startup automatically at boot time, all you need to do is ensure that the above alias line is present in /etc/modules.conf.

To startup manually, do the following steps:
        insmod usbcore
        insmod usb-uhci  (or usb-ohci)
        mount the usbdevfs filesystem (optional but highly recommended) 

Example:
[root@Node4] root]\# insmod usbcore
Using /lib/modules/2.4.18-4/kernel/drivers/usb/usbcore.o
[root@Node4] root]\# insmod usb-uhci
Using /lib/modules/2.4.18-4/kernel/drivers/usb/usb-uhci.o
[root@Node4] root]\# mount -t usbdevfs usbdevfs /proc/bus/usb


Once this is done, you should see the following entries in /proc/bus/usb:
[root@Node4] root]\# ls /proc/bus/usb
001  devices  drivers

\subsection{USB Interrogation Utilities}

\subsubsection{LSUSB - A console view of USB devices}

Lsusb is a text utility contained in the usbutils package.  Use 'rpm -Uvh usbutils.xxx.rpm' to install.

\begin{alltt}
[root@node4]\# lsusb

Bus 001 Device 001: ID 0000:0000 Virtual Hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            9 Hub
  iProduct                2 USB UHCI Root Hub
 ..........

Bus 001 Device 002: ID 03f0:0601 Hewlett-Packard ScanJet 6300c
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            0 Interface
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x03f0 Hewlett-Packard
  idProduct          0x0601 ScanJet 6300c
  bcdDevice            1.00
  iManufacturer           1 
  iProduct                2 HP ScanJet 6300C
  iSerial                 3 SG9941706SPE
........

Bus 001 Device 003: ID 1189:6000  
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            0 Interface
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x1189 
  idProduct          0x6000 
  bcdDevice            a.03
  iManufacturer           0 
  iProduct                1 USB Optical Storage Device
  iSerial                 0 
\end{alltt}


\subsubsection{USBVIEW - An X view of USB devices}

        Usbview is a GUI utility contained in the usbview package.  Use 'rpm -Uvh usbview.rpm' to install.

        Usbview parses /proc/bus/usb/devices for connected USB devices.  Any device that has a problem will be printed in red.


              


\subsection{Hotplugging Usb Devices}

When a device is plugged into a USB port, it will automatically register itself with the USB subsystem.  The upper API drivers will not however automatically 'insmod' themselves unless the hotplug package has been installed.

With the hotplug package installed, an entry in /proc/sys/kernel/hotplug will be created which will contain the name of an executable to be called whenever a new device is detected on the bus.
\begin{alltt}
$ ls /proc/sys/kernel/hotplug
/sbin/hotplug
\end{alltt}

For example, when a USB scanner is plugged in, hotplug will
automatically load the module 'scanner.o'.  The xsane application can
then be run directly without any user intervention.

        /sbin/hotplug is an executable which is called by the kernel
        (kernel space to user space interface)

        /etc/hotplug is a directory containing configuration information for hotplug
        (which drivers to load when a device is plugged in)



\subsection{Resources}
\begin{itemize}
  \item The Linux USB Sub System by Brad Hards, Sigma Bravo Pty Ltd 
  \item \texttt{www.linux-usb.org}

\end{itemize}



%=============================================================================
%=============================================================================
\chapter{Linux Installation \& Package Management} 

{\Large Old number: (2.2)}\\[2mm]
{\Large Weight: [24]}

\section*{Design hard disk layout [2]}
\section*{Install a boot manager [3]}
\section*{Make and install programs from source [5]}
\section*{Manage shared libraries [3]}
\section*{Use Debian package management [5]}
\section*{Use Red Hat Package Manager (RPM) [6]}

\newpage
%------------------------------------------------------------------------------
\section{Design hard disk layout [2]}
\label{sec:102.1.re}


\newpage
%------------------------------------------------------------------------------
\section{Install a boot manager [3]}
\label{sec:102.2.re}


\newpage
%------------------------------------------------------------------------------
\section{Make and install programs from source [5]}
\label{sec:102.3.re}

\subsection{Objective} 

Candidates should be able to build and install an executable program
from source. This objective includes being able to unpack a file of
sources. Candidates should be able to make simple customizations to
the Makefile, for example changing paths or adding extra include
directories.

\subsubsection{Key files, terms, and utilities include:}
\begin{alltt}
gunzip
gzip
bzip2 
tar 
configure 
make
\end{alltt}

\subsubsection{Resources of interest}
 
\begin{itemize}
\item LPI Linux Certification in a Nutshell \\
\texttt{by Jeffrey Dean}\\
\textsf{O'Reilly}

\item LPIC 1 Certification Bible\\
\textit{Angie Nash and Jason Nash}\\
\textsf{Hungry Minds}
\end{itemize}


%..............................................................................
\subsection{Source Code Destribution}

To distribute software in the form of source code a \textsf{source tree} is archived into one file using the tar command and then compressed. The resulting file is called a \textsf{tarball}.

Source code may also be distributed using the package management tools of a particular distribution.
\begin{description}
\item[Debian] apt-get install kernel-source-2.2.27
\item[Redhat] rpm -Uhv at-3.1.8-23.src.rpm
\item[Tarball] tdb-1.0.6.tar.gz
\end{description}


%..............................................................................
\subsection{Steps to Install a package from \textsf{tarball}}

  \begin{itemize}
  \item Unpack the \textsf{taball}:
\begin{alltt}
\cmd{tar zxvf my-prog.tar.gz}     
\end{alltt}
  \item Change dircetory into the source tree:  
\begin{alltt}
\cmd{cd my-prog}     
\end{alltt}
  \item Configure the \texttt{Makefile}:
\begin{alltt}
\cmd{./configure}     
\end{alltt}
  \item Make:
\begin{alltt}
\cmd{make}     
\end{alltt}
  \item Install:
\begin{alltt}
\cmd{su -c 'make install'}     
\end{alltt} 
  \end{itemize}

%..............................................................................
\subsection{Installing the trivial database \texttt{tdb}}
\subsubsection{Download}

Locate and download the \texttt{tarball}
\begin{itemize}
\item \textsf{googling} for it: \texttt{http://google.com}
\item search on \textsf{freshmeat}: \texttt{http://freshmeat.net}
\item see if it lives on \textsf{sourceforge}: \texttt{http://www.sf.net}
\end{itemize}
Downlload the tarball to a suitable directory such as \texttt{/tmp}.


\subsubsection{Unpack}
 
The \textsf{tarball} file is a compressed archived source tree.

Most commonly the file will be compressed using either \texttt{gzip}
or \texttt{bzip2}

\textsf{GNU} \texttt{tar} can uncompress and unpack the archive:
\begin{alltt}
\cmd{tar zxvf tdb-1.0.6.tar.gz}  
\end{alltt}
or
\begin{alltt}
\cmd{tar jxvf tdb-1.0.6.tar.bz2}  
\end{alltt}

\subsubsection{\texttt{cd} into the tree}

The unpacked \textsf{tarball} creates a source tree. The base of which is the name of the program
\begin{alltt}
\cmd{ls}
tdb-1.0.6  tdb-1.0.6.tar.gz

\cmd{cd tdb-1.0.6}

\cmd{ls}
configure  tdb.c  tdb.h   README  INSTALL  COPYING
...
\end{alltt}


\subsubsection{\texttt{cd} into the tree}

\small
\begin{alltt}
\cmd{ls -w 70}
acconfig.h    install-sh     stamp-h.in       tdb.h
aclocal.m4    ltconfig       tdb.3            tdbiterate.c
AUTHORS       ltmain.sh      tdb.c            tdb_open.3
ChangeLog     Makefile.am    tdb_chainlock.3  tdb.spec
config.guess  Makefile.in    tdb_close.3      tdbspeed.c
config.h.in   missing        tdb_delete.3     tdb_store.3
config.sub    mkinstalldirs  tdbdump.c        tdbtest.c
configure     NEWS           tdb_error.3      tdbtool.c
configure.in  README         tdb_exists.3     tdbtorture.c
COPYING       spinlock.c     tdb_fetch.3      tdb_traverse.3
INSTALL       spinlock.h     tdb_firstkey.3   TODO
\end{alltt}



\subsubsection{\texttt{./configure}}
\small
\begin{alltt}
\cmd{file configure}
configure: Bourne shell script text executable

\cmd{head -5 configure}
#! /bin/sh

# Guess values for system-dependent variables 
# Create Makefiles.
# Generated automatically using autoconf version 2.13

\end{alltt}


\subsubsection{\texttt{./configure}}
\small
\begin{alltt}
\cmd{./configure}
 creating cache ./config.cache
checking for a BSD compat install... /usr/bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
checking for working aclocal... found
...
creating ./config.status
creating Makefile
creating config.h
\end{alltt}


\subsubsection{The \texttt{Makefile}}
\small
\begin{alltt}
SHELL = /bin/sh
CC = gcc
CFLAGS = -g -O2
prefix = /usr/local
includedir = ${prefix}/include
...
tdbtool: $(tdbtool_OBJECTS) $(tdbtool_DEPENDENCIES)
        @rm -f tdbtool
        $(LINK) $(tdbtool_LDFLAGS) $(tdbtool_OBJECTS) \
                             $(tdbtool_LDADD) $(LIBS)
...
distclean: distclean-am
        -rm -f config.status
\end{alltt}

\subsubsection{\texttt{make}}
\small
\begin{alltt}
\cmd{make}
/bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. 
-I. -I.     -g -O2  -c tdb.c
mkdir .libs
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c  -fPIC -DPIC 
tdb.c -o .libs/tdb.lo
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c tdb.c -o tdb.o
>/dev/null 2>&1
mv -f .libs/tdb.lo tdb.lo
/bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. 
-I. -I.     -g -O2  -c spinlock.c  
...
\end{alltt}


\subsubsection{\texttt{make install}}
\small
\begin{alltt}
su -c 'make install'
Password:
make[1]: Entering directory `/tmp/tdb-1.0.6'
/bin/sh ./mkinstalldirs /usr/local/lib
/bin/sh ./libtool  --mode=install /usr/bin/install -c 
libtdb.la /usr/local/lib/libtdb.la
...
chmod 644 /usr/local/lib/libtdb.a
PATH="$PATH:/sbin" ldconfig -n /usr/local/lib
\end{alltt}


%..............................................................................
\subsection{Play with the trivial database \texttt{tdb}}

The utility \texttt{tdbtool} may be used to have a play with \texttt{tdb}. 

\begin{itemize}
\item Start it and display the help by typing something random:
\begin{alltt}
\cmd{tdbtool}
tdb> ?

tdbtool:
  create    dbname     : create a database
  open      dbname     : open an existing database
  erase                : erase the database
  dump      dumpname   : dump the database as strings
  insert    key  data  : insert a record
  store     key  data  : store a record (replace)
  show      key        : show a record by key
  delete    key        : delete a record by key
  list                 : print the database hash table and freelist
  free                 : print the database freelist
  1 | first            : print the first record
  n | next             : print the next record
  q | quit             : terminate
  \(\setminus\)n                   : repeat 'next' command
tdb>
\end{alltt}

\item Create a database:
\begin{alltt}
tdb> create test.tdb
\end{alltt}

\item Add some data:
\begin{alltt}
tdb> insert 1 thing
tdb> insert 2 foo
tdb> insert 3 bar
tdb> insert 55 whizz
\end{alltt}

\item Have a look at an entry:
\begin{alltt}
tdb> show 3

key 2 bytes
3
data 4 bytes
[000] 62 61 72 00      bar
\end{alltt}

\item Experiment.
\end{itemize}


\newpage
%------------------------------------------------------------------------------
\section{Manage shared libraries [3]}
\label{sec:102.4.re}


\newpage
%------------------------------------------------------------------------------
\section{Use Debian package management [5]}
\label{sec:102.5.re}


\newpage
%------------------------------------------------------------------------------
\section{Use Red Hat Package Manager (RPM) [6]}
\label{sec:102.6.re}




%=============================================================================
%=============================================================================
\setcounter{chapter}{0} 
\chapter{}
\label{ch:104.ex}

{\Large Old number: ()}\\[2mm]
{\Large Weight: []}

\section*{Create partitions and filesystems []}
\section*{Maintain the integrity of filesystems []}
\section*{Control mounting and unmounting filesystems []}
\section*{Managing disk quota []}
\section*{Use file permissions to control access to files []}
\section*{Manage file ownership []}
\section*{Create and change hard and symbolic links []}
\section*{Find system files and place files in the correct location []}

\newpage
%=============================================================================
\section{Create partitions and filesystems [3]}
\label{sec:104.1.re}



%=============================================================================
%=============================================================================
%=============================================================================
\part{Practical Exercises}

%=============================================================================
%=============================================================================
\setcounter{chapter}{102}
\chapter{}

{\Large Old number: (1.3)}\\[2mm]
{\Large Weight: [30]}

\section*{Work on the command line [4]}
\section*{Process text  streams using filters [7]}
\section*{Perform basic file management [2]}
\section*{Use streams, pipes, and redirects [3]}
\section*{Create, monitor, and kill processes [7]}
\section*{Modify process execution priorities [2]}
\section*{Search text files using regular expressions [3]}
\section*{Perform basic file editing using vi [2]}


\newpage
%=============================================================================
\section{Work on the command line [4]}
\label{sec:103.1.ex}


\newpage
%=============================================================================
\section{Find system files and place files in the correct location [2]}
\label{sec:104.8.ex}


%=============================================================================
%=============================================================================
%=============================================================================
\part{Questions}

%=============================================================================
%=============================================================================
% \setcounter{chapter}{0}
% \chapter{General Linux Part 1 [89]} 

%=============================================================================
\setcounter{section}{102} 
\section{(1.3) GNU \& Unix Commands [30]} 

%\newpage
%------------------------------------------------------------------------------
\subsection{Work on the command line [4]}
\label{sec:1.103.1.q}


%=============================================================================
\end{document}%===============================================================
%=============================================================================
\begin{alltt}
\$  \(\hookleftarrow\)    
\end{alltt}
%==============================================================================
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%------------------------------------------------------------------------------
%..............................................................................

