FreeBSD unix

FreeBSD for Linux Users

Comparative Introduction To FreeBSD For Linux Users

In this lesson on FreeBSD for Linux users, we will try to provide a comparative introduction to the FreeBSD platform. This is completely subjective and we encourage you to provide your thoughts to us by tweeting to @linuxhint. Let’s get started.

Overview

Just like platforms in Unix, FreeBSD is an excellent server platform and is a popular one as well. There are many similarities in FreeBSD but their are important points where these two platforms differ significantly!

Before starting, just note that though we will mention points for the BSD family, we will still narrow down our focus to the FreeBSD version for the platform.

Similarities in FreeBSD and Linux

To start, we will share similarities between these two popular platforms.

  • Both these platforms share free and open source licensing and communities. Developers around the globe are free to modify the source code and even release their own custom version for any of these.
  • Both of these platforms are extremely similar to Unix when it comes to their nature of definition. Linux was created from the ground up as an Unix substitute and is free. The association of Linux with Unix defines how the system was similarly designed and making the shell environments the prime way to interact with the OS and define actions.
  • Both of these platforms are POSIX The file system of these platforms are based on hierarchies and even the APIs for programming share extremely similar design patterns.
  • Due to similarities in the programming API of these two platforms, even the tools and apps available for one platform are usually available for the other too. This is because the application is very easy to be ported back and forth from one platform to another.

It sounds like these two platforms are extremely similar in nature when it comes to user usage. But don’t get too excited about the similarities, there are important difference in these platforms as well. Let’s get to them now.

Source Installations

This is one of the major area where these two platforms stand apart. While the Linux platform versions gives only the pre-compiled binary packages of the distribution-supported software, the FreeBSD platform have both pre-built packages and a build system as well for compiling and installing from the source.

If you’re wondering what this means, this separation allows us to select among the pre-compiled packages made with provided defaults and an ability to modify the software during compilation process by building it at our end. FreeBSD achieves the same through a system termed as “ports”.

Shell Differences

We all know that the default shell in Linux is usually the bash shell. Well, this is not the case with FreeBSD version where the default shell is the tcsh shell.

For tcsh, it an ungraded and improved version of the csh shell which is the C shell environment for the BSD platform. Though both shells acts in same way (well, almost) but the tcsh shell is highly NOT recommended for scripting purposes. Using the bash shell is much more reliable and it avoids many drawbacks with the tcsh shell scripting.

Filesystem Differences

As the FreeBSD distinguishes the base OS and components, it starts presenting consequences in the file hierarchy of the platform.

As know for Linux that executable files are present in the directories:

  • /bin
  • /sbin
  • /usr/bin
  • /usr/sbin

The location differs on the basis of functionality the executable provides. FreeBSD has more thorough difference recognition in this case and also forces another rule for separating them on the basis of base system and installation through ports.

Any software installed through ports are placed in:

  • /usr/local/bin
  • /usr/local/sbin directories

Conclusion

As we have seen, FreeBSD and Linux platforms share many similarities and differences but still, in the beginning, FreeBSD can be very familiar to a Linux user.

About the author

Shubham Aggarwal

Shubham Aggarwal

I’m a Java EE Engineer with about 4 years of experience in building quality products. I have excellent problem-solving skills in Spring Boot, Hibernate ORM, AWS, Git, Python and I am an emerging Data Scientist.