A small company in Pensacola, FL had a niche in the network industry: it installed network cabling in buildings that were constructed without it. Many of the buildings were old, constructed before network cabling to each office became ubiquitous. The president of the company decided that he would also provide a firewall to each customer.
The firewall was conceived as a Linux box, that performed firewall functions, and a Windows desktop, from which the firewall administrator could control the firewall. The Linux kernel required modification to allow a large number of access/rejection rules to be stored and rapidly interrogated.
The final software suite consists of three daemons, a console interface, four client/server pairs, and a set of support programs. The daemons oversee the operation of the firewall. The console interface provides the firewall administrator with the ability to define the initial network configuration. The client/servers include firewall administration, status, reporting, and product registration. Developers use the support programs to perform ancillary tasks (e.g., downloading and parsing the Internet Assigned Numbers Authority (IANA) protocol numbers, preparation of context help text, etc.).
All software was written in C on the Visual Studio environment and executed on any 250 MHz or faster PC (Linux firewall) and Windows workstations (clients).