Jump to content

The future of NetBSD


metatron

Recommended Posts

Subject: The future of NetBSD

To: None <netbsd-users@netbsd.org>

From: Charles M. Hannum <mycroft@MIT.EDU>

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.]

Link to comment
Share on other sites

Its a shame its come to this, but yeah, he's hit the nail on the head. I think this applys to a lot of OSS projects that are floating about in half-complete states. I really hope this manages to kick things into gear.

Link to comment
Share on other sites

Yeah me too. I tried contributing to a few different projects of their’s in the past and they have been very closed off and unresponsive to new ideas, which is why I only really bother with OpenBSD as they don’t just ignore you.

Link to comment
Share on other sites

Yea, it's a shame. I also read OpenBSD is in serious money troubles. A double shame since OpenSSH which came from the OpenBSD project is used in so many places. I don't know how much of all of this is exactly true, but OpenBSD is a really great product, (have no experience with NetBSD) and is quite popular, hopefully something will be worked out.

Link to comment
Share on other sites

yup, portable shit is always good...but snooze you lose. If you fall behind I dont feel sorry for you.

They were renowned for clean code. You could pretty much compile their shit on a toaster. But i cant see why one would use it now over something like openBSD.

Re: openbsd money woes....

its alright now. The mozilla foundation gave them $10,000 toward openssh and i think godaddy (they have never killed) gave openbsd $10k which is pretty good.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...