27

(I've already noticed that this question was asked before but I think it has not been answered in a way I'd like to understand the topic.)

What are the conceptual and structural differences between a

  • Linux Kernel
  • BSD Kernel (let's say FreeBSD)

While at the end of the day they are both kernels - I would assume that there might be differences in structure, functionality and specialization. In which scenarios would one kind of kernel have an advantage over the other? (Web Server, Database, Computing, etc.)

Are there any joint efforts to concentrate forces for one common kernel or certain modules or would that be pointless anyway?

PS: Different license types or shipping/packaging/maintaining approaches are not of importance in this context. I'm really interested in understanding how they differ on structural, functional/feature level and specialization.

6
  • 1
    Are there any joint efforts to concentrate forces for one common kernel or certain modules or would that be pointless anyway? My first thought is what point could that possibly have...to create a third kernel "based entirely on a mix of linux and freeBSD"?
    – goldilocks
    Commented May 2, 2014 at 11:58
  • 1
    No, not at all, rather the other way round - establish a cooperation for parts that are the same for both. I think for certain drivers this is already the case if I'm not mistaken. Commented May 2, 2014 at 12:52
  • 2
    @binaryanomaly: different licenses are very much of importance to both sides. To an extent even that one could call it an ideology on either side of the aisle. For example GCC used to be a sore point in the BSDs and FreeBSD now switched to Clang as their default for this very reason: license issues. Commented May 2, 2014 at 13:06
  • 2
    @0xC0000022L: You're certainly right and I didn't want to say that licensing questions are not important - I just wanted it not to become the main focus in this particular discussion. Commented May 2, 2014 at 13:45
  • 1
    Really @goldilocks, you can't see the benefit of a third thing that's neither too linuxy, nor too BSDish, but just right? Commented Jul 2, 2015 at 18:32

2 Answers 2

26

1. What are the conceptual and structural differences between a Linux-Kernel and a BSD-kernel?

Regarding architecture and internal structures, there are of course differences on how things are done (ie: lvm vs geom, early and complex jail feature for FreeBSD, ...), but overall there are not that much differences between the two:

  • BSD* kernel and Linux kernel have both evolved from a purely monolithic approach to something hybrid/modular.

Still, there are fundamental differences in their approach and history:

  • BSD-kernel are using BSD licence and Linux-kernel is using GPL licences.
  • BSD-kernel are not stand-alone kernels but are developed as being part of a whole. Of course, this is merely a philosophical point of view and not a technical one, but this give system coherence.
  • BSD-kernel are developed with a more conservative point-of_view and more concern about staying consistent with their approach than having fancy features.
  • Linux-kernel are more about drivers, features, ... (the more the better).

As greatly stated somewhere else:

It is Intelligent Design and Order (BSD*) versus Natural Selection and Chaos (GNU/Linux).

2. In which scenarios would one kind of kernel have an advantage over the other?

About their overall structure and concept, while comparing an almost vanilla Linux-kernel and a FreeBSD-kernel, they are more or less of the same general usage level, that is with no particular specialization (not real-time, not highly paralleled, not game oriented, not embedded, ...).

Of course there are a few differences here and there, such as native ZFS support or the geom architecture for FreeBSD versus the many drivers or various file-systems for Linux. But nothing some general software such as web servers or databases would really use to make a real difference. Comparisons in these cases would most likely end in some tuning battle between the two, nothing major.

But, some would argue that OpenBSD has a deep and consistent approach to security, while hardened Linux distributions are "just" modified versions of the vanilla Linux-kernel. This might be true for such heavily specialized system, as would Steam-OS be the number one to play games.

3. Are there any joint efforts to concentrate forces for one common kernel or certain modules?

There is no joint effort to concentrate forces for one common kernel, as there are major licences, philosophical or approach issues.

If some real common efforts exist such as OpenZFS, most of the time it is more about drivers and concepts taken or inspired from one another.

1
  • Glib generalizations about the BSDs are usually wrong. Note here, for example, that DragonFly BSD exists because being conservative is not a generalization that one can apply to the BSD world.
    – JdeBP
    Commented Mar 28, 2017 at 7:46
6

Partial answer addressing a few of the points

The many options is often perceived as a bad thing when on the outside looking into open source development but think of it as in nature, there are many species (often) of a type of animal, say penguins. There are 17. Each is specialized to a particular set of requirements, so too with open source projects (typically). Natural selection will take care of weeding out the open source that's less apt over time.

Are there any joint efforts to concentrate forces for one common kernel or certain modules or would that be pointless anyway?

Would be kind of pointless, it's a duplication of effort at times but people that work on these components are not doing it in a vacuum either. They'll look around at what other are doing and if there is an approach or algorithm they're incorporate it when it makes sense to do so.

I cannot talk to the structure differences regarding your other bullets but thought I'd at least address 2 of them.

3
  • You certainly have a point there with specialization. On the other hand I would also bet that the DNA of the penguins is to a very high percentage exactly the same (as for apes and humans) and it only differs in tiny areas. Nature is pretty good at avoiding redundant efforts but differentiate only when and where it's needed. Billions of natural iterations (reproduction) decide then (selection) which of the patterns is best adapted to the given environmental conditions. (It's getting philosophical ;) Commented May 2, 2014 at 13:43
  • @binaryanomaly - that's the trouble with analogies 8-). I probably wouldn't take it to that level since the correlation of programming languages/code is trickier to correlate to DNA.
    – slm
    Commented May 2, 2014 at 14:02
  • Nice answer and a good comparison by using penguins. To often we forget that duplication of effort is not always bad and that a fork of a project isn't always the end. It is really more an evolutionary process, that needs to happen and might create new ideas or fail miserably. Commented Sep 28, 2015 at 9:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .