James Wilson - Berkeley UNIX: A Simple and Comprehensive Guide
I’d like to learn more about UNIX. Trying out a BSD seems like a fun way to go about it. I like the vibe of the OpenBSD community a lot, and the literate culture it has (they consider missing or bad documentation a bug for example, which is lovely) as well as the emphasis on simplicity is appealing. I’m not usually drawn to striving for correctness which I think can sometimes become an excuse to not try new things or venture into unknown territory, but for a computer operating system I appreciate that emphasis too. Correctness doesn’t exactly arise on its own from simplicity but the two go hand in hand.
The OpenBSD website has
some books listed and James Wilson’s 1991 guide to Berkeley UNIX is
the first one I started with. It was really fun get a basic sense of how
much has changed (the rsh remote shell program seems kind
of designed for safe, trusted networks – I imagine that wasn’t a big
deal on a reasonably closed network where all of the operators were
known, but boy does it highlight the need for OpenBSD’s ssh!) and also
how much has stayed the same. The chapters covering UNIX tools and
example use cases was a nice practical guide for me – I like learning
more about UNIX tools, especially ones that are available everywhere but
I can’t say I’ve ever gone all that deep with it. I ended up writing my
first little awk pipeline at work the other day without
googling for examples which felt nice. :-)
The shell language (the C shell program csh which I was
happy to discover lives on as tcsh) described in the book
is pretty wild, too. It was a reminder that all my shelling is bash-y,
but I’d like to get to know POSIX shell better – this book mostly
satisfies any pressing interest I have in csh I think haha,
but I was glad to spend some time with it. Is the C shell still the
default on any modern BSD I wonder? My OpenBSD install uses
ksh as the default, but the man page says that uses a
superset of POSIX shell…
I’m also glad to have another (simpler) perspective on process management in UNIX and inter-process communication. I have spent some (happy) time studying the Linux Programming Interface book while developing Astrid – it’s fantastic – but it also has some additional decades of diversion and change to deal with. The simplicity of BSD shines in these short chapters that still manage to cover the essentials.