But FreeBSD is a hobby, and a particularly gratifying hobby.
The simplicity of FreeBSD is a huge draw, you can get very far with an ancient Intel machine and 1 GB of RAM. The source code is a pleasure to read, the system is easy to modify, and there is relatively little of it on a base install. Full system upgrades are clean and easy, the ports system is elegant though often impractical.
For most people, the easiest way to run FreeBSD would be to use a virtual image, and boot it up using qemu (Linux) or Hyper-V (Windows). Both work very well, both support networking, which is really what you're looking for. Face it, you're not booting into FreeBSD for its giant catalog of games or media utilities.
Get the VM images from here. qcow2 works for QEMU, vhd works for Hyper-V, and vmdk works for VMWare.
For QEMU, I use the following commandline:
qemu-system-x86_64 \
-m 2048 \
-enable-kvm \
-hda bsd-with-jail.img \
-net user,hostfwd=tcp::10023-:22 \
-net nic \
-curses
That specifies:
- (-m 2048) 2048 MB RAM
- (-enable-kvm) use the Linux KVM hypervisor
- (-hda bsd-with-jail.img) the disk bsd-with-jail.img as the first hard disk
- (-net nic) a full Network Interface Card, make your FreeBSD setup trivial as it can get a network interface called em0
- (-net user, hostfwd=tcp::10023-:22) network translation is user-level, so no root permissions required and forward port 10023 on the host to port 22 on the guest. This allows you to ssh to the FreeBSD guest by ssh'ing port 10023 on the host.
- (-curses) Use the text-based interface using libncurses rather than a graphical interface. Great for running on cloud instances, or through GNU screen so you can leave it on forever.