Numerous factors came under consideration when choosing a base operating system for the project. This section outlines the primary reasons for selecting FreeBSD.
Wireless support is a critical feature for many users. In 2004, wireless support in OpenBSD was very limited compared to FreeBSD. OpenBSD did not support drivers or security protocols and offered no plans for their implementation. To this day, FreeBSD surpasses the wireless capabilities of OpenBSD.
Network performance in FreeBSD is significantly better than that of OpenBSD. For
small to mid-sized deployments, this generally does not matter; upper
scalability is the primary issue in OpenBSD. One pfSense developer managing
several hundred OpenBSD firewalls using
pf was forced to switch his high
load systems to
pf on FreeBSD to handle the high packets per second rate
required by portions of his network. The network performance in OpenBSD has
improved since 2004, but limitations still exist.
Multi-processor support for pf in FreeBSD allows for greater scalability and is utilized by pfSense as seen in this network performance analysis: https://github.com/gvnn3/netperf/blob/master/Documentation/netperf.pdf.
Familiarity and ease of fork¶
The code for m0n0wall was based on FreeBSD, and pfSense forked from m0n0wall. Changing the base operating system would require prohibitively large modifications and could have introduced limitations from other operating systems, requiring features to be removed or altered.
Alternative Operating System Support¶
There are no plans to support any other base operating systems at this time.