Following is the first part of a new series of articles where I’ll be comparing Gentoo-Linux, Arch-Linux and FreeBSD.
Comparing Gentoo and Arch is an old request by a long time iWillFolo reader, I’m honoured to finally engage in it.
In the past we had close to a similar comparison when we compared Gentoo to FreeBSD. However, that comparison was mostly focused on general and technical aspects and was far from being exhaustive.
Since all three herein OSs are having Unix characteristics and mostly adhere to its philosophy, it may be a bit difficult to determine what is an integral part of a certain OS and what isn’t – due to the Unix principle of modularity.
So, in order to avoid getting lost in a complex of different combinations, I shall only consider the defaults and the parts which usually associated with a certain OS, such as OpenRC for Gentoo, as representing the OS itself.
In addition to that, from a practical point of view, it may be unfair to regard none defaults as representatives, for it’s a commonly known convention that they usually integrates / operates not as good as default ones.
One thing we should note about programming languages is that, as a rule of thumb, the lower the level* a programming language is, the faster and lighter its performance.
Conversely, development which uses a low-level language may also take longer time / more workforce in order to produce an average program.
In the following images, I’ve included some of the essential yet also distinct parts of each OS in order to provide an overview of what they’re made of:
- The above data was taken out of Github pages, using the automatic Github code segmenting feature, thus it may not be a 100% accurate representation of real life data, but should mostly be viewed as a general reference.
- FreeBSD is missing the init section since I’ve found no Github (or any other) page dedicated specifically to it. That said, BSD init is mostly running shell scripts found under /etc/rc.d.
- Another point about FreeBSD is that unlike Linux, FreeBSD is not just a kernel but an entire base system, i.e. it includes a few more tools that provide basic functionalities through which you can start working right away.
- Desktop environments couldn’t be easily quantified into the above images as they consist of many small programs which together form the complete DE. That said, suffice it to say that GNOME is mostly written in C while KDE in C++.
What Can Be Deduced?
Arch is having the highest percentage of C code utilized in its default set, even the more so if you count GNOME as its default DE. A fact that might be linked to why many Arch users tend to brag about the speed of their systems.
Both Gentoo and FreeBSD are making use of higher level programming languages by default, Python in Gentoo’s Portage and Shell in FreeBSD’s init, which may help increase development speed and make it more accessible to a higher number of developers.
With the above being said, programming languages may have an important role in shaping an operating system key features and performance yet it’s not the only factor that determines it.
In the next chapters of this series we will compare and discuss other essential aspects as well, so stay tuned.
* “languages are said to be high level or low level according to how closely they can be said to resemble machine code” Levels of Programming Languages