Clarity - FreeBSD vs. NetBSD?

I am slowly learning to use FreeBSD. This is more of a hobby then a work requirement, so my experience is very limited. I am just running FreeBSD as a home server using cheap hardware. Despite needing to read and learn a lot, I love using FreeBSD. There is a sense of clarity that is difficult to find in any other operating systems including Linux.

I read somewhere that NetBSD has a more academic approach to its development, and produces clearer code. It is this clarity that makes it easer to port in many hardwares, its unique selling point. As I am really enjoying FreeBSD for its clarity, I am wondering whether I should pay more attention to NetBSD.

What is your experience using NetBSD? I am not asking which one is the best, or which one should someone chose? I am asking more out of curiosity and what makes people tick when using one or the other?

When talking about clarity I am talking more from an administrator perspective than from a coder's perspective. I know nothing about coding.

Thanks
 
You may be thinking of OpenBSD instead of NetBSD. OpenBSD focuses on security and correctness and those sound more like the "more academic approach" you quote.
 
I started slowly with all the BSD's. Mainly the attraction is FreeBSD simply because of features and drivers. But I strongly recommend learning how to partition all your systems and run all three plus a couple flavors of Linux on all servers and firewalls. Doesn't really take up all that much space. Then take lots of notes as you learn what and how you can do the same sorts of things on different systems. Really try to force yourself to do it. It's easier than you think but it does take time to learn and figure things out.
 
NetBSD is more flexible from a porting point of view and has far fewer ports/packages. The focus on clean code and academic use would have no value for a sysadmin, only a developer interested in studying the code.
As someone else posted above, NetBSD is great if you need to run an operating system on exotic hardware, but for most other tasks FreeBSD is probably the better choice. FreeBSD has more features and a larger array of applications.
 
NetBSD focuses on clean design and well architected solutions. Because of this NetBSD may support certain 'exciting' features later than other systems, but as time progresses the NetBSD codebase is getting even stronger and easier to manage, while other systems that value features over code quality are finding increasing problems with code management and conflicts.

I think the accuracy of the above quote depends on one's perspective and in a few instances NetBSD has been more difficult to manage. An example is video drivers in X.Org. Current video drivers can almost be listed on one hand: ATI, Nvidia and Intel with a smattering of OpenChome and Matrox. The first three currently implement kernel mode settings, and the latest OpenChrome driver supports KMS in Arch Linux. KMS is still not supported in the monolithic or modular X.Org in NetBSD.

Another perspective is to look at the version of X.Org (source Distrowatch)
NetBSD 5.1: 1.6.5
OpenBSD 5.3: 1.12.3
FreeBSD 9-STABLE: 1.7.7

I think it would be a real challenge to keep X.Org up to date for the 32 different architectures that NetBSD supports.
 
Last edited:
NewGuy said:
NetBSD is more flexible from a porting point of view and has far fewer ports/packages. The focus on clean code and academic use would have no value for a sysadmin, only a developer interested in studying the code.
As someone else posted above, NetBSD is great if you need to run an operating system on exotic hardware, but for most other tasks FreeBSD is probably the better choice. FreeBSD has more features and a larger array of applications.

NetBSD is also great if you run non-exotic hardware which is supported by NetBSD. You just have to know what hardware is supported, just like you have to when deploying FreeBSD.
 
shepper said:
I think the accuracy of the above quote depends on one's perspective and in a few instances NetBSD has been more difficult to manage. An example is video drivers in X.Org. Current video drivers can almost be listed on on hand: ATI, Nvidia and Intel with a smattering of OpenChome and Matrox. The first three currently implement kernel mode settings, and the latest OpenChrome driver supports KMS in Arch Linux. KMS is still not supported in the monolithic or modular X.Org in NetBSD.

Another perspective is to look at the version of X.Org (source Distrowatch)
NetBSD 5.1 : 1.6.5
OpenBSD 5.3 : 1.12.3
FreeBSD 9-stable: 1.7.7

I think it would be a real challenge to keep X.Org up to date for the 32 different architectures that NetBSD supports.

There's already NetBSD 6.1 and in CURRENT pkgsrc branch there's xorg-server 1.12.4: http://pkgsrc.se/x11/modular-xorg-server FreeBSD also has a new X.org (although not default), but it's 1.12.4 as well.
 
I think the major win for FreeBSD is multi-core support. OpenBSD and NetBSD to my knowledge (haven't checked for a while) support single CPUs only. Given that since 2011, I've had four cores and eight threads in my laptop (let alone any serious hardware), other than for specific niche jobs (and even then it's a stretch, some minor perceived gain may not outweigh the faffing about required to have a single instance of an additional OS to learn) or peculiar hardware, OpenBSD and NetBSD the operating systems are of no use to me.

I do of course appreciate the work that is shared with the other BSDs, however. But for me - no use.

edit:
Just checked, looks like both are now capable of using multi-core. However, given the history FreeBSD had in the change over to becoming multi-core capable, I'd say they have a good 5+ years of catching up to do before they reach parity with the SMP performance of FreeBSD.
 
gpatrick said:
Although you did preface it doesn't require much effort to find the facts. Some people will not bother to look and take your grossly misleading statement as fact.

To the contrary, NetBSD 5.0 improved multi-processor support.

The current NetBSD Release is 6.1.

Good interview with Martin Husemann of the NetBSD project

And? Improved vs. what? Previous version of NetBSD? FreeBSD 5.1 had "improved" SMP performance vs. 5.0.

It has not had SMP for anywhere near as many years as FreeBSD, and there's been a long development path for FreeBSD since the 5.x series to improve multi-core support.

Multicore on Open/Net BSD is a relatively new development, and all the free operating systems, including Linux, have had a long and tortuous path to remove excessive locking from the kernel and improve SMP performance.

I stand by my assertion that FreeBSD vs. any of the other BSDs will win in terms of multi-core performance, as it has had more than 10 years of development in that area now - by a larger team and larger userbase than NetBSD.

Development simply takes time, and FreeBSD has had a lot more of it spent in this area.
 
Do keep in mind that the NetBSD team can probably skip a lot of the time-consuming ground work, as this was already done by the FreeBSD team. The BSDs borrow code and concepts from one another often.

Furthermore, if an OS doesn't support multi-core systems, it also doesn't support multi-CPU systems. I find it hard to believe that NetBSD didn't have such support until recently.
 
Savagedlight said:
Do keep in mind that the NetBSD team can probably skip a lot of the time-consuming ground work, as this was already done by the FreeBSD team. The BSDs borrow code and concepts from one another often.

Furthermore, if an OS doesn't support multi-core systems, it also doesn't support multi-CPU systems. I find it hard to believe that NetBSD didn't have such support until recently.

"Support" and "perform well" are two entirely different things.

Fact is: SMP is hard. That we are still seeing huge disparities in SMP performance between different operating systems and even different releases of the same OS is telling - it's simply not a trivial thing to implement.

Sure, Net/Open BSD could borrow a lot of code from FreeBSD. But they have also diverged considerably since they were both split from each other and SMP optimization and removal of locks is fairly distributed across the entire OS and drivers. It's not as simple as just downloading a little bit of code from FreeBSD and patching the scheduler for example.

This is why major work was undertaken in FreeBSD 5 for SMP and we are still seeing improvements today. Ditto for Linux - SMP development in Linux goes way back to the late 90s and improvements are still being made today. Same with Windows. Windows was SMP aware in NT4 (maybe NT 3.5 or earler?) and Windows 8 still made significant SMP improvements.
 
Back
Top