login
Header Space

 
 

NetBSD: Founder Fears End Of Project

August 31, 2006 - 5:34am
Submitted by Amit Shah on August 31, 2006 - 5:34am.
NetBSD news

One of the NetBSD founders, Charles Hannum, has sent an email to the netbsd-users list enumerating the problems with NetBSD. He mentions NetBSD is lagging behind other OSes in many aspects. However, he notes that the major problem with NetBSD is the NetBSD Foundation, which now controls the NetBSD project, interfering with the development. He says:

"At this point most readers are probably wondering whether I'm just writing a eulogy for the NetBSD project. In some ways, I am -- it's clear that the project, as it currently exists, has no future. It will continue to fall further behind, and to become even less relevant. This is a sad conclusion to a project that had such bright prospects when it started."

He lists things which they did right and things which were wrong. He compares their approach to other OSes, including Linux, whose popularity has risen by a huge amount since.

The NetBSD project's USP has been that it's a highly portable system, once boasting of the maximum number of supported architectures. Linux, however, has surpassed that number.

Although he presents a very bleak picture, he also mentions that good work is being done and many corrective measures would be needed to keep the project alive. He says:

"I must repeat a point I've made earlier. The current "management" of the project is not going to either fix the project's problems, or lead the project to solutions. They are going to maintain the status quo, and nothing else. If the project is to rise from its charred stump, this "management" must be disbanded and replaced wholesale. Anything less is a non-solution.

To some of you, I would like to apologize. There *are* NetBSD developers doing good work even now."


Subject: The future of NetBSD
 To: None [email blocked]
 From: Charles M. Hannum [email blocked]
 List: netbsd-users
 Date: 08/30/2006 19:27:23


The NetBSD Project has stagnated to the point of irrelevance.  It has
gotten to the point that being associated with the project is often
more of a liability than an asset.  I will attempt to explain how this
happened, what the current state of affairs is, and what needs to be
done to attempt to fix the situation.

As one of the 4 originators of NetBSD, I am in a fairly unique position.
I am the only one who has continuously participated and/or watched the
project over its entire history.  Many changes have taken place, and at
the same time many things have remained the same -- including some of
our early mistakes.

I'd like to say that I'm some great visionary, who foresaw the whole OSS
market, but the fact is that's BS.  When we started the project, Linux
and 386BSD were both little hobbyist systems, both pretty buggy, and
both lacking a lot of important hardware support.  Mostly we were
scratching an itch: there was no complete package of 386BSD plus the
necessary patches to make it run on more systems and fix bugs, and there
was no sign that Bill Jolitz was going to resurface and do anything.

Much of the project structure evolved because of problems we had early
on.  Probably our best choice was to start using central version control
right off; this has enabled a very wide view of the code history and
(eventually) made remote collaboration with a large number of developers
much easier.  Some other things we fudged; e.g. Chris got tired of being
the point man for everything, and was trying to graduate college, so we
created an internal "cabal" for managing the project, which became known
as the "core group".  Although the web was very new, we set up a web
site fairly early, to disseminate information about the project and our
releases.

Much of this early structure (CVS, web site, cabal, etc.) was copied
verbatim by other open source (this term not being in wide use yet)
projects -- even the form of the project name and the term "core".  This
later became a kind of standard template for starting up an open source
project.

Unfortunately, we made some mistakes here.  As we've seen over the
years, one of the great successes of Linux was that it had a strong
leader, who set goals and directions, and was able to get people to do
what he wanted -- or find someone else to do it.  This latter part is
also a key element; there was no sense that anyone else "owned" a piece
of Linux (although de facto "ownership" has happened in some parts); if
you didn't produce, Linus would use someone else's code.  If you wanted
people to use your stuff, you had to keep moving.

NetBSD did not have this.  Partly due to lack of people, and partly due
to a more corporate mentality, projects were often "locked".  One person
would say they were working on a project, and everyone else would be
told to refer to them.  Often these projects stagnated, or never
progressed at all.  If they did, the motivators were often very slow.
As a result, many important projects have moved at a glacial pace, or
never materialized at all.

I'm sorry to say that I helped create this problem, and that most of the
projects which modeled themselves after NetBSD (probably due to its high
popularity in 1993 and 1994) have suffered similar problems.  FreeBSD
and XFree86, for example, have both forked successor projects (Dragonfly
and X.org) for very similar reasons.

Unfortunately, these problems still exist in the NetBSD project today,
and nothing is being done to fix them.

--

I won't attempt to pin blame on any specific people for this, except to
say that some of it is definitely my fault.  It's only in retrospect
that I see so clearly the need for a very strong leader.  Had I pursued
it 10 years ago, things might be very different.  Such is life.  But
let's talk about the situation today.

Today, the project is run by a different cabal.  This is the result of a
coup that took place in 2000-2001, in which The NetBSD Foundation was
taken over by a fraudulent change of the board of directors.  (Note:
It's probably too late for me to pursue any legal remedy for this,
unfortunately.)  Although "The NetBSD Project" and "The NetBSD
Foundation" were intended from the start to be separate entities -- the
latter supplying support infrastructure for the former -- this
distinction has been actively blurred since, so that the current "board"
of TNF has rather tight control over many aspects of TNP.

Were TNF comprised of a good set of leaders, this situation might be
somewhat acceptable -- though certainly not ideal.  The problem is,
there are really no leaders at this point.  "Goals" for releases are not
based on customer feedback or looking forward to future needs, but
solely on the basis of what looks like it's bubbled up enough that it
might be possible to finish in time.  There is no high-level direction;
if you ask "what about the problems with threads" or "will there be a
flash-friendly file system", the best you'll get is "we'd love to have
both" -- but no work is done to recruit people to code these things, or
encourage existing developers to work on them.

This vacuum has contributed materially to the project's current
stagnation.  Indeed, NetBSD is very far behind on a plethora of very
important projects.  Threading doesn't really work across multiple CPUs
-- and is even somewhat buggy on one CPU.  There is no good flash file
system.  There is no file system journaling (except for LFS, which is
still somewhat experimental).  Although there's been some recent work on
suspend support, it's still mostly broken.  Power management is very
primitive.  Etc.  Even new hardware support is generally not being
originated in NetBSD any more; it's being developed by FreeBSD and
OpenBSD, and being picked up later.  (I think the only recent exception
to this of any significance is Bluetooth support.)

For these reasons and others, the project has fallen almost to the point
of irrelevance.  (Some people will probably argue that it's beyond that
point, but I'm trying to be generous.)  This is unfortunate, especially
since NetBSD usage -- especially in the embedded space -- was growing at
a good rate in 2000 and 2001, prior to the aforementioned coup.

--

At this point most readers are probably wondering whether I'm just
writing a eulogy for the NetBSD project.  In some ways, I am -- it's
clear that the project, as it currently exists, has no future.  It will
continue to fall further behind, and to become even less relevant.  This
is a sad conclusion to a project that had such bright prospects when it
started.

I admit that I may be wrong about this, but I assume that most people
who have contributed to NetBSD, and/or continue to do so, do not desire
to see the project wallow away like this.  So I will outline what I
think is the only way out:

1) There must be a strong leadership, and it is not the current one.
   The leadership must honestly want NetBSD to be a premier, world class
   system with leading edge features.  The leadership must set
   aggressive goals, and actively recruit people to make them happen.

2) There must be no more "locking" of projects.  Just because one person
   is supposedly working on a problem, that doesn't mean you shouldn't.
   If there ideas are dumb, or even just suboptimal, do it better!  If
   there is no progress, hop on it.  Don't wait for someone else.

3) The project must become an *actual* meritocracy, not what I call a
   "volumetocracy".  Right now, the people who exert the most influence
   are often the people who produce the least useful product.  Indeed,
   they are often people who produce little more than fluff (e.g.
   changing line-ending whitespace!), and often break things.

4) Speaking of which, there must be negative feedback to discourage
   people from breaking stuff.  This has been a continual problem with
   certain "developers" for more than a decade.

5) There are a number of aspects of the NetBSD architecture that are
   flat out broken, and need serious rehabilitation.  Again, the
   leadership needs to recruit people to do these things.  Some of them
   include:

   * serious problems with the threading architecture (including the
     user-kernel interface), as mentioned earlier;
   * terrible support for kernel modules;
   * the horrible mess that is 32/64-bit compatibility, resulting in
     32-bit apps often not working right on 64-bit kernels; and
   * unbounded maintenance work due to inappropriate and rampant use of
     "quirk" tables and chip-specific tables; e.g. in SCSI, ATAPI, IDE,
     ACPI and SpeedStep support.  (I actually did much of this work for
     SCSI, but am not currently able to commit it.)

6) The existing NetBSD Foundation must be disbanded, and replaced with
   an organization that fulfills its original purpose: to merely handle
   administrative issues, and not to manage day-to-day affairs.  The
   extra committees, which mostly do nothing, must be disbanded -- they
   serve only to obfuscate things.  Everything else must revert to the
   historically separate entity, the NetBSD Project, to be managed based
   on technical merits.  There must be no perceived glamour in
   participating in the Foundation; it must be composed of people doing
   it because they are dedicated and want to help the project.

   (I will note here that this is not due to bitterness over the coup.
   Keeping the NetBSD Project as an unincorporated association actually
   helps protect it.)

7) The "core" group must be replaced with people who are actually
   competent and dedicated enough to review proposals, accept feedback,
   and make good decisions.  More to the point, though, the "core" group
   must only act when *needed* -- most technical decisions should be
   left to the community to hash out; it must not preempt the community
   from developing better solutions.  (This is how the "core" group
   worked during most of the project's growth period.)

8) There must be a set of commit standards -- e.g. about when it is or
   is not acceptable to commit changes that do not change functionality;
   when multiple changed must be batched in one commit; etc.  Right now
   it is difficult to sort the wheat from the chaff.  In addition, there
   must be standards of review.

I must repeat a point I've made earlier.  The current "management" of
the project is not going to either fix the project's problems, or lead
the project to solutions.  They are going to maintain the status quo,
and nothing else.  If the project is to rise from its charred stump,
this "management" must be disbanded and replaced wholesale.  Anything
less is a non-solution.

--

To some of you, I would like to apologize.  There *are* NetBSD
developers doing good work even now.  I'd like to particularly recognize
and thank those working on kernel locking and UVM problems; wireless
support (though I'm not sure what happened to my extensive set of rtw
bug fixes); Bluetooth; G5; and improved ARM support.  This is all good
stuff.  In the bigger picture, though, the project needs to do a lot
more.

--
- Charles Hannum - past founder, developer, president and director of
  The NetBSD Project and The NetBSD Foundation; sole proprietor of The
  NetBSD Mission; proprietor of The NetBSD CD Project.

[I'm CCing this to FreeBSD and OpenBSD lists in order to share it with
the wider *BSD community, not to start a flame war.  I hope that people
reading it have the tact to be respectful of their peers, and consider
how some of these issues may apply to them as well.]



Related Links:

New project?

August 31, 2006 - 7:06am
Anonymous (not verified)

I know nothing of NetBSD's internals and TNF really, so I can't comment on how easy it would be to actually wrestle control from it, but... why not just fork the project? When Xfree86 became too much of a burden, people simply returned to X.org, and everything worked out fine - in fact, Xfree86 became obsolete much faster than I or anyone I know would have anticipated.

Why not just do the same to NetBSD as well? Gather up all the good developers, start a new meritocratical (I hope that's a word) project (I'd suggest calling it GrossBSD to set it apart from NetBSD, but that might not be a very marketable name ;)), get to work on the code and fix and improve things, and if what you churn out will be better than the original NetBSD, people will start using it. It's essentially what you're advocating for individual projects, too: instead of "ownership", encourage competing implementations and ultimately pick the best one. Survival of the fittest *does* work on this smaller scale, and there's no reason why it shouldn't work on the bigger scale as well.

And it'd allow people to focus on the code instead of the politics, which would also be a plus.

The X.org move required suppo

September 2, 2006 - 2:13pm
Anonymous (not verified)

The X.org move required support and funding from the big players (RedHat, Novell, etc). Your idea is perfectly reasonable, you would just need to find someone to care enough to do something about it.

Re: New Project

September 3, 2006 - 8:35pm
SamS (not verified)

A fork of NetBSD which values code over politics already exists - it's called OpenBSD

Maybe reunification would help

September 5, 2006 - 7:46pm
Anonymous (not verified)

I don't think another fork would help. In fact, I think the reverse would be better for the long-term development of the BSD systems.

I was a Net- and FreeBSD user in the 1990s, but now mostly use MS Windows, for various reasons. The most important of these is hardware support. Right now, on my notebook, the video card is supported by FreeBSD, the wireless card by OpenBSD and the sound card by NetBSD. None of them support the whole set of devices, much less offer working power management for it. In contrast to the BSDs, Windows supports all of my hardware, and does so well, while Linux supports the hardware reasonably well, but power management doesn't work as well as under Windows.

Given that bits of my hardware work on different BSDs, I imagine that if all of the people working on them were working together, on a unified BSD system, such a system just might be a contender, alongside Linux and Windows. Even a unified kernel (with different userland distributions) would allow a single driver to be written for all three major BSDs, rather than popping up on one and then having to be gradually ported to the others. This would still leave room for innovation in terms of the userland configuration, although of course with some overhead from having to maintain a common kernel interface.

I'd really like to run a BSD (or Unix) system on my laptop again, although probably with a Windows VM or something since I often need to use Windows software. I've used various Linux distributions, but they all seem to be trying so hard to imitate MS Windows that they've forgotten the value of a traditional BSD/Unix system (and, even so, haven't managed to imitate MS Windows very well either).

I know it's been a long time, and maybe the personalities are simply too strong for there to ever be a reunification of the BSDs, but if it doesn't happen, at least at the kernel level, I'm not entirely sure the BSDs will be able to prevent themselves falling further and further behind Linux, in terms of hardware/device support.

Hardware support

September 7, 2006 - 1:31pm
Anonymous (not verified)

"Windows supports all of my hardware, and does so well"

Or rather, "the makers of all of my hardware support Windows well."

not enough people/interest?

September 21, 2006 - 8:52am

It sounds reasonable, but I think that there are not enough people around to do another split. Operating systems require a lot of work in many different areas, including drivers -- often a problematic part in open-source operating systems. Maybe it would be better for NetBSD developers to join one of the other *BSD projects. It wouldn't mean that they have to forsake the goals of NetBSD; you can apply these ideas and principles to other projects, too.

I think, while you could start work on a new -- multi-purpose -- OS pretty easily 15 years ago, these times are gone. You just need too much initial code before you have something that can pass as a modern OS; nobody wants to use 1mb console-only floppy disk images anymore -- at least not for mainstream OS purposes.

That probably means there won't be any new operating systems built completely from scratch, either. Mind you, I'm talking about general-purpose systems here, not something highly specialised.

The task has become so complex and all-inclusive that even existing operating systems have problems keeping up with the pace; especially in the open-source world, probably because they have to write (and even reverse-engineer) most of their own drivers.

Survival of the fittest is not relevant when things are too far behind and it's too hard to keep up with the pace. If you can't reach that threshold where you can keep up with the rest of the world, such as the rate of hardware development, it's not a matter of competition even; you have something that gets outdated -- and unused -- pretty quickly.

The real question is if some of the smaller OS projects can keep up with the pace of the market. While many geeks like to play with exotic projects, most people -- including increasing numbers of said geeks -- want to be able to use recent hardware and software without having to struggle. If it doesn't run on people's computers, noone will use it. You can have superior goals and software architecture; the proof of the pudding is in the eating.

So, does NetBSD have enough dedicated people to bring the project up and beyond the level of the fast-paced market?

Minix

October 30, 2006 - 11:07pm

Minix just entered its third life cycle a year ago, with Minix 3 being completely rewritten from scratch. A minimal set of drivers, working twm and X now, and some structure. The research that was Minix 1 and 2 has finally become the young OS that is Minix 3.

In short, it's not THAT hard to get a new OS up from scratch. And don't say "Well ya, they just grabbed Minix 1 and Minix 2 and ripped out the code they needed;" this is NetBSD we're talking about, the code is BSD licensed, if you really want to start any kind of OS from scratch you can rip some basics from NetBSD or OpenBSD or whatever. It'll only take you a year to get from "Floppy console only" to "We have a very ugly Xorg display!"

Cheer up !

August 31, 2006 - 7:14am
N.Kalev (not verified)

Hello Charles,

Very sad to read your post but i can say that NetBSD is unique and not OpenBSD, FreeBSD or Linux will have that anytime soon.
NetBSD is one if my preffered OS-es for my laptop it works great and it does suspend like is should be, not like FreeBSD/OpenBSD. It's my prefered OS for portability and for example of how the code should be managed and how it should look to be understand even from not so advanced in BSD area ppl. OpenBSD tryes to do the same and gets alot of your code in there tree. About linux it has alot of developers but currently they have problem with stability like a release and add patches stability.
And Theo never wins :-P, and yes MicroBSD is out there in the dark !
No Flame just my point of view !!!

Sometimes the 'stability' peo

August 31, 2006 - 11:27am
Chase Venters (not verified)

Sometimes the 'stability' people are asking for is something they do not understand or perhaps even something they do not want!

Stability in terms of 'not crashing' is a requirement (and no OS is perfect here, not NetBSD or any other).

Stability in terms of 'not changing' is dangerous, because that's exactly how you get where NetBSD is today. Linux kicked everyone's ass precisely because it could move, and move quickly.

re

August 31, 2006 - 11:51am
N.Kalev (not verified)

Yes that is correct and that is why alot of other developers or users are moving away becase they get too much patches alot of changes alot of resources are going into that direction to maintain the code.
Very fast growth is not a good direction too same as very slow growth. BSD's at this point are doing more focused and good work then just drop a patch and move on to next one !

Not a flame?

August 31, 2006 - 12:47pm
Anonymous (not verified)

The fact that you feel the need to claim that your post is not a flame itself already shows that your post *is*, indeed, a flame.

And unfortunately, you - like many braindead monkey fanboys - make the mistake of confusing "I like X" with "I hate everything that's not X". NetBSD is a great system, no doubt about that, but if you really want to convince people of that, it might be a better idea to actually talk about its advantages instead of just ragging on everything else; doing that just makes it seem as if there isn't really anything positive that can be said about NetBSD after all (so that you have to resort to flames instead).

In other words, you're helping noone. Grow up, and while you're at it, learn some proper English, too.

Netcraft confirms: NetBSD is dying

August 31, 2006 - 2:21pm
Adhominem (not verified)

Netcraft confirms: NetBSD is dying

*SNCR*

Agree; just fork it

September 1, 2006 - 1:26am
Anonymous (not verified)

Someone mentioned a fork. Well, why not? It's Free Software; you are free to do with it as you wish. Along with X.org, it also seemed to turn out pretty well with a fork of NCSA httpd, better known today as Apache. Samba had a fork (Samba-TNG), and I find it hard to believe that this had nothing to do with the much-improved Windows domain controller support in the original project. OpenBSD is itself a fork of NetBSD, and look at its success (talk about "strong leaders"!).

I'm of the opinion that BSD l

September 13, 2006 - 4:19am
Anonymous (not verified)

I'm of the opinion that BSD license, while being free software, discourages contribution. I'd like to help free software, not privative software; by using BSD we help privative software too, and I believe privative software is bad.

The WINE project learnt they lesson and they're using LGPL now; why can't this happen with the BSDs? It's about time for a GPL fork of one of the BSD branches, and NetBSD is a good candidate.

I guess it depends on your goals.

September 13, 2006 - 12:58pm

Elaborating on your post...

If you want true "anybody can take this and do anything with it" type of freedom, put your code in the public domain. The 3-clause BSD is pretty similar to that. The authors retain copyright to their work and ask that copyright designtions remain on the work. Furthermore, they disallow use of their name to advertise the work if it's aggregated into something they didn't control, unless the aggregator gets additional specific written permission. Other than that, it's nearly as permissive as putting the work in the public domain.

You can't get much more free than that, either libre or gratis, when it comes to a single work.

Where the issue arises is that it's become, in the eyes of many, an "Us versus Them" situation, with "Free" fighting "Proprietary." If Free works are truly unencumbered, meaning anybody can use them for anything without any restrictions (or with very minimal restrictions as is the case in the BSD license), then the Free side is severely disadvantaged. The Proprietary camp has at their disposal all of their efforts as well as all of the efforts of the Free side when making their proprietary products.

This is where the GPL comes in, and what you allude to. The GPL paradoxically restricts Free works to remain "free." The resulting works are not truly free in the sense of being entirely unencumbered. Rather, GPL'd works place restrictions on how those works might be aggregated into other works. This prevents the Proprietary camp from incorporating GPL'd works into proprietary products.

But, GPL'd code is not strictly Free. When you consider growing bodies of works, GPL tends to encourage a larger body of "free" code while making individual pieces slightly less free. Some people object to the lack of strict freedom on each individual piece and stick to the BSD license. The question is whether there are enough people who prefer BSD over GPL to stick with NetBSD? Do we need a GPL'd BSD?

Freedom

September 14, 2006 - 12:54pm
Anonymous (not verified)

RMS stated it something like "It is illogical to argue that code is only 'free' if it allows you to take away the freedom of others." Not an exact quote, but that was the meaning.

A worthless line of argument.

September 14, 2006 - 2:14pm

There is no "absolute freedom," just differences in what you consider free. To pick an extreme example, which do you consider "more free:"

  1. I can shoot at anyone I want because there is no law that says I can not.
  2. Shooting at people is illegal.

I think we would prefer the second society, but it objectively places greater restrictions on what individuals can legally do. Even so, I think we'd feel more free in such a society. There are some that argue that we should instead all carry guns so that there's no need for a law, per se, because they prefer to reduce restrictions on the individual.

Like I said, it depends on what your goals and priorities are.

That RMS. Richard

September 2, 2008 - 2:30pm
Anonymous (not verified)

That RMS. Richard Motherfucker Stall-man !

Yes, it's sad

September 13, 2006 - 3:48pm
Anon Y Mous (not verified)

I have been a long time user of NetBSD. Sadly, the project doesn't seem to have any perspective. It's not all that bad that there wasn't any real progress in the threading architecture, since there have been many changes made in other projects which I suppose were rather contraproductive. (I agree with Matt Dillon in his estimation of the FreeBSD threading concept.)

Today, NetBSD is no longer a real alternative to anything. It had much better philosophy on doing things than what could be found in any other project, but after all, NetBSD didn't succeed in using the advantages to make any progress. The whole thing is stuck, and it reminds me of Minix, which after all was the beginning of many new ideas, but itself worked out to be unusable and the most conservative project in the world, if you can call a calm conservative.

To some of you, I would like

October 5, 2006 - 4:37pm
Anon y mouse (not verified)

To some of you, I would like to apologize. There *are* NetBSD developers doing good work even now.

Hopefully these good developers would migrate to OpenBSD if the NetBSD project went defunct (which hopefully it won't :)).

And to Theo

October 30, 2006 - 11:11pm

And of course then they'd be working for Theo, who insists tools like Coverity's PROTECT (periodically run against Linux) or other source code static analysis tools only serve to reduce code quality over time.

why not

May 25, 2007 - 6:37pm
John Willow (not verified)

why wouldn't they be working for theo...why change anything if it's working good

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
speck-geostationary