Skip to main content

What is FreeBSD? What Are The Pros and Cons of FreeBSD?

This article will describe FreeBSD, a Unix-derived operating system that most of us consider a Linux operating system, and give some details pros and cons of FreeBSD.

Let’s start with the description of it.

What is FreeBSD?

FreeBSD is a free and open-source Unix-derived operating system. It was built for desktops, laptops, servers, and embedded systems that is based on the Berkeley Software Distribution (BSD) and runs a variety of platforms. It focuses mostly on features, speed, and stability.

The History of FreeBSD#

Well, since when did free BSD exist, where do its roots go?

It was 1974. AT&T granted the University of California, Berkeley a Unix source license. With DARPA assistance, the Computer Systems Research Group began updating and enhancing AT&T Research Unix. This modified version was named "Berkeley Unix" or "Berkeley Software Distribution" (BSD), and it included technologies such as TCP/IP, virtual memory, and the Berkeley Fast File System. Bill Joy created the BSD project in 1976.

The first public version of BSD, "Networking Release 1," or simply Net-1, was released in June 1989. "Networking Release 2" (Net-2) would be incomplete without those AT&T files. Net-2 launched in 1991. On June 19, 1993, the name FreeBSD was decided for the project. In November 1993, the first version of FreeBSD was released

FreeBSD Version History

Figure 1. FreeBSD Version History

What Are The FreeBSD Features?#

  • Modules [kernel] “loadable” dynamically. It allows new types of File System, Network Protocols, or Binary Emulators to load into the system without having to create a new kernel.
  • FreeBSD bhyve: The FreeBSD base system now (with FreeBSD 10) includes a new BSD-licensed, legacy-free hypervisor. It can presently run all supported versions of FreeBSD, as well as OpenBSD and Linux through the grub-bhyve port.
  • As you may be familiar with Windows, In FreeBSD multi-user access is possible. That means a different user can perform their task simultaneously. All peripherals can be used as shared.
  • FreeBSD can communicate with other systems thanks to the Full TCP / IP connection. Not only it can act as a Primary server but also performs critical duties such as FTP ,Firewall, email services, and Network File System
  • The Ports Collection is a collection of over 23,000 third-party programs that can be installed and operated on FreeBSD with ease.
  • If you require access to a large number of third-party programs, FreeBSD has more than four times the number of apps in the ports and packages system as OpenBSD.FreeBSD also offers a wealth of tuneable options for the kernel, filesystem, and network that OpenBSD does not.
  • Jails are a light-weight alternative to virtualization
  • FreeBSD Firewalls: IPFW and IPFilter are included in the basic system, as well as a modified version of the popular pf with better SMP performance. IPFW also contains the dummynet function, which allows network managers to mimic undesirable network circumstances such as latency, jitter, packet loss, and bandwidth limitations.
  • The memory protection feature allows applications (or users) to avoid interfering with each other's tasks.
  • The industry standard X Window (X11R6) system provides a graphical user interface (GUI) for the most common VGA cards and monitors, including all source code.
  • DTrace, a sophisticated event-based performance analysis and troubleshooting tool is heavily ported to FreeBSD.
  • Well-documented and always up-to-date online documentation is available.
  • Support of Ultra-DMA peripherals in ISA Bus

Distributions of FreeBSD#

1- FreeBSD 1#

The first official release. It was released in November 1993. 1.1.5.1 was released in July 1994.

The Ports Collection is a collection of port-related items feature launched with FreeBSD 1

Some remaining issues from the import of 386BSD have been fixed and some ported apps have been added (XFree86, XView, InterViews, elm, nntp) were the remarkable features of FreeBSD 1.

2- FreeBSD 2#

Released on 22 Nov. 1994 FreeBSD 2.0 was the first version of FreeBSD to be legally free of AT&T Unix code, with Novell's consent. It was the first version to be extensively utilized in the early days of Internet server spread. Significant changes can be listed as in this release.

  • BSD-Lite 4.4 was used to replace the codebase (to satisfy terms of the USL v. BSDi lawsuit settlement).
  • There is a new installer and a new boot manager.
  • More filesystems are supported by loadable filesystems (MS-DOS, unionfs, kernfs).
  • Loadable kernel modules from NetBSD were imported.
  • phkmalloc has been used in place of BSD malloc.
  • ELF allows for full Linux emulation.
  • Shaped traffic on the dummynet.

3- FreeBSD 3#

Released in 16 October 1998.FreeBSD 3.0 was the first branch to enable symmetric multiprocessing (SMP) systems through the use of a Giant lock, and it marked the move from a.out to ELF executables. FreeBSD 3.1 was the first to provide USB capability, while 3.2-RELEASE was the first to include support for Gigabit network adapters.

4- FreeBSD 4#

4.0-RELEASE was released in March 2000, and the most recent 4-STABLE branch release was 4.11 in January 2005, which was maintained until January 31, 2007.FreeBSD 4 was praised for its reliability, was a preferred operating system for ISPs and web hosting providers during the first dot-com explosion, and is widely regarded as one of the most reliable and high-performance operating systems in the whole Unix family.

5- FreeBSD 5#

This release was launched on 14 January 2003. The FreeBSD 5.4 and 5.5 releases demonstrated that the technologies released in the FreeBSD 5.x branch would have a future in highly reliable and high-performing versions. Cryptography enabled by default in base. With this version, bluetooth started to be supported

6- FreeBSD 6#

In 1 November 2005 FreeBSD 6.x releases expanded work on SMP and threading optimization, as well as additional work on enhanced 802.11 capabilities, TrustedBSD security event auditing, substantial network stack performance increases, a fully preemptive kernel, and hardware performance counter support (HWPMC).

7- FreeBSD 7#

After 3 years later from FreeBSD 6 on 27 February 2008 FreeBDS 7 was launched.SCTP, UFS journaling, an experimental port of Sun's ZFS file system, GCC4, improved support for the ARM architecture, jemalloc (a memory allocator optimized for parallel computation,and major network, audio, and SMP performance updates and optimizations were among the new features of FreeBSD 7 distributions

8- FreeBSD 8#

FreeBSD 8 was released on 26 November 2009. A new virtualization container called "vimage" has been added. This is a FreeBSD jail that contains a virtualized instance of the FreeBSD network stack and is built with the jail command. The FreeBSD netisr (Kernel network dispatch service) framework has been rewritten to allow parallel threading. The FreeBSD TTY updated with a new FreeBSD TTY that supports SMP and has more robust resource handling. FreeBSD 8 started to support USB 3.0

9- FreeBSD 9#

FreeBSD 9 released 12 January 2012. One bsdinstall installer has been introduced and is utilized by the ISO images included with this version.ZFS has been upgraded to version 28. Softupdates journaling is now supported by the Fast Filesystem. Highly Available Storage (HAST) framework has been implemented. The NFS subsystem has been upgraded, and the new version now supports NFSv4 in addition to NFSv3 and NFSv2.

10- FreeBSD 10#

FreeBSD release date 20 January 2014.Capsicum has been enabled by default in the kernel, facilitating sandboxing of various programs that run in the "capabilities mode.virtio support has been added.

Support for the Raspberry Pi has been added.FreeBSD Raspberry Pİ Installation can be accessed from that connection.

https://freebsdfoundation.org/freebsd-project/resources/installing-freebsd-for-raspberry-pi/

11- FreeBSD 11#

The stable version of FreeBSD 11 was launched on October 10, 2016. The new version of NetMap introduced in this release. Parallel mounting has been added to the ZFS filesystem.Trim(8), which deletes material for blocks on flash-based storage devices that employ wear-leveling methods, has been added.64-bit ARM Architecture support became available.

12- FreeBSD 12#

FreeBSD 12 released date 11 December 2018. With this release, the ext2fs(5) filesystem has been upgraded to enable full read/write functionality for the ext4 filesystem.FreeBSD has altered how graphics drivers are handled on amd64 and i386 platforms. The Ports Collection now includes graphics drivers for current ATI-AMD and Intel graphics devices.

13- FreeBSD 13#

FreeBSD 13 released date 13 April 2021.  FreeBSD 13 is now available, including significant improvements such as the transition to a new OpenZFS filesystem and an improved toolchain that attempts to unify FreeBSD across all platforms.Dropping support for obsolute drivers result in better performance on modern machines.Although ZFS support has been there for some time, the switch to the new OpenZFS tree guarantees that users have access to the most up-to-date capabilities.This version has prioritized codebase cleanup and performance enhancements.

Advantages of FreeBSD#

Let's look at the advantages of FreeBSD, which forms the infrastructure of many known systems from Netflix to Mac Os.

Some of the main advantages of using FreeBSD can be listed as easy installation, being free, secure, and stable. Let’s look at these in detail.

1- Easy to Install#

FreeBSD provides detailed installation documentation for a variety of platforms. Even if you are not familiar with other operating systems (Linux,unix) you can install it with the help of documentation.FreeBSD may be installed via a CD-ROM, DVD, or directly using FTP or NFS with the guidance of documentation.

2- Free#

Normally, such a full-fledged operating system is thought to be paid but FreeBSD is free of charge and available with its code.

3- Security#

Security is highly important to FreeBSD, and its developers are continuously trying to make the operating system as safe as possible.BSD and Unix have a well-deserved industry reputation for rock-solid (though not flawless, as misconfiguration can lead to vulnerabilities) security and stability.

When we look at the perspective of a number of vulnerabilities that Linux and FreeBSD systems faced.FreeBSD is 7 times lower than Linux in the last 20 years (Of course, Linux is more widely used and is the target of bad actors.)

FreeBSD vs Linux Vulnerability Counts Figure 2. The last 20 years of FreeBSD vs Linux Vulnerability Counts

Another factor that makes BSD safe is that it is built on a monolithic kernel.

4- Stable#

In addition to its Security advantage over other OS, FreeBSD provides a stability edge.FreeBSD servers have been known to run for years without issue.

These are sufficient reasons for us to prefer FreeBSD over other OS.

Disadvantages of FreeBSD#

Let us now have a look at some of its drawbacks.

1- Less Developer Support#

One of the most complaining aspects of FreeBSD is less developer support.

2- Complex to Understand#

Getting to terms with a new and sophisticated operating system is never easy, no matter how appealing the graphical user interface seems. In this regard, FreeBSD is no different. Less community support especially for newbies can lead to understanding problems.

How to Install FreeBSD?#

The FreeBSD installer is available in a variety of formats, including ISO Disc Images in CD (disc1), DVD (dvd1), and Network Install (boot only) sizes, as well as normal and small USB memory stick images.

You can download the installer, VM Images, SD Card Images according to your environment and preferences

https://www.freebsd.org/where/

Start, Download FreeBSD and VirtualBox#

FreeBSD Download

Figure 3. FreeBSD Download

I will explain installing FreeBSD on an Oracle VM in this article

First, you need to download the FreeBSD ISO file according to your needs and environment

Or You can get the latest VM images from https://download.freebsd.org/ftp/releases/VM-IMAGES/13.0-RELEASE/amd64/Latest/.

Create a Virtual Machine with VirtualBox#

VirtualBox Download

Figure 4. VirtualBox Download

To create a virtual environment we need to have a virtualization program. In this tutorial, VirtualBox will be used.

Download VirtualBox from https://www.virtualbox.org/ according to your OS.

After downloading it you can install it very straightforward

After installing it we can start to configure our virtual FreeBSD 13 machine.

Create a new Virtual Machine on Virtualbox by clicking icon

Create Virtual Machine

Figure 5. Create Virtual Machine

Type the name of your Virtual FreeBSD OS, you may change the Machine Folder also.

In this example, the 32bit version will be used for installation.

Select the Amount of Memory Size

Figure 6. Select the Amount of Memory Size

Determine Memory Size according to your needs and resources.32bit FreeBSD allows a maximum 4GB ram

Create Virtual Hard disk

Figure 7. Create Virtual Hard disk

We are creating from scratch so that select the 2nd option

Select the hard disk file type

Figure 8. Select the hard disk file type

Choose the type of file that you would use for the new virtual hard disk. Choose the 1st option

Select storage type

Figure 9. Select storage type

Choose the storage type. We are going to choose dynamically allocated.

File location and size

Figure 10. File location and size

Select the file location and select the size based on your available disk resources.

FreeBSD settings on VirtualBox

Figure 11. FreeBSD settings on VirtualBox

After creating VirtualBox you need to configure VM settings. Click to

Adjust Processor(s)

Figure 12. Adjust Processor(s)

Modify processor settings according to your resources. The more you have a processor the more you can allocate.

Adjust Screen Settings

Figure 13. Adjust Screen Settings

If you don't use it for graphical work you can specify minimum video memory.

IDE Settings

Figure 14. IDE Settings

Select Optical Drive to load iso file

Figure 15. Select Optical Drive to load iso file

You need to select the iso file by clicking the Optical Drive and choose the iso file.

Network Settings

Figure 16. Network Settings

The network setting should be Bridged Adapter to connect your VM from your host OS.

After clicking OK you finish your configuration.

Prepare for Installation#

Now you can start your Virtual Box by using the VM Management page.

Start Virtual Machine

Figure 17. Start Virtual Machine

After starting FreeBSD , the opening windows will ask you to select iso image.

 Select start-up disk

Figure 18. Select start-up disk

Select the FreeBSD iso and click start

 Booting FreeBSD on VirtualBox

Figure 19. Booting FreeBSD on VirtualBox

Your VM FreeBSD is booting now

Welcome to FreeBSD

Figure 20. Welcome to FreeBSD

To start installation Click Install

Keyboard selection on FreeBSD

Figure 21. Keyboard selection on FreeBSD

Select your keyboard from the keyboard map. Then click Continue

Set Hostname

Figure 22. Set Hostname

Give a hostname for your FreeBSD

Distribution Select

Figure 23. Distribution Select

For minimum configuration select only kernel-dbg

Partitioning

Figure 24. Partitioning

Partitioning will be Auto (UFS)

Partition

Figure 25. Partition

After selecting partitioning, you will be asked to create a partition or not. Select the Entire disk and continue

Partition Scheme

Figure 26. Partition Scheme

Choose the MDR Dos Partitions and click OK

Partition Edition

Figure 27. Partition Edition

You may change partition sizes or you can continue as default. Click Finish

Confirmation for Partition Edition

Figure 28. Confirmation for Partition Edition

After all setting done you will be warned about

Your changes will now be written to disk. If you have chosen to overwrite existing data, it will be PERMANENTLY ERASED. Are you sure you want to commit your changes?

Commit and continue.

Fetching Distribution

Figure 29. Fetching Distribution

After committing Distribution files will be fetched and extracted then will be installed.

Set Password

Figure 30. Set Password

If you have successfully installed FreeBSD you will see this window that is asking you to specify a Root (admin) password for your operating system. Type a password secure and memorable. While typing you won’t see any character but it will write.

Network Configuration

Figure 31. Network Configuration

In this section you need to set your Network Configuration.This home network and we are selecting wifi and click OK

DHCP Configuration

Figure 32. DHCP Configuration

If you want to use DHCP click Yes

IPv6  Configuration

Figure 33. IPv6 Configuration

Click NO for IPv6 configuration

Resolver  Configuration

Figure 34. Resolver Configuration

You can specify different DNS like google 8.8.8.8 or you can use your DNS Server

Time  Zone  Configuration

Figure 35. Time Zone Configuration

Set your time zone on this screen

Time  and Date  Settings

Figure 36. Time and Date Settings

Set the time

System Configuration

Figure 37. System Configuration

For System Configuration choose the proper needs for you . Selected two services are enough for us now.

System Hardening

Figure 38. System Hardening

Add User

Figure 39. Add User

You add another user later. Click No

Final Configuration

Figure 40. Final Configuration

If you have finished the configuration you can exit or you can continue to modify previous settings.

Click OK to continue.

Manual Configuration

Figure 41. Manual Configuration

After installation has been completed. You need to manually modify some configs

Configs after Installation#

We need to change some configs manually.

Modify the remote connection config file

Figure 42. Modify the remote connection config file

To modify the remote connection config file. Type ee /etc/sh/sshd.config

Permit Root Login

Figure 43. Permit Root Login

Firstly change the Permit Root Login as yes. And delete # comment sign.

 Password Authentication

Figure 44. Password Authentication

Change the PasswordAuthentication settings as yes

 Leave Menu

Figure 45. Leave Menu

After configs have been completed press ESC and select a Then Type poweroff command to shutdown your FreeBSD

Eject the iso image from Optical Drive

Figure 46. Eject the iso image from Optical Drive

In shutdown mode, we need to eject the iso image from Optical Drive. After ejection Boot your FreeBSD by clicking

Login FreeBSD

Figure 47. Login FreeBSD

After booting on the login page type your username (root) and password that you have specified. With the ifconfig command, you can learn the IP address of your FreeBSD and you can connect it as remote with any SFTP SSH tools.

That’s it . You have a fresh virtual FreeBSD now.