Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 04 Feb 2003 18:31:58 +0100
From:      Dag-Erling Smorgrav <des@ofug.org>
To:        Shaun Jurrens <shaun@shamz.net>
Cc:        freebsd-chat@freebsd.org
Subject:   Re: Project status
Message-ID:  <xzp4r7kuf3l.fsf@flood.ping.uio.no>
In-Reply-To: <20030204151457.GA85804@papagena.rockefeller.edu> (Rahul Siddharthan's message of "Tue, 4 Feb 2003 10:14:58 -0500")
References:  <20030204151457.GA85804@papagena.rockefeller.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
Rahul Siddharthan <rsidd@online.fr> writes:
> I think it would help if ordinary people like us understood what some
> of the new-fangled features are really about.  It's clear that some
> very senior developers don't fully understand, or have doubts about,
> Geom and KSE(*) (to take two examples).  The "status reports" describe
> them a bit, but not in nearly enough detail, I feel.

Since you're asking, I'll try to briefly describe some of the new
subsystems we're working on in -CURRENT (for appropriate values of
"we")

 - DEVFS is both a framework for creating devices (and allocating
   major / minor numbers for them etc) and a file system which exposes
   device nodes for these devices and allows standard operations such
   as removing a node, creating a symlink to a node, etc.  DEVFS also
   has a mechanism for specifying the ownership and mode of as-yet
   nonexistent devices, to make up for the fact that it doesn't
   remember chown / chmod operations across reboots.

   Although a very small, very vocal minority is violently opposed to
   DEVFS, everybody else seems to agree it's a lifesaver, especially
   people who use hot-plug devices a lot (pccard and USB devices)

 - devd is a daemon that uses features of DEVFS to detect the creation
   or destruction of devices and apply various operations to these
   devices (e.g. automatically run dhclient when you insert a NIC into
   a pccard slot).  I believe it's mostly there to replace pccardd,
   which NEWCARD obsoleted.

 - GEOM is a framework for applying various transformations to disk
   devices, and exporting the transformed devices as new devices.  The
   heart of GEOM is a method for "tasting" devices to discover what
   transformations are applicable and then applying them by creating
   instances of one or more GEOM class to the device.  This process is
   recursive, so a geom (an instance of a GEOM class) can attach to
   another geom, etc.

   GEOM turns what used to be an ugly ad-hoc jumble of code into a
   neat stack or graph of geoms which operate upon one another and
   export device nodes to userland.  For instance, on a typical i386
   system, each disk is "tasted" at boot time and found to contain a
   DOS partition table, which causes geoms to be instantiated for each
   slice (FreeBSD-speak for partition); then each slice is "tasted"
   again, giving rise to other geoms depending on their contents.

   GEOM is also exceptionally well documented, both inside and outside
   the CVS tree.

 - KSE ("kernel scheduled entities") is a threading architecture, both
   for in-kernel threads and for mapping userland threads onto kernel
   threads (which allows splitting one application across multiple
   CPUs; our current thread library doesn't).  I don't know of any
   substantial opposition against KSE.  There are some concerns that
   the M-on-N model is not really better than the 1-on-1 model,
   especially now that Solaris has switched to the latter, and that
   KSE is over-engineered and possibly out of the reach of a team of
   (relatively) amateur volunteers.  Otherwise, complaints regarding
   KSE are mostly about how much time it's taking to implement, and
   concerns that the KSE developers aren't subjecting their code to
   sufficient testing before committing it.  Note that I'm neither
   confirming or refuting any of these claims, just reporting what
   other people are saying about KSE.

Any more subsystems you're curious about?

> Some time Matt wrote a very detailed and educational article in
> daemonnews about the VM, where even I felt I could understand what was
> going on (an illusion, no doubt).

Other people write articles too.  They even get them refereed and
present them at international conferences: USENIX, FREENIX, BSDCon,
BSDCon Europe, NORDU etc.  There are also proceedings from various
developer summits, e.g.

  <URL:http://www.freebsd.org/events/2002/usenix-devsummit.html>;

Audio recordings of some of these meetings are also available; the
2002 summit is at <URL:http://people.freebsd.org/~joe/summit-2002/>;

> (*)After writing that, I had another look at the project web pages
> cited in the status report, http://www.freebsd.org/kse/ and
> http://people.freebsd.org/~phk/Geom/ .  It's not actually so
> uninformative as I thought, but it's still worth filling them out,
> especially Geom.

Poul-Henning has written several papers about Geom; unfortunately,
they're not linked from the Geom page, but you should be able to find
them with Google.

DES
-- 
Dag-Erling Smorgrav - des@ofug.org

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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?xzp4r7kuf3l.fsf>