Hacker News new | past | comments | ask | show | jobs | submit login
NetBSD 10.0 RC1 (netbsd.org)
78 points by nortonham on Nov 12, 2023 | hide | past | favorite | 44 comments



I've been running NetBSD beta on my laptop since january (mostly for the added performance with NVMM) and updated to RC1 yesterday. It went smoothly and the kernel rebuild was swift.

The added support for the Rockwell RK3328 SoC is a big deal for me as it wasn't supported yet and I had to default to OpenBSD instead, which is fairly slow.


Are you using a pinebook pro? I used Manjaro for a while there because I couldn't get OpenBSD working. Eventually I switched to my thinkpad (and frankly I'm using my AMD gaming computer running popOS lately despite the trust issues running games) Any particular difficulties running either BSD for daily driver purposes?


I use several machines, all running on BSD or derivatives, albeit coincidentally. My main laptop is now an M1 MacBook Air, primarily used as a terminal + mail client + web browser. My former ThinkPad runs on NetBSD, starting from version 8, then 9, then 10-BETA, and currently on 10-RC1. It's a powerful laptop serving as a server and hypervisor with qemu-NVMM for amd64 VMs. The performance slightly lags behind qemu-KVM, and networking is not as convenient, but it gets the job done.

Finally, I use a NanoPi NEO3 with the Rockchip chip as a NAS. It was previously running on OpenBSD and will soon be updated to NetBSD with a cgd (block encrypted) USB drive.

As for your question, it's not harder to run than, say, Slackware, as it doesn't change much with time. This is the system you choose when you're very conservative with Unix systems and expect something simple, understandable, and predictable in the long run.

As for 'why', it's a matter of personal preference. NetBSD is about preserving the Unix heritage; you could still install it on a MicroVAX II, read filesystems from V7, or run SunOS 2 binaries if you wanted. It still feels much like using 4.3BSD on modern hardware. A good share of NetBSD developers purposefully use old and/or underpowered machines for both development and testing, which keeps the system clean, fast and minimal.

OpenBSD is a fine choice too, but it's relatively slow and lacking in software. For instance, vmd is pretty far behind bhyve and NVMM when you want to run anything more than Alpine VMs. This may have improved recently, though, I haven't checked.


> OpenBSD is a fine choice too, but it's relatively slow and lacking in software.

I don't know about performance, but what software is it lacking? It's got like 11k+ ports.

https://openports.pl/


Honestly, I'm shocked you got OpenBSD running on a laptop at all. I've tried running it both on bare metal x86 hardware and in a Hyper-V VM on two different boxes, and spent hours failing to get it to recognize my network adapter or get an IP. Gave up....

I should caveat: OpenBSD is INCREDIBLE, and we owe it the world (honestly, for OpenSSH alone, but the rest of it is an absolute gold standard too). And I know I could've gotten there.

BUT, FreeBSD just worked for me out of the box on both.

Haven't run NetBSD, but with the native Wireguard support in there now, I might have to throw a NetBSD gateway into my homelab.

Anyone have any good recs on prosumer routers / switches that run NetBSD well?


In fact you are wrong. OpenBSD is well known to work on laptops "out-of-the-box", but FreeBSD it was for quite a long while impossible to make properly working suspend/hibernate.


OpenBSD is known for working very well on the particular laptop models that the developers prefer and regularly use.


The fixes for 68k-based NeXT systems are included now, the port was broken since 5.2.3:

“next68k: Many fixes to get the port working again.”

Thanks a lot to Izumi Tsutsui and Andreas Grabher for their work on the NetBSD port and the previous black hardware emulator!


With all due respect to NetBSD (it's a fantastic system), I think this accurately highlights the difference with OpenBSD. The latter project builds every release of every architecture on actual physical hardware; if the build breaks, it's treated as a symptom of a more serious issue.

OpenBSD dropped the VAX port a few years ago, because the builder machine physically died, and it was decided it was impractical to source a new one.


We were also pretty surprised that the regressions (keyboard/mouse/SCSI were not working and there was an incorrect frame buffer address for some of the NeXT slab models) were introduced that long ago - NetBSD 5.2.3 was released on November 15, 2014.

It took us quite some time to figure out that most of the bugs we observed when running NetBSD in the previous emulator were not bugs in the emulator but also showed up on real hardware...


I'm pretty much the NetBSD people focus on building to as many system architectures as possible (slogan: "of course it runs NetBSD!). OpenBSD is focused on system security. It's understandable why they take different approaches in this respect.


> of course it runs NetBSD!

That's my entire point - if the build has been broken for 9 years, does it actually run?


> That's my entire point - if the build has been broken for 9 years, does it actually run?

It does now. :)


How many platforms do they each support?


Supported is a relative term.

Current OpenBSD Platforms [0]:

alpha

amd64

arm64

armv7

hppa

i386

landisk

loongson

luna88k

macppc

octeon

powerpc64

riscv64

+ ~20 retired platforms

OpenBSD 7.4 pre-built packages for each architecture:

    aarch64: 11508
    amd64: 11845
    arm: 7705
    i386: 10603
    mips64: 8995
    powerpc: 9683
    powerpc64: 8351
    riscv64: 10170
    sparc64: 8469 
Current NetBSD Tier 1 Platforms [1]:

aarch64

amd64

evbarm

evbmips

evbppc

hpcarm

i386

sparc64

xen

[ "Currently there are 49 NetBSD ports with Tier II status" ]

Don't know about NetBSD/pkgsrc software packages for each arch

[0] https://www.openbsd.org/plat.html

[1] http://wiki.netbsd.org/ports/


For my RockPro64, I ran both OpenBSD 7.3 (haven't tried 7.4 yet) and both NetBSD 9.3 and 10_beta, and I found the NetBSD install process for both versions easier. In the end, I'm now on NetBSD 10 RC1 (just upgraded) and I'm happy. All of the important things work on NetBSD for this Aarch64 device.


I thought NetBSD's purpose was to run on everything ?


From https://netbsd.org/about/

"The NetBSD Project's goals

A project has no point if it doesn't have goals. Thankfully, the NetBSD Project has enough goals to keep it busy for quite some time. Generally speaking, the NetBSD Project:

    provides a well designed, stable, and fast BSD system,
    avoids encumbering licenses,
    provides a portable system, which runs on many hardware platforms,
    interoperates well with other systems,
    conforms to open systems standards as much as is practical.


Some dumb questions:

- What are the differences and use cases of NetBSD, FreeBSD, and OpenBSD?

- Are they viable as a backend OS?


NetBSD is characterized above all by its support for many different hardware platforms (slogan: "Of course it rund NetBSD"). There are currently 57 - including legacy systems such as Commodore Amiga: https://www.netbsd.org/ports/

Support for all these platforms is based on a single source tree. This is organized into machine-dependent and machine-independent parts. The machine-dependent part contains the parts specific to a particular computer architecture, which establish the connection between the hardware and the independent parts.

This division, together with the central management of the source code, is the reason why newly developed solutions are immediately available on all platforms: The time-consuming backporting of new functions is not necessary. New functions and error corrections in the machine-independent code are immediately available on all supported architectures.

This also applies to the development of new device drivers. A PCI card therefore works on IA-32, DEC Alpha, PowerPC, Sun SPARC and other architectures with PCI support. An Ethernet chip that is included on various PCI, ISA and USB devices only requires a single driver, which is then connected via various bus attachments.

(Partly translated from German Wikipedia: https://de.wikipedia.org/wiki/NetBSD)


(Wild idea) I wonder whether NetBSD could be turned into something like device drivers or firmware? Ie it always provides the same interfaces to a hosting *BSD OS which reflects the hardware. It maybe actually runs on whatever device it’s accessing.

Then have OpenBSD tackle system security areas, it’d be a hosting OS. Think minimal, loaded into ram, and maybe system paths mounted ro. Have FreeBSD handle the user interface, possibly somehow the user facing FS, too.

It’s fun to dream ;)


Projects like devicetree exist to help standardize device drivers.

(Wild idea) I wonder whether NetBSD could be turned into something like device drivers or firmware?

This is actually quite common. The Qualcomm modem in your phone is very likely running QuRT, Intel ME famously runs Minix, Apple apparently uses some version of the L4 micro-kernel family in their Secure Enclave IIRC.



It's not that wild of an idea. Some one has probably played around with using the net bad rump kernel in openbsd.


> - Are they viable as a backend OS?

FreeBSD is definitely viable, it worked well for me when I was at Yahoo and WhatsApp and it works well for Netflix's CDN appliances. kqueue is great for large scale servers; a small(ish) and stable base system makes a great platform to build on.

I haven't looked much at NetBSD; it should work ok, but its goal is portability, and I'm not sure about performance. It would be the right choice if you want to run on eclectic hardware, of course.

OpenBSD's focus on security makes it a reasonable choice for some types of servers. I wouldn't want to use it for a big beefy many-core server though; it doesn't support CPU pinning, and many networking applications can acheive a lot more throughput with proper CPU pinning than without. But if your server cpu doesn't have many cores, it's probably fine.


They are all viable as backend operating systems, understood as server use. I don't think it's uncontroversial to say that it what they are mainly used for, although some people also use them on desktops/laptops.

I'm not terribly familiar with NetBSD and FreeBSD anymore, but I can provide some of my own motivation for using OpenBSD on servers whenever I am able. I don’t consider myself a beginner to Unix or computers, but I do consider myself a fairly inept and inexperienced systems administrator, with no great desire to spend the time to become better, and my needs are fairly basic - just the usual web/shell/IRC/mail server stuff, and other random infrastructure needs that come along for my work. I prefer OpenBSD because it is is so minimalist, the defaults so sensible, and the documentation so good, that I trust the machines I set up. I have confidence that I did not overlook something crucial. The OpenBSD http daemon is beautifully simple - too simple for many uses, but perfect for mine. The OpenBSD mail daemon is the only mail daemon I have ever been able to set up from scratch, just from reading the man pages. Other systems are more featureful (and probalby faster), but I always worry that I might have overlooked something.

I run Linux (NixOS and RHEL) on my desktop and some servers respectively, because of needs that OpenBSD simply does not support (mostly GPU computing). Linux is fine and certainly runs very fast, but OpenBSD is the only operating system I honestly like.

I've heard someone mention that FreeBSD is "the Linux of the BSDs", meaning that it is bigger, has more features, and is faster, but (probably) also that it is more complicated. I don't know if that is actually true. My last FreeBSD experience was in 2003, where I used it because the Linux emulation could run 3D games like Enemy Territory faster than Linux itself could. (I don't think that is a common use case anymore.)


FreeBSD is a full-featured OS. Me and my colleagues used it for initial porting of a particular scientific software (non-GUI, just CLI and library) to macOS while having no access to an Apple Mac machine. Almost all the time (modulo Clang version differences), what worked on FreeBSD, also worked on macOS. Even if that was not the case, just using FreeBSD would have helped us a lot to "de-GNU-ify" the assumptions present in the code.

FreeBSD Ports/packages are a great collection of software (~30000); while not always providing the latest version of all software (and I will admit that I am spoiled in that regard by the usage of Arch Linux and derivatives), almost anything you need is there and it just works.


> FreeBSD Ports/packages are a great collection of software (~30000);

31969 per the "Statistics" sidebar at:

* https://www.freshports.org


That's mostly been my experience as well, that GNU extensions are the largest real difference between between the various Unix implementations in practice, at least in terms of software compatibility.


NetBSD is the more portable one.

FreeBSD is maybe the best well rounded, has zfs.

OpenBSD is all about top notch security by default.

Generally the documentation for them is accurate. If the manpage says something should work it will work. The components are more tightly integrated than a gnu/linux system since they’re all maintained together.

I have long wished they would find some killer application(s) for the server sector and grow in widespread usage. (And I have a long held commitment to myself to support them significantly, financially if I ever win a lotto ;) Their licensing is much easier for a corporation to use than linux and there are products which are based on them.

They probably would work well as a backend OS as they’re known for stability.


NetBSD also integrates ZFS, albeit an older version than in recent FreeBSD releases: https://wiki.netbsd.org/zfs/. I have used ZFS in a NetBSD 9.2–9.3 VM on AMD64 without apparent issues. (Not for root.)


The components are more tightly integrated than a gnu/linux system since they’re all maintained together.

Well, sure, but most of the software they maintain are the relatively “trivial” parts of the system. Or rather, the software that gives me the most trouble isn’t anything they’d be maintaining.

I have long wished they would find some killer application(s) for the server sector and grow in widespread usage.

I wouldn’t hold my breath. I mean, what feature or functionality could any BSD have that would justify migrating? It would be easier to add an equivalent to Linux in virtually every case. Not to mention that many “cloud-native” projects are typically Linux-only.

I don’t really care one way or the other, it’s basically “coke vs Pepsi” as far as I’m concerned. It’s just hard to see any BSD variant challenging Linux.


I was involved with one of those some time ago. My answer to your question:

NetBSD: mostly developed by people passionate about system design, trying to come up with nice solutions and also want to run these systems for their own use. Majority of devs actually use the system daily.

FreeBSD: Gets most corporate support and the most pragmatic in a way, that it’s developed mostly as something that they need for a specific purpose. Most devs had Macs a couple years ago on conferences.

OpenBSD: Highly opinionated and elitist: what works usually works well, but mostly in an old school way (so don’t expect fancy OS features). They eat their own dog food, so it runs great on laptops.


BSD is commonplace since the 80s for servers, ISP, CDN and embedded applications. So are its open-source derivatives.

If you're looking for a 4.3BSD / early SunOS experience with support for modern hardware, go for it. After all, it's the original Unix.


The AirPort Extreme runs on NetBSD.

Playstation runs on FreeBSD, and if you are watching Netflix the video is streamed from an Edge Appliance running on FreeBSD at 800Gbps. ( Waiting for their 1600Gbps update :) )

Plenty of OpenBSD usage but they just dont tell you about it.


Playstation 3, Playstation 4, and the Playstation Vita all make use of the FreeBSD kernel.

Playstation 5 seems to be a bit different. I'm a little confused if its running the FreeBSD kernel as the main OS/Kernel or if its being run as a shim for backwards compatibility with the PS4.

Its fun to see where BSD has ended up.



First of all, yes they all are viable as a backend OS.

While I don't disagree with the other answers I think they are an oversimplification. All BSDs are general purpose operating systems. All of them do care about security, and invest tons of time into making their OS secure, all of them care about performance, yes also OpenBSD and they invest a ton of time into security. All of them even care for simplicity.

To underline this. There's two more BSDs to think of, DragonFly, which though tiny in terms of developer surpassed at various points in time the "big" FreeBSD in things like performance, driver support (including stuff like Intel DRM, where OpenBSD was faster than FreeBSD as well at times), but also things like file system encryption. I also think that all BSDs sometimes have drivers that Linux doesn't yet have, or doesn't yet have in a stable version.

The other BSD worth mentioning might be macOS (and iOS), which share huge amounts of code. Take bhyve which over the xhyve project allows Docker to run as it does on macOS, take a look at the version output of tools like grep, you'll find it outputs its the FreeBSD version, even things like dtrace and various other tech is constantly ported over.

And then take a look at Android, which took quite a bunch of stuff from the various BSDs, among the a bunch of things from NetBSD.

NetBSD was the operating system to use with early Xen. NetBSD also has pkgsrc. which is a highly portable ports tree supporting tons of operating systems and architectures. On Minix, DragonFly, Windows subsystem for Unix, various hobby projects, some Linux distributions, various illumous and many other it has been or is the default way to install third party software.

OpenBSD shines through simplicity. It's so nice to come to an OS where instead of fiddling with wpa_supplicant, NetworkManager, etc. where your Networks wifi just works with a three line straight forward configuration. So many things that one has to fiddle even with bigger Linux distributions just work as they should if you put OpenBSD on, even when you didn't even yet set up any graphical stuff.

The BSDs have a thing where stuff works and doesn't break. It often feels more practical. Take packages. FreeBSD's ports tree is nothing any operating system even remotely comes close to. It's huge, it's flexible, you can just say "use Postgres version 14, and this and that PostGIS version" without stuff breaking, without third party repos, you can say "install nginx with these and these patches, so it feels like their pro version", and you can say "I don't want pulseaudio, give me sndio, pipewire or OSS for all packages instead".

To me these packages also have the right amount of customization. Something I tend to dislike about Debian/Ubuntu based systems is the whole splitting up into so many tiny packages, all with patches, that not too rarely break stuff, that typically mean that the project cannot help you. FreeBSD has some tiny pataches for portability reasons and has some integrations, like putting a config to use on your periodics (which are kind of pre-defined configurable scripts for crom). So you can just set a flag in the options so your letsencrypt cert will be update, or some reporting, maintenance, DB vaccuum, backup etc. happens.

They feel way more developed to just work than most other OSs, which tend to feel more attention grabby. And while that might be bad for marketing, the lack of grabbing your attention all the time and things just working is exactly what I want from an OS.

I think the BSDs are very different OSs that basically only denote heritage in their names. It's not like with Linux distributions where "that distro is more made for X". Yes, there is hard blockers obviously. Like, if you want to use something only available on another BSD then obviously, that's what you should use, but at the same time, if that's not the case the situation isn't so clear cut. In the Linux world people used to say "and then I have that windows system for gaming", and now we have SteamOS, but also FreeBSD used to (still does?) run certain games faster, and hey, Playstation's OS was based on FreeBSD. Does that mean that regular FreeBSD is the best gaming experience? Probably not, but that doesn't matter if your favorite games just work as well on FreeBSD, or you play in your browser or not at all.

I think it's a bit with programming languages. Most of them seem to use some C-style syntax, and there is dominating paradigms, and they might all run on LLVM, but they also can be highly different, and just because C, C++, Rust, etc. might run the compiler, and just because of that benchmark, your project might still be more or less secure or performant, than the piece of software written in that other language, maybe simply because of that one person sitting down for a week and improving that. And it's the same with the BSDs.

NetBSD is a great example, some guy decided to write a new packet filter (NPF), some guy decided to use an among the BSDs pretty unique approach to create an VMM (NVMM).

And didn't OpenBSD surpass pretty much every other open source OS by getting their stuff to work on Apple Silicon?

So in short: It's really not that black and white. And like with programming languages, comparisons when you haven't seriously used it for a year or two barely make much sense. And then one dev being annoyed enough and having the time can change everything. See how what is now called containers originated on the BSDs and Solaris. Weaknesses turning into strengths happens so frequently. It just helps to be able to base off other people's work and findings and start out on a clean slate.

And then see small things, like the OpenBSD community that, OS that people call "for routers only" now having compared to the project size vocal gaming community, with no WINE support and probably currently giving the best out of the box experience among the BSDs on ThinkPads.


If you use containers for development and deployment, FreeBSD can run them, but AFAIK the other two cannot.


If you have any interest in netbsd (or any BSD), check out unitedbsd.com. It's a great forum, and a couple of netbsd developers are on there, as well as really knowledgeable users.

Lots of great changes in NetBSD 10. Give it a chance if you haven't.


That's quite a list of impressive improvements from the team. Kudos!


It's a bit of a surprise that only now is the Pi 4 supported. And with the Pi 5 just starting to roll out.


Two things about that. One is that it's not really "just now".

There other is th Since the Raspberry Pi Foundation to my knowledge isn't at all invested into the BSDs the work is done by volunteers and said volunteers might simply not use them.

I don't know the state right now, but some years ago the bottom line was that the RPi simply wasn't really a competitive device, so you had all of those other similar devices supported, that tended to be faster, or come without closed source BLOBs (firmware) required to boot, etc. So nobody got the device and ported it there for quite some time.

That was OpenBSD I think. At the same time they were very fast about running on Apple M1 and M2.

A lot of Linux work is paid for. And while the BSDs have foundations, Raspberry Pi is probably not the highest priority, since for the largest parts it's mostly hobbyist hardware.

But might also have other reasons, what I am trying to say is that this might not be as surprising given context.

Raspberry Pi is typically not the best supported piece of hardware, on OSs not supported by the Raspberry Pi foundation. Many of its more open competitors tend to work on a great variety of operating systems. Various other platforms come with hardware/driver docs from day one, not the Raspberry Pi.


I found the SD Card performance of NetBSD to be really bad on the Rpi3. Have they fixed it yet?

Linux and FreeBSD on the Rpi3 don't have the same problem.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: