BSD

I have come across this history of the Berkley Software Distribution (BSD) UNIX, which has brought back quite a few fond memories.

We had used 4.3BSD1 UNIX for one of my first software development projects back in the day, cross-developing Modula-2 programs for an embedded control system using an Intel CPU. The development machine was a DEC MicroVAX II.

We started out as a two person team, my colleague and boss responsible for the hardware, me for the software. Neither of us knew either Modula-2 nor UNIX. The solution: a few crash courses for the programming language and its concepts, and for shell scripting. The C Shell. Shell scripting was used heavily to streamline the development process. From changing the compilation, linking and debugging context between the UNIX and the embedded target, to operating the source version control system, to all the little personal scripts each of us then created over time to make life easier. Laziness is so often a good motivator to get creative.

The user device? A VT220 text terminal of course. Emacs as text editor, customised with Lisp. Really old style from today’s perspective. You can run a shell in Emacs, say, to compile a module, and with the right configuration, use the shell output to directly mark any syntax errors in the editor window. Typing a few key characters, and you could expand these to whole program text constructs. Just what we’re used to have today. So maybe not so old style after all, but the right style.

design description document

I have loved that project. Everything was new, we started from nothing, and we had all the freedoms to explore, evaluate, make design decisions, create both hardware and software. Engineering. And get it done. Somehow on our terms. We were an exotic UNIX island in the midst of a boring IBM mainframe sea.2

The resulting product was really ours. I still have the design description of the software, including the development environment. We were a small team of explorers – t-shirts and jeans among white lab coats –, with the needed discipline at the right time and in the right places. We even invented our own specification method and language for the fail-safe real-time software. Good times. Good memories. Maybe we should have flown a pirate flag as well.

Fast forward to today, and I am writing this on a computer that uses an operating system that is based on BSD UNIX, macOS.

From the article:

Today, BSD is among the most common operating systems on Earth despite people not recognizing it as such. Modern macOS descends from 4.4BSD, as do NetBSD, OpenBSD, FreeBSD, Dragonfly BSD, and a few others. In the past, various versions of BSD formed the basis of SunOS, DYNIX, NeXTSTEP, Ultrix, and Tru64. Various editions of BSD were merged into AT&T UNIX, and this means that modern commercial UNIX systems like AIX and HP-UX are also running some BSD code.


  1. At the project start it was 4.2BSD, if memory serves. ↩︎

  2. Used for writing software for the AXE telephone exchange. ↩︎