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