Convert the monthly status reports into an XML schema and include an

XSLT sheet for FreeBSD Web site output.  No repo copies made because
there was no history to preserve.
This commit is contained in:
Chris Costello 2001-09-16 22:36:46 +00:00
parent 81becea777
commit 238df44f76
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=10700
9 changed files with 4126 additions and 1309 deletions

View file

@ -1,4 +1,4 @@
# $FreeBSD: www/en/news/status/Makefile,v 1.1 2001/08/02 04:26:30 chris Exp $
# $FreeBSD: www/en/news/status/Makefile,v 1.2 2001/08/09 16:13:38 chris Exp $
.if exists(../Makefile.conf)
.include "../Makefile.conf"
@ -7,11 +7,19 @@
.include "../Makefile.inc"
.endif
.SUFFIXES: .xml .html
DOCS= status.sgml
DOCS+= report-july-2001.sgml
DOCS+= report-june-2001.sgml
DATA= report-june-2001.html
DATA+= report-july-2001.html
CLEANFILES+= ${DATA}
.xml.html:
xsltproc -nonet -o ${.TARGET} report.xsl ${.IMPSRC}
-tidy -i -m -f /dev/null ${.TARGET}
INDEXLINK= status.html
.include "${WEB_PREFIX}/share/mk/web.site.mk"

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- $FreeBSD$ -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:variable name="statushome">
<a href="status.html">Status Reports Home</a>
</xsl:variable>
</xsl:stylesheet>

View file

@ -0,0 +1,793 @@
<report>
<section>
<title>Introduction</title>
<p>One of the benefits of the FreeBSD development model is a focus
on centralized design and implementation, in which the operating
system is maintained in a central repository, and discussed on
centrally maintained lists. This allows for a high level of
coordination between authors of various components of the system,
and allows policies to be enforced over the entire system, covering
issues ranging from architecture to style. However, as the FreeBSD
developer community has grown, and the rate of both mailing list
traffic and tree modifications has increased, making it difficult
even for the most dedicated developer to remain on top of all the
work going on in the tree.</p>
<p>The FreeBSD Monthly Development Status Report attempts to
address this problem by providing a vehicle that allows developers
to make the broader community aware of their on-going work on
FreeBSD, both in and out of the central source repository. This is
the first issue, and as such is an experiment. For each project and
sub-project, a one paragraph summary is included, indicating
progress since the last summary (in this case, simply recent
progress, as there have been no prior summaries).</p>
<p>This status report may be reproduced in whole or in part, as
long as the source is clearly identified and appropriate credit
given.</p>
</section>
<section>
<title>Future Editions</title>
<p>Assuming there is some positive feedback on this idea, and that
future submissions get made such that there is content for future
issues, the goal is to release a development status report once a
month. As such, the next deadline will be July 31, 2001, with a
scheduled publication date in the first week of August. This will
put the status report on a schedule in line with the calendar, as
well as providing a little over a month until the next deadline,
which will include a number of pertinent events, including the
Annual USENIX Technical Conference in Boston, MA. Submissions
should be e-mailed to:</p>
<blockquote>
<a href="mailto:robert+freebsd.monthly@cyrus.watson.org">
robert+freebsd.monthly@cyrus.watson.org</a>
</blockquote>
<p>Many submitters will want to wait until the last week of July so
as to provide the most up-to-date status report; however,
submissions will be accepted at any time prior to that date.</p>
<p>
<i>-- Robert Watson &lt;
<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>
&gt;</i>
</p>
</section>
<project>
<title>Binary Updater Project</title>
<contact>
<person>
<name>
<given>Eric</given>
<common>Melville</common>
</name>
<email>eric@FreeBSD.org</email>
</person>
<person>
<name>
<given>Murray</given>
<common>Stokely</common>
</name>
<email>murray@FreeBSD.org</email>
</person>
</contact>
<url href="http://people.freebsd.org/~murray/updater.html" />
<body>
<p>The FreeBSD Binary Updater Project aims to provide a secure
mechanism for the distribution of binary updates for FreeBSD.
This project is complementary to the Open Packages and libh
efforts and there should be very little overlap with those
projects. The system uses a client / server mechanism that allows
clients to install any known "profile" or release of FreeBSD over
the network. Where a specific profile might contain a specific
set of FreeBSD software to install, additional packages, and
configuration actions that make it more ideal for a specific
environment (ie FreeBSD 4.3 Secure Web Server Profile)</p>
<p>The system can currently be used to install a FreeBSD system
or perform the most simple of upgrades but many features are
absent. In particular, the client is in its infancy and much work
remains to be done. We need additional developers so please get
in touch with us at
<a href="mailto:updater@osd.bsdi.com">updater@osd.bsdi.com</a>
if you are interested in spending some cycles on this.</p>
</body>
</project>
<project>
<title>"Close a PR drive"</title>
<contact>
<person>
<name>
<given>Poul-Henning</given>
<common>Kamp</common>
</name>
<email>phk@FreeBSD.org</email>
</person>
</contact>
<url href="http://phk.freebsd.dk/Gnats/" />
<body>
<p>Poul-Henning Kamp kicked off a drive to get our GNATS PR
database cleaned up so the wheat can be sorted from the chaff.
Progress is good, but there is still a lot of work to do. Give a
hand if you can. Remember: every unhandled PR is a pissed off
contributor or user.</p>
</body>
</project>
<project>
<title>CVSROOT script rewrite/tidy</title>
<contact>
<person>
<name>
<given>Josef</given>
<common>Karthauser</common>
</name>
<email>joe@FreeBSD.org</email>
</person>
</contact>
<body>
<p>I'm in the process of rewriting the CVSROOT/scripts to make
them more clean and configurable. A lot of other projects also
use these and so it makes sense to make them as easy to use in
other environments as possible.</p>
<p>Status: work in progress. There is now a configuration file,
but not all the scripts use it yet.</p>
</body>
</project>
<project>
<title>DEVFS</title>
<contact>
<person>
<name>
<given>Poul-Henning</given>
<common>Kamp</common>
</name>
<email>phk@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Work is progressing on implementing true cloning devices in
DEVFS. Brian Somers and Poul-Henning Kamp are working to make
if_tun the first truly cloning driver in the system. Next will be
the pty driver and the bpf driver.</p>
<p>From July 1st DEVFS will be standard in -current.</p>
</body>
</project>
<project>
<title>digi driver</title>
<contact>
<person>
<name>
<given>Brian</given>
<common>Somers</common>
</name>
<email>brian@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Added the digi driver. Initial work was done by John Prince
&lt;johnp@knight-trosoft.com&gt;, but all the modular stuff was
done by me and initial work on supporting Xe and Xi cards (ala
dgb) was done by me. I'm now awaiting an Xe card being sent from
joerg@ (almost a donation) so that I can get that side of things
working properly.</p>
</body>
</project>
<project>
<title>Diskcheckd</title>
<contact>
<person>
<name>
<given>Poul-Henning</given>
<common>Kamp</common>
</name>
<email>phk@FreeBSD.org</email>
</person>
</contact>
<url
href="http://phantom.cris.net/freebsd/projects/viewproj.php?p_id=15" />
<body>
<p>Ben Smithurst has written a "diskcheckd" daemon which will
read all sectors on the disks over a configured period. With
recent increases in disksizes it is by no means a given that disk
read errors will be discovered before they are fatal. This daemon
will hopefully result in the drive firmware being able to
relocate bad sectors before they become unreadable. This code is
now committed to 5.0-CURRENT.</p>
</body>
</project>
<project>
<title>if_fxp driver</title>
<contact>
<person>
<name>
<given>Jonathan</given>
<common>Lemon</common>
</name>
<email>jlemon@FreeBSD.org</email>
</person>
</contact>
<body>
<p>In the last month (May-June), the new fxp driver was brought
into -stable. This new driver uses the common MII code, so
support for new PHYs is easy to add. Support for the new Intel
82562 chips was added. The driver was updated to add VLAN support
and a workaround for a bug affecting Intel 815-based boards.</p>
</body>
</project>
<project>
<title>Java Project</title>
<contact>
<person>
<name>
<given>Greg</given>
<common>Lewis</common>
</name>
<email>glewis@eyesbeyond.com</email>
</person>
</contact>
<body>
<p>The FreeBSD Java Project has continued its "behind the scenes"
work over the last month. Progress was made both technically,
with the help of Bill Huey (of Wind River), on a port of JDK
1.3.1 and legally, with Nate Williams continuing negotiations
with Sun on a mutually acceptable license to release a binary
Java 2 SDK under. The JDK 1.2.2 port has also seen some
development, with a new patchset likely to be released soon which
includes JPDA and NetBSD support (the latter courtesy of Scott
Bartram).</p>
</body>
</project>
<project>
<title>Kernel Graphics Interface port</title>
<contact>
<person>
<name>
<given>Nicolas</given>
<common>Souchu</common>
</name>
<email>nsouch@fr.alcove.com</email>
</person>
</contact>
<url href="http://kgi.sourceforge.net/" />
<body>
<p>The Kernel Graphics Interface project has worked for several
years to provide a framework for graphic drivers under Linux
receiving input from other groups like the UDI project. Currently
the KGI core implementation is quite settled, as is the driver
coding model as a whole. Work is being done to newbussify KGI and
produce a kld, as part of a future redesign of the graphics
subsystem in FreeBSD. KGI will be an alternative for graphic card
producers that don't accept the XFree86 model of userland graphic
adapters and will also provide accelerated support for any other
graphic alternative.</p>
</body>
</project>
<project>
<title>libh Project</title>
<contact>
<person>
<name>
<given>Alexander</given>
<common>Langer</common>
</name>
<email>alex@FreeBSD.org</email>
</person>
<person>
<name>
<given>Nathan</given>
<common>Ahlstrom</common>
</name>
<email>nra@FreeBSD.org</email>
</person>
</contact>
<url href="http://people.freebsd.org/~alex/libh/" />
<body>
<p>The libh project is a next generation sysinstall. It is
written in C++ using QT for its graphical frontend and tvision
for its console support. The menus are scriptable via an embedded
tcl interpreter. It has been growing functionality quite a bit
lately, including a new disklabel editor. Current work is on
installation scripts for CDROM, FTP, ... installs as well as a
fully functional standalone disk-partition and label editor. The
GUI API was extended a little and many bugs were fixed. There
seems to be some interest in i18n work.</p>
</body>
</project>
<project>
<title>Mount(2) API</title>
<contact>
<person>
<name>
<given>Poul-Henning</given>
<common>Kamp</common>
</name>
<email>phk@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Maxime Henrion is working on implementing a new and more
extensible mount(2) systemcall, mainly to overcome the 32 bits
for mountoptions limit, secondary goal to make it possible to
mount filesystems from inside the kernel.</p>
</body>
</project>
<project>
<title>OLDCARD pccard implementation</title>
<contact>
<person>
<name>
<given>Warner</given>
<common>Losh</common>
</name>
<email>imp@FreeBSD.org</email>
</person>
</contact>
<body>
<p>In the last two months, the OLDCARD pccard implemenation was
rototilled to within an inch of its life. Many new pci cardbus
bridges were added. Power handling was improved. PCI Card cardbus
bridges are nearly supported and should be committed in early
June to the tree. This will likely be the last major work done on
OLDCARD. After pci cards are supported, work will shift to
improving NEWCARD.</p>
</body>
</project>
<project>
<title>PowerPC Port</title>
<contact>
<person>
<name>
<given>Benno</given>
<common>Rice</common>
</name>
<email>benno@FreeBSD.org</email>
</person>
</contact>
<body>
<p>The PowerPC port is proceeding well. All seems to be working
in pmap.c after a number of problems encountered where FreeBSD
passes a vm_page_t to a NetBSD-derived function that expects a
vm_offset_t. Then after debugging the atomic operations code, I'm
now at the point where VM appears to be initialised and it's now
hanging while in sys/kern/kern_malloc.c:kmeminit(). Progress
continues. =)</p>
</body>
</project>
<project>
<title>PPP</title>
<contact>
<person>
<name>
<given>Brian</given>
<common>Somers</common>
</name>
<email>brian@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Developing full MPPE support for Andre Opperman @ Monzoon in
Switzerland. Work is now complete and will eventually be brought
into -current, but no dates are yet known.</p>
</body>
</project>
<project>
<title>pseudofs</title>
<contact>
<person>
<name>
<given>Dag-Erling</given>
<common>Smorgrav</common>
</name>
<email>des@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Pseudofs is a framework for pseudo-filesystems, like procfs
and linprocfs. The goal of pseudofs is twofold:</p>
<ul>
<li>eliminate code duplication between (and within) procfs and
linprocfs</li>
<li>isolate procfs and linprocfs from the complexities of the
vfs system to simplify maintenance and further
development.</li>
</ul>
<p>Pseudofs has reached the point where it is sufficiently
functional and stable that linprocfs has been almost fully
reimplemented on top of it; the only bit that's missing is the
proc/&lt;pid&gt;/mem file.</p>
<p>The primary to-do item for pseudofs right now is to add
support for writeable files (which are required for procfs, and
are quite a bit less trivial to handle than read-only files). In
addition, pseudofs needs either generic support for raw
(non-sbuf'ed, possibly mmap'able) files, or failing that,
special-case code to handle proc/&lt;pid&gt;/mem.</p>
</body>
</project>
<project>
<title>RELNOTESng</title>
<contact>
<person>
<name>
<given>Bruce</given>
<common>A. Mah</common>
</name>
<email>bmah@FreeBSD.org</email>
</person>
</contact>
<url href="http://people.freebsd.org/~bmah/relnotes/" />
<body>
<p>RELNOTESng is the name I've given to the rewrite of the *.TXT
files that typically accompany a FreeBSD release. The information
from these files (which include, among other things, the release
notes and the supported hardware list) have been reorganized and
converted to SGML. This helps us produce the documentation in
various formats, as well as facilitating the maintainence of
documentation for multiple architectures. This work was recently
committed to -CURRENT, and I intend to MFC it to 4-STABLE before
4.4-RELEASE.</p>
</body>
</project>
<project>
<title>SMPng Project</title>
<contact>
<person>
<name>
<given>John</given>
<common>Baldwin</common>
</name>
<email>jhb@FreeBSD.org</email>
</person>
<person>
<name>
<given>Jake</given>
<common>Burkholder</common>
</name>
<email>jake@FreeBSD.org</email>
</person>
<person>
<name>
<given>SMP</given>
<common>Mailing list</common>
</name>
<email>smp@FreeBSD.org</email>
</person>
</contact>
<url href="http://www.freebsd.org/~jasone/smp/" />
<body>
<p>The SMPng project aims to provide multithreaded support for
the FreeBSD kernel. Currently the kernel still runs almost
exclusively under the Giant kernel lock. Recently, progress has
been made in locking the process group and session structures as
well as file descriptors by Seigo Tanimura-san. Alfred Perlstein
has also added in a giant lock around the entire virtual memory
(VM) subsystem which will eventually be split up into several
smaller locks. The locking of the VM subsystem has proved tricky,
and some of the current effort is focused on finding and fixing a
few remaining bugs in on the alpha architecture.</p>
</body>
</project>
<project>
<title>SMPng mbuf allocator</title>
<contact>
<person>
<name>
<given>Bosko</given>
<common>Milekic</common>
</name>
<email>bmilekic@FreeBSD.org</email>
</person>
</contact>
<url href="http://people.freebsd.org/~bmilekic/code/mb_slab/" />
<body>
<p>mb_alloc is a new specialized allocator for mbufs and mbuf
clusters. Presently, it offers various important advantages over
the old (status quo) mbuf allocator, particularily for MP
machines. Additionally, it is designed with the possibility of
future enchancements in mind.</p>
<p>Presently in initial review &amp; testing stages, most of the
code is already written.</p>
</body>
</project>
<project>
<title>Sparc64 Port</title>
<contact>
<person>
<name>
<given>Jake</given>
<common>Burkholder</common>
</name>
<email>jake@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Work has (re)started on a port of FreeBSD to the UltraSPARC
architecture, specifically targeting PCI based workstations. Jake
Burkholder will be porting the kernel, and Ade Lovett has
expressed an interest in working on userland. Recent work on the
project includes:</p>
<ul>
<li>built a gnu cross toolchain targeting sparc64</li>
<li>obtained remote access to an ultra 5 development machine
(thanks to emmy)</li>
<li>developed a minimal set of headers and source files to
allow the kernel to be compiled and linked</li>
<li>implemented a mini-loader which relocates the kernel, maps
it into the tlbs and calls it</li>
<li>nabbed Benno Rice's openfirmware console driver which
allows printf and panic to work</li>
</ul>
<p>At this point the kernel can be net-booted and prints the
FreeBSD copyright before calling code that is not yet
implemented. I am currently working on a design for the pmap
module and plan to begin implementation in the next few days.</p>
</body>
</project>
<project>
<title>TrustedBSD</title>
<contact>
<person>
<name>
<given>Robert</given>
<common>Watson</common>
</name>
<email>rwatson@FreeBSD.org</email>
</person>
</contact>
<url href="http://www.TrustedBSD.org/" />
<body>
<p>The TrustedBSD Project seeks to improve the security of the
FreeBSD operating system by adding new security features, many
derived from common trusted operating system requirements. This
includes Access Control Lists (ACLs), Fine-grained Event Logging
(Audit), Fine-grained Privileges (Capabilities), Mandatory Access
Control (MAC), and other architecture features, including file
system extended attributes, and improved object labeling.</p>
<p>Individual feature status reports are documented seperately
below; in general, basic features (such as EAs, ACLs, and kernel
support for Capabilities) will be initially available in
5.0-RELEASE, conditional on specific kernel options. A
performance-enhanced version of EAs is currently being targetted
at 6.0-RELEASE, along with an integrated capability-aware
userland, and MAC support.</p>
</body>
</project>
<project>
<title>TrustedBSD: ACLs</title>
<contact>
<person>
<name>
<given>Chris</given>
<common>D. Faulhaber</common>
</name>
<email>jedgar@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Patches are now available to add ACL support to cp(1) and
mv(1) along with preliminary support for install(1). Ilmar's i18n
patches for getfacl(1) and setfacl(1) need to be updated for the
last set of changes and committed. Some other functional
improvements are also in the pipeline.</p>
</body>
</project>
<project>
<title>TrustedBSD Capabilities</title>
<contact>
<person>
<name>
<given>Thomas</given>
<common>Moestl</common>
</name>
<email>tmm@FreeBSD.org</email>
</person>
</contact>
<body>
<p>The kernel part of the capability implementation is mostly
finished; all uses of suser() and suser_xxx() and nearly all
comparisons of uid's with 0 have been converted to use the newly
introduced cap_check() call. Some details still need
clarification. More documentation for this needs to be done.</p>
<p>POSIX.2c-compatible getfcap and setfcap programs have been
written. Experimental capability support in su(1), login(1),
install(1) and bsd.prog.mk is being tested.</p>
<p>Support for capabilities, ACL's, capabilities and MAC labels
in tar(1) is being developed; only the capability part is tested
right now. Generic support for extended attributes is planned,
this will require extensions to the current EA interface, which
are written and will probably be committed to -CURRENT in a few
weeks. A port of these features to pax(1) is planned.</p>
</body>
</project>
<project>
<title>TrustedBSD MAC and Object Labeling</title>
<contact>
<person>
<name>
<given>Robert</given>
<common>Watson</common>
</name>
<email>rwatson@FreeBSD.org</email>
</person>
</contact>
<url href="http://www.TrustedBSD.org/" />
<body>
<p>An initial prototype of a Mandatory Access Control
implementation was completed earlier this year, supporting
Multi-Level Security, Biba Integrity protection, and a more
general jail-based access control model. Based on that
implementation, I'm now in the process of improving the FreeBSD
security abstractions to simplify both the implementation and
integration of MAC support, as well as increase the number of
kernel objects protected by both discretionary and mandatory
protection schemes. Generic object labeling introduces a
structure not dissimilar in properties to the kernel ucred
structure, only it is intended to be associated with kernel
objects, rather than kernel subjects, permitting the creation of
generic security protection routines for objects. This would
allow the easy extension of procfs and devfs to support ACLs and
MAC, for example. A prototype is underway, with compiling and
running code and simple protections now associated with
sysctl's.</p>
</body>
</project>
</report>

File diff suppressed because it is too large Load diff

View file

@ -1,808 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN" [
<!ENTITY base CDATA "../..">
<!ENTITY date "$FreeBSD$">
<!ENTITY title "FreeBSD Status Report, July 2001">
<!ENTITY % includes SYSTEM "../../includes.sgml"> %includes;
]>
<html>
&header;
<h2>Introduction</h2>
<p>Last month's status report was apparently a great success: I received
countless e-mails with comments, questions, and suggestions. I've tried
to incorporate any suggestions and address any problems from these e-mails
in this month's report, which captures a far more extensive snapshot of
FreeBSD activity in the last month. Unlike last month's report, it does a
better job of reflecting non-development activity, such as on-going
conference planning, documentation, and so on. This is a trend I hope to
see improve in future months as well.</p>
<p>On the topic of conferences, in the future I'd like to report more on
publication activities relating to FreeBSD, including online journals with
articles relating to FreeBSD, paper journals, conference papers, and so
on. Likewise, I would be interested in including references to Call for
Papers relating to FreeBSD. I'll take this opportunity to plug both
registration and paper submission for BSDCon Europe in November, which has
status included in this report, and for the general BSD Conference being
hosted by USENIX in February. Your attendance and submissions make these
conferences "happen", and promote FreeBSD as a platform for new research,
feature development, and application products. Work of extremely high
calibre is performed on FreeBSD, and we need to get the word out. </p>
<h2>Submission for Future Editions</h2>
<p>Next month, we're maintaining much the same submission requirements: reports
should be one or two paragraphs long, sent by e-mail, and approximate the
layout of the entries this month (Project, Contact, URL, and text). I'll
send out reminders again over the week before the deadline, with more
specific instructions. An area where I'd like to explore improvement lies
in the coordination of related status reports for larger projects, such as
new architectural work or platform ports. This might even have the effect
of encouraging communication within these projects :-). I'd like to
continue to focus on pulling in a broader range of groups and their
activities, including the Security Officer, Release Engineer, and Core
Team. </p>
<p><i>-- Robert Watson &lt;<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>&gt;</i></p>
<h2>Projects</h2>
<p>The following projects submitted summaries for the July 2001 report:</p>
<ul>
<li><a href="#acpi">ACPI</a></li>
<li><a href="#arm">ARM Port</a></li>
<li><a href="#bind9">BIND 9</a></li>
<li><a href="#binup">binup</a></li>
<li><a href="#bsdcon-europe">BSDCon Europe</a></li>
<li><a href="#cam">CAM</a></li>
<li><a href="#close-pr">"Close a PR drive"</a></li>
<li><a href="#docproj">Documentation Project</a></li>
<li><a href="#fibre">Fibre Channel Support</a></li>
<li><a href="#watchpoints">Hardware Watchpoints in the Kernel Debugger</a></li>
<li><a href="#ieee802.11">ifconfig support for IEEE 802.11 wireless devices</a></li>
<li><a href="#jailng">jailNG</a></li>
<li><a href="#java">FreeBSD Java Project</a></li>
<li><a href="#jpman">jpman project</a></li>
<li><a href="#ksummit">Kernel Summit - Usenix 2001</a></li>
<li><a href="#kse">KSE threading the kernel</a></li>
<li><a href="#status">FreeBSD Monthly Development Status Reports</a></li>
<li><a href="#netbsd-rcd">NetBSD rc.d port</a></li>
<li><a href="#ng-atm">Netgraph ATM</a></li>
<li><a href="#net-cloning">network device cloning</a></li>
<li><a href="#ngpt">Next Generation POSIX threads (NGPT)</a></li>
<li><a href="#oldcard">OLDCARD upgrade to support PCI cards</a></li>
<li><a href="#orp">Open Runtime Platform (ORP)</a></li>
<li><a href="#openpackages">OpenPackages</a></li>
<li><a href="#pam">PAM</a></li>
<li><a href="#ppc">PowerPC Port</a></li>
<li><a href="#ppp-ipv6">PPP IPv6 Support</a></li>
<li><a href="#ppp-hurd-linux">Porting ppp to hurd & linux</a></li>
<li><a href="#pppoed">pppoed</a></li>
<li><a href="#prfw">PRFW - Hooks within the FreeBSD kernel</a></li>
<li><a href="#scsi-tape">SCSI Tape Support</a></li>
<li><a href="#smpng">SMPng</a></li>
<li><a href="#smpng-mbuf">SMPng mbuf allocator</a></li>
<li><a href="#sparc64">sparc64 port</a></li>
<li><a href="#sparc64-loader">FreeBSD/sparc64 kernel loader</a></li>
<li><a href="#syn-cache">SYN cache implemetation for FreeBSD</a></li>
<li><a href="#trustedbsd">TrustedBSD Project</a></li>
</ul>
<hr>
<a name="acpi"></a>
<h3>ACPI</h3>
<p><i>Contact: Mike Smith &lt;<a href="mailto:msmith@FreeBSD.org">msmith@FreeBSD.org</a>&gt;</i></p>
<p>ACPI (Advanced Configuration and Power Interface) is an industry
standard which obsoletes APM, Intel MPS, PnPBIOS, and other Intel PC
firmware interface standards. It is also used on the IA64 platform.
More information on ACPI is available at </p>
<a href="http://developer.intel.com/technology/iapc/acpi">
http://developer.intel.com/technology/iapc/acpi</a>
<p>The FreeBSD ACPI subsystem project is based heavily on the Intel
ACPI Component Architecture. This status report outlines the current
state of the project; future updates will focus on changes as they
occur.</p>
<p>The Intel ACPI interpreter is fully integrated, although bugs are still
coming out of the woodwork occasionally.</p>
<ul>
<li>PCI bus detection and interrupt routing are functional, but power
management interaction will require work on the core PCI subsystem.</li>
<li>Non-PCI motherboard peripheral probing is implemented, but believed
to have problems on some systems.</li>
<li>A power policy manager has been implemented. The initial policy
manager has two modes, "performance" and "economy".</li>
<li>CPU speed throttling is integrated with the platform power policy.</li>
<li>System thermal monitoring is implemented, but fan control is
believed to have problems.</li>
<li>Pushbutton suspend and power-off is implemented.</li>
<li>System timekeeping using the ACPI timer is supported.</li>
<li>Battery status monitoring is implemented.</li>
</ul>
<p>Work is ongoing in the following areas:</p>
<ul>
<li>System suspend and resume.</li>
<li>Timekeeper accuracy/reliability.</li>
<li>Power profiles.</li>
<li>User-level management interfaces.</li>
<li>PCI power manangement.</li>
<li>Bug-hunting.</li>
</ul>
<hr>
<a name="arm"></a>
<h3>ARM Port</h3>
<p><i>Contact: Stephane E. Potvin &lt;<a href="mailto:sepotvin@videotron.ca">sepotvin@videotron.ca</a>&gt;</i></p>
<p>The ARM port is currently going pretty well. The kernel is compiling
and is able to boot to the point where it panics trying to initialize
the network subsystem. The current reference platform is the Netwinder
but this may change as many people expressed interest in a more broadly
available platform. Things that need to be done before it can get
further includes adding footbridge, timer and interrupt supports. The
pmap module is not completed yet either.</p>
<hr>
<a name="bind9"></a>
<h3>BIND 9</h3>
<p><i>Contact: Doug Barton &lt;<a href="mailto:dougb@freebsd.org">dougb@freebsd.org</a>&gt;, Jeroen Ruigrok &lt;<a href="mailto:asmodai@freebsd.org">asmodai@freebsd.org</a>&gt;</i></p>
<p>Now that BIND 8.2.4 is finally imported the time has come to look at
getting BIND 9 imported into CURRENT. The current idea is to have it
imported alongside BIND 8 so that people can play with either one until
all import problems have been taken care of and people have tested it a
bit.</p>
<hr>
<a name="binup"></a>
<h3>binup</h3>
<p><i>Contact: Eric Melville &lt;<a href="mailto:eric@FreeBSD.org">eric@FreeBSD.org</a>&gt;</i></p>
<p>Although gaining a new name, the project has been at a standstill due to
both resource availability during the move between BSDi and Wind River,
and other commitments of the developers. The project should obtain an
official mailing list, as well as return to an active state after the
dust settles.</p>
<hr>
<a name="bsdcon-europe"></a>
<h3>BSDCon Europe</h3>
<p><i>URL: <a href="http://www.bsdconeurope.org">http://www.bsdconeurope.org</a></i></p>
<p><i>Contact: Paul Richards &lt;<a href="mailto:paul@freebsd-services.co.uk">paul@freebsd-services.co.uk</a>&gt;, Josef Karthauser &lt;<a href="mailto:joe@tao.org.uk">joe@tao.org.uk</a>&gt;</i></p>
<p>The conference will take place at the Thistle Hotel, Brighton, UK from
9-11 November 2001.</p>
<p>The aim of the conference is to provide a focal point for European
users and developers of all the BSD derived operating systems. The
format will be similar to other conferences, with 2 days of technical
sessions over the Saturday and Sunday.</p>
<p>We'll be finalising the schedule towards the end of the month and
anybody who is interested in doing a talk should contact us asap. There
are no restrictions on the use of talks, if it's been done before we
may still be interested in having it presented to an European audience,
and we make no claims to the talks so speakers are free to present the
talks again at other conferences.</p>
<p>We're also still looking for sponsors.</p>
<p>We had 80 pre-registrations in the first week so we're expecting a good
turnout.</p>
<hr>
<a name="cam"></a>
<h3>CAM</h3>
<p><i>Contact: &lt;<a href="mailto:mjacob@freebsd.org">mjacob@freebsd.org</a>&gt;, &lt;<a href="mailto:gibbs@freebsd.org">gibbs@freebsd.org</a>&gt;, &lt;<a href="mailto:ken@freebsd.org">ken@freebsd.org</a>&gt;</i></p>
<p>The new CAM transport code is starting to get supported in more HBAs
and to get refined so that it does the intended per-protocol support.
No progress on doing any SMPNG work for CAM has been made yet. This is
a fairly high priority.</p>
<hr>
<a name="close-pr"></a>
<h3>"Close a PR drive"</h3>
<p><i>URL: <a href="http://phk.freebsd.dk/Gnats/">http://phk.freebsd.dk/Gnats/</a></i></p>
<p><i>Contact: &lt;<a href="mailto:phk@FreeBSD.org">phk@FreeBSD.org</a>&gt;</i></p>
<p>Thanks to various outstanding individual efforts, we are now
down to just below 2300 open bug-reports. This means that we
have fought our way back to the level we had around march 2000.</p>
<hr>
<a name="docproj"></a>
<h3>Documentation Project</h3>
<p><i>URL: <a href="http://www.FreeBSD.org/docs.html">http://www.FreeBSD.org/docs.html</a></i></p>
<p><i>URL: <a href="http://www.FreeBSD.org/docproj/index.html">http://www.FreeBSD.org/docproj/index.html</a></i></p>
<p><i>Contact: Documentation Project &lt;<a href="mailto:doc@FreeBSD.org">doc@FreeBSD.org</a>&gt;</i></p>
<p>Work continues (in large part sponsored by WRS) on updating the
Handbook ready for the second print edition. There has been a flurry
of activity in this area recently, and the ToDo list can be seen at</p>
<p><a href="http://www.freebsd.org/docproj/handbook.html">
http://www.freebsd.org/docproj/handbook.html</a></p>
<p>Dima and others are doing a stellar job of keeping up with the steady
flow of incoming PRs relating to the documentation project.</p>
<p>The Developers' Handbook,
<p><a href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/index.html">
http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/index.html</a></p>
<p>is a year old; it contains a wealth of useful content for developers
developing on, or for, FreeBSD. As ever, more contributions are
always required, not only for the developers' handbook, but for all of
the FreeBSD documentation set.</p>
<hr>
<a name="fibre"></a>
<h3>Fibre Channel Support</h3>
<p><i>Contact: &lt;<a href="mailto:mjacob@feral.com">mjacob@feral.com</a>&gt;</i></p>
<p>The basic design hasn't changed and this project mainly is in the
phase of continued hardening and test case development. The next
major feature will be to fully integrate into the new CAM TRAN
code and to fully support on the fly device addition and removal.
The only HBA supported is QLogic at this time. Future support for
the QLogic line is planned to have 2300 (2Gb) and IP support before
October.</p>
<hr>
<a name="watchpoints"></a>
<h3>Hardware Watchpoints in the Kernel Debugger</h3>
<p><i>Contact: Brian Dean &lt;<a href="mailto:bsd@FreeBSD.org">bsd@FreeBSD.org</a>&gt;</i></p>
<p>Hardware watchpoints are now available for kernel debugging on the
IA32 (i386) architecture. One can now set hardware watchpoints
using the new ddb command 'hwatch', which is analogous to the
existing 'watch' command. Alternatively, if greater flexibility is
required, direct access to the debug registers is available using
the ddb 'set' command which allows complete control over the
processor hardware debug facilities. Hardware watchpoints are very
useful in tracking down those elusive memory overwrite bugs in the
kernel. Hardware watchpoints can even be used to set a code
breakpoint in ROM, which is commonly found in embedded systems.</p>
<hr>
<a name="ieee802.11"></a>
<h3>ifconfig support for IEEE 802.11 wireless devices</h3>
<p><i>Contact: Brooks Davis &lt;<a href="mailto:brooks@FreeBSD.org">brooks@FreeBSD.org</a>&gt;</i></p>
<p>Support for configuring IEEE 802.11 wireless devices via ifconfig
has been committed to -current and -stable. It contains most of
the functionality needed to configure an wireless device. Some
missing features are being worked on including integrated support
for DHCP so a single entry in /etc/rc.conf can be used to fully
configure a wireless device on a DHCP lan and setting the CTS/RTS
threshold. Currently the an(4) and wi(4) drivers are supported
in -current and -stable with the awi(4) device supported in
-current. Further work is needed to support Frequency Hopping
devices such as ray(4).</p>
<hr>
<a name="jailng"></a>
<h3>jailNG</h3>
<p><i>Contact: Robert Watson &lt;<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>&gt;</i></p>
<p>jailNG is a from-scratch rewrite of the popular jail(8) service,
focussing on improved management functions, as well as more fine-grained
configurability. An initial prototype has been written, based on
explicitly named and configured jails, and work is proceeding on
userland integration. Currently, it's not clear if the timeline for
this will be 5.0-RELEASE, or 5.1-RELEASE.</p>
<hr>
<a name="java"></a>
<h3>FreeBSD Java Project</h3>
<p><i>URL: <a href="http://www.freebsd.org/java/">http://www.freebsd.org/java/</a></i></p>
<p><i>Contact: &lt;<a href="mailto:glewis@eyesbeyond.com">glewis@eyesbeyond.com</a>&gt;</i></p>
<p>The main development in the FreeBSD Java Project over the last month was
the release of an initial "Developers Only" patchset for the JDK 1.3.1.
Since that release progress had been made towards a much more useable
alpha quality patchset which is likely to be turned into a port, as per
the current JDK 1.2.2 patchset. This new patchset will feature a number
of bugfixes, which essentially get the JDK to a working state for early
adopters, and an initial implementation of "native threads" based on
FreeBSD's userland pthreads. Unfortunately this implementation isn't
fully functional, but is included in the hope of more getting more
eyesballs on the code (particularly experience pthread programmers).
We'd also like to welcome Fuyuhiko Maruyama-san as a new committer, the
usual punishment for too many good patches.</p>
<hr>
<a name="jpman"></a>
<h3>jpman project</h3>
<p><i>URL: <a href="http://www.jp.FreeBSD.org/man-jp/">http://www.jp.FreeBSD.org/man-jp/ (in Japanese)</a></i></p>
<p><i>Contact: &lt;<a href="mailto:man-jp@jp.FreeBSD.org">man-jp@jp.FreeBSD.org</a>&gt;</i></p>
<p>We have been working to provide Japanese version of FreeBSD online
manuals, since 1996. Currently, RELENG_4 manuals are based.
Translated versions are placed on doc/ja_JP.eucJP/man and provided
to users using ports/japanese/man-doc. Also, we discuss about
related commands (e.g. ports/japanese/man and ports/japanese/groff).</p>
<hr>
<a name="ksummit"></a>
<h3>Kernel Summit - Usenix 2001</h3>
<p><i>URL: <a href="http://www.FreeBSD.org/~jhb/summit/usenix01/">http://www.FreeBSD.org/~jhb/summit/usenix01/</a></i></p>
<p><i>Contact: John Baldwin &lt;<a href="mailto:jhb@FreeBSD.org">jhb@FreeBSD.org</a>&gt;</i></p>
<p>The first FreeBSD kernel summit meeting was held June 29-30, 2001 in
Boston, MA at the Usenix 2001 Annual Technical Conference. Links
to a variety of files are posted on the web site.</p>
<p>Note: I (jhb) am still working on writing up a general summary of the
meeting. When that is completed it will be posted here and mailed to the
-hackers mailing list.</p>
<hr>
<a name="kse"></a>
<h3>KSE threading the kernel</h3>
<p><i>URL: <a href="http://people.freebsd.org/~jasone/kse/">http://people.freebsd.org/~jasone/kse/</a></i></p>
<p><i>Contact: &lt;<a href="mailto:julian@elischer.org">julian@elischer.org</a>&gt;</i></p>
<p>I'm working on multithreading the kernel. So far I have over 400KB of
diffs relative to todays -current (I'm keeping my tree updated with
changes as they occur rather than get hit with a big updte at the end).</p>
<p>I have split the proc structure and am changing most of the kernel to
pass around a thread identifier instead of a proc structure.</p>
<p>The following interfaces have been changed so far:</p>
<ul>
<li>device devsw entrys</li>
<li>vfs calls</li>
<li>mutexes</li>
<li>events</li>
<li>system calls</li>
<li>sheduler</li>
<li>+ a lot of code in between.</li>
</ul>
<p>I have still a lot of work to go with a lot of "dumb editing" (s/struct
proc \*p/struct thread \*td/) usually I change a few items and then fix
everything that breaks when I try compile it. I'd like to check it in
on a branch so others can help the editing but haven't worked out the
best way to do it yet.</p>
<p>I have implemented changes to the scheduler so that kse's are scheduled
instead of processes, and threads sleep, letting the kse pick up a new
thread. but it's not anywhere ready yet (heck it doesn't compile yet
:-)</p>
<p>Note that I have not yet updated the document listed above.. everywhere
it mentions "ksec" or "KSE-context", the code uses the word "thread". I
will update it soon as Jason has sent me the source.</p>
<hr>
<a name="status"></a>
<h3>FreeBSD Monthly Development Status Reports</h3>
<p><i>URL: <a href="http://www.FreeBSD.org/news/status/">http://www.FreeBSD.org/news/status/</a></i></p>
<p><i>Contact: Robert Watson &lt;<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>&gt;, Chris Costello &lt;<a href="mailto:chris@FreeBSD.org">chris@FreeBSD.org</a>&gt;</i></p>
<p>The FreeBSD Monthly Development Status Report aims to keep users and
developers up-to-date on the latest goings-on in the FreeBSD project by
providing summaries of each project and its status. At the time of this
writing, the July 2001 status report is being prepared and is very near
release. The FreeBSD Web site now has a Status Reports section, which,
when the July 2001 report is released, will be updated to include a
link to an HTML-ified version.</p>
<hr>
<a name="netbsd-rcd"></a>
<h3>NetBSD rc.d port</h3>
<p><i>URL: <a href="http://groups.yahoo.com/group/FreeBSD-rc">http://groups.yahoo.com/group/FreeBSD-rc</a></i></p>
<p><i>Contact: &lt;<a href="mailto:dougb@FreeBSD.org">dougb@FreeBSD.org</a>&gt;, &lt;<a href="mailto:sheldonh@FreeBSD.org">sheldonh@FreeBSD.org</a>&gt;</i></p>
<p>The NetBSD rc.d port aims to improve the FreeBSD startup process by
porting Luke Mewburn's rc.d work from NetBSD to FreeBSD. This will
score FreeBSD startup and shutdown dependencies without losing the
traditional and much loved monolothic configuration file system.</p>
<p>Luke Mewburn's USENIX paper and slides on the system as implemented in
NetBSD are available here:</p>
<p><a href="http://groups.yahoo.com/group/FreeBSD-rc/message/3">
http://groups.yahoo.com/group/FreeBSD-rc/message/3</a></p>
<p>Interested parties are urged to study this material before joining the
discussion list.</p>
<p>The intention at this stage is to decide on an approach that will
ensure that the differences between the NetBSD rc.d system and the
system as ported to FreeBSD will be kept to a minimum. This will
probably involve discussions with Luke around those areas of the
system that are identified as areas for potential improvement.</p>
<hr>
<a name="ng-atm"></a>
<h3>Netgraph ATM</h3>
<p><i>Contact: Hartmut Brandt &lt;<a href="mailto:brandt@fokus.gmd.de">brandt@fokus.gmd.de</a>&gt;</i></p>
<p>The goal of this project is the implementation of ATM signalling and
other ATM protocols by means of the netgraph(4) framework. This should
provide an easily extendable architecture for using ATM on FreeBSD.
Currently the full UNI4.0 stack (except for the LIJ capability) has
been implemented, including ILMI and a first version of the ATM Forum
API for UNI. An implementation of Classical IP over ATM is also
available. Drivers have been implemented for the Fore PCA200E and Fore
HE-155 cards.</p>
<hr>
<a name="net-cloning"></a>
<h3>network device cloning</h3>
<p><i>Contact: Brooks Davis &lt;<a href="mailto:brooks@FreeBSD.org">brooks@FreeBSD.org</a>&gt;</i></p>
<p>Network device cloning support has been imported from NetBSD.
This allows virtual devices to be allocated on demand rather then
being staticly allocated at compile time. Our implementation
differs slightly from that of NetBSD's in that we allow both the
creation of specific devices (i.e. gif0) and arbitrary devices
instead of just allowing specific devices. Currently, the only
device in the tree which has been converted is the gif(4) device
which has been converted in both -current and -stable. Work is
ongoing to convert all other virtual network devices with work
in progress on faith, stf, and vlan interfaces. In general this
conversion is accompanied by appropriate modifications to make
these devices fully modular.</p>
<hr>
<a name="ngpt"></a>
<h3>Next Generation POSIX threads (NGPT)</h3>
<p><i>URL: <a href="http://oss.software.ibm.com/developerworks/opensource/pthreads/">http://oss.software.ibm.com/developerworks/opensource/pthreads/</a></i></p>
<p><i>Contact: &lt;<a href="mailto:arun@sharmas.dhs.org">arun@sharmas.dhs.org</a>&gt;</i></p>
<h4>Porting NGPT (next generation pthreads) to FreeBSD</h4>
<p>NGPT is an effort led by IBM engineers to implement MxN threads (also
known as many user threads to one kernel thread mapping) on Linux. I
have ported it to FreeBSD to use rfork(2).</p>
<p>The port is right here:</p>
<p><a href="http://www.freebsd.org/cgi/query-pr.cgi?pr=29239">
http://www.freebsd.org/cgi/query-pr.cgi?pr=29239</a></p>
<hr>
<a name="oldcard"></a>
<h3>OLDCARD upgrade to support PCI cards</h3>
<p><i>URL: <a href="http://people.freebsd.org/~imp/oldcard-status.html">http://people.freebsd.org/~imp/oldcard-status.html</a></i></p>
<p><i>Contact: &lt;<a href="mailto:imp@village.org">imp@village.org</a>&gt;</i></p>
<p><i>Funded by: Monzoon Networking, LLC</i></p>
<p>This month has been a month of conventration and consolidation. Much of
the changes from current have been migrating into stable. I've improved
power support, suspend/resume interactions, interrupt handling, and
ability to work after windows/NEWCARD has run. Interrupt routing
continues to be a locking issue for a complete MFC. Current patches
are available at the above website. I'm racing to get this done before
4.4 is released.</p>
<hr>
<a name="orp"></a>
<h3>Open Runtime Platform (ORP)</h3>
<p><i>URL: <a href="http://www.intel.com/research/mrl/orp/">http://www.intel.com/research/mrl/orp/</a></i></p>
<p><i>Contact: &lt;<a href="mailto:arun@sharmas.dhs.org">arun@sharmas.dhs.org</a>&gt;, &lt;<a href="mailto:orp@egroups.com">orp@egroups.com</a>&gt;</i></p>
<p>Information on Intel ORP - a BSD licensed Java VM is right here:</p>
<p><a href="http://www.intel.com/research/mrl/orp/">
http://www.intel.com/research/mrl/orp/</a></p>
<p>A FreeBSD patch has been tested to work with NGPT and submitted to
the ORP project. The patch is available here:</p>
<p><a href="http://www.sharma-home.net/~adsharma/projects/orp/orp-freebsd-1.0.5.patch.txt.gz">
http://www.sharma-home.net/~adsharma/projects/orp/orp-freebsd-1.0.5.patch.txt.gz</a></p>
<p>There are some issues to be ironed out to make it work with FreeBSD's
default (user level) pthread implementation.</p>
<hr>
<a name="openpackages"></a>
<h3>OpenPackages</h3>
<p><i>URL: <a href="http://openpackages.org/">http://openpackages.org/</a></i></p>
<p>OpenPackages intends to create a software packaging system that will
allow third-party programs to be installed, without operating system
dependent changes, on as many platforms as are feasible. OpenPackages
was originally based on code from the BSD ports systems, and has been
improved and extended by developers of many heritages.</p>
<p>The OpenPackages Project is pleased to release the Milestone 2
codebase. This release contains a working package building system and a
single test package. OP currently is known to build on certain
instances of the following operating systems: FreeBSD, HP/UX, IRIX,
Linux (Debian, Red Hat, Suse, Mandrake, TurboLinux, Caldera, etc.),
NetBSD, OpenBSD, Solaris</p>
<hr>
<a name="pam"></a>
<h3>PAM</h3>
<p><i>Contact: Mark R V Murray &lt;<a href="mailto:mark@grondar.za">mark@grondar.za</a>&gt;</i></p>
<p>(First report)</p>
<p>Large cleanup and extension of FreeBSD PAM modules. All modules
are to be documented, consistant in style (style(9) used) and
as complete as possible WRT functionality. Mostly done.</p>
<hr>
<a name="ppc"></a>
<h3>PowerPC Port</h3>
<p><i>Contact: &lt;<a href="mailto:benno@FreeBSD.org">benno@FreeBSD.org</a>&gt;</i></p>
<p>We now have the rudiments of device support. We have a nexus driver for
OpenFirmware machines, along with support for the Apple UniNorth PCI/AGP
host bridge. I'm currently trying to get the USB hardware working so that
I can get closer to having a console driver independant of OpenFirmware,
then I'll be trying to get the system to get to single-user mode using
NFS.</p>
<hr>
<a name="ppp-ipv6"></a>
<h3>PPP IPv6 Support</h3>
<p><i>Contact: &lt;<a href="mailto:brian@freebsd-services.com">brian@freebsd-services.com</a>&gt;</i></p>
<p>Work has begun, but nothing has yet been committed. The NCP
addresses used by ppp have been abstracted and initial support has
been added to the filter set for ipv6 addresses. NCP negotiation
hasn't yet been started.</p>
<hr>
<a name="ppp-hurd-linux"></a>
<h3>Porting ppp to hurd & linux</h3>
<p><i>Contact: &lt;<a href="mailto:brian@Awfulhak.org">brian@Awfulhak.org</a>&gt;</i></p>
<p>Patches have been submitted to get ppp working under HURD, and
mostly under Linux. There are GPL copyright problems that need to
be addressed.</p>
<hr>
<a name="pppoed"></a>
<h3>pppoed</h3>
<p><i>Contact: &lt;<a href="mailto:brian@freebsd-services.com">brian@freebsd-services.com</a>&gt;</i></p>
<p>Making pppoed function in a production environment. Most of the
work is complete and committed. Additional work includes adding a
-l option where ``-l label'' is shorthand for ``-e exec ppp -direct
label'' and discovering why rogue child processes are being left
around.</p>
<hr>
<a name="prfw"></a>
<h3>PRFW - Hooks within the FreeBSD kernel</h3>
<p><i>Contact: Evan Sarmiento &lt;<a href="mailto:ems@open-root.org">ems@open-root.org</a>&gt;</i></p>
<p>PRFW is a set of hooks which I have integrated into the FreeBSD kernel.
This allows modules to easily intercept system calls with less overhead.
It also supports per-pid restrictions, which means, one process may not
be able to use X function in Y manner, but another process may.</p>
<p>Progress: I was working on this in 4.3-RELEASE, but now I'm merging it
into current. I will be submitting a patch to the mailing lists in about
a week.</p>
<hr>
<a name="scsi-tape"></a>
<h3>SCSI Tape Support</h3>
<p><i>Contact: &lt;<a href="mailto:mjacob@feral.com">mjacob@feral.com</a>&gt;</i></p>
<p>This driver is currently not working well under -current and is
undergoing some work at this time. No major design or feature
changes are planned. There was some notion of adding TapeAlert
support, but HP supports that as a binary product via a user
library and it was felt that it'd be more politically prudent
to leave it alone.</p>
<hr>
<a name="smpng"></a>
<h3>SMPng</h3>
<p><i>Contact: Peter Wemm &lt;<a href="mailto:peter@FreeBSD.org">peter@FreeBSD.org</a>&gt;, John Baldwin &lt;<a href="mailto:jhb@FreeBSD.org">jhb@FreeBSD.org</a>&gt;</i></p>
<h4>Development</h4>
<p>In the 'smpng' p4 branch there is code to make the ast() function loop to
close the race when an AST is triggered while we are handling previously
triggered AST's.</p>
<p>In the 'jhb_preemption' p4 branch work is being done to make the kernel
fully preemptive. It is reportedly stable on UP x86, but SMP x86 locks up,
UP alpha has problems during shutdown and can recurse indefinitely until it
exhausts its stack.</p>
<h4>Management</h4>
<p>We are using a perforce repository for live development work, which
can track multiple seperate long-lived works-in-progress and collaborate
between multiple developers at the same time on the same change set.</p>
<p>FreeBSD-current is being imported into p4 hourly, for easy tracking
of the moving -current tree.</p>
<p>I haven't written up a good primer yet, but we're able to open this
up to the general developer community. NEWCARD work looks like it will
be done here too. Perforce is ideal for tracking this sort of long-lived
project without having to resort to passing patches around.</p>
<p>KSE work is now being checked into a kse p4 branch - thanks Julian!</p>
<p>KSE work is focusing on getting the main API changes into the base
tree well before 5.0.</p>
<hr>
<a name="smpng-mbuf"></a>
<h3>SMPng mbuf allocator</h3>
<p><i>URL: <a href="http://people.freebsd.org/~bmilekic/code/mb_slab/">http://people.freebsd.org/~bmilekic/code/mb_slab/</a></i></p>
<p><i>Contact: Bosko Milekic &lt;<a href="mailto:bmilekic@FreeBSD.org">bmilekic@FreeBSD.org</a>&gt;</i></p>
<p>mb_alloc is a specialized allocator for mbufs and mbuf clusters. It
offers various important advantages over the old mbuf allocator,
particularily for MP machines. Additionally, it is designed with the
possibility of important future enchancements in mind.</p>
<p>The mb_alloc code has been committed to -CURRENT a month ago and
appears to be holding up well. Prior to committing it, preliminary
performance measurements were done merely to ensure that it is not
significantly worse than the old allocator, even with Giant still in
place. Results were promising
<a href="http://people.freebsd.org/~bmilekic/code/mb_alloc/results.html">
[http://people.freebsd.org/~bmilekic/code/mb_alloc/results.html]</a> - also
see jlemon's results (link at the bottom of accompanying text). Since
the commit, Matt Jacob has provided useful feedback and bugfixes. Work
is now being done to re-enable mbtypes statistics and make appropriate
changes to netstat(1) and systat(1).</p>
<hr>
<a name="sparc64"></a>
<h3>sparc64 port</h3>
<p><i>Contact: Jake Burkholder &lt;<a href="mailto:jake@freebsd.org">jake@freebsd.org</a>&gt;</i></p>
<p>The sparc64 port has been committed to the FreeBSD repository. As such
further development will occur in cvs, rather than as a separately
maintained patch set. Significant progress has been made since the
last status report, including; support for kernel debugging with ddb,
much more complete pmap support, support for context switching and
process creation, and filling out of important machine dependent data
structures. Thomas Moestl has shown a strong interest in working on
the port and is in the process of implementing support for saving and
restoring a process's floating point context. I look forward to
working with him and any other developers that happen to fall out of
the wood works.</p>
<hr>
<a name="sparc64-loader"></a>
<h3>FreeBSD/sparc64 kernel loader</h3>
<p><i>Contact: Robert Drehmel &lt;<a href="mailto:robert@ferrari.de">robert@ferrari.de</a>&gt;</i></p>
<p>The sparc64 loader is functional enough to boot an ELF binary from an
UFS filesystem using the existent openfirmware library, which has been
revised to work flawlessly on 32-bit and 64-bit architectures. Support
for netbooting and modules will be implemented next, followed by a
better openfirmware mapping strategy.</p>
<hr>
<a name="syn-cache"></a>
<h3>SYN cache implemetation for FreeBSD</h3>
<p><i>Contact: Jonathan Lemon &lt;<a href="mailto:jlemon@freebsd.org">jlemon@freebsd.org</a>&gt;</i></p>
<p>This project brings a SYN cache implementation to FreeBSD, in
order to make it more robust to DoS attacks. A SYN cookie approach
was considered, but ultimately rejected becuase it does not conform
to the TCP protocol. The SYN cache will work with T/TCP, IPV6 and
IPSEC, and the size of each cache element is currently is less than
1/5th the size of a normal TCP control block. </p>
<hr>
<a name="trustedbsd"></a>
<h3>TrustedBSD Project</h3>
<p><i>URL: <a href="http://www.TrustedBSD.org/">http://www.TrustedBSD.org/</a></i></p>
<p><i>Contact: Robert Watson &lt;<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>&gt;</i></p>
<p>It's been a busy month, with a number of relevant news items. Not
least important is that NAI Labs was awarded a $1.2M contract from
the US Defense Advanced Research Projects Agency (DARPA) to work
on a variety of components relevant to the TrustedBSD Project,
including support for pluggable security models, and supporting
features such as improving the extended attributes implementation,
simple crypto support for swap and file systems, documentation, and
much more.</p>
<p>On the features side, progress continues on Mandatory Access Control,
object labeling, and improving the consistency of kernel access
control mechanisms--in particular, with regard to inter-process
authorization and credential management. Work has begun on porting
LOMAC, NAI Labs' Low-Watermark Mandatory Access Control scheme, from
Linux to FreeBSD, and it has been re-licensed under a BSD license.
We hope to have an initial port complete in time for 5.0-RELEASE
later this year.</p>
&footer;
</body>
</html>

File diff suppressed because it is too large Load diff

View file

@ -1,497 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN" [
<!ENTITY base CDATA "../..">
<!ENTITY date "$FreeBSD: www/en/news/status/report-june-2001.sgml,v 1.1 2001/08/02 04:26:30 chris Exp $">
<!ENTITY title "FreeBSD Status Report, June 2001">
<!ENTITY % includes SYSTEM "../../includes.sgml"> %includes;
]>
<html>
&header;
<h2>Introduction</h2>
<p>One of the benefits of the FreeBSD development model is a focus on
centralized design and implementation, in which the operating system is
maintained in a central repository, and discussed on centrally maintained
lists. This allows for a high level of coordination between authors of
various components of the system, and allows policies to be enforced over
the entire system, covering issues ranging from architecture to style.
However, as the FreeBSD developer community has grown, and the rate of
both mailing list traffic and tree modifications has increased, making it
difficult even for the most dedicated developer to remain on top of all
the work going on in the tree.</p>
<p>The FreeBSD Monthly Development Status Report attempts to address this
problem by providing a vehicle that allows developers to make the broader
community aware of their on-going work on FreeBSD, both in and out of the
central source repository. This is the first issue, and as such is an
experiment. For each project and sub-project, a one paragraph summary is
included, indicating progress since the last summary (in this case, simply
recent progress, as there have been no prior summaries).</p>
<p>This status report may be reproduced in whole or in part, as long as the
source is clearly identified and appropriate credit given. </p>
<h2>Future Editions</h2>
<p>Assuming there is some positive feedback on this idea, and that future
submissions get made such that there is content for future issues, the
goal is to release a development status report once a month. As such, the
next deadline will be July 31, 2001, with a scheduled publication date in
the first week of August. This will put the status report on a schedule
in line with the calendar, as well as providing a little over a month
until the next deadline, which will include a number of pertinent events,
including the Annual USENIX Technical Conference in Boston, MA.
Submissions should be e-mailed to:</p>
<blockquote><a href="mailto:robert+freebsd.monthly@cyrus.watson.org">
robert+freebsd.monthly@cyrus.watson.org</a></blockquote>
<p>Many submitters will want to wait until the last week of July so as to
provide the most up-to-date status report; however, submissions will be
accepted at any time prior to that date.</p>
<p><i>-- Robert Watson &lt;<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>&gt;</i></p>
<h2>Projects</h2>
<p>The following projects submitted summaries for the June 2001 report:</p>
<ul>
<li><a href="#binup">Binary Updater Project</a></li>
<li><a href="#prdrive">"Close a PR drive"</a></li>
<li><a href="#cvsroot">CVSROOT script rewrite/tidy</a></li>
<li><a href="#devfs">DEVFS</a></li>
<li><a href="#digi">digi driver</a></li>
<li><a href="#diskcheckd">Diskcheckd</a></li>
<li><a href="#if_fxp">if_fxp driver</a></li>
<li><a href="#java">Java Project</a></li>
<li><a href="#kgi">Kernel Graphics Interface port</a></li>
<li><a href="#libh">libh</a></li>
<li><a href="#mount">Mount(2) API</a></li>
<li><a href="#oldcard">OLDCARD pccard implemenation</a></li>
<li><a href="#ppc">PowerPC port</a></li>
<li><a href="#pseudofs">pseudofs</a></li>
<li><a href="#ppp">PPP</a></li>
<li><a href="#relnotesng">RELNOTESng</a></li>
<li><a href="#smpng">SMPng Project</a></li>
<li><a href="#smpng-mbuf">SMPng mbuf allocator</a></li>
<li><a href="#sparc64">Sparc64 Port</a></li>
<li><a href="#trustedbsd-acls">TrustedBSD ACLs</a></li>
<li><a href="#trustedbsd-cap">TrustedBSD Capabilities</a></li>
<li><a href="#trustedbsd-mac">TrustedBSD MAC and Object Labeling</a></li>
</ul>
<h2>Status Reports</h2>
<a name="binup"></a>
<h3>Binary Updater Project</h3>
<p><i>Contacts: Eric Melville &lt;<a href="mailto:eric@FreeBSD.org">eric@FreeBSD.org</a>&gt;, Murray Stokely &lt;<a href="mailto:murray@FreeBSD.org">murray@FreeBSD.org</a>&gt;</i></p>
<p><i>URL: <a href="http://people.freebsd.org/~murray/updater.html">http://people.freebsd.org/~murray/updater.html</a></i></p>
<p>The FreeBSD Binary Updater Project aims to provide a secure mechanism
for the distribution of binary updates for FreeBSD. This project is
complementary to the Open Packages and libh efforts and there should
be very little overlap with those projects. The system uses a client
/ server mechanism that allows clients to install any known "profile"
or release of FreeBSD over the network. Where a specific profile
might contain a specific set of FreeBSD software to install,
additional packages, and configuration actions that make it more
ideal for a specific environment (ie FreeBSD 4.3 Secure Web Server
Profile)</p>
<p>The system can currently be used to install a FreeBSD system or
perform the most simple of upgrades but many features are absent. In
particular, the client is in its infancy and much work remains to be
done. We need additional developers so please get in touch with us
at <a href="mailto:updater@osd.bsdi.com">updater@osd.bsdi.com</a>
if you are interested in spending some cycles
on this.</p>
<hr>
<a name="prdrive"></a>
<h3>"Close a PR drive"</h3>
<p><i>Contact: Poul-Henning Kamp &lt;<a href="mailto:phk@FreeBSD.org">phk@FreeBSD.org</a>&gt;</i></p>
<p><i>URL: <a href="http://phk.freebsd.dk/Gnats/">http://phk.freebsd.dk/Gnats/</a></i></p>
<p>Poul-Henning Kamp kicked off a drive to get our GNATS PR database
cleaned up so the wheat can be sorted from the chaff. Progress is
good, but there is still a lot of work to do. Give a hand if you
can. Remember: every unhandled PR is a pissed off contributor or
user.</p>
<hr>
<a name="cvsroot"></a>
<h3>CVSROOT script rewrite/tidy</h3>
<p><i>Contact: Josef Karthauser &lt;<a href="mailto:joe@FreeBSD.org">joe@FreeBSD.org</a>&gt;</i></p>
<p>I'm in the process of rewriting the CVSROOT/scripts to make them more
clean and configurable. A lot of other projects also use these and
so it makes sense to make them as easy to use in other environments as
possible.</p>
<p>Status: work in progress. There is now a configuration file, but not
all the scripts use it yet.</p>
<hr>
<a name="devfs"></a>
<h3>DEVFS</h3>
<p><i>Contact: Poul-Henning Kamp &lt;<a href="mailto:phk@FreeBSD.org">phk@FreeBSD.org</a>&gt;</i></p>
<p>Work is progressing on implementing true cloning devices in DEVFS.
Brian Somers and Poul-Henning Kamp are working to make if_tun the
first truly cloning driver in the system. Next will be the pty
driver and the bpf driver. </p>
<p>From July 1st DEVFS will be standard in -current.</p>
<hr>
<a name="digi"></a>
<h3>digi driver</h3>
<p><i>Contact: Brian Somers &lt;<a href="mailto:brian@FreeBSD.org">brian@FreeBSD.org</a>&gt;</i></p>
<p>Added the digi driver. Initial work was done by John Prince
&lt;johnp@knight-trosoft.com&gt;, but all the modular stuff was done by me
and initial work on supporting Xe and Xi cards (ala dgb) was done by
me. I'm now awaiting an Xe card being sent from joerg@ (almost a
donation) so that I can get that side of things working properly. </p>
<hr>
<a name="diskcheckd"></a>
<h3>Diskcheckd</h3>
<p><i>Contact: Poul-Henning Kamp &lt;<a href="mailto:phk@FreeBSD.org">phk@FreeBSD.org</a>&gt;</i></p>
<p><i>URL: <a href="http://phantom.cris.net/freebsd/projects/viewproj.php?p_id=15">http://phantom.cris.net/freebsd/projects/viewproj.php?p_id=15</a></i></p>
<p>Ben Smithurst has written a "diskcheckd" daemon which will read all
sectors on the disks over a configured period. With recent increases
in disksizes it is by no means a given that disk read errors will be
discovered before they are fatal. This daemon will hopefully result
in the drive firmware being able to relocate bad sectors before they
become unreadable. This code is now committed to 5.0-CURRENT.</p>
<hr>
<a name="if_fxp"></a>
<h3>if_fxp driver</h3>
<p><i>Contact: Jonathan Lemon &lt;<a href="mailto:jlemon@FreeBSD.org">jlemon@FreeBSD.org</a>&gt;</i></p>
<p>In the last month (May-June), the new fxp driver was brought
into -stable. This new driver uses the common MII code, so
support for new PHYs is easy to add. Support for the new Intel
82562 chips was added. The driver was updated to add VLAN
support and a workaround for a bug affecting Intel 815-based boards.</p>
<hr>
<a name="java"></a>
<h3>Java Project</h3>
<p><i>Contact: Greg Lewis &lt;<a href="mailto:glewis@eyesbeyond.com">glewis@eyesbeyond.com</a>&gt;</i></p>
<p>The FreeBSD Java Project has continued its "behind the scenes" work
over the last month. Progress was made both technically, with the
help of Bill Huey (of Wind River), on a port of JDK 1.3.1 and
legally, with Nate Williams continuing negotiations with Sun on a
mutually acceptable license to release a binary Java 2 SDK under.
The JDK 1.2.2 port has also seen some development, with a new
patchset likely to be released soon which includes JPDA and NetBSD
support (the latter courtesy of Scott Bartram). </p>
<hr>
<a name="kgi"></a>
<h3>Kernel Graphics Interface port</h3>
<p><i>Contact: Nicolas Souchu &lt;<a href="mailto:nsouch@fr.alcove.com">nsouch@fr.alcove.com</a>&gt;</i></p>
<p><i>URL: <a href="http://kgi.sourceforge.net/">http://kgi.sourceforge.net/</a></i></p>
<p>The Kernel Graphics Interface project has worked for several years to
provide a framework for graphic drivers under Linux receiving input
from other groups like the UDI project. Currently the KGI core
implementation is quite settled, as is the driver coding model as a
whole. Work is being done to newbussify KGI and produce a kld, as
part of a future redesign of the graphics subsystem in FreeBSD. KGI
will be an alternative for graphic card producers that don't accept
the XFree86 model of userland graphic adapters and will also provide
accelerated support for any other graphic alternative. </p>
<hr>
<a name="libh"></a>
<h3>libh Project</h3>
<p><i>Contacts: Alexander Langer &lt;<a href="mailto:alex@FreeBSD.org">alex@FreeBSD.org</a>&gt;, Nathan Ahlstrom &lt;<a href="mailto:nra@FreeBSD.org">nra@FreeBSD.org</a>&gt;</i></p>
<p><i>URL: <a href="http://people.freebsd.org/~alex/libh/">http://people.freebsd.org/~alex/libh/</a></i></p>
<p>The libh project is a next generation sysinstall. It is written
in C++ using QT for its graphical frontend and tvision for its console
support. The menus are scriptable via an embedded tcl interpreter.
It has been growing functionality quite a bit lately, including a new
disklabel editor. Current work is on installation scripts for CDROM,
FTP, ... installs as well as a fully functional standalone
disk-partition and label editor. The GUI API was extended a little
and many bugs were fixed. There seems to be some interest in i18n
work. </p>
<hr>
<a name="mount"></a>
<h3>Mount(2) API</h3>
<p><i>Contact: Poul-Henning Kamp &lt;<a href="mailto:phk@FreeBSD.org">phk@FreeBSD.org</a>&gt;</i></p>
<p>Maxime Henrion is working on implementing a new and more extensible
mount(2) systemcall, mainly to overcome the 32 bits for mountoptions
limit, secondary goal to make it possible to mount filesystems from
inside the kernel. </p>
<hr>
<a name="oldcard"></a>
<h3>OLDCARD pccard implementation</h3>
<p><i>Contact: Warner Losh &lt;<a href="mailto:imp@FreeBSD.org">imp@FreeBSD.org</a>&gt;</i></p>
<p>In the last two months, the OLDCARD pccard implemenation was
rototilled to within an inch of its life. Many new pci cardbus
bridges were added. Power handling was improved. PCI Card cardbus
bridges are nearly supported and should be committed in early June to
the tree. This will likely be the last major work done on OLDCARD.
After pci cards are supported, work will shift to improving NEWCARD. </p>
<hr>
<a name="ppc"></a>
<h3>PowerPC Port</h3>
<p><i>Contact: Benno Rice &lt;<a href="mailto:benno@FreeBSD.org">benno@FreeBSD.org</a>&gt;</i></p>
<p>The PowerPC port is proceeding well. All seems to be working in
pmap.c after a number of problems encountered where FreeBSD passes a
vm_page_t to a NetBSD-derived function that expects a vm_offset_t.
Then after debugging the atomic operations code, I'm now at the point
where VM appears to be initialised and it's now hanging while in
sys/kern/kern_malloc.c:kmeminit(). Progress continues. =)</p>
<hr>
<a name="ppp"></a>
<h3>PPP</h3>
<p><i>Contact: Brian Somers &lt;<a href="mailto:brian@FreeBSD.org">brian@FreeBSD.org</a>&gt;</i></p>
<p>Developing full MPPE support for Andre Opperman @ Monzoon in
Switzerland. Work is now complete and will eventually be brought
into -current, but no dates are yet known. </p>
<hr>
<a name="pseudofs"></a>
<h3>pseudofs</h3>
<p><i>Contact: Dag-Erling Smorgrav &lt;<a href="mailto:des@FreeBSD.org">des@FreeBSD.org</a>&gt;</i></p>
<p>Pseudofs is a framework for pseudo-filesystems, like procfs and
linprocfs. The goal of pseudofs is twofold:</p>
<ul>
<li>eliminate code duplication between (and within) procfs and
linprocfs</li>
<li>isolate procfs and linprocfs from the complexities of the vfs
system to simplify maintenance and further development.</li>
</ul>
<p>Pseudofs has reached the point where it is sufficiently
functional and stable that linprocfs has been almost fully
reimplemented on top of it; the only bit that's missing is the
proc/&lt;pid&gt;/mem file.</p>
<p>The primary to-do item for pseudofs right now is to add support
for writeable files (which are required for procfs, and are quite
a bit less trivial to handle than read-only files). In addition,
pseudofs needs either generic support for raw (non-sbuf'ed,
possibly mmap'able) files, or failing that, special-case code to
handle proc/&lt;pid&gt;/mem.</p>
<hr>
<a name="relnotesng"></a>
<h3>RELNOTESng</h3>
<p><i>Contact: Bruce A. Mah &lt;<a href="mailto:bmah@FreeBSD.org">bmah@FreeBSD.org</a>&gt;</i></p>
<p><i>URL: <a href="http://people.freebsd.org/~bmah/relnotes/">http://people.freebsd.org/~bmah/relnotes/</a></i></p>
<p>RELNOTESng is the name I've given to the rewrite of the *.TXT files
that typically accompany a FreeBSD release. The information from
these files (which include, among other things, the release notes and
the supported hardware list) have been reorganized and converted to
SGML. This helps us produce the documentation in various formats, as
well as facilitating the maintainence of documentation for multiple
architectures. This work was recently committed to -CURRENT, and I
intend to MFC it to 4-STABLE before 4.4-RELEASE. </p>
<hr>
<a name="smpng"></a>
<h3>SMPng Project</h3>
<p><i>Contacts: John Baldwin &lt;<a href="mailto:jhb@FreeBSD.org">jhb@FreeBSD.org</a>&gt;, Jake Burkholder &lt;<a href="mailto:jake@FreeBSD.org">jake@FreeBSD.org</a>&gt;, SMP Mailing list &lt;<a href="mailto:smp@FreeBSD.org">smp@FreeBSD.org</a>&gt;</i></p>
<p><i>URL: <a href="http://www.freebsd.org/~jasone/smp/">http://www.freebsd.org/~jasone/smp/</a></i></p>
<p>The SMPng project aims to provide multithreaded support for the
FreeBSD kernel. Currently the kernel still runs almost exclusively
under the Giant kernel lock. Recently, progress has been made in
locking the process group and session structures as well as file
descriptors by Seigo Tanimura-san. Alfred Perlstein has also added
in a giant lock around the entire virtual memory (VM) subsystem which
will eventually be split up into several smaller locks. The locking
of the VM subsystem has proved tricky, and some of the current effort
is focused on finding and fixing a few remaining bugs in on the alpha
architecture.</p>
<hr>
<a name="smpng-mbuf"></a>
<h3>SMPng mbuf allocator</h3>
<p><i>Contact: Bosko Milekic &lt;<a href="mailto:bmilekic@FreeBSD.org">bmilekic@FreeBSD.org</a>&gt;</i></p>
<p><i>URL: <a href="http://people.freebsd.org/~bmilekic/code/mb_slab/">http://people.freebsd.org/~bmilekic/code/mb_slab/</a></i></p>
<p>mb_alloc is a new specialized allocator for mbufs and mbuf clusters.
Presently, it offers various important advantages over the old
(status quo) mbuf allocator, particularily for MP machines.
Additionally, it is designed with the possibility of future
enchancements in mind. </p>
<p>Presently in initial review & testing stages, most of the code is
already written. </p>
<hr>
<a name="sparc64"></a>
<h3>Sparc64 Port</h3>
<p><i>Contact: Jake Burkholder &lt;<a href="mailto:jake@FreeBSD.org">jake@FreeBSD.org</a>&gt;</i></p>
<p>Work has (re)started on a port of FreeBSD to the UltraSPARC
architecture, specifically targeting PCI based workstations. Jake
Burkholder will be porting the kernel, and Ade Lovett has expressed
an interest in working on userland. Recent work on the project
includes: </p>
<ul>
<li>built a gnu cross toolchain targeting sparc64</li>
<li>obtained remote access to an ultra 5 development machine (thanks to emmy)</li>
<li>developed a minimal set of headers and source files to allow
the kernel to be compiled and linked</li>
<li>implemented a mini-loader which relocates the kernel, maps it
into the tlbs and calls it</li>
<li>nabbed Benno Rice's openfirmware console driver which allows
printf and panic to work</li>
</ul>
<p>At this point the kernel can be net-booted and prints the FreeBSD
copyright before calling code that is not yet implemented. I am
currently working on a design for the pmap module and plan to begin
implementation in the next few days.</p>
<hr>
<a name="trustedbsd"></a>
<h3>TrustedBSD</h3>
<p><i>Contact: Robert Watson &lt;<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>&gt;</i></p>
<p><i>URL: <a href="http://www.TrustedBSD.org/">http://www.TrustedBSD.org/</a></i></p>
<p>The TrustedBSD Project seeks to improve the security of the FreeBSD
operating system by adding new security features, many derived from
common trusted operating system requirements. This includes Access
Control Lists (ACLs), Fine-grained Event Logging (Audit), Fine-grained
Privileges (Capabilities), Mandatory Access Control (MAC), and other
architecture features, including file system extended attributes,
and improved object labeling.</p>
<p>Individual feature status reports are documented seperately below;
in general, basic features (such as EAs, ACLs, and kernel support
for Capabilities) will be initially available in 5.0-RELEASE,
conditional on specific kernel options. A performance-enhanced
version of EAs is currently being targetted at 6.0-RELEASE, along
with an integrated capability-aware userland, and MAC support.</p>
<hr>
<a name="trustedbsd-acls"></a>
<h3>TrustedBSD: ACLs</h3>
<p><i>Contact: Chris D. Faulhaber &lt;<a href="mailto:jedgar@FreeBSD.org">jedgar@FreeBSD.org</a>&gt;</i></p>
<p>Patches are now available to add ACL support to cp(1) and mv(1) along
with preliminary support for install(1). Ilmar's i18n patches for
getfacl(1) and setfacl(1) need to be updated for the last set of
changes and committed. Some other functional improvements are also
in the pipeline.</p>
<hr>
<a name="trustedbsd-cap"></a>
<h3>TrustedBSD Capabilities</h3>
<p><i>Contact: Thomas Moestl &lt;<a href="mailto:tmm@FreeBSD.org">tmm@FreeBSD.org</a>&gt;</i></p>
<p>The kernel part of the capability implementation is mostly finished;
all uses of suser() and suser_xxx() and nearly all comparisons of
uid's with 0 have been converted to use the newly introduced
cap_check() call. Some details still need clarification. More
documentation for this needs to be done. </p>
<p>POSIX.2c-compatible getfcap and setfcap programs have been written.
Experimental capability support in su(1), login(1), install(1) and
bsd.prog.mk is being tested.</p>
<p>Support for capabilities, ACL's, capabilities and MAC labels in
tar(1) is being developed; only the capability part is tested right
now. Generic support for extended attributes is planned, this will
require extensions to the current EA interface, which are written and
will probably be committed to -CURRENT in a few weeks. A port of
these features to pax(1) is planned. </p>
<hr>
<a name="trustedbsd-mac"></a>
<h3>TrustedBSD MAC and Object Labeling</h3>
<p><i>Contact: Robert Watson &lt;<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>&gt;</i></p>
<p><i>URL: <a href="http://www.TrustedBSD.org/">http://www.TrustedBSD.org/</a></i></p>
<p>An initial prototype of a Mandatory Access Control implementation
was completed earlier this year, supporting Multi-Level Security,
Biba Integrity protection, and a more general jail-based access
control model. Based on that implementation, I'm now in the process
of improving the FreeBSD security abstractions to simplify both the
implementation and integration of MAC support, as well as increase the
number of kernel objects protected by both discretionary and mandatory
protection schemes. Generic object labeling introduces a structure
not dissimilar in properties to the kernel ucred structure, only it is
intended to be associated with kernel objects, rather than kernel
subjects, permitting the creation of generic security protection
routines for objects. This would allow the easy extension of procfs
and devfs to support ACLs and MAC, for example. A prototype is
underway, with compiling and running code and simple protections
now associated with sysctl's.</p>
&footer;
</body>
</html>

View file

@ -0,0 +1,793 @@
<report>
<section>
<title>Introduction</title>
<p>One of the benefits of the FreeBSD development model is a focus
on centralized design and implementation, in which the operating
system is maintained in a central repository, and discussed on
centrally maintained lists. This allows for a high level of
coordination between authors of various components of the system,
and allows policies to be enforced over the entire system, covering
issues ranging from architecture to style. However, as the FreeBSD
developer community has grown, and the rate of both mailing list
traffic and tree modifications has increased, making it difficult
even for the most dedicated developer to remain on top of all the
work going on in the tree.</p>
<p>The FreeBSD Monthly Development Status Report attempts to
address this problem by providing a vehicle that allows developers
to make the broader community aware of their on-going work on
FreeBSD, both in and out of the central source repository. This is
the first issue, and as such is an experiment. For each project and
sub-project, a one paragraph summary is included, indicating
progress since the last summary (in this case, simply recent
progress, as there have been no prior summaries).</p>
<p>This status report may be reproduced in whole or in part, as
long as the source is clearly identified and appropriate credit
given.</p>
</section>
<section>
<title>Future Editions</title>
<p>Assuming there is some positive feedback on this idea, and that
future submissions get made such that there is content for future
issues, the goal is to release a development status report once a
month. As such, the next deadline will be July 31, 2001, with a
scheduled publication date in the first week of August. This will
put the status report on a schedule in line with the calendar, as
well as providing a little over a month until the next deadline,
which will include a number of pertinent events, including the
Annual USENIX Technical Conference in Boston, MA. Submissions
should be e-mailed to:</p>
<blockquote>
<a href="mailto:robert+freebsd.monthly@cyrus.watson.org">
robert+freebsd.monthly@cyrus.watson.org</a>
</blockquote>
<p>Many submitters will want to wait until the last week of July so
as to provide the most up-to-date status report; however,
submissions will be accepted at any time prior to that date.</p>
<p>
<i>-- Robert Watson &lt;
<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>
&gt;</i>
</p>
</section>
<project>
<title>Binary Updater Project</title>
<contact>
<person>
<name>
<given>Eric</given>
<common>Melville</common>
</name>
<email>eric@FreeBSD.org</email>
</person>
<person>
<name>
<given>Murray</given>
<common>Stokely</common>
</name>
<email>murray@FreeBSD.org</email>
</person>
</contact>
<url href="http://people.freebsd.org/~murray/updater.html" />
<body>
<p>The FreeBSD Binary Updater Project aims to provide a secure
mechanism for the distribution of binary updates for FreeBSD.
This project is complementary to the Open Packages and libh
efforts and there should be very little overlap with those
projects. The system uses a client / server mechanism that allows
clients to install any known "profile" or release of FreeBSD over
the network. Where a specific profile might contain a specific
set of FreeBSD software to install, additional packages, and
configuration actions that make it more ideal for a specific
environment (ie FreeBSD 4.3 Secure Web Server Profile)</p>
<p>The system can currently be used to install a FreeBSD system
or perform the most simple of upgrades but many features are
absent. In particular, the client is in its infancy and much work
remains to be done. We need additional developers so please get
in touch with us at
<a href="mailto:updater@osd.bsdi.com">updater@osd.bsdi.com</a>
if you are interested in spending some cycles on this.</p>
</body>
</project>
<project>
<title>"Close a PR drive"</title>
<contact>
<person>
<name>
<given>Poul-Henning</given>
<common>Kamp</common>
</name>
<email>phk@FreeBSD.org</email>
</person>
</contact>
<url href="http://phk.freebsd.dk/Gnats/" />
<body>
<p>Poul-Henning Kamp kicked off a drive to get our GNATS PR
database cleaned up so the wheat can be sorted from the chaff.
Progress is good, but there is still a lot of work to do. Give a
hand if you can. Remember: every unhandled PR is a pissed off
contributor or user.</p>
</body>
</project>
<project>
<title>CVSROOT script rewrite/tidy</title>
<contact>
<person>
<name>
<given>Josef</given>
<common>Karthauser</common>
</name>
<email>joe@FreeBSD.org</email>
</person>
</contact>
<body>
<p>I'm in the process of rewriting the CVSROOT/scripts to make
them more clean and configurable. A lot of other projects also
use these and so it makes sense to make them as easy to use in
other environments as possible.</p>
<p>Status: work in progress. There is now a configuration file,
but not all the scripts use it yet.</p>
</body>
</project>
<project>
<title>DEVFS</title>
<contact>
<person>
<name>
<given>Poul-Henning</given>
<common>Kamp</common>
</name>
<email>phk@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Work is progressing on implementing true cloning devices in
DEVFS. Brian Somers and Poul-Henning Kamp are working to make
if_tun the first truly cloning driver in the system. Next will be
the pty driver and the bpf driver.</p>
<p>From July 1st DEVFS will be standard in -current.</p>
</body>
</project>
<project>
<title>digi driver</title>
<contact>
<person>
<name>
<given>Brian</given>
<common>Somers</common>
</name>
<email>brian@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Added the digi driver. Initial work was done by John Prince
&lt;johnp@knight-trosoft.com&gt;, but all the modular stuff was
done by me and initial work on supporting Xe and Xi cards (ala
dgb) was done by me. I'm now awaiting an Xe card being sent from
joerg@ (almost a donation) so that I can get that side of things
working properly.</p>
</body>
</project>
<project>
<title>Diskcheckd</title>
<contact>
<person>
<name>
<given>Poul-Henning</given>
<common>Kamp</common>
</name>
<email>phk@FreeBSD.org</email>
</person>
</contact>
<url
href="http://phantom.cris.net/freebsd/projects/viewproj.php?p_id=15" />
<body>
<p>Ben Smithurst has written a "diskcheckd" daemon which will
read all sectors on the disks over a configured period. With
recent increases in disksizes it is by no means a given that disk
read errors will be discovered before they are fatal. This daemon
will hopefully result in the drive firmware being able to
relocate bad sectors before they become unreadable. This code is
now committed to 5.0-CURRENT.</p>
</body>
</project>
<project>
<title>if_fxp driver</title>
<contact>
<person>
<name>
<given>Jonathan</given>
<common>Lemon</common>
</name>
<email>jlemon@FreeBSD.org</email>
</person>
</contact>
<body>
<p>In the last month (May-June), the new fxp driver was brought
into -stable. This new driver uses the common MII code, so
support for new PHYs is easy to add. Support for the new Intel
82562 chips was added. The driver was updated to add VLAN support
and a workaround for a bug affecting Intel 815-based boards.</p>
</body>
</project>
<project>
<title>Java Project</title>
<contact>
<person>
<name>
<given>Greg</given>
<common>Lewis</common>
</name>
<email>glewis@eyesbeyond.com</email>
</person>
</contact>
<body>
<p>The FreeBSD Java Project has continued its "behind the scenes"
work over the last month. Progress was made both technically,
with the help of Bill Huey (of Wind River), on a port of JDK
1.3.1 and legally, with Nate Williams continuing negotiations
with Sun on a mutually acceptable license to release a binary
Java 2 SDK under. The JDK 1.2.2 port has also seen some
development, with a new patchset likely to be released soon which
includes JPDA and NetBSD support (the latter courtesy of Scott
Bartram).</p>
</body>
</project>
<project>
<title>Kernel Graphics Interface port</title>
<contact>
<person>
<name>
<given>Nicolas</given>
<common>Souchu</common>
</name>
<email>nsouch@fr.alcove.com</email>
</person>
</contact>
<url href="http://kgi.sourceforge.net/" />
<body>
<p>The Kernel Graphics Interface project has worked for several
years to provide a framework for graphic drivers under Linux
receiving input from other groups like the UDI project. Currently
the KGI core implementation is quite settled, as is the driver
coding model as a whole. Work is being done to newbussify KGI and
produce a kld, as part of a future redesign of the graphics
subsystem in FreeBSD. KGI will be an alternative for graphic card
producers that don't accept the XFree86 model of userland graphic
adapters and will also provide accelerated support for any other
graphic alternative.</p>
</body>
</project>
<project>
<title>libh Project</title>
<contact>
<person>
<name>
<given>Alexander</given>
<common>Langer</common>
</name>
<email>alex@FreeBSD.org</email>
</person>
<person>
<name>
<given>Nathan</given>
<common>Ahlstrom</common>
</name>
<email>nra@FreeBSD.org</email>
</person>
</contact>
<url href="http://people.freebsd.org/~alex/libh/" />
<body>
<p>The libh project is a next generation sysinstall. It is
written in C++ using QT for its graphical frontend and tvision
for its console support. The menus are scriptable via an embedded
tcl interpreter. It has been growing functionality quite a bit
lately, including a new disklabel editor. Current work is on
installation scripts for CDROM, FTP, ... installs as well as a
fully functional standalone disk-partition and label editor. The
GUI API was extended a little and many bugs were fixed. There
seems to be some interest in i18n work.</p>
</body>
</project>
<project>
<title>Mount(2) API</title>
<contact>
<person>
<name>
<given>Poul-Henning</given>
<common>Kamp</common>
</name>
<email>phk@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Maxime Henrion is working on implementing a new and more
extensible mount(2) systemcall, mainly to overcome the 32 bits
for mountoptions limit, secondary goal to make it possible to
mount filesystems from inside the kernel.</p>
</body>
</project>
<project>
<title>OLDCARD pccard implementation</title>
<contact>
<person>
<name>
<given>Warner</given>
<common>Losh</common>
</name>
<email>imp@FreeBSD.org</email>
</person>
</contact>
<body>
<p>In the last two months, the OLDCARD pccard implemenation was
rototilled to within an inch of its life. Many new pci cardbus
bridges were added. Power handling was improved. PCI Card cardbus
bridges are nearly supported and should be committed in early
June to the tree. This will likely be the last major work done on
OLDCARD. After pci cards are supported, work will shift to
improving NEWCARD.</p>
</body>
</project>
<project>
<title>PowerPC Port</title>
<contact>
<person>
<name>
<given>Benno</given>
<common>Rice</common>
</name>
<email>benno@FreeBSD.org</email>
</person>
</contact>
<body>
<p>The PowerPC port is proceeding well. All seems to be working
in pmap.c after a number of problems encountered where FreeBSD
passes a vm_page_t to a NetBSD-derived function that expects a
vm_offset_t. Then after debugging the atomic operations code, I'm
now at the point where VM appears to be initialised and it's now
hanging while in sys/kern/kern_malloc.c:kmeminit(). Progress
continues. =)</p>
</body>
</project>
<project>
<title>PPP</title>
<contact>
<person>
<name>
<given>Brian</given>
<common>Somers</common>
</name>
<email>brian@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Developing full MPPE support for Andre Opperman @ Monzoon in
Switzerland. Work is now complete and will eventually be brought
into -current, but no dates are yet known.</p>
</body>
</project>
<project>
<title>pseudofs</title>
<contact>
<person>
<name>
<given>Dag-Erling</given>
<common>Smorgrav</common>
</name>
<email>des@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Pseudofs is a framework for pseudo-filesystems, like procfs
and linprocfs. The goal of pseudofs is twofold:</p>
<ul>
<li>eliminate code duplication between (and within) procfs and
linprocfs</li>
<li>isolate procfs and linprocfs from the complexities of the
vfs system to simplify maintenance and further
development.</li>
</ul>
<p>Pseudofs has reached the point where it is sufficiently
functional and stable that linprocfs has been almost fully
reimplemented on top of it; the only bit that's missing is the
proc/&lt;pid&gt;/mem file.</p>
<p>The primary to-do item for pseudofs right now is to add
support for writeable files (which are required for procfs, and
are quite a bit less trivial to handle than read-only files). In
addition, pseudofs needs either generic support for raw
(non-sbuf'ed, possibly mmap'able) files, or failing that,
special-case code to handle proc/&lt;pid&gt;/mem.</p>
</body>
</project>
<project>
<title>RELNOTESng</title>
<contact>
<person>
<name>
<given>Bruce</given>
<common>A. Mah</common>
</name>
<email>bmah@FreeBSD.org</email>
</person>
</contact>
<url href="http://people.freebsd.org/~bmah/relnotes/" />
<body>
<p>RELNOTESng is the name I've given to the rewrite of the *.TXT
files that typically accompany a FreeBSD release. The information
from these files (which include, among other things, the release
notes and the supported hardware list) have been reorganized and
converted to SGML. This helps us produce the documentation in
various formats, as well as facilitating the maintainence of
documentation for multiple architectures. This work was recently
committed to -CURRENT, and I intend to MFC it to 4-STABLE before
4.4-RELEASE.</p>
</body>
</project>
<project>
<title>SMPng Project</title>
<contact>
<person>
<name>
<given>John</given>
<common>Baldwin</common>
</name>
<email>jhb@FreeBSD.org</email>
</person>
<person>
<name>
<given>Jake</given>
<common>Burkholder</common>
</name>
<email>jake@FreeBSD.org</email>
</person>
<person>
<name>
<given>SMP</given>
<common>Mailing list</common>
</name>
<email>smp@FreeBSD.org</email>
</person>
</contact>
<url href="http://www.freebsd.org/~jasone/smp/" />
<body>
<p>The SMPng project aims to provide multithreaded support for
the FreeBSD kernel. Currently the kernel still runs almost
exclusively under the Giant kernel lock. Recently, progress has
been made in locking the process group and session structures as
well as file descriptors by Seigo Tanimura-san. Alfred Perlstein
has also added in a giant lock around the entire virtual memory
(VM) subsystem which will eventually be split up into several
smaller locks. The locking of the VM subsystem has proved tricky,
and some of the current effort is focused on finding and fixing a
few remaining bugs in on the alpha architecture.</p>
</body>
</project>
<project>
<title>SMPng mbuf allocator</title>
<contact>
<person>
<name>
<given>Bosko</given>
<common>Milekic</common>
</name>
<email>bmilekic@FreeBSD.org</email>
</person>
</contact>
<url href="http://people.freebsd.org/~bmilekic/code/mb_slab/" />
<body>
<p>mb_alloc is a new specialized allocator for mbufs and mbuf
clusters. Presently, it offers various important advantages over
the old (status quo) mbuf allocator, particularily for MP
machines. Additionally, it is designed with the possibility of
future enchancements in mind.</p>
<p>Presently in initial review &amp; testing stages, most of the
code is already written.</p>
</body>
</project>
<project>
<title>Sparc64 Port</title>
<contact>
<person>
<name>
<given>Jake</given>
<common>Burkholder</common>
</name>
<email>jake@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Work has (re)started on a port of FreeBSD to the UltraSPARC
architecture, specifically targeting PCI based workstations. Jake
Burkholder will be porting the kernel, and Ade Lovett has
expressed an interest in working on userland. Recent work on the
project includes:</p>
<ul>
<li>built a gnu cross toolchain targeting sparc64</li>
<li>obtained remote access to an ultra 5 development machine
(thanks to emmy)</li>
<li>developed a minimal set of headers and source files to
allow the kernel to be compiled and linked</li>
<li>implemented a mini-loader which relocates the kernel, maps
it into the tlbs and calls it</li>
<li>nabbed Benno Rice's openfirmware console driver which
allows printf and panic to work</li>
</ul>
<p>At this point the kernel can be net-booted and prints the
FreeBSD copyright before calling code that is not yet
implemented. I am currently working on a design for the pmap
module and plan to begin implementation in the next few days.</p>
</body>
</project>
<project>
<title>TrustedBSD</title>
<contact>
<person>
<name>
<given>Robert</given>
<common>Watson</common>
</name>
<email>rwatson@FreeBSD.org</email>
</person>
</contact>
<url href="http://www.TrustedBSD.org/" />
<body>
<p>The TrustedBSD Project seeks to improve the security of the
FreeBSD operating system by adding new security features, many
derived from common trusted operating system requirements. This
includes Access Control Lists (ACLs), Fine-grained Event Logging
(Audit), Fine-grained Privileges (Capabilities), Mandatory Access
Control (MAC), and other architecture features, including file
system extended attributes, and improved object labeling.</p>
<p>Individual feature status reports are documented seperately
below; in general, basic features (such as EAs, ACLs, and kernel
support for Capabilities) will be initially available in
5.0-RELEASE, conditional on specific kernel options. A
performance-enhanced version of EAs is currently being targetted
at 6.0-RELEASE, along with an integrated capability-aware
userland, and MAC support.</p>
</body>
</project>
<project>
<title>TrustedBSD: ACLs</title>
<contact>
<person>
<name>
<given>Chris</given>
<common>D. Faulhaber</common>
</name>
<email>jedgar@FreeBSD.org</email>
</person>
</contact>
<body>
<p>Patches are now available to add ACL support to cp(1) and
mv(1) along with preliminary support for install(1). Ilmar's i18n
patches for getfacl(1) and setfacl(1) need to be updated for the
last set of changes and committed. Some other functional
improvements are also in the pipeline.</p>
</body>
</project>
<project>
<title>TrustedBSD Capabilities</title>
<contact>
<person>
<name>
<given>Thomas</given>
<common>Moestl</common>
</name>
<email>tmm@FreeBSD.org</email>
</person>
</contact>
<body>
<p>The kernel part of the capability implementation is mostly
finished; all uses of suser() and suser_xxx() and nearly all
comparisons of uid's with 0 have been converted to use the newly
introduced cap_check() call. Some details still need
clarification. More documentation for this needs to be done.</p>
<p>POSIX.2c-compatible getfcap and setfcap programs have been
written. Experimental capability support in su(1), login(1),
install(1) and bsd.prog.mk is being tested.</p>
<p>Support for capabilities, ACL's, capabilities and MAC labels
in tar(1) is being developed; only the capability part is tested
right now. Generic support for extended attributes is planned,
this will require extensions to the current EA interface, which
are written and will probably be committed to -CURRENT in a few
weeks. A port of these features to pax(1) is planned.</p>
</body>
</project>
<project>
<title>TrustedBSD MAC and Object Labeling</title>
<contact>
<person>
<name>
<given>Robert</given>
<common>Watson</common>
</name>
<email>rwatson@FreeBSD.org</email>
</person>
</contact>
<url href="http://www.TrustedBSD.org/" />
<body>
<p>An initial prototype of a Mandatory Access Control
implementation was completed earlier this year, supporting
Multi-Level Security, Biba Integrity protection, and a more
general jail-based access control model. Based on that
implementation, I'm now in the process of improving the FreeBSD
security abstractions to simplify both the implementation and
integration of MAC support, as well as increase the number of
kernel objects protected by both discretionary and mandatory
protection schemes. Generic object labeling introduces a
structure not dissimilar in properties to the kernel ucred
structure, only it is intended to be associated with kernel
objects, rather than kernel subjects, permitting the creation of
generic security protection routines for objects. This would
allow the easy extension of procfs and devfs to support ACLs and
MAC, for example. A prototype is underway, with compiling and
running code and simple protections now associated with
sysctl's.</p>
</body>
</project>
</report>

128
en/news/status/report.xsl Normal file
View file

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- $FreeBSD$ -->
<!-- Standard header material -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="../../includes.xsl"/>
<xsl:import href="../includes.xsl"/>
<xsl:import href="includes.xsl"/>
<xsl:variable name="base" select="'..'"/>
<xsl:variable name="title" select="'FreeBSD Status Reports'"/>
<xsl:variable name="date" select="'$FreeBSD$'"/>
<xsl:variable name="ucletters"
select="ABCDEFGHIJKLMNOPQRSTUVWXYZ"/>
<xsl:variable name="lcletters"
select="abcdefghijklmnopqrstuvwxyz"/>
<xsl:output type="html" encoding="iso-8859-1"/>
<xsl:template match="report">
<html>
<xsl:copy-of select="$header1"/>
<body xsl:use-attribute-sets="att.body">
<xsl:copy-of select="$header2"/>
<!-- Process all the <sections>, in order -->
<xsl:apply-templates select="section"/>
<!-- Generate a table of contents, sorted -->
<ul>
<xsl:for-each select="project">
<xsl:sort select="translate(title, $lcletters, $ucletters)"/>
<li><a><xsl:attribute name="href">#<xsl:value-of
select="translate(title, ' ', '-')"/></xsl:attribute><xsl:value-of
select="title"/></a></li>
</xsl:for-each>
</ul>
<!-- Process each project, sorted -->
<xsl:apply-templates select="project">
<xsl:sort select="translate(title, $lcletters, $ucletters)"/>
</xsl:apply-templates>
<!-- Standard footer -->
<xsl:copy-of select="$newshome"/> |
<xsl:copy-of select="$statushome"/>
<xsl:copy-of select="$footer"/>
</body>
</html>
</xsl:template>
<!-- Everything that follows are templates for the rest of the content -->
<!-- A section creates a header, and copies in all the <p> elements from
itself -->
<xsl:template match="section">
<h1><xsl:value-of select="title"/></h1>
<xsl:copy-of select="p"/>
</xsl:template>
<!-- A project creates a header, and then process the three components of
a project report (links, contact details, project body) in turn -->
<xsl:template match="project">
<h2><a>
<xsl:attribute name="name"><xsl:value-of
select="translate(title, ' ', '-')"/></xsl:attribute><xsl:value-of
select="title"/></a></h2>
<xsl:apply-templates select="links"/>
<xsl:apply-templates select="contact"/>
<xsl:apply-templates select="body"/>
<hr/>
</xsl:template>
<!-- Create a paragraph to hold the contact information. Iterate over
each <person> element, copying their data in. All but the last
person has a terminating <br> in the output. -->
<xsl:template match="contact">
<p>
<xsl:for-each select="person">
Contact: <xsl:value-of select="name"/> &lt;<a>
<xsl:attribute name="href">mailto:<xsl:value-of select="email"/></xsl:attribute><xsl:value-of select="email"/></a>&gt;
<xsl:if test="position() != last()"><br/></xsl:if>
</xsl:for-each>
</p>
</xsl:template>
<!-- Create a paragraph to hold the link information. Iterate over each
<url> element, copying their data in. All but the last link has a
terminating <br> in the output. -->
<xsl:template match="links">
<p>
<xsl:for-each select="url">
URL:
<a href="{@href}"> <!-- Copy in the href attribute -->
<!-- If the <url> element is not empty then use it's contents
as the body of the link. Otherwise, duplicate the contents
of the href so the user has something to click on. -->
<xsl:choose>
<xsl:when test="string-length()">
<xsl:value-of select="child::node()"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@href"/>
</xsl:otherwise>
</xsl:choose>
</a>
<xsl:if test="position() != last()"><br/></xsl:if>
</xsl:for-each>
</p>
</xsl:template>
<!-- Body is a doddle. Since it contains HTML we just copy in all the
child elements. -->
<xsl:template match="body">
<xsl:copy-of select="child::node()"/>
</xsl:template>
</xsl:stylesheet>