Mailing List Archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tlug] BSD and Linux (was:Linux and Windows {2k|Xp|Vista} Comparison)



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sat, Oct 21, 2006 at 04:17:04PM +0900, stephen@example.com wrote:
> Scott Robbins writes:
> 
>  > You are correct, however, my point was that something like ssh is part
>  > of a base BSD system, whereas in Linux, the kernel is worked on by Linux
>  > and company while ssh will be added by the distribution's developers.  
> 
> Ehem ... what do you consider to be a "base Linux system"?  (I'm
> teasing, of course, but doesn't that question shed some light on the
> issue?)

In this case, I'm using the term "base Linux system" to mean only the
kernel, developed by the kernel people.  Then, each distribution
puts its own version of base tools on it.  (Or in the case of 
kitchen sink distros, more than the base tools.)  

Practically speaking, I'll certainly concede that is a misleading
definition, as even the minimalist distros include various tools,
including, for example, a shell.  (I should thank you for forcing me to
write more clearly though.)



> 
>  > In both cases, it's actually a 3rd party program (well, in ssh's case,
>  > save for OpenBSD) :) but in the BSDs the kernel people and the people
>  > porting ssh are all in the same organization.
> 
> This just is saying that the development organization and the distro
> are the same people.  But that's true of Linux to a great degree (at
> least, Uli Drepper was quite firm that Red Hat's glibc was the best
> there was :-).  Despite some detractors of commercial distros, Linux
> hasn't splintered nearly as much as 386BSD did, but on the other hand
> the BSDs have grown back together over the years where cooperation is
> profitable.

That's interesting.  From my more BSD-centric perspective the opposite
seems true.  Linux seems more fragmented to me. 

(By BSD-centric, I mean that I follow some of the BSD lists, 
frequent forums, etc.  I'm primarily a FreeBSD user, though I've 
dabbled in some of the others, so I see some of the politics, 
though I don't follow them closely.  Therefore, for me to say, "Linux
seems splintered," is certainly more of a casual observation than an
informed opinion.) 



> 
>  > This integration is often listed as an advantage by BSD advocates.
> 
> Not to mention commercial Linux distros. :-)

I'm sure.  See above, I don't have an informed opinion on that. 
> 
>  > When I said to an administrator, it's not necessarily a good thing,
>  > I was referring to the fact that sometimes, an essential security
>  > patch means rebuilding the whole system, including the kernel,
>  > whereas in Linux, one would only have to rebuild the program and
>  > perhaps others that had it as a dependency.
> 
> Huh?  That's certainly not true for NetBSD; you can do a make; make
> install anywhere in the tree if you know what you're doing.  And the
> cascades of rebuilds that are typically induced by any change to a
> GNOME component are pretty Byzantine, whatever OS you use, assuming
> that they succeed at all (which they cannot be counted on to do unless
> you're using the same OS and same toolchain as the GNOME developers).

In Free, at least, it depends.  If one views the various security
advisories, you'll find that probably more than half can be fixed with a
simple patch of a file, than in that file's directory do a make obj &&
make depend && make && make install, taking a minute or two.  On the
other hand, there will be other updates that involve the entire
rebuilding of world.  

There are also other updates where one simply has to patch the kernel,
then rebuild the kernel (about 10-20 minutes on a fast machine).   

However, this is only (obviously) tested on a GENERIC kernel. (The caps
in this case refer to how FreeBSD names kernels--it's all upper case.)
Therefore, sometimes a custom kernel will fail to build after one of
these patches.  

In that case, one has to rebuild the entire world before rebuilding the
kernel.  After doing that, the patched kernel has always successfully
built for me. 

I don't know enough about programming and libraries to intelligently
tell you why this is.  So, I say, vaguely, "Well, it's because userland
and the kernel are tightly integrated."    I would guess that this is
probably the case in most Linux distros as well, where a patch to one
part of the kernel might require rebuilding some libraries.  From what
you say below, Gentoo might be like this, but frankly, I'm out of my
depth in this paragraph.  :)  (Or anything requiring more than 
superficial knowledge of internals.)


>  > I would have thought that to be the case with most Linux distributions
>  > as well, that you would only have to update the program, its
>  > dependencies and those programs which use it.  With a port, of course,
>  > this is also the case.  (On the other hand, if there is a major
>  > revision, you usually have to rebuild all your ports as well.)  
> 
> If you do this as a top-level make, yes.  But surely in FreeBSD you
> can cd to where you need to be and do only that build.  Right?  That's
> your risk, of course.


See above.  The answer is often, though not always, yes.  (Of course,
the recent Gnome upgrade, which has nothing to do with either kernel or
a very basic system, was a pain for the BSD folks as well.  On one
system of mine, even without using Gnome, it required rebuilding 70
something ports, including openoffice, which can be a six or eight
hour compile, even on a fast machine.)
> 

> The downside for Linux is programs that just stop working on an
> upgrade, because the dependencies are too sparse.  This is the reverse
> side of the Gentoo coin---because Gentoo generally defaults to "hold
> the pickles, hold the lettuce", dependency cascades don't upset us.

This happens with FreeBSD as well.  Some upgrades break other things.
In practice, these are ~usually~ quickly fixed.   (Perhaps because of
that integration?)  :)  


> 

> 
>  > Even programs like ssh and sendmail, part of the base system, are also
>  > available as 3rd party ports.  My original point, which was not phrased
>  > clearly (obviously)  :) was that this particular difference might sound
>  > more important in theory than in practice. 
> 
> IMHO it is more important in practice, the theory's basically the same
> (except that BSDs tend to emphasize source rather than binary distros,
> with FreeBSD somewhat less emphatic for userland).  But BSDs depend on
> the blunderbuss makedepend tool for source dependencies ("change
> comment did we in <string.h>? must you everything rebuild that uses
> strncat!") and human expertise of the admins to make exceptions, while
> Linux tends to reify that expertise in dependency databases.  That
> makes Linux very accessible to newbies, at fairly low cost in
> reliability (but it's a PITA to "those of us who do [know everything]"
> cf. my remarks about "USE=emacs" :-).

In FreeBSD, one can edit Makefiles and many of the Makefiles have
options which ~sometimes~ allow you to avoid that.  (Which is exactly
what you're saying, rely on the expertise of the admins.)


> 
>  > 
>  > I guess I'm thinking primarily of bash and gcc (gcc is of course, used
>  > by the BSDs as well, and included in the base install if you choose
>  > developer version.)
> 
> The point is valid.  (More central than either is glibc.)  There is a
> GNU system, and the GNU Project has made a huge contribution.  That
> deserves recognition.  Linus himself insists that without gcc there
> would never have been a Linux kernel.
> 
> But the business of trying to control nomenclature is propaganda at
> best, and in RMS's case somewhat hypocritical given his tirades about
> terms like "intellectual property" and (copyright) "piracy"[1].

It's not a black and white question of course.  Still, I keep thinking
of Lignux and snickering at odd moments of the day.  :)

Thank you for a most fascinating discussion, and also for forcing me to
write more clearly (or attempt to write more clearly) than I usually do. 

Like many BSD users without much knowledge of internals I tend to glibly
(as opposed to glibcly---sorry, couldn't resist) say, "Well, the
userland and kernel are more tightly integrated" without really
considering what I'm saying. 


- -- 

Scott Robbins

PGP keyID EB3467D6
( 1B48 077D 66F6 9DB0 FDC2 A409 FA54 EB34 67D6 )
gpg --keyserver pgp.mit.edu --recv-keys EB3467D6

Willow: On the other hand, maybe Rodney just stepped out
for a smoke.
Xander: For twenty-one hours?
Willow: It's addictive, you know.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (FreeBSD)

iD8DBQFFOhYo+lTVdes0Z9YRAiMyAKCzaNyo2tfvkFrJZ1Sc6PqtH8K5xACgi/FO
JqnJSirdDyBdr7xHTY6UIsY=
=KMM9
-----END PGP SIGNATURE-----


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links