The usage (and wastage) of virtual address space incurred by our technique by tracing three of the server programs (ftpd, telnetd, ghttpd) using gdb.We focused on the servers since they are long-running (as well as security-critical) programs. We found that a common programming model used by these servers is to fork a new process to service each new connection. Although we did not trace fingerd and tftpd, it is clear from the comments in the source code that they follow exactly the same programming model; in fact, in case of tftpd every command from the client (e.g, get filename) forks off a new process. This model of forking a new process to service requests fits well with our approach. Any wastage in address space inone connection is not carried over to the other connections handled by the server. We expect each individual connection to be of short duration even though all the servers themselves are long running.
Read »
