7 Comments

This is the content I love to see on Substack. Thank you Julio for the great article. NetBSD has always been my favorite BSD and this is why (the other reason being the rump kernel). Booting into Snake like that reminds me of Casey Muratori's (Computer, Enhance! on Substack) The Thirty Million Line Problem^1. He talks a lot about software bloat in the talk, but makes mention about how computers in the 80s/90s were really just BIOSes, and that programs shipped on floppies were basically just operating systems designed to run that program.

I've always thought it would be interesting to try to recreate this by modifying an OS to either boot into a normal desktop environment, or bypass that and boot a program directly (Like a game), eschewing the overhead of the operating system. This approach seems possible with a custom version of NetBSD.

1. https://www.youtube.com/watch?v=kZRE7HIO3vk

Expand full comment

Yeah, Bazel.... I doubt that's going to get much traction in NetBSD circles.

Something like Peter Miller's Cook, or Schris Seiwald's Jam (or maybe FT Jam) might be more in tune with those who follow NetBSD's philosophies.

Expand full comment

Thanks for a nice overview!

One tweak you may want to make: "my own Buildtool" currently links to localhost.

Thanks again for sharing!

Expand full comment

Always, always, always, one of those broken links leaks in. Fixed now. Thanks!

Expand full comment

Great writing, I wonder if wrapping make calls with Bazel would be enough to replace the build system, the input of such rule would be the entire directory with a gigantic blob, sure you may still choke c++ if the lib is big enough and you're running with make -j nproc on each call, but you would still benefit from caching even when switching flags, with a minimal change. Sure you would need to find how to translate the dependencies into Bazel ones, but that sounds like something that can be automated, switching the whole build system is a bit insane and will not run at all.

I wonder how long until someone rewrites the core of Bazel in golang or some other efficient language, specially now that starlarkfication of rules is pretty complete

Expand full comment

Thank you for this wiring! I recently started playing with FreeBSD and your article helped me understand few things about the build system!

Expand full comment

This is really cool. The world needs to know about how powerful the NetBSD build system is.

Expand full comment