[Ilugc] Special tutorial session on FreeBSD

  • From: girishvenkatachalam@xxxxxxxxx (Girish Venkatachalam)
  • Date: Sun Aug 27 02:10:23 2006

On 8/26/06, Binand Sethumadhavan <binand@xxxxxxxxx> wrote:

I don't understand what you are trying to say. What is different in
FreeBSD's integration of libc, shell, X Windows etc. when compared to
say, Fedora Core's? As far as the sphagetti is concerned, do you know
that FreeBSD and Linux distros share quite a lot of code? GNU Bash,
X.Org etc. are all common to both FreeBSD and Fedora Core. Why does
one becomes sphagetti and the other, tightly integrated?

First of all I am very glad that there is a healthy difference of
opinion. Let me try to do my best to clear things up. But please
remember that neither Jordan K Hubbard nor Theo de Raadt is paying me
for this. :-)

And regrettably my knowledge of the kernels of these OSes is not as
good as I wished. If that were true then you could have given more
credence to what I am saying.  As such my replies are only based on
"impressions" and not real technical knowledge. That said, I will do
my best to give an unbiased view.

I probably used too strong a word "sphagetti" though I don't regret it
now since it is definitely close to reality. :-)

No, you are mistaken. *BSD OSes do not rely on GNU tools. They do use
GNU tools, yes; but they don't rely on them. BSD has its own libc(very
different from glic), its own make, its own compiler though these days
nobody uses anything other than gcc.

And BSD has true UNIX roots. Games like fortune and tetris existed on
BSD long ago. csh is the default shell on BSD systems. csh is a really
horrible shell, so it is nothing to be proud of.

And tools like tar,cp, ls etc.. all have a BSD version and a GNU
version. Since GNU version is recent, they are usually much better
than the rusty old UNIX versions. But  then it has also lead to a
certain feature bloat and code expansion.

BSD tar doesnt have a -j option, so it is irritating. But then BSD
also gives you GNU tools with a  g prefix. gtar is the GNU tar and so
on.



IOW, when I say FreeBSD 6.0, everybody understands what
I mean precisely. To a reasonable level of accuracy the versions
of software I run will be identical.

Whereas when I say I run linux, there are 100s or possibilities.

You are comparing apples and oranges. If you are talking of FreeBSD
6.0, then you should talk of Fedore Core 5 or RHEL 4 or Opensuse 10.
If on the other hand, you want to talk of Linux, then talk of the
BSD's in general - not just FreeBSD.

Ok. This is not my opinion. This was actually told by Jordan K Hubbard
in an interview. I think the biggest weakpoint of linux is its too
much hype and popularity and lack of focus. Different distros have
different things as focus and there is no common regulatory authority.
It has almost become like different OSes. This is not a good thing.

This is what has brought about interoperability problems and market
fragmentation.

Somewhat subjective why I say it is not a good thing since different
choices for the end user is good but then energy is scattered away in
multiple directions instead of collected in one and focused.

So the tendency of bugs and integration issues increase greatly since
developers don't know who to submit a patch to when they fix a bug.


Even say , something like udev and hotplug which is kernel
related stuff, Debian does it differently from Ubuntu which does
it differently from Gentoo which again is different from RedHat
and so on.

And it happens identical in the BSD world - FreeBSD does it in one
way, OpenBSD in another, NetBSD in a third way and so on.

Hmm, they are completely different OSes. Other than the common parts
in the kernel I spoke about above and some parts of userland, they are
all quite different.

Some of the shell commands and man pages are very similar though. I
find a lot of similarity bet NetBSD and OpenBSD.


I have run into situations when I compile a simple helloworld program
in C which does not run on a different RedHat release
on the same arch.

Anecdotal evidence notwithstanding, I'm curious to hear which two
releases of Redhat you are talking about here. There have been
situations when this might have happened (when they moved from libc to
glibc, or from a.out to ELF), I find it hard to believe that a "simple
helloworld program" could have caused such grief in any recent
Redhat/Fedora versions.

Well, ask this on a mailing list and they will tell you why this
happens. Though I am not technically competent to comment on this. All
I can say
is that lack of cleanliness in linux design hurts us sooner or later. This
is only one instance in which linux falls on the face. There are
numerous other but then FreeBSD also has several stupid bugs, so I
think we are not comparing apples and apples here.

In general FreeBSD has sufferred in recent times due to the pressure
to compete with linux and hence, it has lost some of its old charm
,but then
I hope things get better. One of the reasons I have decided to dump
FreeBSD and go in for Net or Open for my products...

Btw, one of the main advantages BSDs have is in their performance and
compatibility on any old hardware. You will be quite surprised to know
that the machine from which I am typing this mail is only 350 MHz and
I can do whatever I want with it. Even watch full screen video with
mplayer.

Redhat cannot install , but Debian certainly would.:-)


It runs. Why? Bcoz FreeBSD has a linux emulation layer that
dynamically detects the ELF header and invokes the appropriate
emulation subsystem...

It works so well that I can run the closed source  skype which
was built for linux perfectly under FreeBSD.

So? Does this prove anything?

Yes, it does of course. I wonder why you don't see that cleanliness
and simplicity of design has achieved something seemingly impossible.

I think this is fantastic; I feel it instinctively though I am not
able to substantiate it with reason. I think if you think for a while
you will get what I mean...

If these reasons don't convince u to try FreeBSD then I don't know
what will. :-)

On my desktop, I still prefer Windows XP Pro. On my servers, Redhat Linux.

Well, Binand, normally ppl prefer to run *BSD on mail servers,
routers, firewalls etc. and run linux or Windoze on their desktops.

But I use OpenBSD on my desktop and I find it eminently usable and
blazingly fast.

It is purely personal choice buddy. Nobody on earth dare comment on
what any of us choose.:-)

Anyway I am not too happy with this treatment and I do certainly
regret the fact that I don't have inside information; I mean kernel
hacking experience and general anecdotal evidence to support my
claims.

I think it is pertinent to mention that ssh came from OpenBSD, that tc
QoS came from AltQ, that devfs was adapted from BSD, that epoll was
adapted from kqueue and so on.

Even when linux copies from the BSD pioneers, linux often gets it
somewhat inelegant and counterintuitive.

Having said all this, nobody can gainsay the fact that linux enjoys
the sort of popularity, mindshare and focus like no other OS. And it
has several cutting edge features and drivers for nearly every single
hardware on earth.

Let me stop here. :-)

regards,
Girish

Other related posts: