Mercurial > docs > master
comparison ch01.roff @ 32:6a9abf543297
Rework in the Introduction (about MH).
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Mon, 14 May 2012 17:10:43 +0200 |
parents | 6c63083b4c19 |
children | 22ae3981a76b |
comparison
equal
deleted
inserted
replaced
31:029e11dd4de1 | 32:6a9abf543297 |
---|---|
1 .H0 "Introduction | 1 .H0 "Introduction |
2 .P | 2 .P |
3 This chapter describes the background of the topics in this thesis. | 3 This chapter introduces MH, its history, concepts and how it is used. |
4 General knowledge of electronic mail is assumed. | 4 Then, it describes nmh's code base and community to give the reader |
5 It explains the situation at the start of the project. | 5 a better understanding of the state from which mmh started off. |
6 It tries to describe from what state the project lifted of and where | 6 Further more, this chapter lists the motivation and goals of the mmh project. |
7 it headed to. This shall give an overview. | 7 This chapter introduces MH, nmh and mmh to the reader and outlines |
8 the mmh project itself. | |
8 | 9 |
9 | 10 |
10 .H1 "MH \(en the Mail Handler | 11 .H1 "MH \(en the Mail Handler |
11 .P | 12 .P |
12 MH is an electronic mail system, originating in the RAND Corporation. | 13 MH is an electronic mail system, originating in the RAND Corporation. |
13 Historically, it had been a all-in-one mail system, with both Mail Transfer | 14 Most important for this thesis is that MH defines a mail handling concept. |
14 Agent (MTA) and Mail User Agent (MUA). | 15 In fact, MH had started as a design proposal, not as an implementation, |
15 Later, when email setups changed, Mail Submission Agent (MSA) | 16 and in spirit it had remained this way. This is similar to Unix, which |
16 and Mail Retrieval Agent (MRA) facilities were added. | 17 influenced the world rather in being a set of system design concepts |
17 The MTA became less important, whereas the MUA became even more the | 18 than in being a specific software product. |
18 central part. | |
19 .P | |
20 MH defines a mail handling concept. | |
21 It had started as a design proposal, not as an implementation, and | |
22 in spirit had remained this way. This is similar to Unix, which | |
23 rather is a style of system design than specific software product. | |
24 .P | 19 .P |
25 XXX Link to the Unix phil. | 20 XXX Link to the Unix phil. |
26 .P | 21 .P |
27 XXX comparision to monolithic mail systems. | 22 XXX comparision to monolithic mail systems. |
28 .P | 23 .P |
29 XXX Differenciation of MUA and mail system. | 24 XXX Differenciation of MUA and mail system. |
30 | 25 |
31 .U2 "History | 26 .U2 "History |
32 .P | 27 .P |
33 MH is an electronic mail system, originating in the RAND Corporation. | 28 MH is an electronic mail system, originating in the RAND Corporation. |
34 In 1977, Norman Shapiro and Stockton Gaines had proposed the design | 29 In 1977 at RAND Corporation, Norman Shapiro and Stockton Gaines |
35 of a new mail handling system, called ``Mail Handler'' (MH) for RAND, | 30 had proposed the design |
36 to superseed their ``Mail System'' (MS). | 31 of a new mail handling system, called ``Mail Handler'' (MH), |
32 to superseed RAND's old monolithic ``Mail System'' (MS). | |
37 Two years later, in 1979, Bruce Borden took the proposal and implemented a | 33 Two years later, in 1979, Bruce Borden took the proposal and implemented a |
38 prototype of MH. It proved successful and replaced MS thereafter. | 34 prototype of MH. |
39 .P | 35 Before the prototype had been available, the concept was |
40 A decade later, the University of California had started to use MH. | 36 believed to be practically unusable because of being too slow. |
37 But the prototype proved successful and replaced MS thereafter. | |
38 In replacing MS, MH became an all-in-one mail system. | |
39 .P | |
40 A decade later, the University of California at Irvine had started to use MH. | |
41 They also took over its development and pushed MH forward. | 41 They also took over its development and pushed MH forward. |
42 This had been the time when the Internet appeared, Berkeley implemented | 42 This was the time when the Internet appeared, UCB implemented |
43 the TCP stack, and Sendmail was born. MH had often contained the first | 43 the TCP/IP stack, and Allman wrote Sendmail. |
44 implementation of new RFCs. | 44 MH was extended as emailing got more features. |
45 The development of MH was closely related to the development of email | |
46 RFCs. In the advent of MIME, MH was the first implementation of this new | |
47 email standard. | |
45 .P | 48 .P |
46 In the nineties, MH had been moved into the public domain, making it | 49 In the nineties, MH had been moved into the public domain, making it |
47 attractive to Free Software developers. The Internet had started to become | 50 attractive to Free Software developers. |
48 mainstream and in 1997, Richard Coleman initiated the ``New Mail Handler'' | 51 The Internet had started to become popular and in 1997, |
49 (nmh), a fork of MH. He intended to modernize MH, improve its MIME | 52 Richard Coleman initiated the ``New Mail Handler'' (nmh) project, |
50 capabilities, and this should be done openly within the Internet | 53 a fork of MH, based on the \fILBL changes\fP by Van Jacobson, Mike Karels |
51 community. Today, nmh almost completely replaced the original MH. | 54 and Craig Leres. |
55 Colman intended to modernize MH and improve its portability and | |
56 MIME handling capabilities. | |
57 This should be done openly within the Internet community. | |
58 The development of MH stopped soon after the development of nmh had started. | |
59 Today, nmh almost completely replaced the original MH. | |
52 | 60 |
53 .U2 "Concepts | 61 .U2 "Concepts |
54 .P | 62 .P |
55 MH is a toolchest, modelled after the Unix toolchest. It consists of a | 63 MH is a toolchest, modelled after the Unix toolchest. It consists of a |
56 bunch of tools, each covering one task of email handling. These programs | 64 set of tools, each covering a specific task of email handling. The programs |
57 operate on a common mail storage. The specific format of the mail storage | 65 operate on a common mail storage. The specific format of the mail storage |
58 also defines MH, like the file system structure defines Unix. It | 66 characterizes MH in the same way like the format of the file system |
59 consists of directories (mail folders) and files (mail messages). | 67 characterizes Unix. |
60 Each file contains exactly one message in the format it had been | 68 The mail storage consists of \fImail folders\fP (directories) and |
61 received (i.e. transfer format). MH tools carry a state (context), | 69 \fPmessages\fP (regular files). |
62 consisting of current mail folder and current message. Messages can | 70 Each message is stored in a separate file in the format it had been |
63 have symbolic names, like the next or last message or for some | 71 received (i.e. transfer format). The files are named with ascending numbers |
64 arbitrary group of messages. These names are called sequences. | 72 in each folder. |
65 .P | 73 MH tools maintain a \fIcontext\fP, which includes |
66 New MH tools can be build out of existing ones easily. Default values to | 74 the current mail folder and current message. |
67 commands are stored on a command name-basis, making it trivial to have | 75 Processes in Unix have a similar context, containing the current working |
68 different versions of the same command with different defaults. Most | 76 directory, for instance. In contrast, the process context is maintained |
69 of the configuration is stored in the user's profile. Form templates, | 77 by the Unix kernel automatically, whereas MH tools need to maintain the MH |
70 e.g. for new messages or replies, are exchangeable and output is generally | 78 context themselves. |
71 adjustable with format files. | 79 The user can have one MH context or multiple ones, he can even share it |
72 .P | 80 with other users. |
73 MH allows the user to automate almost everything and to modify amost | 81 Messages can have symbolic names. These can be automatically updated |
74 any behavior. The system is scriptable and extendable. | 82 position names like being the next or the last message, |
75 | 83 or user-settable group names for arbitrary sets of messages. |
76 .U2 "Available Versions | 84 These names are called sequences. |
85 Sequences can be bound to the folder or to the context. | |
86 .P | |
87 New MH tools are built out of or on top of existing ones easily \(en | |
88 a property common to toolchests. | |
89 Multiple versions of the same command with different default values | |
90 are created very easily. This provides shortcuts and tayloring. | |
91 Form templates for new messages or for replies are easily exchangable. | |
92 Generally, output is adjustable with format files. | |
93 The configuration is stored in a file that is called the user's \fIprofile\fP. | |
94 MH encourages the user to taylor and automate the mail handling. | |
95 Almost everypart of the system can be adjusted to personal preference. | |
96 The system is well scriptable and extendable. | |
97 As the MH toolchest was modelled after the Unix toolchest, the | |
98 properties of the latter apply to the former as well. | |
99 | |
100 .U2 "Versions | |
77 .P | 101 .P |
78 Three versions of MH are available today: | 102 Three versions of MH are available today: |
79 .BU | 103 .IP "Old MH" |
80 .I "Original MH" . | 104 In most cases this version had been replaced by nmh, |
81 In most cases it has been replaced by nmh, but some systems still | 105 but some systems might still provide old MH. |
82 provide old MH. As nmh is old MH-compatible, there exist few reasons | 106 The main reasons to still use old MH are historical reasons. |
83 not to upgrade to new. | 107 MH provides hardly any benefits over nmh. |
84 The development of old MH has stopped after the 6.8.4 release in | 108 The development of old MH has stopped after the 6.8.4 release in |
85 February 1996. | 109 February 1996. |
86 .BU | 110 .IP nmh\0 |
87 .I nmh . | |
88 The most widespread version of MH was forked off version 6.8.3 in December | 111 The most widespread version of MH was forked off version 6.8.3 in December |
89 1996. It incorporated the \fILBL changes\fP. | 112 1996. It is based on the \fILBL changes\fP. |
90 It provides backward-compatible to old MH by having new featues deactivated | 113 Backward-compatibility to old MH is provided by having new featues deactivated |
91 by default. To use them, the user needs to activate them explicitely. | 114 by default. In consequence, the user needs to activate them explicitely to |
92 Its development went slowly in the previous years, but had revived | 115 be able to use them. |
93 in December 2011. | 116 Throughout the previous years, the work on nmh was mostly maintenance work. |
94 .BU | 117 Development revived in December 2011 and stayed busy since then. |
95 .I mmh . | 118 .IP mmh |
96 This version is the subject of this thesis. | 119 This descendent of nmh is the subject of this thesis. |
97 It is a descendent of nmh. It had started as a non-compatible experimental | 120 It had started as an experimental version, but became de facto a fork. |
98 version, but became de facto a fork. It tries to expand the same | |
99 principle concepts in a more modern way. | |
100 | 121 |
101 .U2 "Example Session | 122 .U2 "Example Session |
102 .P | 123 .P |
103 Example mail handling session with mmh, but mostly compatible with nmh | 124 Following is an example mail handling session with mmh. |
104 and old MH. The look'n'feel is common among them. | 125 It should be mostly compatible with nmh and old MH. |
126 Details might vary but the look'n'feel is the same. | |
127 .P | |
128 XXX shell mail handling session follows ... | |
105 | 129 |
106 | 130 |
107 .H1 "nmh: Code and Community | 131 .H1 "nmh: Code and Community |
108 .P | 132 .P |
109 In order to understand the state, goals and dynamics of a project, | 133 In order to understand the state, goals and dynamics of a project, |
134 separate functions are compiled into programs, for effiency reasons. | 158 separate functions are compiled into programs, for effiency reasons. |
135 This lead to intricate innards. | 159 This lead to intricate innards. |
136 The advent of MIME rose the complexity of email by a magnitude. This | 160 The advent of MIME rose the complexity of email by a magnitude. This |
137 is visible in nmh. The MIME-related parts are the most complex ones. | 161 is visible in nmh. The MIME-related parts are the most complex ones. |
138 It's also visible that MIME support had been added on top of the | 162 It's also visible that MIME support had been added on top of the |
139 original MH later. The MH style made this easily possible, but it | 163 old MH later. The MH style made this easily possible, but it |
140 also lead to duplicated functions (e.g. \fLshow\fP, \fLmhshow\fP) | 164 also lead to duplicated functions (e.g. \fLshow\fP, \fLmhshow\fP) |
141 and had not been thoroughly included into the concepts (e.g. the | 165 and had not been thoroughly included into the concepts (e.g. the |
142 user-visible access to whole messages and MIME parts are inherently | 166 user-visible access to whole messages and MIME parts are inherently |
143 different). | 167 different). |
144 .P | 168 .P |