Hacker News new | ask | show | jobs
by _qc3o 3632 days ago
I read the article. The distinction is indeed arbitrary. How much do you need for a base system really? Do you need more than the kernel, network drivers, and the filesystem? Last time I checked FreeBSD came with way more than those things. So someone, somewhere decided to include a whole bunch of other things as part of the base whereas they could just as easily be addon packages. I think FreeBSD includes various compilers and perl by default. Why's that? How is a compiler an essential part of a system? There are no apriori reasons to make certain "addons" part of the base system and others not. Linux does not draw this distinction and reaps the benefits of a more coherent system.

The equivalent of "base system" in linux land is called a distribution and rightfully so. There is nothing basic about a distribution. It is an arbitrary set of choices made by the distribution maintainers and it is sold/advertised as such.

1 comments

I think the easier way to think about the base system is to look at Mac OS X. Stuff in the /usr are installed along with the Mac OS X system, and when people need other packages (or think some packages that shipped as part of the system is too old), they use their favorite package manager to install it to /usr/local or somewhere outside /usr. This is also the case with FreeBSD base system. The package manager do not manage packages that are installed as a part of the system, only the one installed by the user.

As far as the compiler goes, in my 10.3-RELEASE-p5, I can only see clang 3.4.1. No Python, no Perl, no even Bash. If I happen to need clang 3.8, I can just `pkg install clang38` and it will happily live inside /usr/local separate from the one in /usr/bin (that is probably presented for building the world). This one will be managed by pkg, but the one in /usr/bin will be updated when I upgrade to 11.0-RELEASE (which will ship with 3.8).

Thinking in Linux's terms, is probably like installing Debian stable only the minimum, and use pkgsrc to install the rest of the system to /opt.