Because of disputes between Novell and Berkeley over 4.3BSD-Lite, FreeBSD was forced to use the stripped down version 4.4BSD-Lite. It took until November 1994 to come up with FreeBSD 2.0 which was a significant success. Normal development follows with more releases. Version 3.2 was released in May 1999 and 3.4 and 3.5 a bit later with bug fixes. Version 4.0 was released March 2000 and contains an impressive amount of performance improvement, such support for ATA66, better NFS, support for 1 gig Ethernet cards. Also improved security such as OpenSSL and OpenSSH.
FreeBSD being a Unix type operating system benefits from the Linux excitement. Since most Linux software come with source code, they can be recompiled for FreeBSD. It also comes with Linux "emulation" making it possible to run Linux applications without recompilation.
FreeBSD is a very stable, reliable and performant operating system which makes it perfect for a low end as well as a high end servers. Ideal for any TCP/IP Network.
As a Unix clone, FreeBSD boots by default to a text mode screen which makes is very suitable for low end servers. Its Unix heritage also make it a true multi-user system with full access security as well as integrated remote login.
You can't have more control over the operating system than this one. Modify the code that gives you trouble and recompile!
XFree86, the GUI of FreeBSD, is not part of the operating system, but only a program that writes to the screen. As such, when the GUI crashes, it can be easily restarted. No need to reboot to gain back access to the system. XFree86 can also change resolution on the fly like Windows NT, although all X Windows applications need to be closed to change color depth.
As with any Unix operating system,TCP/IP Network support is all there and doesn't need any add-ons. Every bit of utility or application needed to run TCP/IP all comes freely with the operating system.
Although positioned as a general purpose operating system by the FreeBSD team, not a lot of support is provided to run FreeBSD as a workstation OS.
BSD based, multithreading in FreeBSD is practically non-existent. However, forking support in FreeBSD is very efficient which conpensates, but forking and multithreading are very incompatible ways of programming, although a thread like forking is provided that can share data.
FreeBSD cannot do most of the DOS/Windows emulation like Linux can with programs like DOSEmu, VMWare and Win4Lin. Although WINE works because WINE Is Not an Emulator. :) The instructions needed to make native x86 emulators run in FreeBSD are different from Linux and since FreeBSD is not given as much attention as Linux, the software is barely/slowly being ported.
XFree86, the only GUI server available in FreeBSD, runs over the TCP/IP stack. Such a design cannot bring high performance and real-time graphics to FreeBSD.
No real good GUI environment shell exists for FreeBSD yet. Efforts from the Linux community brought KDE which currently comes the nearest as a decent shell, but it's still a bunch of bugs in development. GNOME offers more potential as its goal is an application interface which will allow applications to work together, since current X Windows programs don't. Most of them cannot even share the clipboard. This makes FreeBSD unsuitable as a workstation OS.
FreeBSD remains very user unfriendly althought more consistent than Linux. A lot of manual setup needs to be done for about anything you can think about from mounting a diskette to installing a font. No easy help is available, unless you find the answers in some documentation.