\chapter{Glossary}
\label{glossary-chapter}
\includegraphics{logos/sit3-bw-tran.1.eps}

\begin{description}
	\item [Argument] Functions and routines are passed arguments to process.
	\item [ARP] Address Resolution Protocol.  Used to translate IP addresses into
		physical hardware addresses.
	\item [Ascii] American Standard Code for Information Interchange.  Each letter
		of the alphabet is represented by an 8 bit code.  Ascii is most often
 		used to store written characters.
	\item [Bit] A single bit of data that represents either 1 or 0 (on or off).
	\item [Bottom Half Handler] Handlers for work queued within the kernel.
	\item [Byte] 8 bits of data,
	\item [C] A high level programming language.  Most of the Linux kernel is written
		in C.
	\item [CISC] Complex Instruction Set Computer.  The opposite of {\em RISC}, a processor
		which supports a large number of often complex assembly instructions.  The X86
		architecture is a CISC architecture.
	\item [CPU] Central Processing Unit.  The main engine of the computer, see also
		{\em microprocessor} and {\em processor}.
	\item [Data Structure] This is a set of data in memory comprised of fields,
	\item [Device Driver] The software controlling a particular device, for example the
		NCR 810 device driver controls the NCR 810 SCSI device.
	\item [DMA] Direct Memory Access.
	\item [ELF] Executable and Linkable Format.  This object file format designed
		by the Unix System Laboratories is now firmly established as the most
		commonly used format in Linux.	
	\item [EIDE] Extended IDE.
	\item [Executable image] A structured file containing machine instructions and data.
		This file can be loaded into a process's virtual memory and executed.
		See also {\em program}.
	\item [Function] A piece of software that performs an action.  For example, returning
		the bigger of two numbers.
	\item [IDE] Integrated Disk Electronics.
	\item [Image] See {\em executable image}.
	\item [IP] Internet Protocol.
	\item [IPC] Interprocess Communiction.
	\item [Interface] A standard way of calling routines and passing data structures.
		For example, the interface between two layers of code might be expressed
		in terms of routines that pass and return a particular data structure.
		Linux's VFS is a good example of an interface.
	\item [IRQ] Interrupt Request Queue.
	\item [ISA] Industry Standard Architecture.  This is a standard, although now rather
		dated, data bus interface for system components such as floppy disk
		drivers.
	\item [Kernel Module] A dynamically loaded kernel function such as a filesystem or a 
		device driver.
	\item [Kilobyte] A thousand bytes of data, often written as {\textbf Kbyte},
	\item [Megabyte] A million bytes of data, often written as {\textbf Mbyte},
	\item [Microprocessor] A very integrated {\em CPU}.  
		Most modern CPUs are {\em Microprocessors}.
	\item [Module] A file containing CPU instructions in the form of either assembly
		language instructions or a high level language like C.
	\item [Object file] A file containing machine code and data that has not yet been linked
		with other object files or libraries to become an {\em executable image}.
	\item [Page] Physical memory is divided up into equal sized pages.
	\item [Pointer] A location in memory that contains the address of another location
		in memory,
	\item [Process] This is an entity which can execute {\em programs}.  A process could
		be thought of as a {\em program} in action.
	\item [Processor] Short for Microprocessor, equivalent to {\em CPU}.
	\item [PCI] Peripheral Component Interconnect.  A standard describing how the peripheral
		components of a computer system may be connected together.
	\item [Peripheral] An intelligent processor that does work on behalf of the system's
		CPU.  For example, an IDE controller chip,
	\item [Program] A coherent set of CPU instructions that performs a task, such as
		printing ``hello world''.  See also {\em executable image}.
	\item [Protocol] A protocol is a networking {\em language} used to transfer application data
		between two cooperating processes or network layers.
	\item [Register] A location within a chip, used to store information or instructions.
	\item [Register File] The set of registers in a processor.
	\item [RISC] Reduced Instruction Set Computer.  The opposite of {\em CISC}, that is a processor
		with a small number of assembly instructions, each of which performs simple operations.
		The ARM and Alpha processors are both RISC architectures.
	\item [Routine] Similar to a function except that, strictly speaking, routines do not
		return values.
	\item [SCSI] Small Computer Systems Interface.
	\item [Shell] This is a program which acts as an interface between the operating system and
		a human user.   Also called a {\em command shell}, the most commonly used shell in
		Linux is the \eg{bash} shell.
	\item [SMP] Symmetrical multiprocessing.  Systems with more than one processor which fairly
		share the work amongst those processors.
	\item [Socket] A socket represents one end of a network connection, Linux supports the
			BSD Socket interface.
	\item [Software] CPU instructions (both assembler and high level languages like C)
		and data.  Mostly interchangable with {\em Program}.
	\item [System V] A variant of Unix\tm\ produced in 1983, which included, amongst other things,
		{\em System V IPC mechanisms}.
	\item [TCP] Transmission Control Protocol.
	\item [Task Queue] A mechanism for deferring work in the Linux kernel.
	\item [UDP] User Datagram Protocol.
	\item [Virtual memory] A hardware and software mechanism for making the physical
		memory in a system appear larger than it actually is.
\end{description}


