64 comments

[ 3.5 ms ] story [ 134 ms ] thread
And you can learn how to hack the NetBSD kernel just by reading the man pages. That's how good BSD documentation is.

Those screen shots make me 90s in my pants. That's what a real powerhouse workstation looked like in my college years.

I agree, this machine is absolutly beautiful, great to see it running a motif desktop and gr_osview! Good memories
I had that experience with OpenBSD as well. The summer after university I played around with it on a HP Chromebook 13 G1, fixed a bug that broke it's eMMC storage and wrote a touchpad driver - which ended up working more reliably that the driver Linux had. I think I more or less stuck to the base system + Firefox, so cwm as a window manager, nvi as an editor, etc.

I use NixOS for my own machines these days, but I do miss the simplicity of OpenBSD.

Are the FreeBSD sources also readable?
Well, yes. Kinda. You need to know a bit about high level organization and structure of OSes first as the codebase is not particularly small.
Pretty much, and also there is more documentation for some parts as linux. Not the prettiest code in the world, but ok.
I attribute that not only to good documentation, but that the overall design is relatively simple and logical.
> It may not be mainstream enough for a daily driver

Horses for courses - it's my daily driver for development and administration. To be fair though, I relegate the vast majority of consuming the web to a mobile device.

Firefox is in pkgsrc so I don't see it couldn't be used for general web consumption.

I think the only blocker might be the stuff requiring DRMs like streaming video services but since netbsd now supports VMs you could still run a linux vm for that.

I threw OpenBSD on my old laptop this year and it was workable except for DRM video and the fact that my bank evidently used user-agent sniffing to decide it didn't like Firefox on OpenBSD (but Firefox on Linux or Chromium on OpenBSD worked fine)
> Horses for courses - it's my daily driver for development and administration.

Because OS doesn't really matter here. You can install the same packages and have the same workflow on any opensource unix OS.

> Because OS doesn't really matter here.

Arguably correct, but I really do like the NetBSD experience when I am dealing with the OS.

A lovely ride down memory lane. These IBM machines were all works of old, beautiful computing art.
I wonder what would be the closest (because I do not think there is such a thing) today.

And I do not mean military grade things. I mean „normal“ laptops that are tough and functional.

Panasonic still manufactures the Toughbook line, but it's more rugged than tough (ah, adjectives).
Most (all?) modern business laptops are actually very tough. Reviewers regularly bend them in ways that would make you faint if that was yours and they are fine.
Yes, but still after some years not really usable. Or maybe I got a bad one? I’ve a 2016 macbook pro (the one with touch display) and already after 6 years was failing. And now almost unusable.
Framework is trying the best toward "functional" in the sense that it can be repaired by a regular person. Though I would not consider it nearly as "tough" as a magnesium bodied Thinkpad
> It doesn't overwhelm you with thousands of packages and dozens of boot services right in a fresh install. On the contrary, it does only what you tell it to do. It puts you in charge and makes you feel like you can understand it top to bottom.

Yeah I feel the same way though to a lesser extent about FreeBSD.

It's a great OS that doesn't try to do too much and push the latest fads on you like the mainstream Linux distros. But it's also very useable as daily driver and it is that for me.

The only thing I don't like is that it gets bloated with lots of linuxisms if you try to use something like gnome or bsd. Dbus and pulseaudio, stuff like that. It makes for a bit of a weird mix and match.

I recently installed NetBSD on a Thinkpad T430s, it is surprisingly snappy and usable, except when firefox is running.

With i3wm, tmux and helix with clangd it is a capable development machine with a surprisingly modern feel, only the compile times give away that the machine is from the early 2010s. Even WiFi is working, and pkgsrc is fast and well-stocked with the newest software.

It's funny to hear someone describe my daily driver personal laptop in the same way as a 380Z. I use Slackware with Xfce4 and except for the lower screen resolution (1360x768) I have never noticed that it's not "modern." I even have a new battery so it gets 6-9 hours of use again.

Like you said, the giveaway is the poor performance, but if you're a systems developer that usually isn't a problem anyway. Emacs, C, assembly, some Chisel and Forth are all that I write on it.

A T42 with slackware and notion wm was my daily driver until around 2015, never really felt a need to get something newer and only did because I wanted something smaller/lighter for portability so I get a cheap $250 11e Thinkpad. Used the T42 regularly until it finally died in 2021 or 22. Miss the 4:3 screen and tiny trackpad. In just shy of 20 years the only issues I had with the T42 was a dead fan. Now I have an X13, 16 cores and NVMe still running slackware and notion, it flies. That $250 11e is still going strong, has survived 3 bike crashes and it shows.
I used a T42p (not just a measly T42, that's for the proles) as a daily machine until forced to move away from 32 bit machines around 2021. Were it not for that I'd still be using it daily - I got three of them in nearly new condition for free about a decade earlier, all of them still work, one of them with a new translucent trackpad cover (made from an old mobile phone screen protector) because the old one was totally worn through - since the combination of the 1600x1200 4:3 (more or less) screen and the keyboard are hard to beat. I'm now using a P50 which, while offering far better lacks the 4:3 screen and 'suffers' from the modern Lenovo keyboard.
>not just a measly T42, that's for the proles

What do you think the 'p' in T42p really stands for? T42p did not exist when I bought my T42 back in 01 or 02. X13 keyboard is almost as enjoyable to use as the T42's was for the first decade of its existence, X13's wins hands down over a T42 keyboard with a decade of use and tired springs. I am pretty happy with their current keyboards.

I still rock a Latitude E6220 from 2011 or so after my main one broke and I just never replaced it.

It had 4gb ram, upgraded it to 8gb for $10 via Amazon, running Alpine with awesomewm and it works perfectly fine, firefox runs fine, compiling works fine, VLC works fine, etc.

Even Windows 10 ran on it fine. Really, CPU's haven't changed so much in the last 10 years, the focus has all bee on graphics.

The T430 is a modern machine with a Core I (and modern Lenovo keyboard...). The S variants are always a bit slower with their low power cores, but it's still very much a modern thing - you'd expect it to all work.
> In general it's safer to use a smaller root partition and a separate one for /home. However, NetBSD worked just fine off a single full-disk partition.

Right until there is an update or anything and a bootloader or one of its required files gets written past the 8GB barrier, rendering your system unbootable.

Yeah, I suspect so!

To be honest, I wouldn't notice this issue at all, if it wasn't for FreeBSD which refused to boot right off the bat. It has a more advanced bootloader though, so perhaps it does some extra sanity checks.

Of course you're not going to notice anything until it breaks -- you didn't write more than 8GB of files to the root partition yet, I guess...
Better or worse than OpenBSD and its ridiculous baker's dozen partitions and mount points? You know __for your protection__ meanwhile they fill up if you install more than a few packages or heaven forbid build a custom kernel when 80% of /home and /var is free and you realize you're screwed and have to start all over.
Been there, done that. Feels painful, but that's because you're learning. My favourite, too small /boot in Linux that prevents updating the kernel if you keep more than 3 versions, and autoremove doesn't seem to happen automatically.

I had to install a new Debian last night. Manual partitioning and I'm quite happy with the results. I couldn't do that without all my past mistakes.

Debian's partitioner is really buggy and a major pain point for me. Won't support a backup EFI partition, creating and booting from RAID volumes is really tricky, many other issues. Issues that are resolved or nonexistent in RedHat, Ubuntu, and even Windows. I've had it create unbootable GRUB configurations many times - it only tells you at the very end.

I now make the partitions beforehand in fdisk then choose them in the installer. Which for some bizarre reason is not included in the install image; you have to boot into rescue for that.

>Right until there is an update or anything and a bootloader or one of its required files gets written past the 8GB barrier, rendering your system unbootable.

I do not fully understand this. Can you add specifics ? To me the article indicates he used a small root partition. Or did I miss something ?

A little hint for people (like me) who have a separate partition for /usr, /var, /tmp and /home due to cgd encryption or other reasons. If using wireless, you may need this in /etc/rc.conf to force a mount before daemons kick off. In my case, without this wireless breaks.

critical_filesystems_local="/var /usr /tmp"

> To me the article indicates he used a small root partition. Or did I miss something ?

The article explicitly says a single full disk partition was used -- it's right on the quote I used.

In any case, this is a BIOS limitation affecting all bootloaders from all operating systems. It has nothing to do with any particular BSD or OS, and you do not need to care if your computer is less than 20 years old.

Yeah, you're right, sorry for the confusion! I've just rewritten this part to make it more clear.
I wonder if that memory usage is with X running. If yes, then Im very impressed. 32MB with X is very decent result.
It's even less, as you can see 18 of those 32MB are cached stuff, but this is without X.
On the other hand, note it only shows 133MB of total mem, rather than 160MB that is installed. I believe the missing 27MB is used by the kernel (the kernel file itself is 23MB) and its data structures.

That being said, I suspect 64MB could be enough for console-mode work, and if you recompiled the kernel without any unused drivers, perhaps you could make it under 32MB.

Ahh, w/o X. Okey, im less impressed. Also, cached is not counted towards used memory AFAIR. Total memory (roughty): Used + Free + Cached.

Thats my Linux VM w/o X:

MiB Mem : 3028.4 total, 2945.5 free, 19.7 used, 63.2 buff/cache

Xserver is running on my main OS.

I used X11 on a 4 MB Toshiba portable with a 386SX CPU, it was slow but doable. This machine as a whopping 160 MB, that's hog's heaven compared to what X11 has been used on traditionally.
Fond memories of running a nascent Gentoo on my X21 (old one!). I still yearn for how snappy that machine was, even 20 years later. That had a bit more grunt to it, however. PIII 700.
In my basement are quite some old but for the time powerful unix machines. SGI Indigo2, Sun Fire, a Pentium II with Knoppix Linux or my Samsung Laptop from 2010 with Ubuntu 16.04. They all boot up quite fast into a nice looking and snappy X Window system. Fantastic machines. Until.. You try to open a web browser, if there is even a modern one available. If you try to open a modern web browser on those machines, you suddenly get a feel how bloated our modern software and web is! Although the SGI has the original Netscape Navigator installed, that is quite some fun in terms of historic reasons.
Pepperidge Farm remembers running Internet Explorer on SPARC Solaris until it was committed to the dustbin of computing history.
Or Outlook on HP-UX.
Spot on, turns out Niklaus Wirth was right being disappointed with industry evolution.
I imagine running a browser on a remote modern machine using X11 forwarding over SSH would work well enough to let vintage computers use the web as it is today. File downloads would have to be a separate operation using rsync.
> File downloads would have to be a separate operation using rsync.

Or NFS (at which point it's a lot less separate)

> It may not be mainstream enough for a daily driver, but I think it's the ultimate UNIX to put on a spare, underpowered machine.

Kind of my feelings when I run OpenBSD on an old desktop back in early 2000. It was a Pentium 133MHz IIRC and I had it as a text only (although it run X11 with WindowMaker just fine), for text things, learning, tinkering with services, and things like that.

It felt UNIX, whatever that really means.

Enjoyed this write up. I really need to get some machines to run NetBSD on, I find virtual machines to be such a chore.

Has also encouraged me to take another look at xterm.

> It doesn't overwhelm you with thousands of packages and dozens of boot services right in a fresh install. On the contrary, it does only what you tell it to do. It puts you in charge and makes you feel like you can understand it top to bottom.

Just like Arch Linux and Gentoo, of course.

> just like Arch Linux

and even Arch (Artix) can't be stripped of elogind and such

I don't know if it works on Artix, but there is seatd [1], which works with wlroots compositors in place of (e)logind.

seatd is ~6k lines of code compared to elogind's ~200k.

[1]: https://sr.ht/~kennylevinsen/seatd/

Alpine and Void are better for this IMO.
(comment deleted)
I like seeing all these NetBSD articles ob various sites. That OS, especially 10.0 seems to work great. I recently started using NetBSD again because I finally got a couple of free "older" thinkpads. My old hardware failed about 5 years ago and the Laptop I replaced it with has troubling hardware for both Open/NetBSD.

The 2 "new" systems (T430, T61) runs NetBSD without any issues. FWIW, if running a BSD you may want to add your dmesg here:

https://dmesgd.nycbug.org/

Also curious, what is that file manager in the print ?

I just came across this article after reading what's new in SystemD v257

It's a miracle how simple NetBSD still is, a few foo=NO in /etc/rc.conf and a check with ps auxc after rebooting, that's all.

"It doesn't matter to operating systems, but confuses some bootloaders. In general it's safer to use a smaller root partition and a separate one for /home. However, NetBSD worked just fine off a single full-disk partition."

A favourite component of NetBSD for me has always been the i386 bootloader. Perhaps it is personal taste but I have not found another one that I like better.

"Even NetBSD comes with some bloatware ;-) To save as much RAM as possible, you can turn it off by adding to /etc/rc.conf:

   inetd=NO
   postfix=NO
   cron=NO
   virecover=NO
   makemandb=NO
   powerd=NO
   syslogd=NO"
Isn't powerd off by default

For example, if install provided sets from https://ftp.netbsd.org/pub/NetBSD/NetBSD-9.4/i386/binary/set...

Look at https://ftp.netbsd.org/pub/NetBSD/NetBSD-release-9/src/etc/d...

"You can also reduce the amount of consoles by commenting them out in /etc/ttys."

By default only one tty is enabled

Look at https://ftp.netbsd.org/pub/NetBSD/NetBSD-release-9/src/etc/e...

NetBSD might have some "bloatware" but _the user must enable it_ first

Everything is off by default. That is one of the things that makes NetBSD great IMHO

"I was able to fix it by adding usermod disable wss to the bootloader line."

Does he mean userconf

Another option is comment the driver out in the kernel source and recompile

For example https://ftp.netbsd.org/pub/NetBSD/NetBSD-release-9/src/sys/a...

"... I think it's the ultimate UNIX to put on a spare, underpowered machine."

100%

Some folks who are not "developers" or gamers use underpowered computers every day

I've used it for decades as a daily driver

> Isn't powerd off by default

Sometimes it's on, see https://ftp.netbsd.org/pub/NetBSD/NetBSD-release-10/src/etc/...

> By default only one tty is enabled

Ah, but the rest is getting enabled by the installer, see https://github.com/NetBSD/src/blob/netbsd-10/usr.sbin/sysins...

> NetBSD might have some "bloatware" but _the user must enable it_ first

> Everything is off by default. That is one of the things that makes NetBSD great IMHO

I mean, it gets pretty close to that, and I don't even mind syslogd and powerd, but I'm confused why they enable stuff like postfix, inetd and makemandb without asking. Especially makemandb is pretty intensive on slow machines.

> "I was able to fix it by adding usermod disable wss to the bootloader line."

> Does he mean userconf

Whoopsie, that's on me, good catch!

Ah, sysinst. I do not use it. This explains the enabling of programs in the configuration. Apologies I should have guessed that's where these settings were coming from.

I usually installboot and disklabel manually, download and extract sets manually, use makefs or mdsetimage and vnconfig to create/edit images.

> I usually installboot and disklabel manually, download and extract sets manually,

Why do things a harder way when there is no discernible benefit?

The "discernable benefit" for me is 1. learning how things work and 2. flexibility.