5.0 project list ("Help Wanted")

Jordan Hubbard jkh at freebsd.org
Mon Sep 10 17:38:24 PDT 2001

Many people, upon hearing of 5.0's untimely delay for a full year,
have asked what they can do to help 5.0 get back on track.  What
follows, in no particular order, is a list of outstanding projects for
5.0 and as much information on them as I've been able to collect
thus far.  Thanks!

                               - Jordan

o SMPng

  This is the next-generation SMP project which is slated to replace
  the SMP implementation FreeBSD currently uses.  Though FreeBSD
  already gets surprisingly good performance out of multi-processor
  machines by juggling user processes between CPUs and simply allowing
  only one CPU in the kernel at a time (the so-called "Giant lock"
  model), there's no question that it can be done better.  The entire
  kernel can be internally multi-threaded and individual sections
  given their own locks so that multiple CPUs can execute in the
  kernel at once, also making execution pre-emptable and the kernel
  fully re-entrant.  Multi-threading the kernel is interesting from a
  wide number of architectural angles, from real-time applications to
  parallel processing, and it's a very big job.  Some of the subsystems
  affected by this are:

    CAM (scsi)
    VM system

  So if you have a specific area of interest, you might tackle some
  of the lock-pushdown issues there.

  Prerequisites: C and BSD/Unix internals.  Useful: Understanding
  threading and, in some cases, x86 assembly.


  Mailing list:           smp at freeBSD.ORG
  Project lead:           John Baldwin <jhb at FreeBSD.ORG>
  Project info:           http://people.freebsd.org/~jasone/smp/

  All queries should be directed towards the mailing list unless
  you have something truly earth-shattering to communicate, in
  which case you can talk to the project lead.


  Kernel Scheduled Entities represent a fundamentally different way of
  dispatching kernel threads and, while not actually a part of the
  SMPng project, represent an important step in that project
  fulfilling its potential.  KSEs, or "scheduler activations" as
  they're also sometimes known, allow for multi-threaded applications
  to scale much better in performance, especially in multi-CPU
  environments.  They do, however, require considerable re-working of
  various kernel data structures, which is why this is another big
  kernel project.

  Prerequisites: C and BSD/Unix internals, the fundamentals of
  threaded programming.


  Project lead:           Julian Elischer <julian at FreeBSD.ORG>
  Project info:           http://people.freebsd.org/~jasone/kse/

  You should take care to read the various papers at the cited URLs in
  order to gain a better understanding of the project, after which you
  can contact the project lead directly to volunteer for either
  testing or generating patches.


  NEWCARD is a project to substantially re-write the aging PCCARD
  support code in FreeBSD, on which many laptops currently rely.  Not
  only does NEWCARD interface more properly with FreeBSD's NewBus
  driver abstractions, it also supports the more modern 32-bit CARDBUS
  family of cards.  This project can use testers, developers and
  donations of hardware where more the esoteric types of laptop or
  CARDBUS technology are concerned.

  Prerequisites: A good working knowledge of C and Unix internals.
  Useful: Familiarity with mobile computing applications.


  Mailing list:           mobile at FreeBSD.ORG
  Project lead:           Warner Losh <imp at FreeBSD.ORG>

  This project doesn't have any known web resources associated with it
  yet, but Warner Losh, the project lead, is pretty active in both the
  English and Japanese mobile mailing lists.  For more information,
  contact Warner or monitor the mobile mailing list.

o Itanium (IA-64) Port

  This is a project to port to Intel's IA-64 architecture, also called
  the Itanium.  It is a wholly new CPU design with no backwards
  compatibility for the x86 (IA-32) architecture and is 64 bit.  It
  also relies substantially on compiler support to achieve proper
  performance and a number of people are working on this from various
  angles.  Itanium machines also have a very different BIOS
  architecture and require a substantially different system bootstrap.

  Prerequisites: A thorough knowledge of C and FreeBSD internals.
  Useful: A knowledge of IA-64 assembly language.  It also helps to have
  one of these machines.

  Mailing list:           ia64 at FreeBSD.ORG
  Project leads:          Peter Wemm <peter at FreeBSD.ORG>
                          Doug Rabson <dfr at FreeBSD.ORG>
  If you're interested in this project, you should probably first join
  the mailing list and then indicate your specific areas of interest

o AMD 64 bit ("Hammerhead") port.

  This project is quite a bit simpler than the Itanium port since AMD
  has taken pains to ensure quite a bit of backwards-compatibility
  with their earlier chipsets, but there is still some work to be done
  in making this platform perform to its fullest potential.

  Prerequisites:  Be a close, personal friend of AMD so that you can
  get your hands on one of these nice machines.

  Project lead:           David O'Brien <obrien at FreeBSD.ORG>

  There is not a lot in the way of information on this port yet, so
  talk to the project lead if you're interested in helping out.

o PowerPC Port

  This project is a fairly straight-forward port to the PowerPC
  architecture, with Apple Macintosh G3/G4 machines serving as the
  initial porting target.  This gives FreeBSD the choice of another
  desktop platform in addition to making its code base more relevant
  to the embedded-systems market, for which the PowerPC is a popular

  Prerequisites: A thorough knowledge of C and FreeBSD internals.
  Useful: PowerPC assembly language and Macintosh hardware.
  It also helps to have one of these machines.

  Mailing list:           ppc at FreeBSD.ORG
  Project lead:           Benno Rice <benno at FreeBSD.ORG>
  Project info:           http://people.freebsd.org/~benno/

  If you're interested in this project, you should probably first join
  the mailing list and then indicate your specific areas of interest
  there.  Benno is also receptive to offers of help with the "heavy
  lifting" on this project.

o Sun UltraSPARC Port

  This project is another fairly straight-forward port to Sun's
  UltraSPARC (64 bit) architecture.  The UltraSPARC is very popular in
  server environments, making it a natural target for FreeBSD.

  Prerequisites: A thorough knowledge of C and FreeBSD internals.
  Useful: UltraSPARC assembly language and UltraSPARC hardware.
  It also helps to have one of these machines.

  Mailing list:           sparc at FreeBSD.ORG
  Project lead:           Jake Burkholder <jake at FreeBSD.ORG>
  Project info:           http://people.freebsd.org/~jake/

  This project is fairly young, so you may wish to contact Jake
  directly if you're really keen to get involved at the ground
  floor, so to speak.

o FreeBSD binary updater

  This project seeks to make it possible to update FreeBSD systems in
  the field via binary update packages, appropriately checksummed and
  stamped for security.  It should also be possible to easily reverse
  the state of an update if it produces unwonted results and to update
  machines regularly or on an infrequent basis, following whatever
  chosen release track desired.  The binary updater is partially
  finished, with a sample server and client available, but has some
  ways to go before it's "mission capable".

  Project lead:           Murray Stokely <murray at FreeBSD.ORG>
  Project info:           http://people.freebsd.org/~murray/updater.html

  Prerequisites: A thorough knowledge of C.
  Useful: Some familiarity with security fundamentals.

  This project is also fairly young, so talk to Murray if you're
  interested in shaping its design or (best yet) helping to implement

o libh package system / installer

  This project, now in progress for a little over a year, seeks to
  provide a complete replacement for sysinstall and the pkg_install
  package management suite.  It is based on C, C++ and Secure TCL and
  already offers an abstract UI mechanism which allows for both CUI
  and GUI interfaces using the same script-based installation and
  packaging tools, as well as a DB-based package management and
  registration system.  A good deal of the fundamentals are already
  finished and this project simply need one concentrated push to
  achieve its full potential.

  Mailing list:           libh at FreeBSD.ORG
  Project lead:           Alexander Langer <alex at FreeBSD.ORG>
  Project info:           http://people.freebsd.org/~alex/libh

  Prerequisites:  A thorough knowledge of C, C++ and TCL
  Useful:         UI design.  A thick skin for working on installers.


  This is a project to significantly increase FreeBSD's support
  for foreign locales, conforming to ISO C/SUSV2.

  Prerequisites: A thorough knowledge of I18N issues and multi-byte
  character formats.
  Useful: Speaking some language other than English.

  Mailing list:           i18n at freeBSD.ORG
  Project lead:           Warner Losh <imp at FreeBSD.ORG>
  Project info:           http://people.freebsd.org/~imp/index-en.html

This is the moderated mailing list freebsd-announce.
The list contains announcements of new FreeBSD capabilities,
important events and project milestones.
See also the FreeBSD Web pages at http://www.freebsd.org

To Unsubscribe: send mail to majordomo at FreeBSD.org
with "unsubscribe freebsd-announce" in the body of the message

More information about the freebsd-announce mailing list