BSD stands for Berkeley Software Distribution an organization that works for the research, development, and distribution of Unix-like operating systems in Berkeley University California. The Computer System Research Group later produced many open-source OS and FreeBSD Operating System has one of them.
FreeBSD is mainly used in the server and Embedded ecosystem where high security, stability, speed, and compatibility matter the most.
FreeBSD makes an ideal Internet or Intranet server. It provides robust network services under the heaviest loads and uses memory efficiently to maintain good response times for thousands of simultaneous user processes.
Many big companies and startup run their web Server, Email server, DNS Server, NAS (disk servers), and other computer rooms on FreeBSD.
The main advantage of using FreeBSD is here everything from kernel, drivers, utilities, software, and documentation are included in the OS and you don’t have to worry about any copyright issue. It uses the BSD license, where you have full permission to use and modified FreeBSD software commercially.
On the other hand, Linux is also free and open-source but only the kernel and drivers are free to use and you have to return the modified source code to them. Because Linux Kernel is bound by GNU copyleft general public license where you don’t have the freedom to commercially use the modified source code without taking their permission.
The Darwin( base of macOS, iPadOS, iOS, watchOS, tvOS from Apple), FreeNAS, Sony Playstation 3, and 4 consoles, Nokia, Netflix, IBM, Netcraft, Yahoo, cisco, Yandex, Apache, McAfee, Dell EMC Isilon, NetApp, Verisign, and many more uses FreeBSD source codes as apart of their system software.
A Brief History:
If we have to know FreeBSD then we first take a look at how UNIX came and creates the roadmap for Unix-like systems.
We had to look back at 1965 when MIT(Massachusetts Institute of Technology), GE(General Electric Company), and Bell Lab these three large organizations working on a joint project to create a time-sharing OS MULTICS.
In 1969, Bell Labs pulled out of the project but Ken Thompson, Dennis Ritchie, Rudd Canaday further developed the project on their own and eventually created UNIX.
In 1974 Bell Lab Researchers worked with a Unix source code and enabled virtual memory, fast file system, and TCP/IP. This version is called Berkeley Unix and was later used as a free-to-use version.
Later in the 1980s, AT&T divided UNIX into two-part, a commercial purpose OS System-V, and another education and research purpose called BSD (Berkeley Software Distribution).
In 1989 the first BSD public version was released as a Networking release 1 or Net-1 with six AT&T Unix files in the kernel. Later BSD developer removed those six files and released the new Net-2 a freely distributable OS in 1991.
Next year AT&T’s six files replacements were finally written. A completely new operating system got ready, ported to Intel 80386-based microprocessors, named “386BSD” ported on an FTP server.
Later in 1992 386BSD 0.1 was released and set the stage for the formation of FreeBSD and NetBSD. A group of users were unhappy with the development and fix the bugs and done some enhancements within this OS.
And for the first time, a new operating system production started with the FreeBSD project.
Different Editions and Releases:
FreeBSD releases are classified into Production Releases and Legacy Releases. Production releases are best suited to users looking for the latest new features. Legacy releases are for users wishing to stay with a more conservative upgrade strategy.
The first version FreeBSD 1 released on November 1st, 1993 with only BSD386 support but later on, they included many applications (XFree86, XView, InterViews, elm, NNTP) support into the OS.
From 1994 to 2000 they released versions 2 – 4 and included more hardware and new applications support.
In version 2 there was a new installer, new boot manager, support for more filesystems like MS-DOS, unionfs,kernfs, and 64-bit offsets for large filesystems.
Later they also included full NIS(Network Information Service) client and server support, transaction TCP support, ISDN (Integrated Services Digital Network) support, support for FDDI( fiber distributed data interface), and Fast-Ethernet (100Mbit) adapters support.
In May 1997 they replace their old file system with NFSv3 (network file system) and VirtuaL FTP( file transfer protocol) hosting for servers.
Symmetric Multiprocessing or SMP( shared memory multiprocessing) is being introduced with version 3 with lots of other supports like CAM, SCSI(small computer system interface) system, ELF (executable and linkable format), secure RPC, USB device, etc.
Then in1999 FreeBSD 3.4 introduced Netgraph(graph-based kernel networking subsystem), RAID-5 (fault tolerance storage system)support in Vinum, ICMP (internet control message protocol) for network devices.
In 2000 with the launch of the version 4 jail feature was introduced which allows the system admin to partition a FreeBSD-derived computer system into several independent mini-systems. All mini-systems share the same kernel.
They integrated many networking tools and security features like IPsec protocol with IPv6, OpenSSH integrated into the base system, telnet encryption, etc.
From 2001 to 2020 the community released versions 5 to 12 and introduced many features that make FreeBSD a popular choice for server use.
To name a few like GEOM (storage framework), fsck tool, drivers for DRI (direct rendering architecture), protocol-independent multicast (PIM), ALTQ, import Common address redundancy protocol, UnionFS, ZFS, GPT, DTrace, FUSE (filesystem in USErspace), eMMC storage, etc.
Support for Microsoft Hyper-V hypervisor; support for Amazon Elastic File System in Network File System also come with 11.1 version in 2017.
Two major vulnerabilities like Meltdown and Spectre were fixed with driver and software updates in version 11.2.
All the older versions are out of support as they reached their end of life, only the 11.4 and 12.2 are still maintained by the community. All FreeBSD versions are having at least five years of support.
The latest version 13 was released on 13th April 2021 and running on all modern servers and PowerPC architecture.
Hardware Requirements to Install FreeBSD:
- 64 bit Intel or AMD Processor (x86_64)
-96 MB of memory (2 to 4 GB Recommended)
– 1.5 GB of Disk Space ( 8 GB Recommended)
- i386 (32 bit)
- Supported RISC- V as well
FreeBSD/arm and FreeBSD/armv6 support a large range of ARM CPUs and development boards. Not every peripheral is supported on every CPU or board. But with little modification, most of the boards may support it.
You find the exact info in the FreeBSD/arm Wiki pages and the Kernel Configuration files.
Note: On old computers, increasing RAM and hard drive space are usually more effective at improving performance than installing a faster processor.
How to install FreeBSD:
While FreeBSD has no graphical installation, the process is straightforward and similar to installing a server-based Linux distribution. Just make sure you choose the local_unbound package when prompted if you want to cache DNS lookups locally, as FreeBSD doesn’t have a built-in local DNS resolver.
In the process of installation, you see the directory structure is almost identical to Linux, with just some minor differences.
Here user home directories are located under /usr/home instead of /home in Linux.
Standard UNIX commands such as ls, chmod, find, which, ps, nice, ifconfig, netstat, sockstat (the ss command in Linux) Linux) are exactly similar. You can view the man pages for detailed info. Also, the regular reboot and poweroff are works here.
Every new FreeBSD version has some unique features and new application support. Here we discuss the general features…
At the disk level, we have two different options to encrypt the data GBDE and Geli. GBDE uses AES- 128-bit encryption key randomly to writing a sector.
And Geli lets the key be built with different data elements (file bits, phrases, etc.). It allows for multiple keys (user, enterprise) and a one-time key. GELI utilizes the crypto(4) framework and can use encryption hardware if available.
FreeBSD supports the ZFS file system which creates several expandable drives like a pool. You can add extra storage to a pool by adding another drive. ZFS also helps to format and manage drive partitions.
In case of a system crash, it protects the system by implementing soft updates. Its snapshot feature efficiently backs up the UFS.
Its GEOM is a storage framework that combines all of the storage options like full disk encryption, journaling, RAID, caching, access to network-backed storage, and concatenation and gives you an all-in-one tool for access control.
FreeBSD provides several security-related features including extended file system attributes, access control lists, mandatory access controls, security event auditing, and many more.
FreeBSD supports a wide range of system boards and processors included (amd64, i386, pc98, PowerPC, sparc64), devices (Ethernet, FDDI, ATM, wireless network and serial interfaces, miscellaneous networks, disk controllers, sound, camera, video capture, USB, IEEE 1394 –firewire- and Bluetooth), cryptographic accelerators and more.
The built-in compatibility layers help the system to run all native apps and Linux-based software. BSD/OS, SVR4, Windows with Wine all are working fine with FreeBSD.
Its official repository offers around 26,000 third-party apps which are easy to download and use.
The “ports collection” structure of FreeBSD helps you to use any app which is not registered in BSD standards. Ports look for the app source code the users want (from a remote or local repository), unpack it on the system, patch it, and finally, compile it.
Some FreeBSD versions include a package manager to install, upgrade, and easily remove packages.
The TCP/IP protocol provides reliable, flow-controlled two-way transmission of data. The TCP/IP in FreeBSD is based on 4.2BSD implementation.
it also supports IPv6, SCTP, IPSec, IPX, Apple Talk, wireless networking (Wi-Fi), and Common Address Redundancy Protocol (CARP).
In CARP, multiple nodes sharing a set of IP addresses. If one node fails, the rest can check the requests and prevent network downtime.
Jails are a security mechanism that helps the system to run multiple virtual machines with different Operating systems on top of a FreeBSD host, through OS-level virtualization. Each jail works with an individual IP address and hostname.
All jails share the same kernel and they all can work simultaneously. But they run independent processes, which means a jail takes just its own resources, rather than others’ resources.
bhyve is a type 2 hypervisor that allows a user to run many guest operating systems (FreeBSD, OpenBSD, Linux, and Microsoft Windows) simultaneously. It’s a more recent virtualization technique that replaced Jails.
The main difference between the jails and bhyve is that jails occur on an OS-level exclusively for FreeBSD guests. While bhyve doesn´t have such a limit.
FreeBSD kernel has a modular design for users to install or uninstall the modules whenever they want. It has a scalable event notification interface. It supports communication, managing processes booting, and file systems.
Freebsd uses two types of installer a sysinstall and bsdinstall. These are the ways for users to configure software, ports, and packages. Bsdinstall is more flexible, modular, and newer on FreeBSD than esysinstall.
The default shell is tcsh for root users and sh shell for regular users.
It can be ported to different architecture like x86 (32 bit) and x86-64 (64 bit), NEC PC-9801, 64-bit SPARC, 32-bit, and 64-bit PowerPC, x32-x64-bit ARM. In some architecture, the support is limited but can be available in a future update.
IA-64, MIPS, RISC-V are getting partial support where DEC Alpha is unsupported.
All the data related to the FreeBSD project (manuals, frequent questions, archives…) is available for every interested user, in different languages. And a vast and reliable community from all over the world is very supportive.
Final Call, should you use FreeBSD or Not?
FreeBSD is a reliable, general-purpose operating system mainly for advanced users who needs absolute freedom from their operating system. Here they can configure and modify every aspect as per their need.
A wide range of devices uses FreeBSD. Firewall, Router, FTP server, DNS server, mail server, web server, home media server, OS for a regular user laptop or desktop, Networking Network-attached storage (NAS), Web content filtering proxy Database management system, Moodle, Embedded platforms, and lots more.
FreeBSD is open source and you can use and modify it freely. Even the modified version can be used commercially because of the BSD software license.
And if you have the old infrastructure and are not ready to pay a lump sum to create a new one then FreeBSD is a great choice for you. Its runs even faster in old hardware you just have to upgrade the memory.
The main benefit FreeBSD has over Linux is speed. You thought Linux was fast? Try FreeBSD. It has the fastest IP stack of any operating system by a long shot.
Since it’s UNIX based so it can provide the same services (e.g., Samba, Apache, NFS, Nginx). If you want to try FreeBSD then check out their official download page.