|
The Daemon, the GNU and the Penguin - Ch. 16, by Dr. Peter Salus |
 |
Thursday, July 28 2005 @ 09:30 AM EDT
|
Here's the next installment in Peter Salus' ongoing book, The Daemon, the GNU and the Penguin, "The Hurd and BSDI" -- Chapter 16.
Here are the earlier chapters of Dr. Salus' book: *************************************
The Daemon, the GNU and the Penguin
~ by Dr. Peter H. Salus
Chapter 16. The Hurd and BSDI
The Hurd
Richard Stallman had long wanted a GNU replacement for the
UNIX kernel. A first pass, Trix, barely got going in the
late 1980s. This changed, however, when Thomas Bushnell
came to Boston and joined the GNU effort.
Thomas was born in Albuquerque, NM. He attended Carnegie-Mellon
University for a year (1985-86), the University of New Mexico
for nearly two years, worked, enrolled at the University of
Massachusetts Boston, and received a B.A. summa cum laude
in 1999 in philosophy and classics. Thomas is a brother in the
Brotherhood of St. Gregory, an Episcopal order. He received his
M.A. in Philosophy from the University of California, Irvine, in
2003 and is currently a Ph.D. candidate there.
Thomas worked as an Assistant Systems Administrator at UNM from 1986-89
and for the FSF from 1990-1998. He told me:
I wrote a BASIC interpreter as a demonstration that I could
code before I was hired. My interpreter had a
feature that would let you dynamically load math functions out of
the C library -- before shared libraries existed.
I worked on GNU tar as well, before my main work was the Hurd.
The GNU Hurd is the GNU project's replacement for the UNIX kernel. The
Hurd is a collection of servers that run on the Mach microkernel to
implement file systems, network protocols, file access control, and
other features that are implemented by the UNIX kernel or similar
kernels (such as Linux). Thomas told me:
RMS was a very strong believer -- wrongly, I think -- in a very
greedy-algorithm approach to code reuse issues. My first choice was
to take the BSD 4.4-Lite release and make a kernel. I knew the code,
I knew how to do it. It is now perfectly obvious to me that this
would have succeeded splendidly and the world would be a very
different place today.
RMS wanted to work together with people from Berkeley on such an
effort. Some of them were interested, but some seem to have been
deliberately dragging their feet: and the reason now seems to be that
they had the goal of spinning off BSDI. A GNU based on 4.4-Lite would
undercut BSDI.
So RMS said to himself, "Mach is a working kernel, 4.4-Lite is only
partial, we will go with Mach." It was a decision
which I strongly opposed. But ultimately it was not my decision to
make, and I made the best go I could at working with Mach and doing
something new from that standpoint.
This was all way before Linux; we're talking 1991 or so.
Currently, the Hurd runs on IA32 machines. The Hurd should, and probably
will, be ported to other hardware architectures or other microkernels in
the future.
According to Thomas:
`Hurd' stands for `Hird of Unix-Replacing Daemons'. And, then,
`Hird' stands for `Hurd of Interfaces Representing Depth'. We have
here, to my knowledge, the first software to be named by a pair of
mutually recursive acronyms.
The FSF states: "The Hurd, together with the GNU Mach microkernel,
the GNU C Library and the other GNU and non-GNU programs in the
GNU system, provide a rather complete and usable operating system
today. It is not ready for production use, as there are still many
bugs and missing features. However, it should be a good base for
further development and non-critical application usage."
Unfortunately, the Hurd is late. By 1995, Linux had many users.
By 2000, it was a well-understood and popular system. By 2005,
Linux had millions of users and the support of IBM. It was
seen as a threat by Microsoft. The Hurd, unfortunately, is
still "not ready for production use."
BSDI
BSDI was the first company to offer a full version of BSD Unix
for the Intel platform.
Despite the fact that everything was in the public eye and
exposed at the USL vs. BSDI trial, there appears to be
confusion as to the history of BSDI.
I think Thomas was right, to a certain extent.
While several Berkeley developers were involved in the
formation of BSDI in 1990-91, none left the University of
California to join Berkeley Software Design, Inc. at
the outset. BSDI was founded by Rick Adams, who told me:
"It was my idea and my funding. I also handled the logistics
(via UUNET) and the little matter of the lawsuit."
Donn Seeley related:
The first organizational meeting occurred at a bar in Boulder
during the Boulder Berkeley Workshop in October 1990. I was
invited to the meeting without any advance warning and to my
surprise, I was offered a job. My recollection is that Rick, Mike,
Kirk, Keith, and Bill J[olitz] were present at the meeting. I believe
that a more formal meeting was held in early December 1990 at Kirk's
house [in Berkeley], where we voted to go ahead with the proposal. I
think this meeting was when we came up with the name BSDI.
We decided to work under UUNET's wing for a while so that we would
not alert any potential competition; that continued until the summer
of 1991. I was to start work as soon as possible; I took an extended
vacation from my job at the University of Utah, and set up shop in
my parents' basement in Bellingham, WA, with a PC provided by Rick,
running mt Xinu Mach/BSD (I think). (I don't remember exactly when
I gave notice at Utah, but I set things up so that my employment
terminated shortly before the Winter Usenix [21-25 January 1991; Dallas].)
I couldn't actually work directly
on the OS, since it still contained licensed code at that point.
The BSD distribution was still hung up on the issue of certain
possibly licensed files, so my job was to work on freely available
software. I started with the compiler toolchain (based on GCC 1).
Once it was clear that there would be missing files, I went ahead
and wrote a replacement for the Berkeley init(8) program. I'm not
sure whether Bill was working on BSDI-related stuff at this point,
but I'm pretty sure that he had started by the time of the 1991
Winter Usenix, where we all met again.
At that time Kirk McKusick was President of USENIX, Rick
was in Dallas to report on UUNET and recruit, Trent Hein was
chairing the session on File Systems, and Keith Bostic and
Mike Karels were part of the CSRG. It wasn't hard to call a
meeting.
Trent was a student at the University of Colorado, where he
was a co-author of both the UNIX and the Linux system
administration handbooks. He worked on the 4.4BSD port to
the MIPS architecture. More recently, he was co-founder of
Applied Trust Engineering. He said:
I can concretely say that the original engineering team "hired" by
BSDI (Spring, 1991) consisted of Donn Seeley, Bill Jolitz and myself.
Bill left BSDI later that year. Rob Kolstad joined the BSDI team much
later. [Kolstad was Secretary of USENIX at that time.]
Mike Karels told me:
I'd say that the founders were Rick Adams, Keith Bostic, Kirk McKusick,
me, Bill Jolitz and Donn Seeley, in approximately that historical order.
This group was involved at the time of formation. Bill and Donn were the
first two full-time employees, and Trent started about the same time at
just less than full-time. They worked for UUNET temporarily until
the company started operations, which I think was about July 1991.
Bill left at the end of November '91, and Rob [Kolstad] started December
1. The proximity of the dates is not a coincidence. I started
February 1, 1992, at which time two Russians had also started, and
also Jeff Polk. My departure from Berkeley and position at BSDI were
announced at USENIX in January '92 [San Francisco], at which Bill made
a famous appearance.
I asked Rick to clarify and he affirmed:
The first employees were Donn Seeley and Bill Jolitz. Peter Collinson
signed on very early for European sales and Bob Kummerfeld for Australia.
We picked up Vadim Antonov and Igor Belchiskiy from USSR that fall (1991).
Rob Kolstad came on as president in December 1991.
Donn Seeley provided yet more detail.
Bill believed that he deserved a larger role
as systems architect, press contact and marketer. His coding
contributions mainly came before he started working for UUNET/BSDI,
by porting to PCs the drivers we'd written at Utah for HP 68k
systems, and writing the locore assembly source and related files.
As for Bill's departure, the straw that broke the camel's back was
an issue with Bill's unauthorized expenses for a trip to Europe,
if I recall correctly, but it was clear long before this point that
Bill was not happy. Rick was BSDI's original president, but he
was asked to separate UUNET from BSDI by UUNET's first big investors,
so he enlisted Rob to replace him.
[There is a long and complex tale concerning Jolitz' departure
and his appearance at the January 1992 USENIX meeting. I do not
think it relevant to this narrative. One view may be found here.]
Insofar as Keith Bostic was concerned, he said:
I joined much later than Mike and the founders,
though. I stayed at UC Berkeley for quite some time
after BSDI was founded.
Another person mentioned by Rick was Peter Collinson. In 1980-81,
Collinson (then at the University of Kent in Canterbury) was
offered a USENET feed by Teus Hagen at the CWI in Amsterdam. They
couldn't dial out, but the CWI would dial in, via a modem brought
into the UK by Martin Levy. In April 1982, he was instrumental
in the formation of EUnet.
"I think it was the Fall of 1993 that Rick asked me to sell things
in Europe," Collinson told me.
The earliest date on a file that I
have is September 1993. I think I was at a BSDI meeting at the Usenix
conference in San Francisco in January 1994 [January 21-24].
When did I leave? -- we were forced out by the sales department at
the end of 1995 -- we had the fax in September -- we settled and were
gone by Jananuary 1996.
We in Europe did OK -- but we were not that good at Sales -- and would
have had to think hard about Sales-led sales rather than Techy-led
sales very soon anyway.
In 2000, BSDI merged with Walnut Creek CDROM and then with Telenet
Systems. The next year, Wind River Systems purchased the software
business. Renaming itself iXsystems with plans to specialize in
hardware, the server business was acquired by Offmyserver in 2002.
I asked Collinson why he thought BSDI had failed.
BSDI didn't really fail. It allowed Linux to flourish unhindered
by lawsuits; but it was not really technically viable. BSDI
couldn't move quickly enough to keep up with the technical changes --
and Linux could because of the customer base which was a new generation
of UNIX hackers and lovers.
Dr. Salus is the author of "A Quarter Century of UNIX" and several other books, including "HPL: Little Languages and Tools", "Big Book of Ipv6 Addressing Rfcs", "Handbook of Programming Languages (HPL): Imperative Programming Languages", "Casting the Net: From ARPANET to INTERNET and Beyond", and "The Handbook of Programming Languages (HPL): Functional, Concurrent and Logic Programming Languages". There is an interview with him, audio and video,"codebytes: A History of UNIX and UNIX Licences" which was done in 2001 at a USENIX conference. Dr. Salus has served as Executive Director of the USENIX Association. This work is licensed under the Creative Commons
Attribution-NonCommercial-NoDerivs License. To view
a copy of this license, visit
http://creativecommons.org/licenses/by-nc-nd/2.0/
or send a letter to Creative Commons, 559 Nathan Abbott Way,
Stanford, California 94305, USA.
|
|
Authored by: meat straw on Thursday, July 28 2005 @ 09:45 AM EDT |
like this: <a href=http:// url goes here > link </a> [ Reply to This | # ]
|
- "I'm So Excited by Microsoft Vista. Not." - Authored by: meat straw on Thursday, July 28 2005 @ 10:01 AM EDT
- IBM Research Journal on Open Source Software - Authored by: cbc on Thursday, July 28 2005 @ 10:14 AM EDT
- OT Has MS admitted defeat? - Authored by: Anonymous on Thursday, July 28 2005 @ 01:01 PM EDT
- Now it's free as in beer - Authored by: Anonymous on Thursday, July 28 2005 @ 05:10 PM EDT
- Gotta love MS tactics - Authored by: lifewish on Thursday, July 28 2005 @ 06:57 PM EDT
- P2P, Congress - Authored by: Anonymous on Thursday, July 28 2005 @ 07:45 PM EDT
- SCO offers to buy back employee's stock - Authored by: Anonymous on Thursday, July 28 2005 @ 10:19 PM EDT
- Michael Lynn settles dispute with Cisco - Authored by: SpaceLifeForm on Thursday, July 28 2005 @ 10:58 PM EDT
- Superior Court Judge Steven Gonzalez stalls Google for MS - Authored by: SpaceLifeForm on Friday, July 29 2005 @ 12:15 AM EDT
- Petition against EU data retention legislation - Authored by: macrorodent on Friday, July 29 2005 @ 01:25 AM EDT
- Gaming the USPTO - Legal sweatshop - Authored by: SpaceLifeForm on Friday, July 29 2005 @ 01:31 PM EDT
|
Authored by: meat straw on Thursday, July 28 2005 @ 09:46 AM EDT |
If any. [ Reply to This | # ]
|
|
Authored by: meat straw on Thursday, July 28 2005 @ 09:55 AM EDT |
"BSDI didn't really fail. It allowed Linux to flourish unhindered by
lawsuits; but it was not really technically viable. BSDI couldn't move quickly
enough to keep up with the technical changes -- and Linux could because of the
customer base which was a new generation of UNIX hackers and lovers."
I have to say, I love FreeBSD - I need it in the work environment, but it's also
a pleasure to use at home (The ports system ROCKS!). On the down side, it has
become more apparent to me that Linux (Fedora distro, for example) seems to be
on top of much of today's hardware requirements as well as a few full-featured
user interfaces available right out of the box. [ Reply to This | # ]
|
|
Authored by: pogson on Thursday, July 28 2005 @ 10:33 AM EDT |
Wow! There are some suit-happy folks out there. I wonder what suits BSDI might
have had in mind?
---
http://www.skyweb.ca/~alicia/ , my homepage, an eclectic survey of topics:
berries, mushrooms, teaching in N. Canada, Linux, firearms and hunting...[ Reply to This | # ]
|
|
Authored by: Anonymous on Thursday, July 28 2005 @ 10:48 AM EDT |
init(8)?
What is it with widget[1] and thingummy_jig(49)? I've seen them usually in the
context of *n*x software modules or functions. They don't seem to be footnotes,
nor arrays, nor functions with a single numeric parameter, so ... version
numbers?
Can anyone enlighten a bewildered Groklurker?[ Reply to This | # ]
|
|
Authored by: red floyd on Thursday, July 28 2005 @ 11:47 AM EDT |
Bill Jolitz also wrote a year-long series in DDJ on the initial 386BSD effor.
---
I am not merely a "consumer" or a "taxpayer". I am a *CITIZEN* of the United
States of America.
[ Reply to This | # ]
|
|
Authored by: Anonymous on Thursday, July 28 2005 @ 12:55 PM EDT |
In my company (a small ISP), we ran BSDI servers from the day we started until
about 2 years ago, when we switched all our servers to linux. Having gone
through almost all of the versions of BSDI up to version 5, I think I can say
with some certainty what made the distro fail:
1. Lack of hardware support.
2. Lack of software support.
I went through two hardware upgrade cycles where I was forced to consult BSDI's
incomplete and confusing "supported hardware" list simply to be able
to buy equipment that was compatible. Most of the compatible hardware was one
or two generations behind. In some cases, I had to choose more expensive and
slower hardware simply to get something that would work. Certain very basic
drivers were either incomplete or inadequate for a long time (for example, IDE
support - BSDI really only liked SCSI). When the third upgrade cycle came
around, I decided to go with Linux - primarily because of its robust hardware
support.
Software support also slowly eroded from beneath BSDI. When I first started
using BSDI, there were available binary packages compiled for BSDI (and usually
Sun and IRIX and a few others). When I decided to stop using it, it was unusual
even to find source packages that could be configued to compile under it. Many
applications required source modification simply to compile with BSDI's
toolchain.
On the plus side, my BSDI installations were incredibly stable - to the point of
running for years at a time without crashing. For this reason alone, I kept
many systems running longer than I otherwise would have. Also, the official
patch system, while cumbersome to use, never had the same dependancy problems
that I run into with linux.
BSDI was a good system in its day. Once it got bought out (twice!), though, the
updates just weren't keeping up with the times.
[ Reply to This | # ]
|
- BSDI Failure - Authored by: stevem on Thursday, July 28 2005 @ 10:20 PM EDT
- BSDI Failure - Authored by: Anonymous on Sunday, July 31 2005 @ 02:58 AM EDT
|
Authored by: jbn on Thursday, July 28 2005 @ 12:59 PM EDT |
"Unfortunately, the Hurd is late. By 1995, Linux had many users.
By 2000, it was a well-understood and popular system. By 2005, Linux had
millions of users and the support of IBM. It was seen as a threat by Microsoft.
The Hurd, unfortunately, is still "not ready for production
use.""
The first sentence and the remaining sentences are
non-sequiturs. If you're going to say that the HURD is late, it reads as if you
have a schedule for HURD distribution in mind (one which you're not telling us).
That the Linux kernel (remember, Linux is not an operating system, it's a
kernel; alone, it does nothing useful for most people until it is used in
conjunction with many other programs) achieved this degree of popularity does
not mean anything here. Popularity levels of Linux doesn't impose an implicit
schedule on the development of the HURD. You're effectively conflating
popularity level and distribution schedule even though these are two different
things (and I'm completely unaware of a distribution schedule for the HURD). [ Reply to This | # ]
|
- What is "late"? - Authored by: wood gnome on Thursday, July 28 2005 @ 01:19 PM EDT
- What is "late"? - Authored by: Anonymous on Thursday, July 28 2005 @ 02:02 PM EDT
- Late as in the late Arthur Dent - Authored by: lifewish on Thursday, July 28 2005 @ 02:14 PM EDT
- What is "late"? - Authored by: pscottdv on Thursday, July 28 2005 @ 02:14 PM EDT
- What is "late"? - Authored by: troll on Thursday, July 28 2005 @ 02:21 PM EDT
- Late is... - Authored by: Anonymous on Thursday, July 28 2005 @ 02:46 PM EDT
- Late - as in 'late to the party' - Authored by: tangomike on Thursday, July 28 2005 @ 04:02 PM EDT
- True, but still made late by darwin - Authored by: Anonymous on Thursday, July 28 2005 @ 10:52 PM EDT
- Cathederal and Bazar - Authored by: Anonymous on Thursday, July 28 2005 @ 11:06 PM EDT
|
Authored by: Anonymous on Thursday, July 28 2005 @ 05:35 PM EDT |
They distinguish between programs (1, 6, or 8), C functions (2 or 3), file
formats (5), and regular English words. If you say you're going to
"write" something, you're not using a technical term, whereas
"write(1)" means to send a message to someone's terminal and
"write(2)" means to send a string to a file descriptor. The number
lets you use the terms unambiguously without a lot of extra verbiage. (As other
people have said, they refer to sections of the original manual.)
[ Reply to This | # ]
|
|
Authored by: Kevin on Thursday, July 28 2005 @ 10:41 PM EDT |
The mutually recursive acronyms are amusing, but even funnier
is the promise that RMS once made that when HURD 1.0 was
available, the announcement would have the subject line,
"Hallelujah! Unix replacement developed!"
---
73 de ke9tv/2, Kevin (P.S. My surname is not McBride!)[ Reply to This | # ]
|
|
Authored by: Anonymous on Thursday, July 28 2005 @ 10:42 PM EDT |
The old TOC had this at chap 16, and an excursus about GPL before it. I hope
they haven't been dropped?[ Reply to This | # ]
|
|
Authored by: Anonymous on Friday, July 29 2005 @ 08:36 AM EDT |
The reason Linux took off was that people were willing to contribute. The OS
was something a lot of people wanted to do and Linus got everything just right.
Why didn't Hurd and BSDI take off? BSDI was trying to make money so who wants
to contribute to that? I have a harder time understanding why Hurd didn't
prosper. I assume that most of the reason has to do with not attracting
contributors.
Linus was this unknown guy in Finland. He just put the first version of Linux
out there for people to play with. It was the right thing at the right time.
It seems to me that Linus didn't do anything that discouraged contributors.
Am I barking up the right tree?
[ Reply to This | # ]
|
|
Authored by: Anonymous on Friday, July 29 2005 @ 12:43 PM EDT |
Definitions of terms for the uninitiated: Kernels are the basis of
operating systems which carry out kernel space functions essential to running
user space applications. Two conflicting philosophical approaches to the kernel
are referred to as the microkernel and the monolithic kernal approach.
The former type of kernel, the microkernel design used by HURD, is a
very small kernel that does almost nothing of itself except what is absolutely
required in the kernal space, not even the file system is included in this
kernal which then calls upon modularised servers to provide most of the services
a traditional operating system provides. Microkernel experts claim that keeping
its services to a strict minimum enables microkernels to be extremely stable and
secure as well as being easier to maintain. However, it is also claimed that
moving some of the traditional kernal functionality out of kernel space brings
with it a performance hit in terms of speed.
The latter, i.e. a
monolithic kernel design used by Linux for example, creates all the traditional
kernel services within the kernel space which results in a large kernel that
tries to do as much as possible in the very fast kernal operating space.
Monolithic kernel experts point to the speed gains in a monolithic kernel as
outweighing the disadvantages of potential instability and
maintainability.
The HURD project's microkernel has gone back to
the drawing board several times. In 1983, the initial FSF project announced the
existance of a microkernel named TRIX, which was said in Feb. 1986 to have been
developed at MIT. While 1986 saw some progress on trying to work out the bugs
in TRIX, by Jan. 1987 the FSF started to negotiate with Carnegie-Mellon
University for the right to use and work on another development microkernel
named MACH. It was presumed to have incorporated many improvements over the
overall design that had been employed in TRIX.
Unfortunately legal
problems snagged the project and it was not until Nov. 1991 that the FSF was
finally able to announce that the HURD project was finally running atop the MACH
kernel. Linux had now appeared and the most of the GNU software had already
been ported to the Linux Kernel because it was working and also developing
rapidly.
Despite the appearance now of the FSFs own operating system,
development on the HURD continuted at a snails pace in comparison to Linux. The
last release of the MACH 1.3 kernel occured in May of 2002. At this point in
time those working on HURD appear to have come to the realization that a number
of design flaws that had been discovered in the MACH kernel due to subsequent
developments in operating systems research and development efforts were too
great to fix and that from a idealistic standpoint a superfast 12k kernel named
L4 which had been written in 1996 by a Dr. Jochen Liedtke (deceased in 2001)
already existed which overcame many of the discovered flaws in MACH. Most
importantly, the microkernel performance hit, due to the abstraction of many
kernel services into modules running elsewhere, which had hovered at around 15%
in the MACH was reduced to about 5% in the L4 microkernel.
Instead of
fixing MACH, it was decided to port HURD to the L4 microkernel. This was mostly
completed in Feb. 2005 by HURD kernel maintainers: Marcus Brinkmann and Neal
Walfield. The release of the HURD/L4 was announced at that time which although
still in a highly experimental phase nevertheless was up and running and
allowing developers to get down to the business of developing on that HURD
system. It must be stressed that this "pure GNU" system while able to
run many GNU application software packages, still lacks a lot of the hardware
driver support which has made Linux so successful so far in the OS wars. The
developers state that it is not ready for production environments or home end
users.
While the copyright of the HURD system is fully controlled by the
FSF, and the design philosophy makes great promises for the future of OS
stability and security ... it has not yet come close to realizing the impact and
usability that the GNU/Linux system has made in the computer world. At the
present rate of progress it may be many many more years before development
reaches commercial viability. But then again, Rome wasn't built in a
day!
Doublezz
NB: The author of this comment has never used
GNU/HURD and only wrote out of personal interest in the subject a summary of
information compiled from numerous reports about HURD on the Internet. For more
information and source material please see the following links:
[ Reply to This | # ]
|
|
Authored by: Anonymous on Sunday, July 31 2005 @ 04:24 AM EDT |
The real achievement of all the effort on the HURD was, in the end, to
demonstrate that the accepted wisdom in the academic community was
wrong.
Computer scientists in universities had come to a consensus, even
before Linus wrote any code, that the Right Way to build an operating system was
to use the microkernel approach. Forgetting that Computer Science is not really
a scientific, but an engineering, discipline, they reached this conclusion
largely on theoretical grounds.
The HURD project and Linux put this
conclusion to the test. The programmers working on HURD were very able people -
there is no question about that. But a microkernel-based operating system turned
out to be very hard to develop, hard to evolve, hard to maintain. Since the
implementors cannot be blamed, the approach is wrong. The HURD project proved
that the academic community had it wrong. The microkernel approach is not
the best way, or even a good way, to build an operating system. [ Reply to This | # ]
|
|
Authored by: Anonymous on Sunday, July 31 2005 @ 10:21 AM EDT |
In the earliest days, HW was dumb and simple. Discrete devices. A
flip flop per daughter card. Little processor main memory. Then, a
batch OS was good and a DOS was nirvana.
Today, there are many intelligent subsystems in even the smallest
computer. Bridge chips with little CPUs everywhere. The Northside
Bridge is more powerful than all computers up through the Sixties
and most through the Seventies. One OS to serve them all just
might be the evil lurking in the computer.
Just get rid of the OS by distributing it to all the intelligent subsystems.
How? Well, that is grist for more than one PhD dissertation.
People have been squabbling like children. This is reminiscent of the
big endian versus little endian memory debates.
While you are creating the perfect OS, why not boost the Internet so I
can use IT to replace all my communications media?
God bless![ Reply to This | # ]
|
|
|
|
|