
Linux vs. FreeBSD
Legal (copyleft): Permission to copy and derive is granted freely. No guarantees. Use at your own risk. Document created in 2011.
Disclaimer: I use both Linux and FreeBSD.
Advantages of Linux:
- Linux has Ubuntu which is suited to computer novices but still useful by experts.
- Excellent hardware support.
- Has excellent journaled filesystems.
- Linux is wonderful for embedded/system development.
The source code of the Linux kernel is well-organized, logically written, comprehensible, easy to compile.
Disadvantages of Linux:
- I've experienced very bad performance with kernels released in 2010..2011 [2.6.3x]. During heavy I/O such as writing a large tar file, severe stalling and I/O starvation occurs. Though, was able to mitigate that with the deadline I/O scheduler.
Advantages of FreeBSD:
- FreeBSD *IS* an operating-system, not just a kernel.
It is stable in more ways than one.
FreeBSD changes very little with new versions.
I learned FreeBSD years ago, and with only a few changes,
I am still using the same configuration files.
- FreeBSD is faster than Linux, multi-tasks very smoothly, handles memory overcommitment and heavy I/O without stalling.
- FreeBSD ports provides a ton of software.
Disadvantages of FreeBSD:
- Has an old clunky non-journaled filesystem.
rm -rf takes forever.
- FreeBSD port system can be frustrating when it fails.
Software packages on FreeBSD are known as "ports".
Ports are installed by compiling source code.
This has advantages but compiling anything can and does fail.
A port can cause dependent ports to be installed but it itself will fail to compile.
- The FreeBSD ports collection is eternally in a state of flux.
- New versions of software aren't necessarily better.
But downgrading a FreeBSD port is practically impossible.
- Never try to do system/embedded development with a BSD kernel.
BSD kernels are a disorganized mess.
BSD kernels use sophisticated and optimized algorithms,
but that sort of code is arcane to everyone else.