Here be dragons! FreeBSD Overview (part I)


I’m done with Linux distros, and you probably already know that; I have a list of them for servers and desktop use cases, and they cover almost everything I’ll ever need. So I don’t bother testing new distros anymore, specially when possessing Arch Linux, Vagrant, Docker and VirtualBox. Oh, together they are all nice swiss army knives.

So, what about other components of the *nix world? There are the Apple World and the *BSD World. I plan to explore both of them in the future, beginning with FreeBSD. I know there are a couple of BSDs out there, from the top of my head I can list OpenBSD (security oriented thing I believe), DragonFlyBSD, NetBSD and PC-BSD (desktop use). I have no clue what is the difference between them, but I believe testing only one of them is sufficient.

Let’s get it. Heading to, I choose the amd64 row of the tenth release. Next comes a FTP listing where I can choose a download file. There are: bootonly (1), disc (2), dvd (3) and (4) memstick.

(4) is for using with dd to write to a USB stick. This is nice, I don’t usually find this thing explicitly on Linux Distros download pages (however IIRC, dd is the official method of writing Arch to a USB stick, and dd’ing the openSUSE ISO image usually works flawlessly too).

(3) probably contains a lot of unnecessary stuff and (1) is probably excessively lightweight. So I chose (2), the disc option.

After downloading it, I chose to test it with VirtualBox. Current release on my Arch system is 4.3.14. I create a new virtual machine optimized for BSD from the wizard page, then choose the ISO I just download and boot it.

The installation process proved to be relatively straightforward. It is ncurses-based, and the options you are prompted to enter are exactly what you would expect from a pretty traditional unix system.

One remarkable option is that I could choose to have a ZFS filesystem. Linux systems usually don’t allow that easily due to license reasons.

A confusing thing was about the keyboard/locale config. It isn’t traditional. I would expect to have options such as pt_BR, en_US, en_CA, fr_FR, and so on, but there are not. In the testing area of the keyboard, I couldn’t enter the ‘á’ character, with any of the Brazilian/Portuguese keyboard options.

Another downside: the shell. Default options were sh, csh and tcsh. REALLY? Where are the ‘traditional’ shells, such as bash, zsh, dash (debian), fish…(?) The shell will be the first program I’m going to install.

After the installation, I wasn’t able to identify the bootloader. It didn’t look like GRUB or syslinux, so I believe it is something specific to *BSDs.

I’m a Linux guy, so the first things I tried after logging into the system (as root, of course) was to inspect which commands were available. Most of what I’m used to were. This is one advantage of using a Unix systems: there is much in common between Linux and BSDs. Of course, I’m not being 100% precisely here, since Linux is only the kernel (what I’m referring to as Linux is actually GNU/Linux).

I entered ‘vi’. Shame on me. I took a while to find the ‘:’ key to quit from it. I’ve just discovered my keyboard wasn’t properly set up, despite of my Brazilian choice at the installation. ‘loadkeys’ wasn’t available either. But I can live with that, for now.

Important links: (also added to my open-bookmarks)

You see, once with the system up and running, it is necessary to do a lot of reading to understand what is going on behind the scenes. Those links might help you as they helped me.

I’m stopping here for now. Part II should cover package management and more criticism about this system (maybe I might find something useful and/or good there too, I’m not that biased (for now)). There are several questions which still need an answer.

Before leaving, I’ve done pkg install bash then pkg info to check if everything went fine. Default bash binary was put into /usr/local/bin. I really dislike to have several binary folders (/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin), this is so non-intuitive (do I have to say that Arch unified almost all of those, and Gentoo deals with them in an elegant way?). Also, did you believe that I had to mount something to /dev/fd in order to use bash? And I had to add an entry in /etc/fstab to make it permanent too. What the hell?! (You see…hell, BSD logo…can’t believe I made this joke. OK, till next time!)

(There is also an album availble on Flickr with some screenshots of the installation process. It might be deleted or cluttered with other screenshots later on.)

Second part of this series is here.

Here be dragons! FreeBSD Overview (part I)

8 thoughts on “Here be dragons! FreeBSD Overview (part I)

  1. There’s an explanation about the /usr/local folder. When you get used to BSD you’ll see that the FreeBSD scheme is the right one. Everything in /usr/local is installed by the user. The /bin and /sbin folders are from the base FreeBSD system, where the user should not touch.

    As you said, you at this moment are a Linux guy. Start digging in the FreeBSD world and discover new paradigms.

    You’ll be ready when you do a pkg remove -f bash on this installation. 🙂

    1. I got a message telling me to do that. It was this one: If I recall correctly, it just told me to mount the /dev/fd one (not /proc).

      I didn’t tried to use bash without this mount, so I didn’t encounter any problems with it. I just found strange, at first, the need to mount something just to use a shell.

  2. beny says:

    I’ve been trying out FreeBSD 10.1 for the last couple of days. pkg install bash just worked, nothing extra was required; it even got added to /etc/shells automatically. Could change the login shell using chsh.

    Just for the record, in case someone else comes across tihs page.

    1. Hi beny. Yeah, this is true, after installing bash with pkg then just running bash, everything works fine. My point was that a output message told me to do something additional, so bash would be fully configurated. I suspect that without this extra step the system will still work fine, but it would probably be a good idea to follow it anyway. Now, if I install, for example, csh on a Linux distro, much probably I won’t see any additional message with an extra configuration step. See the difference?

Comments are closed.