The NetBSD Project

Chris Demetriou Theo de Raadt

June 23, 1993

The NetBSD Project

Chris Demetriou Theo de Raadt

June 23, 1993

What is NetBSD?

• Free BSD operating system

• Derived from William Jolitz’s 386bsd, which was derived from Berkeley’s Net/2 release

• Many enhancements for stability and portability

NetBSD’s Goals

• Provide a free, stable BSD system

• Rational, prioritized improvements

• “Support” for popular platforms

• Avoid encumbering licenses Summary:

Provide a free system that professionals and hobbyists can use for whatever they want.

SLIDE 2 Also:

• avoid political bickering

• allow access to work in progress (don’t be a black hole)

• foster “community” involvement Overall: We’re in this for fun, but want to benefit others if we can.

2-1 The NetBSD Project, June 23, 1993 3

“Supported” Platforms

Currently only for 386. Ports in progress:

• HP 9000/300

• Amiga (with 68020 and MMU or 68030)

• DECstation 3100 and 5000

• Macintosh (with 68020 and MMU or 68030)

• Sun-3

• and more… SLIDE 3

All ports being done by outsiders, more or less. Port people:

• HP 9k/300: a bunch of “the gang”.

Almost compiles.

• Amiga: Markus Wild (mw). He has it working, and hopefully integrated soon.

• DEC 3100 and 5k: David Burren (davidb). He has it working, and hopefully integrated soon.

• Macintosh: “bunch of people from Vermont” (contact: Chris Caputo,

3-1

ccaputo) They apparently have something running, but it’s exact state == ???

• Sun-3: Adam Glass (glass) Just starting. Other ports:

• DEC 3000 (alpha)

• some ns32k machine

• 3b1/7300

• some embedded systems

3-2

The Past

or “NetBSD 0.8”

• Released on April 19

• Equivalent to 386bsd 0.1, plus patches

• Perceived by some as an “interim” release

• Minimum installation:

– Requires: 386 processor, 4M RAM, 30M disk – Installed from: 7 floppy disks SLIDE 4

• (release date) seems like a long time ago; hundred+ of pages of diffs

• (386bsd+patches) actually more than that; more stable

• (interim) We’re here to stay; not dead-end system. (note “386bsd” interim release plans?)

• full installation: 100M+8M recommended for development, more to use X, etc. (30M gzipped)

Consequences of 0.8:

4-1

• it’s very successful; many people in many places are running it, including some universities, etc.

• much positive feedback

• attracted people who did ports to other architectures.

• flood of contributions and interest; too many/much, almost

4-2

Current Platform-Independent Developments

• Replaced and fixed shoddy kernel components

• Brought in “missing” software from Net/2

• Updated user programs to latest versions available

• Made changes to get closer to POSIX

• Added support for loadable kernel modules

• LOTS of bug fixes and improvements SLIDE 5 Kernel components:

• physio, exec, etc.

• soon to go: vfs bio, ring buffer stuff? User programs:

• didn’t update all of them. (e.g. gcc, uucp)

• replaced where possible (test, touch, bc, diff, rcs, etc.)

• newest berkeley code available (DB, sendmail)

5-1

• minimize additions of GPL’d software (gzip, gnu regex only new ones)

• fixed many programs (games)

LKMs: ease debugging; Sun-style (done by Terry Lambert)

Also: made some general reorganizations:

• /sys/arch
• /usr/src/gnu/*

5-2

Current Problems

• VM system needs work

• Machine-dependence in “machine-independent” files

• No NFS locking support

• Lack of proper installation and upgrade tools

• Many smaller problems SLIDE 6 Many people have sent in VM fixes, but there’re sure to be problems left in there. Machine dependence:

• disklabel (dos partitionining)

• exec cruftiness; geared towards i386 • other Jolitz hacks

NFS locking is a bear. Volunteers?

6-1

Current Developments for the 386

• New interrupt system

• Slightly better autoconfiguration

• More driver support

• LOTS and LOTS of bug fixes and improvements Our goal:

Fix bugs in the 386 code before adding new features.

SLIDE 7 New interrupt system from Bruce Evans: now mostly stable. Autoconfig:

• better NPX handling

• does “cpu” like it’s supposed to

• improved diagnostics

• some improved probe routines. New drivers:

• more enet boards

7-1

• mouse drivers

• DOS filesystem support

7-2

Current Problems with 386 support

• Autoconfiguration needs a lot of work

• Kernels should be loadable anywhere in RAM

• Little support for bounce buffers for machines with more than 16M of RAM

• Support for floppy disks and “WD”–type hard disks needs improvement

• PC video board driver needs work SLIDE 8 The more we learn about the 386, the less we want to know… Would like to get the new LBL config code to redo autoconfig stuff. Desperately need to clean up and clean out locore, especially pmap bootstrapping. ISA (and EISA) device code needs cleanup. Some of the drivers need to be tossed and rewritten. Some have been rewritten or fixed:

• floppy driver (Julian Elischer)

• wd/3c503 enet driver (David Greenman)

8-1

• 386BSD scsi subsystem (Julian Elischer) It would be nice to see “generic” i386 support, divorced from the ISA bus. Eventual support for more busses, if possible:

• real EISA support

• MCA support

• perhaps 386 MP boxes. Sequent?

8-2

Future work on NetBSD

• Shared Libraries

• POSIX conformance

• 4.4BSD integration (if possible)

• Better SCSI and autoconfiguration support

• Diskless booting support

• Remote debugging support SLIDE 9

There’s a group working dynamically loaded shared libararies; support for statically loaded ones comes for free with new exec.

When and if 4.4BSD comes out, we’d like to integrate the best features– not necessarily start with it as a new code base.

SCSI and autoconfig code from LBL would be nice, however both would require an awful lot of work.

diskless booting in the works for 386; bootp/tftp. (have code, will integrate.)

remote debugging also in the works via serial

9-1

line and enet, with latest gdb. (have code, will integrate.)

merge w/interim?

9-2

Who does the work?

A “cast of thousands” of contributors including: • CSRG, for Net/2 and for “BSD” in general

• The “Random Hackers” in the core team

• William and Lynne Jolitz, for our 386bsd code base

• The organizers of the 386bsd patch kit

• Users who have sent in bug reports and fixes SLIDE 10 ALL VOLUNTEER. Not enough hours in the day. Have need for good release engineer; that in itself could be a full time job.

10-1

For your reference:

How to get NetBSD via anonymous FTP:

  sun-lamp.cs.berkeley.edu [128.32.240.166]
  pub/NetBSD

And if you have questions or comments:

• netbsd-comments@sun-lamp.cs.berkeley.edu

• Come talk to us privately

• Ask questions now!

SLIDE 11 Also: • NetBSD-current: updated nightly • SUP of current sources possible;

  sun-lamp:pub/sup for details

• other mailing lists:

   – netbsd-ports
   – netbsd-current-users

– etc.

11-1