Hacker News new | past | comments | ask | show | jobs | submit login
NetBSD 10: Proper old-school Unix, not like those lazy, decadent Linux types (theregister.com)
106 points by lproven on April 17, 2024 | hide | past | favorite | 47 comments



> NetBSD sits in the middle. It is a relatively small, clean, and simple OS.

The "build.sh" system for compilation is so easy to use for compiling your own toyOS that I initially felt like I had done something wrong. Linux is a bigger, better funded, wider documented project but the overall ease of specifying output type for a boot image and what platform I was developing for was the second deciding factor for me. The first was being able to compile it (with no weird extra steps) on my Mac (pre Apple Silicon).

In undergrad it became my hackable OS of choice if I wanted to compile something for my old Mac, a server for my bike, or some incredibly niche computer I found by accident. When I had questions, I asked the IRC group. For me, it was a great introduction by practice of the different parts of an OS.


> some incredibly niche computer I found by accident

I used to think this, but leave it to me to disprove...

Had an Intel Atom board that would only boot Linux and... OpenBSD. NetBSD (and a number of other OSes) would hang when attempting to load the kernel and refuse to boot - likely due to some firmware bug.


> Intel Atom (...) NetBSD (and a number of other OSes) would (...) refuse to boot

Was it one of those cheap tablets/netbooks that shipped with fully-64-bit-capable CPU (Atom Z3735F) but with dreaded 32-bit-only UEFI firmware?

GRUB can boot NetBSD there, although it's a bit of a hassle to set up.


Negative, it was an embedded board. GRUB was not the issue; rather the kernel would hang after partially booting. Affected Illumos as well so it's likely a firmware bug.


What is the state of the art for running NetBSD (and other *BSD) in CI such as GitHub actions?

Edit: to add a bit more detail, I maintain a cross platform tool [1] on GitHub and require a way to build and test it in CI for several platform not natively supported by GitHub.

Currently I use cargo-cross [2] to build it from a Linux OS but this doesn’t work for running the tests.

One option I’m aware of is running a qemu VM on Linux, which is the approach taken by postgres [3].

Another option is using an external CI provider such as Cirrus who claim to have native support [4] for various *BSD.

[1] https://github.com/fujiapple852/trippy

[2] https://github.com/cross-rs/cross

[3] https://github.com/anarazel/pg-vm-images

[4] https://cirrus-ci.org/guide/FreeBSD/



I’m a fan but this is such a turnoff:

  That worked too, albeit not quite as we expected. We got a nightly build, rather than the latest release 124, and it pulled in some unexpected dependencies such as Python 3 and Wayland – although NetBSD doesn't support Wayland.


But that is not NetBSDs fault but the configure script not doing the correct things. It would pull in the same things on Linux. Which is the error as they should be different.


The article is wrong, it has branding disabled (so it identifies as Nightly), but it's stable Firefox. And the linked article indicates that one compositor can be used.


> NetBSD is more of a traditional Unix-style experience than modern Linux.

That's a bit of an understatement. NetBSD is primarily about preserving the original Unix spirit with broad compatibility across both hardware and software. This is the antithesis of, say, Fedora. NetBSD spans a vast amount of history, supporting everything from VAX and early Sun workstations to aarch64 and amd64, and from the V7 filesystem (1979) to ZFS. It will run both early SunOS binaries and bleeding edge software.

That being said, what I appreciate most about NetBSD is the dogfooding. Many core developers use vintage hardware or ARM boards, and routinely try the releases on antiquated hardware. Since software behaves like a gas, this helps keep bloat to a minimum. So there you have it: a deliberately old-school Unix that will run modern software yet still work like in the 80s / early 90s on basically anything with a CPU and MMU.


Funnily, with age I began to think that UNIX itself poorly embodies parts of the "UNIX philosophy". Plan 9 wasn't created for nothing, after all.

Thus, improving on the original UNIX (more than what POSIX can do, though I dearly await the new iteration that gives us `realpath`/`readlink` and other important goodies in `sh(1)`) isn't that much of a lèse-majesté, in my eyes.


No, trying software on antiquated hardware just keeps you in the dark ages. For those of us that were there when 385BSD and NETBSD were waging their stupid holy war against commercial nixes the purity tests about what Unix really was are just pointless. Unix was always an entirely commercial enterprise.

Linux wasn’t.


> Linux wasn’t. (context from me: waging a holy war)

That is a bold statement, you obviously were not on USENET in the early 90s.

At the time I was using Coherent and comp.os.coherent was being flooded with trolls of Linux users, they were saying Linux was the best thing ever. Linux users were also trolling all other OS groups.

Not a single *BSD user posted a troll about Coherent.

It was so bad, when MWC folded, the Coherent Developers suggested people move to a BSD because they were at least respectful.


Coherent was my first PC Unix-clone, before moving to Linux. It was incredible for the time. The documentation was bar none... I still remember the 500+ page book with the shell on it. (Coherent ad here: https://computeradsfromthepast.substack.com/p/mark-williams-... ... not my blog.)


I strongly favored Linux in the nineties because the elitism of the BSD world was infuriating back then. There were no device drivers for IDE CD-ROM drives because "real men" were supposed to use SCSI. There were no binary packages, yet ports were constantly broken. Sound support was non-existent by default. Not to mention the early BSDs were extremely buggy, let alone the train wreck that was 386BSD. Linux 0.9 was already more stable, performant, and usable. A true hacker paradize.

Then Linux started transitioning from a patchwork of loosely coupled replaceable components to integrated stacks in the mid-2000s, becoming ironically more and more of a corporate commodity rather than a playground for software freedom. You would need to define "the dark ages", as I understand casual users may prefer this trend, but for me, NetBSD is where the spirit remains. This is an entirely dependable, simple, hackable, grokable system and that's the way I want it to stay.


I installed Linux in fall 1994. I looked at Free/NetBSD but when I went on some of the Usenet BSD forums they basically insulted me saying that my brand new $3,500 PC wasn't good enough.

The main thing was this IDE interface that had a bug. Linux got a workaround within days or weeks.

https://en.wikipedia.org/wiki/CMD640

The BSD people told me that I should buy a SCSI card, SCSI hard drive, SCSI CD-ROM. I was a sophomore in college and I saved every penny to spend $2K on that PC and my parents paid the rest. I didn't have any money for that.

The sound card as you mentioned was another issue.

I remember software based "WinModems" but Linux had drivers for some of these. Same for software based "Win Printers"

When I finally did graduate and had money for SCSI stuff I tried FreeBSD around 1998 and it just seemed like another Unix. I used Solaris, HP-UX, AIX, Ultrix, IRIX. FreeBSD was perfectly fine but it didn't do anything I needed that Linux didn't already do.


Sound support is a nightmare on Linux in 2024. I think I learned to get it work maybe twice in the dozen of attempts over the years.

In MS Windows it just works.

I also started with Linux in 1994 and wrote some tiny pieces of the kernel (no modules yet). I routinely use Linux on my servers since then.

But getting a noise from my headless Rpi is a nightmare.


"Sound support was non-existent by default."

I don't know what years you are talking about, but in the early 00s I found audio in FreeBSD with OSS to just work (if you had supported hw), especially compared to the mess that was Alsa, and the ever bigger mess that was Pulseaudio.

It took years for audio in linux to become decent.


In linux with OSS also worked. Then came Alsa with its pieces and Pulseaudio with breakage.

Today it is a mess.


[Article author/submitter here]

> the elitism of the BSD world was infuriating back then.

You do have a point there.

I found it very difficult to try to get FreeBSD up and running well even ~20 years ago, and yes, up to around the Ubuntu era, the BSDs were just a bit too hardcore for me. Linux was hard enough, but one got the feeling that most of them were trying to help, trying to make stuff work and make it easier.

(All right, except Debian. There was a strong attitude of elitism in that community, too, and while traces are still there, Ubuntu has taken Debian more mainstream than any other derivative ever did. Stormix, Corel LinuxOS, Lindows, Libranet... all tried but none quite cut it. Ubuntu made Debian easy, and Debian has benefitted a lot from that, IMHO.)


Libranet

It's nice to hear that people still remember Libranet, it was a two to three person shop.


`adminmenu` FTW. :-)


By the way, thank you for taking the time to review this great OS. This was nice to read.


Oh, thank you very much for that! :-)


> Then Linux started transitioning from a patchwork of loosely coupled replaceable components to integrated stacks in the mid-2000s

I cannot imagine a better sales pitch for Linux as an operating system for people who actually want to use a working, reliable, well integrated, featureful, coherently designed, modern operating system to actually get really cool things done as opposed to people that want to endlessly tinker with a giant pile of glued-together parts.

I had a phase when I wanted to use minimal Linux distros and cobble together the individual components of my system of myself, with only what I needed and nothing more and making sure I understood how everything fit together, but I quickly realized that that's just not the way to produce a system that's actually nice to use and useful.

> ironically more and more of a corporate commodity rather than a playground for software freedom

Having an actually integrated set of system components and software stacks may make the system less modular, and so less free in some sense, but I don't think it takes away software freedom in a way that really substantially matters. FLOSS software can be tightly integrated and remain free. Especially when there is still so much modularity, and the trade-off is a much better system, which is worth it in my opinion. Also, I don't see why integrated software stocks are inherently corporate, although it is true that Linux is getting a lot of corporate funding.

> This is an entirely dependable, simple, hackable, grokable system and that's the way I want it to stay.

This desire to be able to understand absolutely everything on your system seems kind of absurd to me.

It is the primitivism, the going to live in a log cabin in the woods completely off grid using 1800s technology, of the software world — both in that the impulse to give up the benefits of the division of labor and modern society and economies, the ability to have people specialize in understanding and building things that you don't have the time to specialize in or build yourself, is just patently absurd and essentially reactionary, born out of a fear of the unknown, and because even such people find themselves inevitably depending on things that they don't fully understand or didn't fully do themselves. I guarantee you that you wouldn't be able to understand the full intricacies of all of the components on your system, including the compilers and the entirety of the kernel and all of the drivers and everything else, and that's not to mention your processor architecture or whatever.

And if your argument is that you understand the high level components and how they fit together, that is precisely as true for a system with larger components. My point is that any system beyond Forth running on bare metal is probably beyond the ability of any single person to actually understand fully and if you are okay with a certain level of abstraction that I don't see the difference.


> This desire to be able to understand absolutely everything on your system seems kind of absurd to me.

There's a difference between having a desire to be able to do something and having a desire to actually do that something. I intensely want to be able to understand something, if I have the time, energy and motivation. The fact that it's possible is what matters, not whether or not I actually do it.

You're not making that distinction, it seems, but it's a very important one. Arguing for choosing complexity that removes that option because otherwise we're irrationally afraid of the unknown is really one heck of a take.

I can't understand every intricacy of my systems, but I know several NetBSD developers who have intimate understandings of literally every aspect of their computers. Because this is possible, and because people with this level of understanding exist, I trust what comes from the NetBSD project more than I trust anything from any of the Linux distros.


> You're not making that distinction

I'm not making the distinction because I was talking purely about the desire to be able to understand everything, not the desire to actually do so at all. So your attempt to split hairs is purely irrelevant to my point.

Even the desire to be able to is one I find absurd, and as I said fundamentally based on an irrational fear of the unknown — specifically the fear of having to rely on something that you may not be able to perfectly understand or control — and a prideful desire to not only control everything but not have to rely on the expertise of others. Moreover it is a mindset that is simply not practical in any other field of life, in modern society, and while it may once have been possible in the software industry, I don't think holding back software from the many benefits more complex and complete software can bring making it easier to use, handle more edge cases, solve problems more completely and from first principles, have more useful features, integrate better with other things, and so on just to preserve that state, th)at sort of atavistic design philosophy, is sensible either. It seems like a monomial pursuit of the optimization of one variable, namely a certain specific sense of reliability where edge cases and the fragility of the integrations between things and the lack of accounting for various use cases necessitating piling on more ad hoc tools, are not counted, at the expense of many other things.

> Arguing for choosing complexity that removes that option because otherwise we're irrationally afraid of the unknown is really one heck of a take.

It doesn't seem like a particularly crazy take to me at all. Perhaps in the software industry it is, because there has been such a cargo cult like obsession with the Unix Philosophy for a very long time, but I've always been a crank and have no desire to apologize for that, and it's a trade-off we make every day in other areas: choosing something that even if we wanted to we probably couldn't fully understand all of the intricacies of because it serves our needs better on a practical level is something every person in modern society does every day with a vast panoply of things, including software, because the division of labor and specialization and so on is actually a very important part of what makes the modern world with all of its advanced technology and convenience and so on possible.

> I can't understand every intricacy of my systems, but I know several NetBSD developers who have intimate understandings of literally every aspect of their computers.

I'm not so sure that's true, except on an abstract architectural level probably, in which case the second part of my argument above would come into play.

> Because this is possible, and because people with this level of understanding exist, I trust what comes from the NetBSD project more than I trust anything from any of the Linux distros.

Trust about what? That's kind of my question.


> fundamentally based on an irrational fear of the unknown — specifically the fear of having to rely on something that you may not be able to perfectly understand or control — and a prideful desire to not only control everything but not have to rely on the expertise of others.

That's you. Please don't project your inabilities on everyone else.

> I'm not so sure that's true.

Interesting that you think it's OK to simply assert something based on absolutely no actual data, information or experience, in direct contradiction to what others personally know and experience. What a take!

You're making an argument that looks like this: things happen, and we're OK with them. Therefore, we should be OK with the same things happening with other aspects of life. Simply, no. I can accept that I know very little about how municipal water systems prevent contamination, growth of microbes, et cetera, but how ridiculous is it to suggest that because I simply accept that it's done reasonably well, I have to do that in other areas, too? Do I need to accept being as ignorant about the intricacies of something as everyone else, even when I'm an expert in that particular field? That's absolutely ridiculous.

> simply not practical in any other field of life

Bullshit. I can think of many, many examples where this is plainly not true. See my previous statement.

The fact that you think this complexity that defies understanding is required to handle problems that can't be handled more simply shows you have a shallow understanding of things. I genuinely don't know if you can't understand this, or simply choose not to, but I'll say that you giving up does not have any impact whatsoever on those of us who haven't. Needless to say, arguing for others to give up wanting to understand something that you seem to lack understanding of is, in basic terms, gatekeeping. You're no different from people who say to not self-host email because they can't self-host email (or for whom it's too much "work", or takes too much energy). Likewise, if you don't want to do something, that's really not an argument for telling other people to not want to do something. What kind of person does that?


> We at NetBSD of course do not believe the OpenBSD tale about their security focus and consider NetBSD at least as secure

Why is this so obvious (the first half)?


It's funny, Theo de Raadt claims that Linux folks "do what they do because they hate Microsoft" whereas they do what they do "because we love UNIX", but there are countless examples of *BSD folks dissing at Linux (like in the article) because the "superiority" of *BSDs. Even Haiku got into that bus for some reason. Not a smart way to get more users or to prove maturity, and even worse that they chose to diss their own *BSD brothers. But that's not my issue.


Couple things going on here. First, BSD folks don't diss Linux, they just state the ways they believe their BSD is better. Linux folks get their identities really wrapped up in the OS they use for some reason, so that might result in hurt feelings, but most BSD users are also Linux users.

Second, most BSDs (Esepecially OpenBSD) are not really interested in "getting more users." Theo is probably the biggest example of this, he would still work on OpenBSD if he was the only person using it, because he is making the OS he wants to exist.[*]

Unlike Linux, Windows, and MacOS, BSDs aren't made to take over the world, they're made to be good operating systems.

* Edit to add: That's not to say he's not a self-righteous asshole, but that's a different discussion.


I have been following along in the early days of Linux vs BSD. Believe it or not, the main reason people especially developers flocking to Linux at the time despite the superiority claim of other BSDs of their self-evident stability and security was mainly the licensing of GPL for Linux kernel. It was a stroke of genius from Linus by adopting the GPL but he probably hardly admitting the fact. No decent open source programmer (open source terminology was defined in the midst of this) at the time were willing to compromise people ripping their codes and put them inside other commercial OS, and at the time the usual suspect was Microsoft Windows of course. This very thing happened right infront of their eyes and under their noses when Microsoft literally took the entire TCP/IP stack from FreeBSD, but as a compensation they probably hired some of the FreeBSD folks after that and this latter fact is only speculation. It is really philosophical rather than technical superiority but in technology the superior product hardly win the contest, remember Betamax and VHS?


> It was a stroke of genius from Linus by adopting the GPL

I agree. So does Linus:

https://www.cio.com/article/238985/linus-torvalds-says-gpl-w...

Also, important note: the GPL was not the original license he chose.

It changed with v0.99. Before that it was his own licence.

https://web.archive.org/web/20110721105526/https://www.kerne...


I think more importantly is the lawsuit by AT&T against University of California.


I always thought it was tongue in cheek, like the Goth kid making fun of the popular kid


Not to mention, the NetBSD people are quite friendly. If you are a student (or anyone) looking for a project to get involved with, you should give NetBSD a try.


Anyone knows if NetBSD plans on syncing their ZFS with OpenZFS at some point? Didn't manage to find info on this.


probably best asked on a mailing list. But NetBSD is really community/volunteer driven, so someone with an itch to scratch will have to take it on


I'm loving the BSD announcements these days. Getting more and more tempted to put maybe NetBSD on an older machine some evening and have a play around.


I have a fondness as NetBSD was the first Unix I ever installed (circa fall of '94)... for about 4 hours or so, then I had to restore my Amiga4000 back to AmigaOS for work on Monday :).

I set up a NetBSD VM (on my Macbook) that I had intended to use but there was just enough friction/lack of pkgsrc knowledge that I never made the leap.


My first experience with free Unix were with Red Hat and NetBSD on Amiga hardware. I'm still running NetBSD on the two Amigas I started with in the mid '90s :)


It is (slightly) disappointing RISC-V didn't make it as an officially supported platform in this release.

Hopefully we won't have to wait for next major release before that support gets integrated.

It used to be that NetBSD was among the 1st (if not the 1st) to hop onto a new platform. Along with smaller OSes like some RTOS or Forth-based systems. But that hasn't been true for a long time - nowadays Linux usually gets there first.

That said: it's very impressive what NetBSD manages to do & support, given its relatively small user- and developer community. Kudoz to everyone involved!



NetBSD is great because: can support lots of hardware; minimal but featureful; secure; pkgsrc; friendly community;

It's like a good middle ground between Free and OpenBSD. Anyone into "minimal" linux distros might get a kick out of it.

Anyone interested should check out https://www.unitedbsd.com/ It's a bsd forum with a good number of netbsd users and a couple of developers as well.


I will say I like this more than your review of netbsd 9 ;)


:-D

I have no idea if some of the issues I reported with 9.3 led to those issues being fixed in 10, but I really did appreciate things like my cursor keys working in the shell, right off the boot media. ;-)


It's proving to be a good release so far. Hopefully they get more support in the form of manpower and cash. Looking forward to NetBSD and the increasing popularity of ARM in the future.




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

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

Search: