Subject: Re: removing packages
To: Kevin P. Neal <kpneal@pobox.com>
From: Lord Isildur <mrfusion@guildvax.guild.net>
List: port-alpha
Date: 11/27/2000 04:22:57
On Sun, 26 Nov 2000, Kevin P. Neal wrote:
> > Berkeley UNIX. It's NOT linux. It's NOT sysV. It's BSD.
>
> Has anybody ever written up a comprehensive definition of what the
> meaning of "BSD" is? I mean, from time to time someone wants something and
> someone else uses a counterargument of "but that isn't BSD!". What is
> BSD then?
Well, one could make the circular definition that 'this is BSD', 'what is
BSD?', 'BSD is this' , and point to something that (of course) is BSD.
Of course, the truly BSD systems are those that CSRG distributed. NetBSD,
(and the other *BSD's these days) are continuations of the development of
the 'real' Berkeley Standard Distribution after CSRG closed its doors.
BSD was certainly characterized by the fact that it was largely the
creation of the hacking community, largely created _for_ that community.
Much of CSRG's early and most important work on BSD UNIX was actually
ARPA-funded research, done under contract to the DoD (4.1 and 4.2BSD fall
into this category) and later releases were ongoing improvements to the
older versions. After 1990, BSD started to feel some bloat, and the focus
shifted. POSIX was a standard that got a lot of support from the
'business' community (still it was more respectable and informed than the
completely marketroid-driven farce we have these days that calls itself
the 'it' industry or whatever the popular name for it is at the moment)
and CSRG felt compelled to make BSD posix compliant. This happened in
4.3Reno which was pretty much the 4.4BSD beta version. (this is why Reno
automatically is about 50-80% bigger than Tahoe!) 4.4BSD was the last
BSD. It had incorporated many changes under the hood, some of them good,
some of them not, but nonetheless, BSD was still the king of the hill in
terms of superior UNIX. Until 1994, the major commercial unices were also
BSD-based (well, SunOS and Ultrix primarily. hpux, aix, and all the
motorola-based half-brain-dead sysV ports to interesting late 80s minis
notwithstanding). BSD is still very distinct in terms of the
organization, the feel of the system to a user or sysadmin, the location of
various things, the way the convention for configuration and setup is,
device names, device conventions, device driver conventions, the
scheduler, signal handling, terminal handling, the io system, and the VM
system are done, even various commands which have BSD-style arguments and
so on, a 'real' vi editor, BSD still uses the c shell by default, as per old
Berkeley tradition (if there is a single piece of software out of UCB
that i can't stand, its the C shell! :-) , and the general flavor and
demeanor of the system is still much more open and less stodgy and
restrictive and anal than sytem V , which is about as anal as it gets.
Linux these days has a much closer resemblance to sysV than bsd. (well,
it always has). what makes BSD feel like BSD?
well, from the first look one would ever get, one can tell there's
something different. Most UNI*Xen these days when one goes to install
them come in some complicated nightmare of installation programs and
media and setup stuff. BSD is extremely simple. The entire distribution
is eight tarballs. The installation process does not depend on any
particular kind of installer 'application' or anything like that. One
labels a disk, creates filesystems, and unrolls the tarballs into them,
and that's all there is to it. The BSD is a compact, fully featured,
unified distribution of software. Unlike the other UN*X knock offs (linux
mainly) and the sysV systems (solaris and pals), who do not have (well,
solaris sort of does, but it's needlessly complicated) a unified
distribution in this style, BSD does not have to worry about the usual
nightmare of version and devendency incompatibilities and problems and
mismatches and so on that arises out of an unstructured 'distribution'.
Linux 'distributions' are not coherent things; they are accumulations of
a bunch of stuff that the various distro maintainers thought were nice to
have, rammed into an (at first glance) organized system, and then it's
luck of the draw if the parts work together. One thing that characterises
BSD systems is also the unified source tree. Inside the vendor houses,
the commercial unices usually have somethign similar, but a customer
never gets to see it, and in the linux world, it simply does not exist.
One reason that BSD never needed any more complex and convoluted way to
try to manage and maintain the installation is because the whole system,
every single file in it, was generatable from the source tree. If you
will, the extremely flexible package system one finds in BSD is made up
of all the makefiles in the source tree. One can modify a single command
(and since the source tree has been under version control since at least
the early 80s, one can literally have any version of that file one
wishes, spanning close to two decades) and rebuild and install it,
totally insulated from the rest of the system. One knows exactly what is
associated with hwat and what files were changed in the live system from
it, just read the makefile. It is modular , extensible, and the
miantenance can be divided and distributed among numerous developers for
sanity, yet the distribution can stillbe centrally maintained and updates
checked against the master tree. This is one of the huge advantages of
BSD. No other system has this. You don't have to install the sources to
have a berkeley system running, but it is a wonderful thing to have and
it affords a luxury that no other UNIX gives you!
>
> > anythign changed. What's so bad about having a simple rc script that
> > runs, and maybe runs rc.local for some local-specific stuff? how was that
> > too complicated? Now, certainly, if things are fragemnted into a million
> > pieces, then maybe it's easier to be modified by some dumb system
> > administration -tool- but i do NOT advocate dumbing BSD down to appeal to
>
> What's your opinion of the package system, both as a concept and the
> NetBSD implementation of same?
Read the above. I think the ultimate package system is the unified source
tree, and the package management done through the makefiles in it. We
have had this since day one, and i think if anything, the other unices
and the linux people should be trying to emulate the BSD way of doing
this, instead of us trying to packagize things. Stuff that is not part of
the standard distribution, which is to say the stuff thatone finds in the
NetBSD packages and then out at random in the world, that stuff is to a
varying degree integratable into some kind of 'contrib' or 'local' branch
of the source tree. Many sites maintain such a thing. I find it
advantageous. I really do not see how anyone, especially those of us here
who use BSD, could see some package system as being better than the
source tree model.
To the argument of 'but then yu have to store all those sources', i say
this: In a day and age when you can't even buy a disk smaller than
several gigabytes, when people use word processors which are bigger than
the entire NetBSD distribution, it is an extremely cheap price to pay for
the advantages you gain, to store the sources on your system.
For systems that need to be super small, that's what we have the base
distro for- the base tarball is really all you need (well, plus etc and a
kernel) and that's quite small compared to the 'base' dists of other
systems.
I must conclude this by saying again, that BSD is a mature system,
evolved over a very long time, designed by some of the most brilliant
minds the field has ever had, very well-thought out, and those who
hacked on BSD have encountered and solved (and improved the solutions to
from time to time) problems long ago that the linux people are just
coming to grips with now, and the BSD people were, with all due respects
to the folks who work hardon linux, much much better at it. Thanks to the
great minds and planning of those who designed and built BSD originally
at CSRG and the hard work of very skilled hackers who have maintained and
expanded BSD in the years since CSRG shut down, we have the best UNIX in
existence. Keep that in mind when the pressure to be like the rest gets
heavy!
happy hacking,
isildur