For many people my software is something that you install and forget. I like to keep it that way.
— Wietse Venema
Windows favors multi-threading, which means that a service is implemented by one single process.
The challenge with Postfix, or with any piece of software, is to update software without introducing problems.
Qmail out of the box works fine, so people will want to use it regardless of licensing restrictions, even when the software does not ship with their system software.
One bug in an SMTP server can open up the whole machine for intrusion.
I was going to visit IBM for six months as a visiting scientist. Now, six months is a lot of time, so I came with a whole list of projects that I might want to work on.
When I write software, I know that it will fail, either due to my own mistake, or due to some other cause.
As of today, the Postfix mail transport agent has almost 50,000 lines of code, comments not included.
I don't expect an overnight change of all desktops to what the US Military used to call B3 level security. And even that would not stop users from shooting themselves into the foot.
My reply is: the software has no known bugs, therefore it has not been updated.
Most of the effort in the software business goes into the maintenance of code that already exists.
I want to avoid locking people into solutions that work only with Postfix. People should have a choice in what software they want to use with Postfix, be it anti-virus or otherwise.
Lack of documentation is becoming a problem for acceptance.
Coming back to the topic of computer security, the TCP Wrapper is an example of such a safety net. I wrote it when my systems were under attack by someone who appeared to walk through walls.
Writing software that's safe even in the presence of bugs makes the challenge even more interesting.
Defect-free software does not exist.
Postfix keeps running even if one Postfix process dies; Windows requires that someone restarts the service.
Adding functionality is not just a matter of adding code.
Like all software, Qmail can survive only when it keeps up with changing requirements.
The Postfix security model is based on keeping software simple and stupid.
At the time the Sendmail program had a very poor reputation with respect to security, with four root vulnerabilities per year for two successive years.
In a previous life I wrote the software that controlled my physics experiments. That software had to deal with all kinds of possible failures in equipment. That is probably where I learned to rely on multiple safety nets inside and around my systems.
However, writing software without defects is not sufficient. In my experience, it is at least as difficult to write software that is safe - that is, software that behaves reasonably under adverse conditions.
This will surprise some of your readers, but my primary interest is not with computer security. I am primarily interested in writing software that works as intended.