docs/diploma

changeset 96:8db526d7a678

reorganized preface and introduction (feels better now)
author meillo@marmaro.de
date Sun, 16 Nov 2008 15:29:59 +0100
parents e83eada077fd
children e3987669b64b
files thesis/tex/0-preface.tex thesis/tex/1-Introduction.tex
diffstat 2 files changed, 65 insertions(+), 136 deletions(-) [+]
line diff
     1.1 --- a/thesis/tex/0-preface.tex	Sun Nov 16 15:29:30 2008 +0100
     1.2 +++ b/thesis/tex/0-preface.tex	Sun Nov 16 15:29:59 2008 +0100
     1.3 @@ -2,15 +2,16 @@
     1.4  \chapter*{Preface}
     1.5  \addcontentsline{toc}{chapter}{Preface}
     1.6  
     1.7 -\section*{Preface}
     1.8  %FIXME: write about the motivation to cover this topic: what is it I want?
     1.9  % preface == target of the book, related to the reader
    1.10  % make the topic more concrete and limit it
    1.11  %TODO: have text by oliver here?
    1.12  
    1.13 +preface text (about 1 page)
    1.14  
    1.15 -\section*{Audience}
    1.16 -%TODO: maybe merge mit the intention of the document
    1.17 +
    1.18 +\textbf{Audience}
    1.19 +
    1.20  This document is targeted for \masqmail\ users and for people interested in mail systems in general.
    1.21  Security problems in electronic mail, \unix\ and the \NAME{C} programming language will also be discussed.
    1.22  Additional ones planning to take over an unmaintained software project will find real life experience in here.
    1.23 @@ -34,38 +35,7 @@
    1.24  %FIXME: write about organisation of the book: parts, chapters, sections. And more thats useful to know.
    1.25  %FIXME: explain where the main part lies (theory vs. implementation)
    1.26  
    1.27 -
    1.28 -\section*{Conventions used}
    1.29 -%TODO: check if this tells what is really used!
    1.30 -%FIXME: make it complete!
    1.31 -%FIXME: remove everything not needed. Maybe write only a few sentences text.
    1.32 -The following typographic conventions are used in this book:
    1.33 -
    1.34 -\begin{tabular}{ p{0.15\textwidth} p{0.8\textwidth} }
    1.35 -\emph{Italic} &
    1.36 -is used for names, including command names, file name, hostnames, usernames and email addresses.
    1.37 -Further more it is used to emphasize text.
    1.38 -\\ &\\
    1.39 -
    1.40 -\texttt{Constant Width} &
    1.41 -is used for source code, contents of files and output from programs.
    1.42 -\\ &\\
    1.43 -
    1.44 -\texttt{\$} &
    1.45 -indicates the the user shell prompt.
    1.46 -\\ &\\
    1.47 -
    1.48 -\texttt{\#} &
    1.49 -indicates the the root shell prompt.
    1.50 -\\
    1.51 -\end{tabular}
    1.52 -
    1.53 -
    1.54 -
    1.55 -\section*{Additional sources}
    1.56 -%FIXME: specify the really important external documents here
    1.57  %TODO: write about the bundled CD, and tell what's included
    1.58 -\NAME{RFC}s, other books, source code, websites
    1.59  
    1.60  
    1.61  \section*{Acknowledgements}
     2.1 --- a/thesis/tex/1-Introduction.tex	Sun Nov 16 15:29:30 2008 +0100
     2.2 +++ b/thesis/tex/1-Introduction.tex	Sun Nov 16 15:29:59 2008 +0100
     2.3 @@ -1,108 +1,19 @@
     2.4  \chapter{Introduction}
     2.5  \label{chap:introduction}
     2.6  
     2.7 -% say what you want to say
     2.8 +<< say what you want to say >>
     2.9  
    2.10 -
    2.11 -\section{Transporting mail}
    2.12 -
    2.13 -
    2.14 -\subsection{History of electronic mail}
    2.15 -%FIXME: shorter!!!
    2.16 -%TODO: have a quote from Bell Labs about email here
    2.17 -
    2.18 -Electronic mail\index{electronic mail} (short: \name{email})\citeweb{wikipedia:email} is a basic concept in \unix.\citeweb{unix-mail-intro} On \unix\ machines, a lot of information is distributed by \name{system mail}, which is email sent by the operating system. Beside that, email is the common communication system between humans working on computers.
    2.19 -
    2.20 -The \unix\ operating system supports email through the \name{mail user agent} (short: \NAME{MUA}) \name{/bin/mail}.
    2.21 -
    2.22 -Development of \unix\ was not only made in the \name{Bell Labratories} of \NAME{AT\&T}. The \name{Univerity of California at Berkeley} worked on their version of a \unix\ operating system, too. It is refered to as \NAME{UCB} \unix, or \name{Berkeley} \unix\index{Berkeley Unix}.
    2.23 -
    2.24 -The few features of \name{/bin/mail} lead to a second \NAME{MUA} from Berkeley: \name{Mail} (with a capital `M'). Later, the superior functionality of \name{Mail} went back to \name{Bell Labs} and into the program \name{mailx}, the successor of \name{/bin/mail}.
    2.25 -
    2.26 -Nowadays, \name{mailx} and \name{Mail} are quite equivalent and \name{/bin/mail} is linked to either of them---whichever is installed.
    2.27 -
    2.28 -At that time, computers were connected by various kinds of networks. \name{Bell Labs} had invented the \NAME{UUCP} program and protocol suite (for ``\unix\ to \unix\ copy'')\citeweb{wikipedia:uucp}. Berkeley however had an own creation called \name{Berknet} in use. And the \name{United States Department of Defence Advanded Research Projects Agency}'s (\NAME{ARPA}) effort on designing a new wide area network, led to the \NAME{ARPANET}\citeweb{wikipedia:arpanet}, based on the \name{transmission control protocol} (\NAME{TCP}). There were also other, minor, kinds of networks in use.
    2.29 -
    2.30 -Email was transfered between different machines within the same networks. The file transfer itself was made uniformly using \NAME{FTP}, but the higher layered logic of the transfer was different. For example was addressing done different: \NAME{UUCP} used a flat-style schema, while \NAME{ARPANET}'s was hierachical.
    2.31 -
    2.32 -Mail transport from one machine connected to one kind of network to a second machine connected to another was a problem. This showed up at Berkeley where some departments of the university had switched to \NAME{ARPANET}, and some to \NAME{UUCP}, while the rest used \name{Berknet}.
    2.33 -
    2.34 -It was around 1982, when Eric Allman, then a student at Berkeley, wrote \name{delivermail}. Its purpose was to transform email from one network to another. \name{delivermail}, like its successor---the more flexible \sendmail---intermediated between the different networks. They were able to transform email messages from any network to any other.
    2.35 -
    2.36 -Todays email structure is basicly the same as then. The major difference is the uniformity of the underlying network, which is nearly always the \NAME{ARPANET}-based \name{Internet}. Hence lowering the importance of the transformation capabilities of \MTA{}s, that was essential to \sendmail's success---yet being the primary motivation for the program.
    2.37 -
    2.38 -More information about the history of electronic mail can be found at: \citeweb{email:griffiths}, \citeweb{email:crocker}, \citeweb{email:vleck}, \citeweb{email:akkad}, \citeweb{email:murakami}, and \citeweb{email:tomlinson}. A good starting point for general information on internet history is \citeweb{wikipedia:historyoftheinternet}.
    2.39 -%TODO: check the websites which ones are the important ones; remove unnessesary ones
    2.40 -
    2.41 -
    2.42 -
    2.43 -\subsection{Definition of \MTA}
    2.44 -%FIXME: better title; work text over!
    2.45 -%TODO: when was the term ``mail transfer agent'' established?
    2.46 -
    2.47 -This thesis is about a \name{mail transfer agent} (or \index{mail transport agent|see{mail transfer agent}}\name{mail transport agent}, short \NAME{MTA}): \masqmail. \sendmail\ is one too---the most important one.
    2.48 -
    2.49 -The basic job of a \mta\ is to transfer/transport electronic mail from one host to another.
    2.50 -
    2.51 -Here are definitions from others:
    2.52 -
    2.53 -\begin{quote}
    2.54 -A mail transfer agent (MTA) is a highly specialized program that delivers mail and transports it between machines, like the post office.
    2.55 -\cite{costales97}
    2.56 -\end{quote}
    2.57 -
    2.58 -\begin{quote}
    2.59 -A mail transfer agent (MTA) (also called a mail transport agent, message transfer agent, or smtpd (short for SMTP daemon)), is a computer program or software agent that transfers electronic mail messages from one computer to another.
    2.60 -\citeweb{wikipedia:mta}
    2.61 -\end{quote}
    2.62 -
    2.63 -\begin{quote}
    2.64 -mail server (also known as a mail transfer agent or MTA, a mail transport agent, a mail router or an Internet mailer) is an application that receives incoming e-mail from local users (people within the same domain) and remote senders and forwards outgoing e-mail for delivery.
    2.65 -\citeweb{website:techtarget}
    2.66 -\end{quote}
    2.67 -
    2.68 -\begin{quote}
    2.69 -Message Transfer Agent - (MTA, Mail Transfer Agent): Any program responsible for delivering e-mail messages. Upon receiving a message from a Mail User Agent or another MTA, [...] it [...] delivers it to any local addressees and/or forwards it to other remote MTAs (routing) for delivery to remote recipients.
    2.70 -%Any program responsible for delivering e-mail messages. Upon receiving a message from a Mail User Agent or another MTA, often by SMTP over the Internet, it stores it temporarily locally and analyses the recipients and delivers it to any local addressees and/or forwards it to other remote MTAs (routing) for delivery to remote recipients. In either case it may edit and/or add to the message headers.
    2.71 -%
    2.72 -%The most widely used MTA for Unix is sendmail, which communicates using SMTP.
    2.73 -%
    2.74 -%RFC 2821 (SMTP) expands MTA as ``Mail Transfer Agent'' though this is less common. Alternatives with ``Transport'' are also seen but less correct.
    2.75 -\citeweb{website:thefreedictionary}
    2.76 -\end{quote}
    2.77 -
    2.78 -Common is the transfer of mail to other machines; this is the actual job. \MTA{}s work with mail, received from local users and/or remote machines. Mail delivery however is \emph{not} what \mta{}s are for, although probably every \MTA\ is able to deliver mail, and many do. \name{mail delivery agents} (short: \NAME{MDA}) are the programs for this job. Two of the best known \NAME{MDA}s are \name{procmail} and \name{maildrop}.
    2.79 -
    2.80 -
    2.81 -
    2.82 -\subsection{\name{sendmail-compatibility}}
    2.83 -\label{sec:sendmail}
    2.84 -%FIXME: rewrite!
    2.85 -
    2.86 -Allman wrote it to transfer emails between different networks, thus giving \sendmail\ mighty address rewriting abilities. In contrast to its predecessor \name{delivermail}, was \sendmail\ designed to offer greatest flexiblity in configuration; this enabled it to deal with any type of network.
    2.87 -
    2.88 -\sendmail\ was, and still is, very successful. So successful that it stands, like no other, for the whole group of \MTA{}s: \name{sendmail} actually is the \emph{de facto standard} for \mta{}s.
    2.89 -
    2.90 -Its author, Allman, sees three reasons for the huge success: the ``sloopy'' approach (accepting badly formed messages); its focus on the routing function; and the flexible configuration (this was important in \sendmail's early days).
    2.91 -\cite[page xviii]{costales97}
    2.92 -
    2.93 -Others see \sendmail's success more critical. One of them is quoted in the \name{MMDF} FAQs \citeweb{faqs:mmdf}:
    2.94 -\begin{quote}
    2.95 -Sendmail was once compared by one old Internet hand to ``those killer bees that escaped from the laboratory---and now they're everywhere and you can't get rid of 'em''.
    2.96 -\end{quote}
    2.97 -He definately hints here at \sendmail's many security vulnerabilities that came to light and on its complexity, in particular its obscure configuration file \path{sendmail.cf}.
    2.98 -
    2.99 -No matter how \sendmail\ is seen, one must admit its influence on \unix\ emailing programs. Most existing substitutes mimic \sendmail's interface and behavior. Most notable, they create a symbolic link named ``sendmail'' pointing to their own executable. The reason herefor are the many programs assuming an executable called ``sendmail'' on every computer system existing.
   2.100 -
   2.101 -\sendmail\ is not only ported to many platforms, even including \name{Microsoft Windows}, but also it is still the prefered \MTA\ on many systems.
   2.102 -
   2.103 -For deeper knowledge on \sendmail's history, see \cite{costales97} and \cite{vixie01}.
   2.104 -
   2.105 +<< the overall goal of the book >>
   2.106  
   2.107  
   2.108  
   2.109  \section{The \masqmail\ project}
   2.110 -%FIXME: explain why masqmail is old and why it is interesting/important however!
   2.111 +
   2.112 +<< about masqmail (some history) >>
   2.113 +
   2.114 +(include history of email, definition of MTA and sendmail-compatibility in text)
   2.115 +
   2.116 +
   2.117  
   2.118  \subsubsection{Target field}
   2.119  Its original author, Oliver Kurth, sees \masqmail\ so:
   2.120 @@ -143,14 +54,62 @@
   2.121  
   2.122  Workstations use %FIXME
   2.123  
   2.124 -
   2.125 -\subsubsection{Alternatives?}
   2.126 +\textbf{Alternatives?}
   2.127  % http://anfi.homeunix.org/sendmail/dialup10.html
   2.128  
   2.129  
   2.130  
   2.131 +<< explain why masqmail is old and why it is interesting/important however! >> %FIXME
   2.132 +
   2.133 +
   2.134 +
   2.135  \section{Problems to solve}
   2.136 -%FIXME: what problems has masqmail?
   2.137 -%FIXME: what's the intention of this document?
   2.138 -%FIXME: why is it worth the effort?
   2.139  
   2.140 +<< what problems has masqmail? >>  %FIXME
   2.141 +
   2.142 +<< what's the intention of this document? >>  %FIXME
   2.143 +
   2.144 +<< why is it worth the effort? >>  %FIXME
   2.145 +
   2.146 +
   2.147 +
   2.148 +
   2.149 +\section{How to read the book}
   2.150 +
   2.151 +\subsubsection*{Conventions used}
   2.152 +%TODO: check if this tells what is really used!
   2.153 +%FIXME: make it complete!
   2.154 +%FIXME: remove everything not needed. Maybe write only a few sentences text.
   2.155 +The following typographic conventions are used in this book:
   2.156 +
   2.157 +\begin{tabular}{ p{0.15\textwidth} p{0.8\textwidth} }
   2.158 +\emph{Italic} &
   2.159 +is used for names, including command names, file name, hostnames, usernames and email addresses.
   2.160 +Further more it is used to emphasize text.
   2.161 +\\ &\\
   2.162 +
   2.163 +\texttt{Constant Width} &
   2.164 +is used for source code, contents of files and output from programs.
   2.165 +\\ &\\
   2.166 +
   2.167 +\texttt{\$} &
   2.168 +indicates the the user shell prompt.
   2.169 +\\ &\\
   2.170 +
   2.171 +\texttt{\#} &
   2.172 +indicates the the root shell prompt.
   2.173 +\\
   2.174 +\end{tabular}
   2.175 +
   2.176 +
   2.177 +
   2.178 +
   2.179 +\section{Further reading}
   2.180 +
   2.181 +<< specify the really important external documents here >> %FIXME
   2.182 +
   2.183 +<< write about the bundled CD, and tell what's included >> %FIXME
   2.184 +
   2.185 +\NAME{RFC}s, other books, source code, websites
   2.186 +
   2.187 +