diff --git a/en/news/status/report-2001-06.xml b/en/news/status/report-2001-06.xml index 1adc9b9b1c..b82f01df3a 100644 --- a/en/news/status/report-2001-06.xml +++ b/en/news/status/report-2001-06.xml @@ -1,825 +1,825 @@ June 2001 - $FreeBSD$ + $FreeBSD: www/en/news/status/report-june-2001.xml,v 1.4 2001/09/18 12:22:07 chris Exp $
Introduction

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.

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

This status report may be reproduced in whole or in part, as long as the source is clearly identified and appropriate credit given.

Future Editions

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:

robert+freebsd.monthly@cyrus.watson.org

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.

-- Robert Watson < rwatson@FreeBSD.org >

Binary Updater Project Eric Melville eric@FreeBSD.org Murray Stokely murray@FreeBSD.org

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)

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 updater@osd.bsdi.com if you are interested in spending some cycles on this.

- "Close a PR drive" + Problem Reports Poul-Henning Kamp phk@FreeBSD.org

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.

CVSROOT script rewrite/tidy Josef Karthauser joe@FreeBSD.org

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.

Status: work in progress. There is now a configuration file, but not all the scripts use it yet.

DEVFS Poul-Henning Kamp phk@FreeBSD.org

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.

From July 1st DEVFS will be standard in -current.

digi driver Brian Somers brian@FreeBSD.org

Added the digi driver. Initial work was done by John Prince <johnp@knight-trosoft.com>, 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.

Diskcheckd Poul-Henning Kamp phk@FreeBSD.org

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.

if_fxp driver Jonathan Lemon jlemon@FreeBSD.org

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.

Java Project Greg Lewis glewis@eyesbeyond.com

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

Kernel Graphics Interface port Nicolas Souchu nsouch@fr.alcove.com

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.

libh Project Alexander Langer alex@FreeBSD.org Nathan Ahlstrom nra@FreeBSD.org

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.

Mount(2) API Poul-Henning Kamp phk@FreeBSD.org

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.

OLDCARD pccard implementation Warner Losh imp@FreeBSD.org

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.

PowerPC Port Benno Rice benno@FreeBSD.org

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. =)

PPP Brian Somers brian@FreeBSD.org

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.

pseudofs Dag-Erling Smorgrav des@FreeBSD.org

Pseudofs is a framework for pseudo-filesystems, like procfs and linprocfs. The goal of pseudofs is twofold:

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/<pid>/mem file.

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/<pid>/mem.

RELNOTESng Bruce A. Mah bmah@FreeBSD.org

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.

SMPng Project John Baldwin jhb@FreeBSD.org Jake Burkholder jake@FreeBSD.org SMP Mailing list smp@FreeBSD.org

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.

SMPng mbuf allocator Bosko Milekic bmilekic@FreeBSD.org

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.

Presently in initial review & testing stages, most of the code is already written.

Sparc64 Port Jake Burkholder jake@FreeBSD.org

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:

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.

TrustedBSD Robert Watson rwatson@FreeBSD.org

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.

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.

TrustedBSD: ACLs Chris D. Faulhaber jedgar@FreeBSD.org

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.

TrustedBSD Capabilities Thomas Moestl tmm@FreeBSD.org

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.

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.

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.

TrustedBSD MAC and Object Labeling Robert Watson rwatson@FreeBSD.org

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.

diff --git a/en/news/status/report-2001-07.xml b/en/news/status/report-2001-07.xml index 99d1f56ff3..41a9ece812 100644 --- a/en/news/status/report-2001-07.xml +++ b/en/news/status/report-2001-07.xml @@ -1,1201 +1,1201 @@ July 2001 - $FreeBSD$ + $FreeBSD: www/en/news/status/report-july-2001.xml,v 1.3 2001/09/18 12:22:07 chris Exp $
Introduction

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.

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.

Submission for Future Editions

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.

-- Robert Watson < rwatson@FreeBSD.org >

ACPI Mike Smith msmith@FreeBSD.org

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

http://developer.intel.com/technology/iapc/acpi

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.

The Intel ACPI interpreter is fully integrated, although bugs are still coming out of the woodwork occasionally.

Work is ongoing in the following areas:

ARM Port Stephane Potvin septovin@videotron.ca

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.

BIND 9 Doug Barton dougb@FreeBSD.org Jeroen Ruigrok asmodai@freebsd.org

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.

binup Eric Melville eric@FreeBSD.org

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.

BSDCon Europe Paul Richards paul@freebsd-services.co.uk Josef Karthauser joe@tao.org.uk

The conference will take place at the Thistle Hotel, Brighton, UK from 9-11 November 2001.

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.

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.

We're also still looking for sponsors.

We had 80 pre-registrations in the first week so we're expecting a good turnout.

CAM Matthew Jacob mjacob@FreeBSD.org Justin Gibbs gibbs@FreeBSD.org

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.

- "Close a PR drive" + Problem Reports Poul-Henning Kamp phk@FreeBSD.org

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.

Documentation Project Documentation Project doc@FreeBSD.org

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

http://www.freebsd.org/docproj/handbook.html

Dima and others are doing a stellar job of keeping up with the steady flow of incoming PRs relating to the documentation project.

The Developers' Handbook,

http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/index.html

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.

Fibre Channel Support Matthew Jacob mjacob@feral.com

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.

Hardware Watchpoints in the Kernel Debugger Brian Dean bsd@FreeBSD.org

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.

ifconfig support for IEEE 802.11 wireless devices Brooks Davis brooks@FreeBSD.org

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

jailNG Robert Watson rwatson@FreeBSD.org

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.

FreeBSD Java Project Greg Lewis glewis@eyesbeyond.com

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.

jpman project Japanese Man Page Project man-jp@jp.FreeBSD.org

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

Kernel Summit - Usenix 2001 John Baldwin jhb@FreeBSD.org

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.

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.

KSE threading the kernel Julian Elischer julian@elischer.org

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

I have split the proc structure and am changing most of the kernel to pass around a thread identifier instead of a proc structure.

The following interfaces have been changed so far:

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.

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 :-)

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.

FreeBSD Monthly Development Status Reports Robert Watson rwatson@FreeBSD.org> Chris Costello chris@FreeBSD.org

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.

NetBSD rc.d port Doug Barton dougb@FreeBSD.org Sheldon Hearn sheldonh@FreeBSD.org

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.

Luke Mewburn's USENIX paper and slides on the system as implemented in NetBSD are available here:

http://groups.yahoo.com/group/FreeBSD-rc/message/3

Interested parties are urged to study this material before joining the discussion list.

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.

Netgraph ATM Hartmut Brandt brandt@fokus.gmd.de

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.

network device cloning Brooks Davis brooks@FreeBSD.org

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.

Next Generation POSIX threads (NGPT) Arun Sharma arun@sharma.dhs.org

Porting NGPT (next generation pthreads) to FreeBSD

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

The port is right here:

http://www.freebsd.org/cgi/query-pr.cgi?pr=29239

OLDCARD upgrade to support PCI cards Warner Losh imp@village.org

Funded by: Monzoon Networking, LLC

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.

Open Runtime Platform (ORP) Arun Sharma arun@sharmas.dhs.org eGroups: ORP orp@egroups.com

Information on Intel ORP - a BSD licensed Java VM is right here:

http://www.intel.com/research/mrl/orp/

A FreeBSD patch has been tested to work with NGPT and submitted to the ORP project. The patch is available here:

http://www.sharma-home.net/~adsharma/projects/orp/orp-freebsd-1.0.5.patch.txt.gz

There are some issues to be ironed out to make it work with FreeBSD's default (user level) pthread implementation.

OpenPackages

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.

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

PAM Mark R V Murray mark@grondar.za

(First report)

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.

PowerPC Port Benno Rice benno@FreeBSD.org

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.

PPP IPv6 Support Brian Somers brian@freebsd-services.com

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.

Porting ppp to hurd & linux Brian Somers brian@Awfulhak.org

Patches have been submitted to get ppp working under HURD, and mostly under Linux. There are GPL copyright problems that need to be addressed.

pppoed Brian Somers brian@freebsd-services.com

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.

PRFW - Hooks within the FreeBSD kernel Evan Sarmiento ems@open-root.org

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.

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.

SCSI Tape Support Matthew Jacob mjacob@feral.com

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.

SMPng Peter Wemm peter@FreeBSD.org John Baldwin jhb@FreeBSD.org

Development

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.

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.

Management

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.

FreeBSD-current is being imported into p4 hourly, for easy tracking of the moving -current tree.

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.

KSE work is now being checked into a kse p4 branch - thanks Julian!

KSE work is focusing on getting the main API changes into the base tree well before 5.0.

SMPng mbuf allocator Bosko Milekic bmilekic@FreeBSD.org

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.

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 [http://people.freebsd.org/~bmilekic/code/mb_alloc/results.html] - 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).

sparc64 port Jake Burkholder jake@freebsd.org

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.

FreeBSD/sparc64 kernel loader Robert Drehmel robert@ferrari.de

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.

SYN cache implemetation for FreeBSD Jonathan Lemon jlemon@freebsd.org

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.

TrustedBSD Project Robert Watson rwatson@FreeBSD.org

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.

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.

diff --git a/en/news/status/report-july-2001.xml b/en/news/status/report-july-2001.xml index 99d1f56ff3..41a9ece812 100644 --- a/en/news/status/report-july-2001.xml +++ b/en/news/status/report-july-2001.xml @@ -1,1201 +1,1201 @@ July 2001 - $FreeBSD$ + $FreeBSD: www/en/news/status/report-july-2001.xml,v 1.3 2001/09/18 12:22:07 chris Exp $
Introduction

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.

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.

Submission for Future Editions

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.

-- Robert Watson < rwatson@FreeBSD.org >

ACPI Mike Smith msmith@FreeBSD.org

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

http://developer.intel.com/technology/iapc/acpi

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.

The Intel ACPI interpreter is fully integrated, although bugs are still coming out of the woodwork occasionally.

Work is ongoing in the following areas:

ARM Port Stephane Potvin septovin@videotron.ca

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.

BIND 9 Doug Barton dougb@FreeBSD.org Jeroen Ruigrok asmodai@freebsd.org

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.

binup Eric Melville eric@FreeBSD.org

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.

BSDCon Europe Paul Richards paul@freebsd-services.co.uk Josef Karthauser joe@tao.org.uk

The conference will take place at the Thistle Hotel, Brighton, UK from 9-11 November 2001.

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.

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.

We're also still looking for sponsors.

We had 80 pre-registrations in the first week so we're expecting a good turnout.

CAM Matthew Jacob mjacob@FreeBSD.org Justin Gibbs gibbs@FreeBSD.org

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.

- "Close a PR drive" + Problem Reports Poul-Henning Kamp phk@FreeBSD.org

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.

Documentation Project Documentation Project doc@FreeBSD.org

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

http://www.freebsd.org/docproj/handbook.html

Dima and others are doing a stellar job of keeping up with the steady flow of incoming PRs relating to the documentation project.

The Developers' Handbook,

http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/index.html

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.

Fibre Channel Support Matthew Jacob mjacob@feral.com

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.

Hardware Watchpoints in the Kernel Debugger Brian Dean bsd@FreeBSD.org

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.

ifconfig support for IEEE 802.11 wireless devices Brooks Davis brooks@FreeBSD.org

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

jailNG Robert Watson rwatson@FreeBSD.org

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.

FreeBSD Java Project Greg Lewis glewis@eyesbeyond.com

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.

jpman project Japanese Man Page Project man-jp@jp.FreeBSD.org

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

Kernel Summit - Usenix 2001 John Baldwin jhb@FreeBSD.org

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.

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.

KSE threading the kernel Julian Elischer julian@elischer.org

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

I have split the proc structure and am changing most of the kernel to pass around a thread identifier instead of a proc structure.

The following interfaces have been changed so far:

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.

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 :-)

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.

FreeBSD Monthly Development Status Reports Robert Watson rwatson@FreeBSD.org> Chris Costello chris@FreeBSD.org

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.

NetBSD rc.d port Doug Barton dougb@FreeBSD.org Sheldon Hearn sheldonh@FreeBSD.org

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.

Luke Mewburn's USENIX paper and slides on the system as implemented in NetBSD are available here:

http://groups.yahoo.com/group/FreeBSD-rc/message/3

Interested parties are urged to study this material before joining the discussion list.

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.

Netgraph ATM Hartmut Brandt brandt@fokus.gmd.de

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.

network device cloning Brooks Davis brooks@FreeBSD.org

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.

Next Generation POSIX threads (NGPT) Arun Sharma arun@sharma.dhs.org

Porting NGPT (next generation pthreads) to FreeBSD

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

The port is right here:

http://www.freebsd.org/cgi/query-pr.cgi?pr=29239

OLDCARD upgrade to support PCI cards Warner Losh imp@village.org

Funded by: Monzoon Networking, LLC

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.

Open Runtime Platform (ORP) Arun Sharma arun@sharmas.dhs.org eGroups: ORP orp@egroups.com

Information on Intel ORP - a BSD licensed Java VM is right here:

http://www.intel.com/research/mrl/orp/

A FreeBSD patch has been tested to work with NGPT and submitted to the ORP project. The patch is available here:

http://www.sharma-home.net/~adsharma/projects/orp/orp-freebsd-1.0.5.patch.txt.gz

There are some issues to be ironed out to make it work with FreeBSD's default (user level) pthread implementation.

OpenPackages

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.

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

PAM Mark R V Murray mark@grondar.za

(First report)

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.

PowerPC Port Benno Rice benno@FreeBSD.org

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.

PPP IPv6 Support Brian Somers brian@freebsd-services.com

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.

Porting ppp to hurd & linux Brian Somers brian@Awfulhak.org

Patches have been submitted to get ppp working under HURD, and mostly under Linux. There are GPL copyright problems that need to be addressed.

pppoed Brian Somers brian@freebsd-services.com

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.

PRFW - Hooks within the FreeBSD kernel Evan Sarmiento ems@open-root.org

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.

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.

SCSI Tape Support Matthew Jacob mjacob@feral.com

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.

SMPng Peter Wemm peter@FreeBSD.org John Baldwin jhb@FreeBSD.org

Development

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.

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.

Management

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.

FreeBSD-current is being imported into p4 hourly, for easy tracking of the moving -current tree.

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.

KSE work is now being checked into a kse p4 branch - thanks Julian!

KSE work is focusing on getting the main API changes into the base tree well before 5.0.

SMPng mbuf allocator Bosko Milekic bmilekic@FreeBSD.org

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.

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 [http://people.freebsd.org/~bmilekic/code/mb_alloc/results.html] - 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).

sparc64 port Jake Burkholder jake@freebsd.org

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.

FreeBSD/sparc64 kernel loader Robert Drehmel robert@ferrari.de

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.

SYN cache implemetation for FreeBSD Jonathan Lemon jlemon@freebsd.org

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.

TrustedBSD Project Robert Watson rwatson@FreeBSD.org

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.

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.

diff --git a/en/news/status/report-june-2001.xml b/en/news/status/report-june-2001.xml index 1adc9b9b1c..b82f01df3a 100644 --- a/en/news/status/report-june-2001.xml +++ b/en/news/status/report-june-2001.xml @@ -1,825 +1,825 @@ June 2001 - $FreeBSD$ + $FreeBSD: www/en/news/status/report-june-2001.xml,v 1.4 2001/09/18 12:22:07 chris Exp $
Introduction

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.

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

This status report may be reproduced in whole or in part, as long as the source is clearly identified and appropriate credit given.

Future Editions

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:

robert+freebsd.monthly@cyrus.watson.org

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.

-- Robert Watson < rwatson@FreeBSD.org >

Binary Updater Project Eric Melville eric@FreeBSD.org Murray Stokely murray@FreeBSD.org

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)

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 updater@osd.bsdi.com if you are interested in spending some cycles on this.

- "Close a PR drive" + Problem Reports Poul-Henning Kamp phk@FreeBSD.org

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.

CVSROOT script rewrite/tidy Josef Karthauser joe@FreeBSD.org

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.

Status: work in progress. There is now a configuration file, but not all the scripts use it yet.

DEVFS Poul-Henning Kamp phk@FreeBSD.org

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.

From July 1st DEVFS will be standard in -current.

digi driver Brian Somers brian@FreeBSD.org

Added the digi driver. Initial work was done by John Prince <johnp@knight-trosoft.com>, 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.

Diskcheckd Poul-Henning Kamp phk@FreeBSD.org

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.

if_fxp driver Jonathan Lemon jlemon@FreeBSD.org

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.

Java Project Greg Lewis glewis@eyesbeyond.com

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

Kernel Graphics Interface port Nicolas Souchu nsouch@fr.alcove.com

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.

libh Project Alexander Langer alex@FreeBSD.org Nathan Ahlstrom nra@FreeBSD.org

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.

Mount(2) API Poul-Henning Kamp phk@FreeBSD.org

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.

OLDCARD pccard implementation Warner Losh imp@FreeBSD.org

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.

PowerPC Port Benno Rice benno@FreeBSD.org

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. =)

PPP Brian Somers brian@FreeBSD.org

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.

pseudofs Dag-Erling Smorgrav des@FreeBSD.org

Pseudofs is a framework for pseudo-filesystems, like procfs and linprocfs. The goal of pseudofs is twofold:

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/<pid>/mem file.

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/<pid>/mem.

RELNOTESng Bruce A. Mah bmah@FreeBSD.org

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.

SMPng Project John Baldwin jhb@FreeBSD.org Jake Burkholder jake@FreeBSD.org SMP Mailing list smp@FreeBSD.org

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.

SMPng mbuf allocator Bosko Milekic bmilekic@FreeBSD.org

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.

Presently in initial review & testing stages, most of the code is already written.

Sparc64 Port Jake Burkholder jake@FreeBSD.org

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:

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.

TrustedBSD Robert Watson rwatson@FreeBSD.org

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.

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.

TrustedBSD: ACLs Chris D. Faulhaber jedgar@FreeBSD.org

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.

TrustedBSD Capabilities Thomas Moestl tmm@FreeBSD.org

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.

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.

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.

TrustedBSD MAC and Object Labeling Robert Watson rwatson@FreeBSD.org

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.