germanopratin said:
There's a famous comparision on the web of the differences between BSD and Linux:
http://www.over-yonder.net/~fullermd/rants/bsd4linux/09
Apparently not famous enough since this is the first time I read it
From what I can tell all his points are still valid. Maybe apart from popularity; although he is right that Windows is a well known and popular operating system it's also safe to say that this popularity took quite the dive with Windows 8.
germanopratin said:
I wonder if the differences pointed out in the article are still valid. Especially if it is harder to master a BSD system than a linux system. To me FreeBSD has a far steeper learning curve than say Slackware Linux. But maybe that's not due to inherent complexities but due to the fact that I already know Linux a bit and thus forgot about my learning experience.
Well, I tend to agree with you.
When looking at your average Linux distribution you'll notice that it provides a lot more "hand holding" in comparison to FreeBSD. Take for example software installation on Debian; it uses the APT package manager to handle the setup. The main tool for installing / removing packages is
dpkg. But in order to make it a little easier on the end user they provided a front end for it called
apt-get. That can be used to easily retrieve and install, update or delete your packages.
And because
apt-get could be a bit tricky they also started with a front-end for that program, the original being
dselect (which is what I'm still using myself whenever I find myself on Debian Linux). But this was no good according to some people;
dselect was old and rusty (even though it still got the job done quite well). As such
aptitude was born, another front-end for the
apt-get program which in its turn is somewhat of a front-end for
dpkg.
As such one can argue that you got a lot more choice when it comes to package maintenance.
On FreeBSD we basically have
portmaster and
portupgrade, where the first is the one most commonly used. So if you really want to have some efficiency in maintaining your ports then your best bet is to become familiar with
portmaster.
And when looking at packages; on Debian you could issue
# apt-get upgrade
and be done with it, on FreeBSD it is quite important that you keep track of
/usr/ports/UPDATING too.
germanopratin said:
So, my question is: Is FreeBSD still more elitist than Linux? Even when compared to Debian, Gentoo, Arch, Slackware. And do you have to learn MORE in order to master BSD than Linux? Or put this way: For a user who is completely new to UNIX, would it be harder for him to learn Linux or FreeBSD?
First of all I don't think FreeBSD has ever been more elitist. In my opinion it's quite the other way around, to some extend all those different Linux distributions end up in one huge "turf war".
Which brings me to my answer; I think it's much harder to learn Linux. Because the problem is you don't really learn 'Linux' any more these days, you'll learn how to use a specific distribution. And unfortunately many distributions do not quite hold the general Unix approach in mind.
It gets worse; many distributions will also easily change the way a program works or behaves to "fit in" with the distribution it's used on. So configuring something like Dovecot can be a completely different experience on Debian than it is on CentOS. Heck; even installing it is different!
On CentOS I have
/etc/dovecot.conf, part of
dovecot.x86_64, which you can edit to configure the program. One package, one program.
On Debian I have
dovecot-common,
dovecot-pop3d and
dovecot-imapd. 3 packages while the original is one single program. The configuration here is quite similar;
/etc/dovecot/dovecot.conf.
I hope you can see where I'm getting at.. If you were to ask on a CentOS forum why you can't get IMAP working with Dovecot the first question would be something like "have you enabled it in your configuration?" whereas on Debian it would most likely be "have you installed dovecot-imapd?".
And there's a lot more than that. Configuring Apache on CentOS: Edit
/etc/httpd/conf/httpd.conf where you should also pay attention to the
/etc/httpd/conf.d/ directory. But all website entries go into this single file.
On Debian:
/etc/apache2/apache2.conf for the global configuration settings, and the
/etc/apache2/sites-available/ directory where you configure the websites on a per-website basis. Basically every config file will set up one specific website.
And to enable such a website you'll then need to create a symbolic link in
/etc/apache2/sites-enabled/, which is another directory.
So the same software on two different Linux distributions and still a completely different approach as to setting it all up. What's worse, in my opinion, is that it more than often goes straight against the official documentation. Take the
Apache documentation for example: "
Apache is configured by placing directives in plain text configuration files. The main configuration file is usually called httpd.conf.", which is most certainly not the situation on Debian.
Setting up Apache on FreeBSD on the other hand is done in the exact way the Apache project described it above; here I do have
/usr/local/etc/apache22/httpd.conf. As a result I can turn to the Apache documentation and follow it to the letter.
In the end FreeBSD is a lot more consistent I think. Looking for information? Use the
man command. Looking for information on Linux you'd better use both the
man and the
info commands (manual pages are old; so they devised another system which works in parallel, so now you have 2 sources to look through).
Which is why I think that although learning FreeBSD might be a little harder at first, once you have become familiar with it you'll also be able to use that expertise on other environments as well, including Linux.