Philip Hazel grew up in South Africa. He has a PhD in applied mathematics, and has spent the last 30 years writing general-purpose software for the Computing Service at the University of Cambridge in England. Some major projects were text editors and text formatters for use on an IBM mainframe system. Since moving from the mainframe to Unix around 1990, he has become more and more involved with email. This lead to his starting to develop Exim in 1995, and the PCRE regular expression library two years later. These open source projects have both turned out to be larger and more successful that expected. Outside interests include classical music (as a choral inger and late convert to viola playing), music typesetting, working backstage in amateur theatre, and finding nice places to go walking, preferably not as flat as Cambridgeshire. Philip is married, and has three grownup sons.


Exim is a Message Transfer Agent that runs on most Unix and Unix-like systems as a replacement for Sendmail. The talk will concentrate on the way Exim is implemented in terms of processes and data files. The overall structure is not what some people expect, because Exim lacks a central controlling process. Instead, it uses a number of independent, short-lived processes that use data in files to coordinate with each other where necessary. The reasons for this design will be explained, and the advantages and disadvantages will be discussed. Exim is one of the more common Mail Transfer Agents in use on the internet today.