DragonFlyBSD's HAMMER2 File-System Being Ported to NetBSD
phoronix.com
phoronix.com
I donated early this year after seeing how far away they were from their 2022 goal, which is very modest. I hope this news stores up their finances :)
Dragonfly has some really innovative features:
- H2
- virtual kernels
- how it achieves SMP with no locking
- and much more
ARM has some cursory presence in the datacenter today, but I wouldn't bet on ARM being more predominant than RISC-V there by 2025.
If anything, migration of servers to ARM has halted because decision makers can read the writing on the wall.
I see the opposite here...
>but I wouldn't bet on ARM being more predominant than RISC-V there by 2025.
Sure Apple and all Smartphones will change to RISC-V, look i would love to believe that, it's just not the reality. But if you talk about microcontroller'ish stuff, then you are probably right that risv will be more dominant in 2025.
I'm pretty sure that's equivalent to netbsd's rump kernels and Linux's UML (user mode Linux), no? Certainly a good feature, and something I were saw wider use, but hardly unique.
Lots of work will end up (as often) in the ports section, if nobody has a strong point why it is usefull to maintain it in base.
Users/use-cases feedback are welcome.
https://reviews.freebsd.org/D37354 https://github.com/freebsd/freebsd-src/pulls
http://undeadly.org/cgi?action=article&sid=20150429080405&co...
It doesn't seem to have been finished:
and dragonfly don’t get deployed =)
edit: dragonflybsd is mostly a playground for those innovative ideas and features
http://netbsd.org/docs/pkgsrc/using.html
( https://pkgsrc.se/ is like FreshPorts for FreeBSD )
However, I've got lazy, too, and now use some ready made distro booted from USB-keychain, running from RAM.
Besides that, what would be the usecase? The base system is small, lean & mean, and in my experience rock solid, as in UNKAPUTTBAR. The organization and style of source was more understandable to me, as was the framework to recompile the base via build.sh (make world in FreeBSD terminology), and applications from their 'Ports/Portage/AUR' which is called PKGSRC there.
The same goes for the filesystem layout, /etc, init, and so on. It's just really nice, all in all.
Thinking about it, the question is like what would be the usecase for Alpine-Linux? Some people are using that as desktop, too, for probably similar reasons, but enjoying better hardware driver support.
I think the highest hurdle for people has been the 'strange concept' of using 'slices' and 'BSD-Disklabels' to further split apart MBR-style partitions.
Like explained here: http://netbsd.org/docs/guide/en/chap-inst.html#chap-inst-ins... & https://en.wikipedia.org/wiki/BSD_disklabel
I don't know how that applies to UEFI/GPT-partitioning and secure-boot actually. Haven't tried that, so far. Seems to be another hurdle, though I know from others that it runs, at least without secure-boot. Seems to be that 'The Guide' and FAQs are lagging behind reality. As often is the case, need to read mailing lists then, sigh...
Or simply searching for UEFI and GPT on their wiki, which leads to:
https://wiki.netbsd.org/Installation_on_UEFI_systems/ & https://wiki.netbsd.org/users/spz/moderndisk/
Furthermore: different device names. And an INIT which is neither SysV, nor systemd.
http://www.mewburn.net/luke/talks/auug-2003/ & https://www.netbsd.org/docs/guide/en/chap-rc.html
Which wasn't even mentioned in all the (mainstream) discussions of SysV vs. systemd because NIH?
I don't know exactly how to say this, but IMO you've missed out on an experience, if you don't know it. No matter how inconvenient initial installation or hardware support is.
This belongs under your belt.
Please touch it again.
A quick Google search would show many interesting aspects of the BSDs and especially NetBSD, from resource efficiency to keeping the "original" Unix alive on current hardware, but I suspect you may not the kind of person to be receptive to that.
It was great to have one giant config file, a simple init, and the portstree being better than even the AUR.
However what stood out was lack of GPU acceleration, shady Bluetooth and Wi-Fi support, and overall slowness.
You should stop being so defensive.
On bare metal, or virtualized?
> ...lack of GPU acceleration
Depends, for some older chipsets it was there, for me, then. Though I have to concur, that is annoying, when your's is much too new, and thus badly supported, if at all.
> ...shady Bluetooth and Wi-Fi support
I'm a caveman and really don't care about that. Not even under Linux :-)
> ...and overall slowness
Yes. That was unimpressive. But it went away after https://www.netbsd.org/docs/guide/en/chap-kernel.html and even more so after https://www.netbsd.org/docs/guide/en/chap-updating.html with https://pkgsrc.se/devel/cpuflags
( Could probably be done from elsewhere with https://www.netbsd.org/docs/guide/en/chap-build.html also, because cross-compiling is built in! )
Lastly applying some https://www.netbsd.org/docs/guide/en/chap-tuning.html#tuning...
That sounds all really complicated and time consuming, but at the times it wasn't. Because the base is smaller, the compilers were faster. Expecting it to perform out of the box without adapting it to the environment will lead to frustration.
It really can fly.
I feel I can keep up with FreeBSD, and have confidence that it won't change too much out from under me when I'm not looking.
That being said, it's not that different from a more stability-focused Linux distro like Debian.
Aside: here's an article about doing audio on FreeBSD, which also touches on some "why FreeBSD is nice in general" aspects, too: https://meka.rs/blog/2021/10/12/freebsd-audio/
As server, FreeBSD needs increasing all socket buffers via sysctls, tuning NIC IRQ moderation (depends on NIC, but we are not discussing Realtek ones here, am I right?), and, in the past, VFS caching and read-ahead was very conservative by default, but now ZFS is the same as on Linux (unfortunately, as some non-tunable Linux-induced optimizations slightly hurt performance on BSD, best ZFS performance were before switch to OpenZFS).
For example, "stock" FreeBSD 13 on my hand-built NAS (5x8Tb zraid, system on SSD, E3-1220v3, 32GB RAM, Intel 10G NIC) only can serve ~250MB/s over SMB (with same Samba as Linux uses, of course), and after tuning (socket buffers, NIC IRQ coalescing, etc) it serves 750-800MB/s from cache and 500MB/s from spinning rust (which is obvious limitation of HDDs, not OS).
Unfortunately, I don't know one coherent and modern FreeBSD performance tuning guides, but this guide [1] is mostly actual still, for network part.
"There are three kinds of lies: lies, damned lies, and statistics."
There are more important things than raw performance numbers.
How stable is the OS? That means over years, not hours.
Note: benchmarks tell you nothing about this.
How much maintenance does it take? That means both steps, and patches. How much work must you do? How long will it take? How much intervention? Can you automate it? How many updates must you install? How often? How big are they? How much bandwidth will they take? Can they be 100% trusted not to break anything ever?
Note: benchmarks tell you nothing about this.
How good is the driver support? That means both: How many drivers are there, and how good are the drivers? E.g. FreeBSD has many wifi drivers but they don't support the full speed of modern Wifi chipsets. That is why wifibox exists.
Note: benchmarks tell you nothing about this.
If the OS is rock solid and updates are small, easy, reliable and infrequent, and the drivers are comprehensive, that's all good. But then you must ask if it does what you need it to do?
Does it run one app you must have? If not, does it have a replacement that is just as good in every way?
Note: benchmarks tell you nothing about this.
If it has the app you need, does it have the version you need?
If it doesn't, is there an external source or a compatibility layer you could use?
Note: benchmarks tell you nothing about this.
If there is an external source, is it worth the work? Will it reduce stability? Will it make the updates more complicated?
AGAIN, benchmarks tell you nothing about this.
But benchmarks are easy, which is why people do them and publish them, because they look good and give replicable objective evidence, and we all need that.
But they are only part of the story.
Let us ask a question combining these things I have listed:
BSD will do all I need so long as I run the Linux compiler for $NEWLANG that I need for my project under the Linuxulator.
However, that only works with FreeBSD, so now NetBSD is out of the running.
However, if I run the language under the FreeBSD Linux emulator, $WEBSITE benchmarked it, and it only gives 25% of the native performance, and I need a minimum of 75% performance according to my budget and the benchmarks from $WEBSITE2.
Also, if I run the Linux version, I need to update that separately, and that will make my update régime twice as complicated, and quadruple my testing.
So, I won't use BSD, I will use AlmaLinux after all.
Summary: benchmarks are not enough, but you need them. It is more complicated than just benchmarks.
TL;DR: this is the short version.
NetBSD is great. For such a small project they accomplish a lot.