39 comments

[ 3.0 ms ] story [ 90.2 ms ] thread
I keep meaning to try netbsd. I have really enjoyed both FreeBSD and OpenBSD. I guess now I'll give it a try.
ZFS on root would be good. That aside, maybe some of the more modern TCP/IP optimisation? BBR, ebpf with XDP, that kind of modernist code.

I also ran NetBSD from it's birth right up to the first modern laptop I got that it couldn't drive nicely. I miss some of the robust simplicity of it.

When DSDT started not being fully implemented for thinkpads so S1/S2 sleep states didn't work and wifi cards stopped having good blob support it became less tenable. Maybe that all improved after I jumped ship.

I also ran pkgsrc on OSX for a while. It's pretty good as a proper portable build environment.

I feel like NetBSD the way I feel about nvi versus vim

When you have DTrace, eBPF isn't as urgent.
You've seen what nlnet labs are doing with XDP managing and monitoring dns flows in kernel? Wire speed packet classification. Cool stuff. But.. it demands modern ebpf.
Security is more important. And dTrace implements a full stack, from kernel, user space to apps.

eBPF is an Linux-only insecure island, they can keep.

Eh, a bytecode like DTrace's, or eBPF, can be safe. The original BPF certainly was (IIRC).
Not if you allow user arrays in the kernel. dTrace doesn't, even when they didn't know about Spectre beforehand.
If there was NixBSD I'd seriously consider it.
I'd love to see a *BSD based OS where they're willing to get rid of the 30 year old cruft, meaning grep & friends, x servers, all that antique shit, and focus on the fundamentals. Something like a modernized AmigaOS UI and object oriented command line on top of a solid API and kernel.
> I'd love to see a BSD based OS where they're willing to get rid of the 30 year old cruft, meaning grep & friends, x servers, all that antique shit

Isn't that macOS? BSD-based where useful, replaced with something else where useful.

Granted, macOS only has a BSD userland, not a BSD kernel, but that still counts it as "a BSD" IMO.

You're right about it being macOS. I think the kernel can be viewed as BSD too. It is based on Mach 2.5 which was based on 4.3BSD.[1] It's just been heavily modified since then but that makes it fit parent's description all the better.

[1] https://en.wikipedia.org/wiki/XNU

I don't want to derail the conversation, but this era of retro-computing is a passion of mine, so I'm obligated to point out that (AFAIK) XNU was created from scratch, based on the Mach 4-derived kernel from OSF/1, and the non-encumbered 4.4BSD "lite" with patches from its forks. (You can see the kernel in the "osfmk" directory in XNU).

It makes sense when you consider that 4.3BSD could never have been used in a product without tainting it, such that every copy of OS X would have needed a unix license (like NeXTSTEP did). This was also a factor in replacing Adobe Display Postscript with a similar, but lighter and unencumbered internally developed solution.

(I might be wrong as I'm not the world's biggest NeXT/Darwin fan, but I see it as incredibly unlikely that they'd have kept any code and risked license contamination, especially when Mach 4/OSFMK were super incompatible with their proprietary "Mach 2.5", and there was no preexisting PowerPC support in NeXT)

Is there any shell on MacOS that's both a first class citizen and not based on antique unix commands and syntax?
PowerShell.[0]

We have used it years on Linux in production. I would assume the MacOS version is just as first class as the Linux version. We are not using to replace Bash as a login shell, not just yet, but a simple pwsh-command and boom, welcome to the future where you're not tied to the 50 year old antiquated idea of 'everything is a file' and it's 40 year old codebase. PowerShell is just a shell for dotnet, so you could say it's idea is 'everything is an object'. For example, JSON is just a datatype in PowerShell world. You don't need jq and it's horrible syntax.

Sorry if that's too confrontational, but I've been using PowerShell as my daily driver for the past 17 years, and Bash+grep+whatnot feels just as antiquated as cmd.exe.

[0] https://learn.microsoft.com/en-us/powershell/scripting/insta...

Trust me, I love PowerShell (disclaimer that I worked on it) but in MacOS it's an add-on not a first class citizen, and I think there are fundamental principles that can be picked up by other shells. In fact, the PowerShell cmdlets are expressive enough in their metadata that they can be run by other shells easily.
What's left of BSD at that point? The kernel? Unified development of the userland and kernel has always been the big selling point of the BSDs versus Linux.
> get rid of the 30 year old cruft, meaning grep & friends, x servers, all that antique shit,

And replace it with what? Lacking basic tools would make it not very useful.

just get rid of the shell completely!

command lines are so antiquated

You may not be the target audience of NetBSD. Actually, of any of the BSDs.
Unsure if sarcasm or not.

How would you do anything?

I ran NetBSD on a previously Win95 laptop in '06.

One fond memory was when some hardware failure occurred, the screen filled with ASCII smiley faces of random colors.

It was also my first BSD. I then ran FreeBSD on a desktop for a while around that time.

This power-law distribution happens everywhere, all the time. Most people get exceedingly uncomfortable when they encounter people doing things in a different way, using different tools.

Anytime you deviate from the main-stream there are upsides and downsides.

Equally, every product or position is a blend of compromises. Understanding the compromises is key to making informed decisions.

People who typically follow the herd (ie those in the main stream) can be insecure about their choice - and may need to self-convince by adopting an antagonistic attitude with "others".

Maybe you have a different diet, or a different religion, or a different political viewpoint.

Or maybe you use the wrong OS, or program in some minor language, or work for a small (old) business, or drive an old car, or live in a small town or.....

If I encountered a NetBSD user I'd want to know more about their advantages, and more about their challenges.

But pffft, NetBSD? Oh man you've really drunken the koolaid. Sold out to the Man. All the really cool kids today are running Oberon.

> We share a common struggle within the BSD community, and more broadly among Unix-like OSs that aren’t Linux. Think Minix, illumos, heck maybe even big iron UNIX. Linux is now perceived as the default

Linux and Minix are the only two "Unix-like OSs" mentioned here. Everything else, NetBSD, FreeBSD, OpenBSD, Illumos and especially, but not exclusively, "big iron UNIX," are not "Unix-like." They're Unix. We don't need to apologize for that nor tip toe around the fact that GNU/Linux is not Unix. It's literally what the acronym means.

(comment deleted)
UNIX is a brand. You get to use it if you get certified as compliant with the Single UNIX Specification. Linux isn't, but neither are any of the BSDs.
The EulerOS Linux distro from Huawei was "UNIX® certified" at some point, although I think it expired as it turned out that no one really cared.
> UNIX is a brand

But Unix isn't. The BSDs have always been and will always be Unix. GNU/Linux is not Unix.

> but neither are any of the BSDs.

macOS is BSD, and it is registered as UNIX 03 compliant from Mac OS X 10.5 Leopard up to and including macOS 13 Ventura, with macOS 11, 12, and 13 registered on both x86-64 and ARM64 systems.

You didn't include MacOS in your original comment and I wasn't referring to it. The fact that some parts of modern BSD systems are derived from the original Unix is interesting in a Ship of Theseus sense but it tells us nothing useful about them.
The default motd on OpenBSD is "Welcome to OpenBSD: The proactively secure Unix-like operating system."

You can argue what exactly is or isn't "Unix" until you're blue in the face as there are multiple definitions you can use (lineage of the code, trademark, posix compliance, etc.) It's a very boring discussion though.

OpenBSD was forked from NetBSD which is derived from 4.3BSD-Reno, and like all BSD, ultimately derives from Research UNIX. The original Berkley Software Distributions all referred to themselves as Unix and upon logging in a user would see a "Welcome to BSD Unix" text banner. Linux derives from Minix which, beyond using a BSD userland, is otherwise unsourced from and unrelated to BSD and UNIX. GNU is a recursive acronym that literally means "GNU's Not Unix!"
I installed NetBSD on a 68k Mac sometime in the late 90ies. It wasn't...useful for anything, but I was impressed that it was possible.
I asked ChatGPT about why I should use NetBSD instead of Linux, and for me the reasons of performance and portability don't hold up because Linux is more performant and more compatible with my hardware.

I can see why some might appreciate the simplicity of the base system and the design of pkgsrc but the former seems to be more in line with OpenBSD than NetBSD and its legacy cruft.

I used NetBSD for my senior project (I graduated from college last year). We were trying to port the XFS file system to it. We didn't come close to a usable product but I gained a good amount of appreciation for operating system work and NetBSD which I otherwise wouldn't have gotten. The docs are good, the system feels unified (much more so than Linux ever will), and NetBSD+ctwm runs great on my 2009 Thinkpad (and the built-in wifi even works).

But if it weren't for a professor at my college who had been using it for 20 years, I'm not sure I ever would have touched it. The goal of "ultimate portability" was great in the 90s and early 2000s, but nowadays we only really use x86-64 and ARM64. What else is there that sets NetBSD apart?

>we only really use x86-64 and ARM64. What else is there that sets NetBSD apart?

Who is "we"? In Space/Air-Domain Spark and PowerPC's are big...and netbsd too ;) Mips and Loongson are also a thing.

> What else is there that sets NetBSD apart?

NetBSD is the continuation of 4.4BSD, or in other words the closest thing to the original Unix that you can run.

Unlike FreeBSD, they still support the original architectures like VAX. Unlike OpenBSD, they haven't deprecated entire subsystems, you could still mount V7 filesystems while listening to music on your bluetooth headset, on the same system.

If you want clean code and a small, performant, traditional Unix working on legacy, embedded and cutting edge hardware, this may be for you.

Those who are after Docker, Ansible, BtrFS and K8S running on powerful AMD64 box will probably find Linux a more suitable option.

I remember reading years ago on dragonfly BSD blog about how they wish BSD and Linux was closer together if not even interoperable with each other.

I always felt that, that could be Netbsd unique feature, which to my knowledge is something they have some tools out (pkgsrc and their unique kernel) but seems to still wishing to be mostly compatibility focused.