FreeBSD: Tutorials, Howtos and Reviews

Over the years I’ve written quite a few posts to help people get into FreeBSD (or FreeBSD-related projects). This is the place to get a quick overview of those posts:

2021

Multi-OS PXE boot server on FreeBSD

FreeBSD router take 2 (with OPNsense)

2020

Single post

  • (Feb 2020) FreeBSD on SPARC64 (is dead)
  • In this article I cover my last minute adventures with FreeBSD on the SPARC64 platform. I encounter various broken areas and try to get things fixed so the platform could survive – in vain. But this documents that there at least were people who tried to keep it running!

2019

FreeBSD on ARM64/AARCH64

Managing FreeBSD ports with Portmaster

Writing a daemon using FreeBSD and Python

  • (Nov 2019) Writing a daemon using FreeBSD and Python pt.1
  • This mini-series is meant as a quick but gentle introduction to using Python to build a daemon on FreeBSD. The first part covers some Python fundamentals, signal handling, logging and daemonizing using FreeBSD’s daemon(8).

  • (Nov 2019) Writing a daemon using FreeBSD and Python pt.2
  • The second post of the mini-series covers doing daemonization of the program directly in Python, without external help. It also discusses a few Python concepts and fundamentals for newcomers to programming.

  • (Nov 2019) Writing a daemon using FreeBSD and Python pt.3
  • Part three of the mini-series introduces named pipes as a means of inter-process communication (IPC). The daemon is modified to use a named pipe and a control script is created that can send data to it (unidirectional IPC).

2018

Single post

  • (Feb 2018) [ ! -z ${COC} ] && exit 1
  • FreeBSD decided to go with a new “feminist” code of conduct. I criticize it as a step in the wrong direction as it is ideology (and a crude one) over sanity. This kind of thing is not helpful in tech at all.

2017

Updating FreeBSD 4.11

This series of four posts is about updating a legacy system running the legendary ancient FreeBSD version 4.11.

Introduction of FreeBSD jails

A mini-series of two posts about jails on FreeBSD.

Building a BSD home router

A detailed eight part howto on building your own home router including hardware considerations, an intro to using the serial console, discussing two options for operating systems and more.

FreeBSD package management and package building

A set of posts to introduce new users to FreeBSD’s package management system, the ports framework and building your own package repositories in a clean environment.

2016

Dual-boot FreeBSD setup

This two post mini-series is about installing FreeBSD and OpenBSD together on one machine. Full disk encryption is used for both systems.

Introducing Vagrant on FreeBSD

Another two post mini-series, this time introducing Vagrant – a versatile tool to automate and manage disposable Virtual Machines.

Introduction to Bacula on FreeBSD

A five-post introduction to the backup software Bacula (of course on FreeBSD)!

Single posts

These are a couple of posts that are not part of any series.

  • (Jul 2016) Documentation: Linux vs. FreeBSD – a real-world example
  • I never use WLAN at home. Then one day I want to access the net with my FreeBSD machine while being on the road and I have no clue how to do it. That was when I discovered just how much better FreeBSD’s man pages are compared to the ones I was used to from Linux!

  • (Aug 2016) How to choose your *BSD OS to begin with?
  • This post is meant to give an overview over the four main BSDs, what they put their focus on, what interesting things they have going on and why you would want to try out which one.

  • (Dec 2016) 3+ months on TrueOS – a critical write-up
  • After having used the new TrueOS as my main OS as a daily driver, I wanted to document the good, the bad and the ugly. TrueOS is a FreeBSD-based OS with a lot of potential that however had quite a few rough edges at that time and had yet to find its way.

2015

FreeBSD for Linux users: General introduction series

A series of five posts that are meant to give a short intro into the world of FreeBSD.