diff --git a/en/news/status/Makefile b/en/news/status/Makefile
index 5cba4d27ff..bd8e32a5d3 100644
--- a/en/news/status/Makefile
+++ b/en/news/status/Makefile
@@ -1,43 +1,44 @@
-# $FreeBSD: www/en/news/status/Makefile,v 1.21 2003/10/09 06:12:34 scottl Exp $
+# $FreeBSD: www/en/news/status/Makefile,v 1.22 2004/01/28 19:14:40 scottl Exp $
.if exists(../Makefile.conf)
.include "../Makefile.conf"
.endif
.if exists(../Makefile.inc)
.include "../Makefile.inc"
.endif
.SUFFIXES: .xml .html
DOCS= status.sgml
DATA= report-june-2001.html
DATA+= report-july-2001.html
DATA+= report-august-2001.html
DATA+= report-september-2001.html
DATA+= report-november-2001.html
DATA+= report-dec-2001-jan-2002.html
DATA+= report-feb-2002-apr-2002.html
DATA+= report-may-2002-june-2002.html
DATA+= report-july-2002-aug-2002.html
DATA+= report-sept-2002-oct-2002.html
DATA+= report-nov-2002-dec-2002.html
DATA+= report-jan-2003-feb-2003.html
DATA+= report-mar-2003-sep-2003.html
DATA+= report-oct-2003-dec-2003.html
+DATA+= report-jan-2004-feb-2004.html
# Install a sample 2004 started with another exciting two months for the project.
+ FreeBSD 5.2 was released in early January and then quickly followed
+ in February with the 5.2.1 bug-fix release. Looking forward, we
+ are expecting a late-April release date for FreeBSD 4.10, and
+ mid-summer date for FreeBSD 5.3. And don't forget to support the
+ FreeBSD vendors and developers by buying a copy of the latest CD
+ or DVD sets. Thanks, Scott Long In the overall area of disk and device I/O, a significant
+ milestone was reached with the implementation of proper
+ reference counting on dev_t. We are now able to properly
+ allocate and free dev_t. Cloning device drivers also had
+ the job made easier for them with the addition of the unit
+ number management routines. It is not quite decided which will be the next step in
+ the quest for a truly SMPng I/O subsystem, but a leading
+ candidate is to implement the device-access vnode bypass
+ to get more concurrency in the system: Instead of taking
+ the tour through the vnodes for each i/o operation on a
+ device we will go directly from the file descriptor layer to
+ DEVFS/SPECFS. In addition to Giant-less disk I/O,
+ this should enable us to pull the entire tty subsystem
+ and the PTY driver out from under Giant and we expect that
+ to improve the "snappiness" of the system measurably. The Dutch Documentation Project is a ongoing project in
+ translating the handbook and other documentation to the dutch
+ language. Currently there is 1 active person (me) translating the
+ documentation. I am currently working on the handbook/basics
+ section. But i can use some more hands, please drop me an email if
+ you wish to help out so that the dutch translation will speed up
+ and be ready in some time. Contact remko@elvandar.org for
+ information. I have been producing weekly summaries of commits and the
+ surrounding discussions as reported on the cvs-src mailing list.
+ These summaries are posted to -current on Sunday evenings and
+ archived on the Web. The reception has been overwhelmingly good.
+ As of the end of February, Polish translations are being produced
+ by Lukasz Dudek and Szymon Roczniak; they are also
+ planning to translate the older summaries. libarchive, with complete documentation, has been committed to
+ -CURRENT. bsdtar should follow soon. For a few months, gtar
+ and bsdtar will both be available in the base system. Once
+ bsdtar is in the tree, I hope to resume work on libpkg and my
+ pkg_add rewrite. Note that bsdtar is not an exact replacement for gtar: it does
+ some things better (reads/writes standard formats, archive ACLs
+ and file flags, detects format and compression automatically),
+ some things worse (does not handle multi-volume archives or
+ sparse files) and a few things just different (writes POSIX-format
+ archives by default, not GNU-format). The command lines are
+ sufficiently similar that most users should have no problems
+ with the transition. However, people who rely on peculiar
+ options or capabilities of gtar may have to look to ports. The first actual feature related to the if_xname conversion was
+ committed in early February. Network interfaces can now be
+ renamed with "ifconfig <if> name <newname>". Work is slowly progressing on a new network interface cloning API
+ to enable interesting cloners like auto-configurating vlans.
+ This work is taking place in the perforce repository under:
+ //depot/user/brooks/xname/... After a slow time at the end of last year due to a disk crash,
+ the project is moving along rapidly. The loader is fully
+ functional with Forth support. Syscons has been integrated.
+ New Powerbook models are supported. Work is starting on a
+ G5 port. There's still lots to do, so as usual volunteers are most
+ welcome. The project is a joint effort of volunteers, which focus in
+ the internationalization and localization of the FreeBSD
+ Operating System and applications running on FreeBSD. All of the
+ work resulted in this project will be contributed back to the
+ FreeBSD project. Thanks to many volunteers' help, by this time of writing, we
+ have finished more than 60% of the translation of the FreeBSD
+ Handbook. We plan to submit a preliminary translation of the
+ FreeBSD website as well as the FreeBSD Handbook when most part of
+ them were finished, which is expected to happen in a couple of
+ months. The snapshot of the documentation translation effort
+ could be accessed through the URL listed above. The project also supported individual efforts on porting
+ applications (especially software that supports Simplified
+ and/or Traditional Chinese) to FreeBSD. We are also doing some
+ research on making FreeBSD kernel and base system more
+ i18n-aware. The verify source reachability option for ipfw2 checks if the
+ source IP address of a packet entering the machine is reachable
+ at all. Thus if we can't send a packet back because we don't
+ have a route back we don't have to forward it because two way
+ communication isn't possible anyway. It is more than likely
+ that such a packet is spoofed. This option is almost the same as
+ what is known on Cisco IOS as "ip verify unicast source
+ reachable-via [any|ifn]". Using this option only makes sense
+ when you don't have a default route which naturally always
+ matches. So this is useful for machines acting as routers with
+ a default-free view of the entire Internet as common when running
+ a BGP daemon (Zebra/Quagga or OpenBSD bgpd). One useful way of enabling it globally on a router looks like
+ this: ipfw add xxxx deny ip from any to any not versrcreach or for
+ an individual interface only: ipfw add xxxx deny ip from any to
+ any not versrcreach recv fxp0 The ARP IP address to MAC address mapping does not belong into
+ the routing table (FIB) as it is currently done. This will move
+ it to its own hash based structure which will be instantiated
+ per each 802.1 broadcast domain. With this change it is possible
+ to have more than one interface in the same IP subnet and layer 2
+ broadcast domain. The ARP handling and the routing table will be
+ quite a bit simplified afterwards. As an additional benefit full
+ MAC address based accosting will be provided. Work on this
+ project is already in progress. The current TCP send and receive buffers are static and set to a
+ conservative value to preserve kernel memory. This is sub-optimal
+ for connections with a high bandwidth*delay product because the
+ size of the TCP send buffer determines how big the send window
+ can get. For high bandwidth trans-continental links this seriously
+ limits the maximum transfer speed per TCP connection. For example
+ a 170ms RTT and a 32kB send buffer limit the speed to approximately
+ 1.5Mbit per second even thought you might have a 10Mbit pipe. This project makes the TCP send buffer to automatically adapt to
+ the optimal buffer size for maximal link usage. In the case
+ above this would be a buffer of approximately 220kB. The main
+ challenge is to have a stable and reliable measurement of the link
+ parameters and manage the kernel memory properly and in a fair way.
+ We don't want to have a few connections to monopolize all available
+ socket buffer space and many edge cases have to be considered. The
+ first implementation will be tuned conservatively but even that
+ will provide significantly better performance than the static
+ buffers currently. Work on this project is already in
+ progress. The TCP performance test and qualification testbed is an automated
+ environment that simulates various common and uncommon end-to-end
+ network and link characteristics such as delay, bandwidth
+ limitations, congestion, packet drops, packet corruption and out
+ of order arrival. The testbed automatically steps through all
+ link types and tests various TCP optimizations and parameter
+ adjustments. In the end all data is graphically arranged and
+ compared against standard behaviour and each other to judge the
+ positive or negative effects of the modifications. Work on this
+ project has just started and is based on FreeBSDs dummynet. Thanks to the loan of a box by Will Andrews, the system has
+ been moved into production. The previous installation
+ at lonesome.com now refers you to the new system. As part of
+ the installation, a preliminary
+ The database is updated once per hour. New reports available include ones about ports marked DEPRECATED,
+ since that function has now been incorporated into bsd.port.mk.
+ (The author hopes that this will allow the port deprecation process
+ to be much more visible to the general FreeBSD user community.) In
+ addition, a report for ports marked FORBIDDEN was added (the code
+ was essentially the same). The next topic of interest is to try to identify ports which are
+ slave ports because the status of these ports is not currently
+ being updated automatically. This problem also affects
+ FreshPorts. PR ports/63683 is an attempt to address this problem.
+ Also, preliminary work has been done on creating some graphs and
+ charts for various statistics, and in creating a tool to browse
+ port dependencies for the entire ports tree. Some general observations about the trends in ports PRs can be
+ made:
+
+
+
The FreeSBIE Project aims to develop a set of scripts that allow + anyone to create their own FreeBSD Bootable Cdrom, with their own + set of installed packages. The Project releases an ISO builded + with FreeSBIE scripts, to show what they can do. On Sunday 29 + February 2004, FreeSBIE 1.0 was released and it had a great + success, as there were post on Slashdot.org, OSnews, DaemonNews + and BSDForums. Thanks to the huge amount of feedback they got, + FreeSBIE Developers are now developing new features such as + support for archs different from i386. Website redesign is on the + way too.
+ +Move to Perforce is done. I spent some time on building a + common compilation tree with Linux: until now drivers were + build in a FreeBSD makefile tree, not compatible with Linux.
+ +The next priorities are ANSI support and keymaps in the + KGC Kernel Graphic Console system.
+ +Work on the PMAP overhaul has been put into gear. A lot of issues + will be addressed, including support for sparse physical memory + and of course SMP. Performance will be addressed to the extend + possible, but functionality has priority. The redesign will lay + the foundation for NUMA support where possible. An example of this + is limiting TLB shootdowns to processors that actually have or had + TLBs belonging to the PMAP loaded. Of course, without NUMA + hardware the implementation of NUMA support is quite limited.
+ +Distributed package builds are currently done using a set of + home-grown shell scripts for managing, scheduling and + dispatching of package builds on the client machines. This has + been sufficient for our needs in the past, but has a number of + significant shortcomings that limit future growth. I am + rewriting the package build scripts to work on top of Sun + GridEngine (ports/sysutils/sge), as a client application of a + "FreeBSD package grid". Some of the design goals for the new + system are:
+ +The "geomification" of vinum has made some progress. I now have + all basic setups working (concatenated plexes, striped plexes, + RAID5 plexes, and RAID1), but I still have to implement correct + error handling and status change handling.
+Still missing is a userland tool, so currently you still have to + use "old-style" vinum to configure your setup.
+ +NanoBSD, src/tools/tools/nanobsd, is a tool for stuffing FreeBSD + onto small disk media (like CompactFlash) for embedded + applications. The disk image is built with three partitions, two + for software images and one for configuration files. Having two + software partitions means that new software can be uploaded to the + non-active partition while running off the active partition.
+The first really public version has been committed and many + suggestions and offers of patches have started pouring in.
+ +The sources were imported from OpenBSD 3.4R and patched with + diffs obtained from the port. Since March the 8th it is linked + to the build and install. There is some more work to be done in + order make pf a home inside the tree, but the biggest hunk of + work was lifted during the past two month.
+OpenBSD 3.5 is scheduled for early May, so we might see an update + before 5.3R. Work towards integration of the - often requested + - ALTQ framework is in progress also, though it is not yet clear + how well it goes along with the ongoing work towards a giant free + net stack.
+ +Development goes reasonably fast, right now it boots single user. + It is still very simics-centric, and it deserves a huge cleanup + and a few bug fixes, but there's already a decent amount of code + to work with, mostly taken from NetBSD. I now plan to work on real + hardware support (as soon as I can get some), to get the missing + userland bits (mainly rtld and the pthread libs) so that I can + build a full world.
+ +Not much has changed since last report was submitted. The + read-onle access XFS volumes is quite stable now. The work is + underway to rewrite xfs_buf layer to minimize local changes + intrusiveness. Initial attempt to make XFS code to compile and + run on amd64 is in progress too.
+We really need a care-taker for our userland tools.
+ +If nothing bad happened, the icc patches got committed around + the date of the deadline for submissions of this report. Please + search the archives of -current and/or cvs-all for more + information.
+ +The next steps in this project are to +
Not much to report. Bluetooth Service Discovery Procotol daemon + sdpd was integrated with existing Bluetooth utilities. From now + on users should not use GNU sdpd (Linux BlueZ port).
+Bluetooth HID profile implementation is almost complete. Thanks + to Matt Peterson < matt at peterson dot org > for giving me + Bluetooth keyboard and mouse for development.
+ +It has been a year since our last status report, but we + haven't slowed down. Since the last report, Alexander + Nedotsukov (bland) and Pav Lucistnik (pav) have joined the + FreeBSD GNOME team. GNOME 2.4 was released back in September + 2003, followed by 2.4.1 and 2.4.2. We are actively working on + getting GNOME 2.6.0 out the door at the end of March. GNOME 2.6 + Beta releases can be obtained via the project URL above.
+ +To help make GNOME 2.6.0 our best release to date, we have
+ created a script to automate the upgrade from GNOME 2.4. We
+ also have a new GNOME
+
Included in the release of GNOME 2.6 is GTK+ 2.4, the next + installment in the GTK+ 2 series. Because GTK+ 2 has become + very stable over the past few years, the FreeBSD GNOME Team is + pushing for GTK+ 2 support to be included by default in all + applications that support it. This has already been done with + Mozilla, Firefox, and Thunderbird. A complete GNOME Desktop and + application environment can already be built using only GTK+ 2. + The ultimate goal is to phase GTK+ 1 out of the ports tree.
+ +This project is aimed at converting the FreeBSD network stack from + running under the single Giant kernel lock to permitting it to + run in a fully parallel manner on multiple CPUs (i.e., a fully + threaded network stack). This will improve performance/latency + through reentrancy and preemption on single-processor machines, + and also on multi-processor machines by permitting real + parallelism in the processing of network traffic. As of FreeBSD + 5.2, it was possible to run low level network functions, as well + as the IP filtering and forwarding plane, without the Giant lock, + as well as "process to completion" in the interrupt handler.
+ +Work continues to improve the maturity and completeness of + the locking (and performance) of the network stack for 5.3. The + network stack locking development branch has been updated cothe + latest CVS HEAD, tracking a variety of FreeBSD changes, including + tracking and driving changes in the interface and device cloning + APIs, push-down and fixes to locking in the Berkeley Packet + Filter, consistency improvements in allocation flags for network + objects, diagnosis of excessive acquisition of Giant in various + system callouts and timeouts, removal of Giant from several + system callouts, "const"-ification of a number of global + variables in the network stack (IPv4, IPv6, elsewhere) as part of + ananalysis of locking requirements, fine-grain locking of a + number of pseudo-interfaces (disc, loopback, faith, stf, gif, tap, + tun), IP encapsulation and tunneling, initial review and locking + of parts of PPP and SLIP, experimentation with PCB assertions on + IPv6, additional socket locking assertions, graphing of the FreeBSD + sockets layer to support locking analysis, merging of theMT_TAG to + m_tag conversion to improve the ability to queue packets, moving + of the debug.mpsafenet tunable to controlling Giant over the + forwarding plane to Giant over the entire stack("dual-mode" to + support non-MPSAFE protocols), adaption of existing network lock + assertions to also assert Giant when running non-MPSAFE, analysis + of high cost of select() locking, improved locking and + synchronization annotations, TCP callouts run MPSAFE, logtimeout() + runs MPSAFE, uma_timeout() runs MPSAFE, callout sampling + instrumentation, loadav() runs MPSAFE, AppleTalk locking begun: + AARP locked down and DDP analysis, rawcb list locked, locking + analysis of mrouter and IP ID code, IGMP locked, IPv6 analysis + begun, IPX/SPX analysis begun, PPP timeouts converted to callouts, + Netgraph analysis begun. Many of these changes have not yet been + merged to the main FreeBSDtree, but this is a work in progress.
+ +In related work on Pipe IPC (not quite network stack locking), + substantial time was invested in diagnosing an increase in the + cost of pipe allocation since FreeBSD 4.x, as well as coalescing + the several allocations needed to create a pipe, as well as moving + to slab allocation so as to amortize the cost of pipe + initialization. Future work here will include caching the VM + structures supporting pipe buffers.
+ +Recent contributors include Robert Watson, Sam Leffler, MaxLaier, + Maurycy Pawlowski-Wieronski, Brooks Davis, and many others who are + omitted here only by accident.
+ +2004 started with another exciting two months for the project. + FreeBSD 5.2 was released in early January and then quickly followed + in February with the 5.2.1 bug-fix release. Looking forward, we + are expecting a late-April release date for FreeBSD 4.10, and + mid-summer date for FreeBSD 5.3. And don't forget to support the + FreeBSD vendors and developers by buying a copy of the latest CD + or DVD sets.
+ +Thanks,
+ +Scott Long
+In the overall area of disk and device I/O, a significant + milestone was reached with the implementation of proper + reference counting on dev_t. We are now able to properly + allocate and free dev_t. Cloning device drivers also had + the job made easier for them with the addition of the unit + number management routines.
+It is not quite decided which will be the next step in + the quest for a truly SMPng I/O subsystem, but a leading + candidate is to implement the device-access vnode bypass + to get more concurrency in the system: Instead of taking + the tour through the vnodes for each i/o operation on a + device we will go directly from the file descriptor layer to + DEVFS/SPECFS. In addition to Giant-less disk I/O, + this should enable us to pull the entire tty subsystem + and the PTY driver out from under Giant and we expect that + to improve the "snappiness" of the system measurably.
+ +The Dutch Documentation Project is a ongoing project in + translating the handbook and other documentation to the dutch + language. Currently there is 1 active person (me) translating the + documentation. I am currently working on the handbook/basics + section. But i can use some more hands, please drop me an email if + you wish to help out so that the dutch translation will speed up + and be ready in some time. Contact remko@elvandar.org for + information.
+ +I have been producing weekly summaries of commits and the + surrounding discussions as reported on the cvs-src mailing list. + These summaries are posted to -current on Sunday evenings and + archived on the Web. The reception has been overwhelmingly good. + As of the end of February, Polish translations are being produced + by Lukasz Dudek and Szymon Roczniak; they are also + planning to translate the older summaries.
+ +libarchive, with complete documentation, has been committed to + -CURRENT. bsdtar should follow soon. For a few months, gtar + and bsdtar will both be available in the base system. Once + bsdtar is in the tree, I hope to resume work on libpkg and my + pkg_add rewrite.
+ +Note that bsdtar is not an exact replacement for gtar: it does + some things better (reads/writes standard formats, archive ACLs + and file flags, detects format and compression automatically), + some things worse (does not handle multi-volume archives or + sparse files) and a few things just different (writes POSIX-format + archives by default, not GNU-format). The command lines are + sufficiently similar that most users should have no problems + with the transition. However, people who rely on peculiar + options or capabilities of gtar may have to look to ports.
+ +The first actual feature related to the if_xname conversion was + committed in early February. Network interfaces can now be + renamed with "ifconfig <if> name <newname>".
+ +Work is slowly progressing on a new network interface cloning API + to enable interesting cloners like auto-configurating vlans. + This work is taking place in the perforce repository under: + //depot/user/brooks/xname/...
+ +After a slow time at the end of last year due to a disk crash, + the project is moving along rapidly. The loader is fully + functional with Forth support. Syscons has been integrated. + New Powerbook models are supported. Work is starting on a + G5 port.
+ +There's still lots to do, so as usual volunteers are most + welcome.
+ +The project is a joint effort of volunteers, which focus in + the internationalization and localization of the FreeBSD + Operating System and applications running on FreeBSD. All of the + work resulted in this project will be contributed back to the + FreeBSD project.
+Thanks to many volunteers' help, by this time of writing, we + have finished more than 60% of the translation of the FreeBSD + Handbook. We plan to submit a preliminary translation of the + FreeBSD website as well as the FreeBSD Handbook when most part of + them were finished, which is expected to happen in a couple of + months. The snapshot of the documentation translation effort + could be accessed through the URL listed above.
+The project also supported individual efforts on porting + applications (especially software that supports Simplified + and/or Traditional Chinese) to FreeBSD. We are also doing some + research on making FreeBSD kernel and base system more + i18n-aware.
+ +The verify source reachability option for ipfw2 checks if the + source IP address of a packet entering the machine is reachable + at all. Thus if we can't send a packet back because we don't + have a route back we don't have to forward it because two way + communication isn't possible anyway. It is more than likely + that such a packet is spoofed. This option is almost the same as + what is known on Cisco IOS as "ip verify unicast source + reachable-via [any|ifn]". Using this option only makes sense + when you don't have a default route which naturally always + matches. So this is useful for machines acting as routers with + a default-free view of the entire Internet as common when running + a BGP daemon (Zebra/Quagga or OpenBSD bgpd).
+One useful way of enabling it globally on a router looks like + this: ipfw add xxxx deny ip from any to any not versrcreach or for + an individual interface only: ipfw add xxxx deny ip from any to + any not versrcreach recv fxp0
+ +The ARP IP address to MAC address mapping does not belong into + the routing table (FIB) as it is currently done. This will move + it to its own hash based structure which will be instantiated + per each 802.1 broadcast domain. With this change it is possible + to have more than one interface in the same IP subnet and layer 2 + broadcast domain. The ARP handling and the routing table will be + quite a bit simplified afterwards. As an additional benefit full + MAC address based accosting will be provided. Work on this + project is already in progress.
+ +The current TCP send and receive buffers are static and set to a + conservative value to preserve kernel memory. This is sub-optimal + for connections with a high bandwidth*delay product because the + size of the TCP send buffer determines how big the send window + can get. For high bandwidth trans-continental links this seriously + limits the maximum transfer speed per TCP connection. For example + a 170ms RTT and a 32kB send buffer limit the speed to approximately + 1.5Mbit per second even thought you might have a 10Mbit pipe.
+This project makes the TCP send buffer to automatically adapt to + the optimal buffer size for maximal link usage. In the case + above this would be a buffer of approximately 220kB. The main + challenge is to have a stable and reliable measurement of the link + parameters and manage the kernel memory properly and in a fair way. + We don't want to have a few connections to monopolize all available + socket buffer space and many edge cases have to be considered. The + first implementation will be tuned conservatively but even that + will provide significantly better performance than the static + buffers currently. Work on this project is already in + progress.
+ +The TCP performance test and qualification testbed is an automated + environment that simulates various common and uncommon end-to-end + network and link characteristics such as delay, bandwidth + limitations, congestion, packet drops, packet corruption and out + of order arrival. The testbed automatically steps through all + link types and tests various TCP optimizations and parameter + adjustments. In the end all data is graphically arranged and + compared against standard behaviour and each other to judge the + positive or negative effects of the modifications. Work on this + project has just started and is based on FreeBSDs dummynet.
+ +Thanks to the loan of a box by Will Andrews, the system has
+ been moved into production. The previous installation
+ at lonesome.com now refers you to the new system. As part of
+ the installation, a preliminary
+
The database is updated once per hour.
+New reports available include ones about ports marked DEPRECATED, + since that function has now been incorporated into bsd.port.mk. + (The author hopes that this will allow the port deprecation process + to be much more visible to the general FreeBSD user community.) In + addition, a report for ports marked FORBIDDEN was added (the code + was essentially the same).
+The next topic of interest is to try to identify ports which are + slave ports because the status of these ports is not currently + being updated automatically. This problem also affects + FreshPorts. PR ports/63683 is an attempt to address this problem. + Also, preliminary work has been done on creating some graphs and + charts for various statistics, and in creating a tool to browse + port dependencies for the entire ports tree.
+Some general observations about the trends in ports PRs can be + made: +
The FreeSBIE Project aims to develop a set of scripts that allow + anyone to create their own FreeBSD Bootable Cdrom, with their own + set of installed packages. The Project releases an ISO builded + with FreeSBIE scripts, to show what they can do. On Sunday 29 + February 2004, FreeSBIE 1.0 was released and it had a great + success, as there were post on Slashdot.org, OSnews, DaemonNews + and BSDForums. Thanks to the huge amount of feedback they got, + FreeSBIE Developers are now developing new features such as + support for archs different from i386. Website redesign is on the + way too.
+ +Move to Perforce is done. I spent some time on building a + common compilation tree with Linux: until now drivers were + build in a FreeBSD makefile tree, not compatible with Linux.
+ +The next priorities are ANSI support and keymaps in the + KGC Kernel Graphic Console system.
+ +Work on the PMAP overhaul has been put into gear. A lot of issues + will be addressed, including support for sparse physical memory + and of course SMP. Performance will be addressed to the extend + possible, but functionality has priority. The redesign will lay + the foundation for NUMA support where possible. An example of this + is limiting TLB shootdowns to processors that actually have or had + TLBs belonging to the PMAP loaded. Of course, without NUMA + hardware the implementation of NUMA support is quite limited.
+ +Distributed package builds are currently done using a set of + home-grown shell scripts for managing, scheduling and + dispatching of package builds on the client machines. This has + been sufficient for our needs in the past, but has a number of + significant shortcomings that limit future growth. I am + rewriting the package build scripts to work on top of Sun + GridEngine (ports/sysutils/sge), as a client application of a + "FreeBSD package grid". Some of the design goals for the new + system are:
+ +The "geomification" of vinum has made some progress. I now have + all basic setups working (concatenated plexes, striped plexes, + RAID5 plexes, and RAID1), but I still have to implement correct + error handling and status change handling.
+Still missing is a userland tool, so currently you still have to + use "old-style" vinum to configure your setup.
+ +NanoBSD, src/tools/tools/nanobsd, is a tool for stuffing FreeBSD + onto small disk media (like CompactFlash) for embedded + applications. The disk image is built with three partitions, two + for software images and one for configuration files. Having two + software partitions means that new software can be uploaded to the + non-active partition while running off the active partition.
+The first really public version has been committed and many + suggestions and offers of patches have started pouring in.
+ +The sources were imported from OpenBSD 3.4R and patched with + diffs obtained from the port. Since March the 8th it is linked + to the build and install. There is some more work to be done in + order make pf a home inside the tree, but the biggest hunk of + work was lifted during the past two month.
+OpenBSD 3.5 is scheduled for early May, so we might see an update + before 5.3R. Work towards integration of the - often requested + - ALTQ framework is in progress also, though it is not yet clear + how well it goes along with the ongoing work towards a giant free + net stack.
+ +Development goes reasonably fast, right now it boots single user. + It is still very simics-centric, and it deserves a huge cleanup + and a few bug fixes, but there's already a decent amount of code + to work with, mostly taken from NetBSD. I now plan to work on real + hardware support (as soon as I can get some), to get the missing + userland bits (mainly rtld and the pthread libs) so that I can + build a full world.
+ +Not much has changed since last report was submitted. The + read-onle access XFS volumes is quite stable now. The work is + underway to rewrite xfs_buf layer to minimize local changes + intrusiveness. Initial attempt to make XFS code to compile and + run on amd64 is in progress too.
+We really need a care-taker for our userland tools.
+ +If nothing bad happened, the icc patches got committed around + the date of the deadline for submissions of this report. Please + search the archives of -current and/or cvs-all for more + information.
+ +The next steps in this project are to +
Not much to report. Bluetooth Service Discovery Procotol daemon + sdpd was integrated with existing Bluetooth utilities. From now + on users should not use GNU sdpd (Linux BlueZ port).
+Bluetooth HID profile implementation is almost complete. Thanks + to Matt Peterson < matt at peterson dot org > for giving me + Bluetooth keyboard and mouse for development.
+ +It has been a year since our last status report, but we + haven't slowed down. Since the last report, Alexander + Nedotsukov (bland) and Pav Lucistnik (pav) have joined the + FreeBSD GNOME team. GNOME 2.4 was released back in September + 2003, followed by 2.4.1 and 2.4.2. We are actively working on + getting GNOME 2.6.0 out the door at the end of March. GNOME 2.6 + Beta releases can be obtained via the project URL above.
+ +To help make GNOME 2.6.0 our best release to date, we have
+ created a script to automate the upgrade from GNOME 2.4. We
+ also have a new GNOME
+
Included in the release of GNOME 2.6 is GTK+ 2.4, the next + installment in the GTK+ 2 series. Because GTK+ 2 has become + very stable over the past few years, the FreeBSD GNOME Team is + pushing for GTK+ 2 support to be included by default in all + applications that support it. This has already been done with + Mozilla, Firefox, and Thunderbird. A complete GNOME Desktop and + application environment can already be built using only GTK+ 2. + The ultimate goal is to phase GTK+ 1 out of the ports tree.
+ +This project is aimed at converting the FreeBSD network stack from + running under the single Giant kernel lock to permitting it to + run in a fully parallel manner on multiple CPUs (i.e., a fully + threaded network stack). This will improve performance/latency + through reentrancy and preemption on single-processor machines, + and also on multi-processor machines by permitting real + parallelism in the processing of network traffic. As of FreeBSD + 5.2, it was possible to run low level network functions, as well + as the IP filtering and forwarding plane, without the Giant lock, + as well as "process to completion" in the interrupt handler.
+ +Work continues to improve the maturity and completeness of + the locking (and performance) of the network stack for 5.3. The + network stack locking development branch has been updated cothe + latest CVS HEAD, tracking a variety of FreeBSD changes, including + tracking and driving changes in the interface and device cloning + APIs, push-down and fixes to locking in the Berkeley Packet + Filter, consistency improvements in allocation flags for network + objects, diagnosis of excessive acquisition of Giant in various + system callouts and timeouts, removal of Giant from several + system callouts, "const"-ification of a number of global + variables in the network stack (IPv4, IPv6, elsewhere) as part of + ananalysis of locking requirements, fine-grain locking of a + number of pseudo-interfaces (disc, loopback, faith, stf, gif, tap, + tun), IP encapsulation and tunneling, initial review and locking + of parts of PPP and SLIP, experimentation with PCB assertions on + IPv6, additional socket locking assertions, graphing of the FreeBSD + sockets layer to support locking analysis, merging of theMT_TAG to + m_tag conversion to improve the ability to queue packets, moving + of the debug.mpsafenet tunable to controlling Giant over the + forwarding plane to Giant over the entire stack("dual-mode" to + support non-MPSAFE protocols), adaption of existing network lock + assertions to also assert Giant when running non-MPSAFE, analysis + of high cost of select() locking, improved locking and + synchronization annotations, TCP callouts run MPSAFE, logtimeout() + runs MPSAFE, uma_timeout() runs MPSAFE, callout sampling + instrumentation, loadav() runs MPSAFE, AppleTalk locking begun: + AARP locked down and DDP analysis, rawcb list locked, locking + analysis of mrouter and IP ID code, IGMP locked, IPv6 analysis + begun, IPX/SPX analysis begun, PPP timeouts converted to callouts, + Netgraph analysis begun. Many of these changes have not yet been + merged to the main FreeBSDtree, but this is a work in progress.
+ +In related work on Pipe IPC (not quite network stack locking), + substantial time was invested in diagnosing an increase in the + cost of pipe allocation since FreeBSD 4.x, as well as coalescing + the several allocations needed to create a pipe, as well as moving + to slab allocation so as to amortize the cost of pipe + initialization. Future work here will include caching the VM + structures supporting pipe buffers.
+ +Recent contributors include Robert Watson, Sam Leffler, MaxLaier, + Maurycy Pawlowski-Wieronski, Brooks Davis, and many others who are + omitted here only by accident.
+ +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 Bi-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. For each project and sub-project, a one paragraph summary is included, indicating progress since the last summary. If it is a new project, or if a project has not submitted any prior status reports, a short description may precede the status information.
These status reports may be reproduced in whole or in part, as long as the source is clearly identified and appropriate credit given.
+