diff --git a/en/news/status/report-2005-03-2005-06.xml b/en/news/status/report-2005-03-2005-06.xml index 2a4360a2b5..d58ee70971 100644 --- a/en/news/status/report-2005-03-2005-06.xml +++ b/en/news/status/report-2005-03-2005-06.xml @@ -1,2173 +1,2173 @@ March-June 2005
Introduction

The second quarter of 2005 has again been very exciting. The BSDCan and MeetBSD conferences were both very interesting and and the sources of very good times. I highly recommend attending them again next year.

The Google Summer of Code project has also generated quite a bit of excitement. FreeBSD has been granted 19 funded mentorship spots, the fourth most of all of participating organizations. Projects being worked on range from UFS Journaling to porting the new BSD Installer to redesigning the venerable www.FreeBSD.org website. We are quite pleased to be working with so many talented students, and eagerly await the results of their work. More information and status can be found at the Wiki site at http://wiki.freebsd.org/moin.cgi/SummerOfCode2005 .

The FreeBSD 6.0 release cycle is also starting up. The purpose of quickly jumping from 5.x to 6.0 is to reduce the amount of transition pain that most users and developers felt when switching from 4-STABLE to 5.x. 6.0 will feature improved performance and stability over 5.x, experimental PowerPC support, and many new WiFi/802.11 features. The 5.x series will continue for at least one more release this fall, and will then be supported by the security team for at least 2 years after that. We encourage everyone to give the 6.0-BETA snapshots a try and help us make it ready for production. We hope to release FreeBSD 6.0 by the end of August.

Thanks again to everyone who submitted reports, and thanks to Max Laier for running the show and putting the reports together. Enjoy reading!

soc Google summer of code proj Projects doc Documentation kern Kernel net Network infrastructure bin Userland programs arch Architectures ports Ports vendor Vendor / 3rd Party Software misc Miscellaneous BSDCan Dan Langille dan@langille.org

The second annual BSDCan conference was well presented, well attended, and everyone went away with good stories to tell. If you know anything that attended, get them to tell you what they did, who they met with, and talks they listened to.

We had 197 people from 15 different countries. That's a strong turnout by any definition.

We'll be adding more people to the program committee for BSDCan 2006. This job involves prodding and poking people from your respective projects. You get them to submit papers. There are a lot of very interesting projects out there and not all of them submit a paper.

If you know someone doing interesting work, please let me know and urge them to start thinking about BSDCan 2006.

Integrate the BSD Installer into FreeBSD Andrew Turner soc-andrew@FreeBSD.org The BSD Installer BSD Installer Wiki page BSD Installer Perforce tree

Progress towards integrating the BSD Installer for Google's Summer of Code is coming along nicely. The installation CD will boot to multi-user mode and run both the front and back ends. It can then partition a hard drive, install the base distribution and make the disk bootable.

Test in non-i386 Investigate installing from other media Many more tasks
FreshPorts Dan Langille dan@langille.org

The following new features have been added to FreshPorts:

I've noticed that FreshPorts is incorrectly reporting vulnerabilities under a very specific situation . The fix is sitting in BETA, waiting to be moved to production. I've been working on added Last-Modified to the headers. At present, there are none. Most of the pages on the BETA website have been completed. I need to move this to production soon. Customized news feeds are in the works. You'll be able to create a news feed for each of your watch lists. This work is contingent upon finishing the Last-Modified headers.
Fundraising - TCP & IP Routing Optimization Andre Oppermann andre@freebsd.org

The TCP code in FreeBSD has evolved significantly since the fork from 4.4BSD-Lite2 in 1994 primarily due to new features and refinements of the TCP specifications.

The TCP code now needs a general overhaul, streamlining and cleanup to make it easily comprehensible, maintainable and extensible again. In addition there are many little optimizations that can be done during such an operation, propelling FreeBSD back at the top of the best performing TCP/IP stacks again, a position it has held for the longest time in the 90's.

This overhaul is a very involved and delicate matter and needs extensive formal and actual testing to ensure no regressions compared to the current code. The effort needed for this work is about three man-month of fully focused and dedicated time. To get it done I need funding to take time off my day job and to dedicate me to FreeBSD work much the way PHK did with his buffer cache and vnode rework projects.

I've got the opportunity to work up to three man-month exclusively full-time on FreeBSD during the second half of 2005. That means up to 720 hours of full-steam coding (at 60 hours/week)! I will work as much time as the fundraise provides.

I need to raise enough money for each month from donations from the FreeBSD community to cover my fixed cost of living, office and associated overhead. These fixed cost amount to US$6,300/month (EUR5,200 or CHF8,000). Yes, Switzerland is not the cheapest place to live. :)

A detailed description of the tasks involved and the code I will write is on my FreeBSD website; Follow the link above.

Raise enough money to get all the almost finished TCP and IP code into the tree.
CPU Cache Prefetching Andre Oppermann andre@freebsd.org

Modern CPU's can only perform to their maximum if their working code is in fast L1-3 cache memory instead of the bulk main memory. All of today's CPU's support certain L1-3 cache prefetching instructions which cause data to be retrieved from main memory to the cache ahead of the time that it is already in place when it is eventually accessed by the CPU.

CPU Cache Prefetching however is not a silver bullet and has to be used with extreme care and only in very specific places to be beneficial. Incorrect usage can lead to massive cache pollution and a drop in effective performance. Correct and very carefully usage on the other can lead to drastic performance increases in common operations.

In the linked patch CPU cache prefetching has been used to prefetch the packet header (OSI layer 2 to 4) into the CPU caches right after entering into the network stack. This avoids a complete CPU stall on the first access to the packet header because packets get DMA'd into main memory and thus never are already pre-cache in the CPU caches. A second use in the patch is in the TCP input code to prefetch the entire struct tcpcb which is very large and used with a very high probability. Use in both of these places show a very significant performance gain but not yet fully quantified.

The final patch will include documentation and a guide to evaluate and assess the use of CPU cache prefetch instructions in the kernel.

Need funding, see "Fundraising - TCP & IP Routing Optimization".
TCP Reassembly Rewrite and Optimization Andre Oppermann andre@freebsd.org

Currently TCP segment reassembly is implemented as a linked list of segments. With today's high bandwidth links and large bandwidth*delay products this doesn't scale and perform well.

The rewrite optimizes a large number of operational aspects of the segments reassembly process. For example it is very likely that the just arrived segment attaches to the end of the reassembly queue, so we check that first. Second we check if it is the missing segment or alternatively attaches to the start of the reassembly queue. Third consecutive segments are merged together (logically) and are skipped over in one jump for linear searches instead of each segment at a time.

Further optimizations prototyped merge consecutive segments on the mbuf level instead of only logically. This is expected to give another significant performance gain. The new reassembly queue is tracking all holes in the queue and it may be beneficial to integrate this with the scratch pad of SACK in the future.

Andrew Gallatin was able to get 3.7Gb/sec TCP performance on dual-2Gbit Myrinet cards with severe packet reordering (due to a firmware bug) with the new TCP reassembly code. See second link.

Need funding, see "Fundraising - TCP & IP Routing Optimization".
TTCPv2: Transactional TCP version 2 Andre Oppermann andre@freebsd.org

The old TTCP according to RFC1644 was insecure, intrusive, complicated and has been removed from FreeBSD >= 5.3. Although the idea and semantics behind it are still sound and valid.

The rewrite uses a much easier and more secure system with 24bit long client and server cookies which are transported in the TCP options. Client cookies protect against various kinds of blind injection attacks and can be used as well to generally secure TCP sessions (for BGP for example). Server cookies are only exchanged during the SYN-SYN/ACK phase and allow a server to ensure that it has communicated with this particular client before. The first connection is always performing a 3WHS and assigning a server cookie to a client. Subsequent connections can send the cookie back to the server and short-cut the 3WHS to SYN->OPEN on the server.

TTCPv2 is fully configurable per-socket via the setsockopt() system call. Clients and server not capable of TTCPv2 remain fully compatible and just continue using the normal 3WHS without any delay or other complications.

Work on implementing TTCPv2 is done to 90% and expected to be available by early February 2005. Writing the implementation specification (RFC Draft) has just started.

Need funding, see "Fundraising - TCP & IP Routing Optimization".
Network Interface API Cleanup Anders Persson soc-anders@freebsd.org

The goal of this project is to review the network interface API and try to remove references to kernel-only data structures by removing the use of libkvm and instead rely on other interfaces to provide information. If there are no adequate interfaces, they would be created.

Currently netstat is being reviewed and parts of it have been modified to use sysctl rather than libkvm to provide the information.

A big thank you to Brooks Davis for mentoring :-)

FreeBSD Security Officer and Security Team Security Officer security-officer@FreeBSD.org Security Team security-team@FreeBSD.org

In May 2005, Remko Lodder joined the FreeBSD Security Team, followed by Christian S.J. Peron in July 2005. In the same time period, Gregory Shapiro and Josef El-Rayes resigned from the team in order to devote their time to other projects. The current Security Team membership is published on the web site.

In the time since the last FreeBSD status report, twelve security advisories have been issued concerning problems in the base system of FreeBSD; of these, six problems were in "contributed" code, while five problems were in code maintained within FreeBSD. The Vulnerabilities and Exposures Markup Language (VuXML) document has continued to be updated by the Security Team and the Ports Committers documenting new vulnerabilities in the FreeBSD Ports Collection; since the last status report, 97 new entries have been added, bringing the total up to 519.

The following FreeBSD releases are supported by the FreeBSD Security Team: FreeBSD 4.10, FreeBSD 4.11, FreeBSD 5.3, and FreeBSD 5.4. Their respective End of Life dates are listed on the web site.

Dingo Several somewhat out of date

Currently trying to restart bits of the project. Cleaning up the p4 branch. Recently more people have volunteered to help as well. Brooks Davis has completed removing the ifnet from the softc.

See the web page.
The FreeBSD Dutch Documentation Project Remko Lodder remko@FreeBSD.org Siebrand Mazeland siebrand.mazeland@xs4all.nl Rene Ladan r.c.ladan@student.tue.nl The Dutch Handbook The Dutch Project Site The Dutch Preview Documentation The Dutch FreeBSD Flyer

The FreeBSD Dutch Documentation Project is a ongoing project in translating the english documentation to the Dutch language. Currently we are almost done with the FreeBSD Handbook. Finishing the Handbook is our first priority, and we could use your help. Please contact Siebrand or myself if you want to helpout. After the handbook we will focus on other documents as well, so feel free to help us there as well

FreeBSD Handbook translation. Finish the translation from English to Dutch FreeBSD Handbook review. Finish the review of the translated documents FreeBSD Articles. Start translating the articles from English to the Dutch Language FreeBSD www. Start translating the website from English to the Dutch Language The rest of the FreeBSD Documents. Start translating them from English to the Dutch Language.
Transparent support for superpages in the FreeBSD Kernel Alan L. Cox alc@cs.rice.edu Olivier Crameri olivier.crameri@epfl.ch

We are currently working on an updated implementation of Juan Navarro's transparent support for superpages in FreeBSD.

The idea is to take advantage of the architectural support for big memory pages (superpages) by using a reservation mechanism allowing us to transparently promote groups of base pages into superpages and demote superpages into several smaller superpages or base pages.

The advantage of using superpages vs. base pages is to significantly improve the TLB coverage of the physical memory, thus improving the peformance by reducing the number of TLB misses.

The modification of the FreeBSD kernel that we are working on involves the replacement of the current list based page allocation mechanism with a system using a buddy allocator to reserve groups of pages for a memory object. The promotion and demotion of the pages occur directly within the pmap module.

The former implementation was supporting the alpha and IA64 architectures. We are adding the support for amd64. We currently have an almost complete implementation. Once completed we will make a performance study with a particular emphasis on TLB and cache misses.

Wireless Networking Support Sam Leffler sam@freebsd.org

A lot of bugs were fixed in preparation for the 6.0 release. 6.0 will be the first release to include full WPA support (both supplicant and authenticator).

A presentation on the forthcoming multi-bss support was given at BSDCan 2005. The slides from the talk are available at http://www.freebsd.org/~sam/BSDCan2005.pdf. The plan is to commit this work to HEAD after 6.0 is released which means the first release that will have it is 7.0.

hostapd needs work to support the IAPP and 802.11i preauthentication protocols (these are simple conversions of existing Linux code).
FreeSBIE toolkit integration Dario Freni saturnero@freesbie.org FreeSBIE main site My page on FreeBSD wiki

My Summer of Code project is reengineering and rewrite of FreeSBIE toolkit, in order to include it in the source tree. Let's call it FreeSBIE 2

Before being accepted, I worked hard on the FreeSBIE 1 toolkit to make it more flexible. It now supports amd64 and PowerPC architecture. The built filesystem can now boot from almost every media, from DVD to compact flash or hard disk. Also on i386 it is now possible to include the BSD Installer on the livefs. We've received reports that our toolkit is successfully used for the install CD of pfSense and PC-BSD projects.

My future goals are to make the toolkit even more flexible, capable to build embedded images (like nanoBSD) or big Live-DVD systems, depending on user's choice, to support all the architectures supported by FreeBSD and to write a set of tools for making a netboot server with a FreeSBIE image.

PowerPC Port Peter Grehan grehan@FreeBSD.org FreeBSD/PPC Platform page.

Florent Thoumie has updated the massively out-of-date platform page. Work continues to creating a 6.0 release of the PowerPC port.

GEOM Gate rewrite Pawel Jakub Dawidek pjd@FreeBSD.org

GGATE is a mechanism for exporting storage devices over the network. It was reimplemented to be much faster and to handle network failures better. The ggatec uses two threads now: sendtd, which takes I/O request from the kernel and sends it to ggated; recvtd, which receives finished requests and forwards them to the kernel. The ggated uses three threads: recvtd, which receives I/O requests from ggatec; disktd, which executes I/O requests (reads or writes data); sendtd, which sends finished requests to ggatec. The new ggate has been committed to 6.x.

The work was sponsored by Wheel Sp. z o.o.

gjournal Ivan Voras ivoras@gmail.com gjournal wiki

The schedule (as stated on the wiki page) is honoured, which means that the development has started, but there's not enough code for testing. Many details have been thought-out and the development is ongoing.

FreeBSD Summer of Code Summer of Code Mentors soc-mentors@FreeBSD.org

Google has generously funded 19 students to spend the summer working on FreeBSD related projects. Each student is working with one or more mentors to learn about how open source software development is done with FreeBSD. This development work is happening in the Perforce repository as //depot/projects/soc2005. This tree will soon be exported via CVSup -- check the Wiki for more information.

gvinum 'move', 'rename' Chris Jones soc-cjones@freebsd.org gvinum 'move', 'rename' wiki entry

With the releases of FreeBSD 5.3 and 5.4, FreeBSD has been moving away from "old-style" vinum towards GEOM-enabled gvinum for logical volume management. While gvinum is a mostly feature-complete replacement for vinum, it does not implement the 'move' or 'rename' verbs which are rather useful when reorganizing one's volume layout, the alternative being a tedious process of deleting and recreating subdisks, plexes, or volumes. Additionally, gvinum is nearly completely undocumented, which contributes to the perception of gvinum as an unfinished project.

I'm working on implementing 'move' (being able to move a subdisk from one drive to another) and 'rename' (being able to rename an subdisk, plex, volume, or drive), as well as on documentation for gvinum.

So far, I've come up with a plan of attack with le@ and phk@, and implemented the bulk of the userland code for gvinum 'move' and 'rename'. Still to come are the kernel-side code and documentation.

'move' and 'rename' userland implementation 'move' and 'rename' kernel-side implementation Outline new handbook section and man page Implement new handbook section and man page
if_bridge Andrew Thompson thompsa@freebsd.org

This was committed to current on 5 Jun 2005 and will first appear in the 6.0 release, thanks to everyone who tested. Recent improvements include:

There is ongoing work to bring in some of the advanced features from OpenBSD such as IPSec bridging. People are encouraged to use if_bridge and report any problems to the mailing lists.

IPv6 Support for IPFW Max Laier mlaier@freebsd.org Brooks Davis brooks@freebsd.org

At the developer summit before BSDCan it was decided to remove IP6FW from the tree as it has a couple of problems. The most pressing one is the lack of synchronization and thus the need for debug.mpsafenet=0. As a replacement Brooks Davis has imported patches to teach the existing and well-locked IPFW2 code about IPv6.

Since the initial import I have added some features required to manage IPv4 and IPv6 in a single ruleset. I have also extended existing opcodes to work with IPv6. There are, however, still some opcodes that do not work with IPv6 and most of the more exotic ones haven't been tested. As long as IPFW2+v6 does not provide enough functionality and stability to work as a drop-in replacement for IP6FW, we won't remove IP6FW.

In order to get the new code to that point we really need more testers with real world IPv6 deployment and interest in IPFW+v6. The lack thereof (I haven't received a single answer on my requests to various FreeBSD mailing lists) has made it hard to progress.

Properly implement O_REJECT for IPv6 Maybe implement O_LOG Test new(er) IPFW2 opcodes with IPv6 Test Test Test
launchd(8) for FreeBSD R. Tyler Ballance tyler@tamu.edu Wiki Project Page Apple's launchd(8) man page

So far progress has been slow, the autoconf build system has been removed from all of the launchd(8) code, and launchctl(1) is building and semi-functional on FreeBSD-CURRENT (i.e. CoreFoundation hooks have been removed).

I'm currently working on porting "liblaunch" which is the core backend to both launchd(8) (the actual daemon) and launchctl(1), there are some mach/xnu specific hooks and calls that need to be remove and either reimplemented or worked around.

We're also waiting on a response from Apple on a possible BSD-licensed version of the code (it's currently under the APSL) Progress is slow, but steady.

Removable interface improvements Brooks Davis brooks@FreeBSD.org

This project is an attempt to clean up handling of network interfaces in order to allow interfaces to be removed reliably. Current problems include panics if Dummynet is delaying packets to an interface when it is removed.

I have removed struct ifnet's and layer two common structures from device driver structures. This will eventually allow them to be managed properly upon device removal. This code has been committed and will appear in 6.0. Popular drivers have generally been fixed, but more testing is needed.

OpenBSD dhclient import. Brooks Davis brooks@FreeBSD.org Sam Leffler sam@FreeBSD.org

The OpenBSD rewrite of dhclient has been imported, replacing the ISC dhclient. The OpenBSD client provides better support for roaming on wireless networks and a simpler model of operation. Instead of a single dhclient process per system, there is one per network interface. This instance automatically goes away in the even of link loss and is restarted via devd when link is reacquired. To support this change, many aspects of the network interface configuration process were overhauled.

The current code works well in most circumstances, but more testing and polishing is needed.

Move ARP out of routing table Qing Li qingli@freebsd.org

I've sent the patch to jinmei@isl.rdc.toshiba.co.jp @KAME for review. I'm still waiting for feedback from Andre. There hasn't been any major change since the last report. I've kept the code in sync with CURRENT. Gleb has created a separate P4 branch and has been helping out on the locking side. Gleb is also helping out on the testing front.

I'm waiting for review feedback from my mentor Andre on the overall design and code. I'm waiting for feedback from Andre on Gleb's suggested modification.
Nsswitch / Caching daemon Michael Bushkov soc-bushman@rsu.ru

The nsswitch / caching daemon project is being developed within the Google's Summer Of Code program. The first goal of this project is to implement a set of patches to extend the use of nsswitch subsystem. The second goal is the development of the caching library and daemon to add the caching ability to the nsswitch.

Currently services, protocols, rpc and openssh patches are finished. Support for services, services_compat, rpc, protocols, and ssh_host_keys databases is added with 'files', 'nis' and 'compat' (for services) sources possible. The nsswitch-friendly openssh port is almost completed.

Implement set of patches to make nsswitch support globus grid security files , MAC and audit related configuration files databases. Implement the caching library and the caching daemon and patch nsdispatch function to support caching.
OpenBSD packet filter - pf Max Laier mlaier@freebsd.org

We will have pf as of OpenBSD 3.7 for RELENG_6. Import has been completed in early May and FreeBSD release 6.0 will ship with it.

A few serious issues with pfsync on SMP have been discovered since CARP is around and more and more people use it on big iron. Everything that has been discovered is fixed in HEAD and (if applicable) MFCed back to RELENG_5. Some functional changes are undergoing testing right now and will be MFCed in the coming days.

With the import of if_bridge from Net/OpenBSD we finally have a bridge implementation that allows for stateful filtering as well as IPv6 filtering. Please see the respective report.

Shared lock implementation?
Low-overhead performance monitoring for FreeBSD Joseph Koshy jkoshy@FreeBSD.org Project home page

Modern CPUs have on-chip performance monitoring counters (PMCs) that may be used to count low-level hardware events like instruction retirals, branch mispredictions, and cache misses. PMC architectures and capabilities vary between CPU vendors and between CPU generations from the same vendor, making the creation of portable applications difficult. This project implements a cross-platform PMC management API for applications, and implements the infrastructure to "virtualize" and manage these PMCs. The creation of performance analysis tools that use this infrastructure is also part of the project's goals.

Work since the last status report:

Future work:

Improve libalias Paolo Pisati soc-pisati@freebsd.org Wiki page about libalias work.

My SoC project is about improving libalias and integrating it with ipfw2, adding nat support into the firewall. Till now I ported libalias (as a kld) and ng_nat to 4.x and 5.x branches, and I've already a first working patchset that adds 'nat' action into ipfw. Next step will be to add a complete syntax to ipfw that will let us manipulate libalias operations, much like we already do with queue and pipes for dummynet. In the end the entire work will compile and work out of the box for 4.x, 5.x and 6.x. More details about the project and its status are available on wiki page.

TODO list for volunteers Alexander Leidinger netchild@FreeBSD.org

Since Google's "Summer of Code" resulted in a lot of interest in open projects, I'm in the process of compiling a list of nice projects for volunteers. Unlike Google's SoC those projects aren't backed with money (but this doesn't means nobody is allowed to sponsor one of those projects), so we can only guarantee the social aspects (some "Thank you!" and "That's great!" messages). So far the list has several entries where the difficulty ranges from "someone just has to sit down and spend some time on it" up to "we need a guru for this".

Merging untaken entries from the SoC list as soon as the official participants/tasks in the SoC are announced. Sending the document to some doc people for review. Commit the list.
Removing of old basesystem files and directories Alexander Leidinger netchild@FreeBSD.org Patch

FreeBSD lacks a way to remove old/outdated files and directories in the basesystem. I have a patch which removes obsolete files in a safe way (interactively, since only the administrator really knows if there's a need to keep an old file or not; there's a switch for batch-processing). This feature may or may not be available for 6.0-RELEASE, depending on the decision from the Release Engineering team.

Respect the NO_* switches and remove those files too. This is easy to do with the current implementation, but isn't needed to commit the removal of obsolete files feature.
Porting v9 of Intels C/C++ Compiler Alexander Leidinger netchild@FreeBSD.org

Intel released version 9 of its C/C++ compiler. Work to port the x86 version to FreeBSD is in progress as time permits. Porting the EM64T (amd64) version is on the TODO list too, but is subject to enough free time and access to appropriate hardware.

Update of the Linux userland infrastructure Alexander Leidinger netchild@FreeBSD.org Emulation Mailinglist emulation@FreeBSD.org

The cleanup/streamlining and the possibility of overriding the default Linux base as reported in the last report happened without major problems. Work on the open tasks hasn't started yet, but is scheduled to start "soon". If a volunteer wants to spend some hours on one of the open tasks, he should tell it on the emulation mailinglist.

Refactoring the common RPM code in x11-toolkits/linux-gtk/Makefile into bsd.rpm.mk. Determining which up-to-date Linux distribution to use as the next default Linux base. Important criteria:
  • RPM based (to be able to use the existing infrastructure)
  • good track record regarding availability of security fixes
  • packages available from several mirror sites
  • available for several hardware architectures (e.g. i386, amd64, sparc64; Note: not all architectures have a working linuxolator for their native bit with, but as long as there are no userland bits available, no motivation regarding writing the kernel bits will arise)
Moving the linuxolator userland to an up-to-date version (see above).
Autotuning of the page queue coloring algorithm Alexander Leidinger netchild@FreeBSD.org Patch

The VM subsystem has code to reduce the amount of cache collisions of VM pages. Currently this code needs to be tuned with a kernel option. I have a patch which changes this to auto-tuning at boot time. The auto-tuning is MI, the cache size detection is MD. Cache size detection is currently available for x86/amd64 (on other systems it uses default values).

Add cache-detection code for other arches too (Marius told me how to do this for sparc64). Analyze why the cache detection on Athlons doesn't work (no problems on a P4, but it uses a different code-path).
FreeBSD website improvements Emily Boyd soc-emily@freebsd.org

As part of the Google Summer of Code, I'm working on improvements to the FreeBSD website (including a proposed website redesign). My mentor for this project is Murray Stokely.

UFSJ -- Journaling for UFS Brian Wilson polytopes@gmail.com Scott Long scottl@FreeBSD.org

filesystem. Journaling helps ensure the filesystem's integrity should the system crash. Journaling eliminates the need for fsck'ing a filesystem, as the filesystem is never in an inconsistent state (barring hardware failure). This implementation is inspired by Darwin's HFS+ filesystem and the SGI XFS filesystem. This is a Summer of Code project, with Scott Long as the mentor and Brian Wilson as the developer/mentee. Currently this project is still in the early stages, but will be in a usable state by September 1 (the Google Summer of Code completion date).

Finish making the file system log metadata updates. Add facilities to replay the log on dirty file systems. Make snapshots work with journaling.
SEBSD Yanjun Wu yanjun03@ios.cn Show status in wiki, update more frequently.
  1. Setup a local P4 workspace of SEBSD source and Setup lxr for TrustedBSD source for studying source code.
  2. Test a simple policy configuration for vsftpd.
  3. Writing a HOWTO document Getting Started with SEBSD HOWTO by deriving the existing Getting Started with SELinux HOWTO.

Thanks Robert Watson and Scott Long for their kind help.

When writing the document, try to figure out the sebsd userland utils that need to be ported. Test and edit more policies for BSD environment.
VFS SMP Jeff Roberson jeff@freebsd.org

FreeBSD's VFS layer has been fine grain locked along with the FFS filesystem for the FreeBSD 6.0 release. The locking has been underway for several years, with the project really picking up over the last 6 months thanks largely to sponsorship provided by Isilon Systems, Inc. a leading vendor of clustered storage systems. The project has entered a stabilization phase, with a few bugs being reported in extreme circumstances while the majority of users have seen no problems. Tests on a 8 and 16 way machines yield reasonable parallelization, however, it will be beneficial to do lock contention analysis once things are fully stable.

For those interested in technical details, there have been a few relatively significant changes with vnode life-cycle management. Vnode reference counting and recycling is now no longer an ad-hoc process involving a variety of flags, a use count and the hold count. A single hold count is used to track all vnode references and a destroyed vnode is freed in the context of the caller when the last ref is lost. The old system would never reclaim memory used by vnodes and also had pathlogical behavior with unreferenced vnode caching under pressure. The new system is much simpler than the old one, however, callers are now required to vhold a vnode that they lock directly without going through vget to prevent it from being recycled while they are waiting on a lock. Relying on 'location stable storage', which is a more strict version of 'type stable storage' is no longer a valid approach.

Some other side effects include a much simpler and faster nullfs implementation, an improved buf daemon flushing algorithm which eliminated high latency that caused audio skipping, and a lots of minor cleanups and debugging aids.

EuroBSDCon 2005 - Basel Information info@eurobsdcon.org Homepage Call for papers

The fourth European BSD conference in Basel, Switzerland is a great opportunity to present new ideas to the community and to meet some of the developers behind the different BSDs.

The two day conference program (Nov 26 and 27) will be complemented by a tutorial day preceeding the conference (Nov 25).

The program committee is looking for tutorial and paper submissions. For details, please see: The call for papers online.

SMP Network Stack Robert Watson rwatson@FreeBSD.org Netperf home page

Significant work has occurred over the last few months relating to the SMP network stack work. A few of the highlights are covered here at a high level:

In most cases, these changes will appear in FreeBSD 6.0-RELEASE; some have been, or will be, merged to FreeBSD 5.x.

On-going tasks include:

TrustedBSD SEBSD Robert Watson rwatson@FreeBSD.org TrustedBSD/SEBSD web page

The TrustedBSD Project has released a new snapshot of "SEBSD", a port of NSA's SELinux FLASK and Type Enforcement implementation to FreeBSD based on a late 2005 FreeBSD 6.x snapshot. The SEBSD distribution has now been updated in Perforce to a recent 6.x snapshot, and a new distribution will be made available in the near future.

Work has been performed to merge additional dependencies for SEBSD back into the base FreeBSD tree, including most recently, changes to devfs, and System V and POSIX IPC.

Update to new NSA FLASK implementation, which has improved MLS support. Merge remaining kernel changes to support SEBSD back to the base FreeBSD CVS repository, including file descriptor labeling and access control (in contrast to file labeling and access control), and categorization of kernel privileges.
TrustedBSD Audit Robert Watson rwatson@FreeBSD.org Wayne Salamon wsalmon@FreeBSD.org trustedbsd-discuss@TrustedBSD.org

In the past few months, significant work has been done relating to the TrustedBSD audit implementation, including preparatory work to merge audit into the FreeBSD CVS repository for FreeBSD 6.x. In particular:

The hope is still to provide audit as "experimental" in 6.0; the primary blocking factor is our awaiting relicensing of the last remaining audit files from Apple's APSL license to BSDL so that they can be included in the FreeBSD kernel. This is anticipated to complete in the near future. Once this is done, the changes can be merged to CVS, and then MFC'd to RELENG_6. If this is not complete by 6.0-RELEASE, the work will be merged shortly after the release, as all ABI-sensitive data structures have been updated as needed.

libmemstat(3), UMA(9) and malloc(9) statistics Robert Watson rwatson@FreeBSD.org libmemstat(3)-derived tools

libmemstat(3) provides a user space library API to monitor kernel memory allocators, currently uma(9) and malloc(9), with the following benefits:

-

libmemstat(3) and the the appropriate allocator changes for +

libmemstat(3) and the appropriate allocator changes for uma(9) and malloc(9) are currently in HEAD (7-CURRENT), and MFC has been approved to RELENG_6 for inclusion in 6.0-RELEASE. These changes may also be backported to 5.x.

Sample applications include memstat(8), an allocator-independent statistics viewing tool, memtop(8), which provides a top(1)-like interface for monitoring kernel memory use and active memory types. None of these are "pretty".

netstat -mb has also been updated to use libmemstat(3) to track network memory use using uma(9), rather than the less reliable mbuf allocator statistics interface. As a result, the statistics are now more reliable on SMP systems (this corrects the bug in which mbuf statistics sometimes "leaked", even though memory didn't), and more informative (cache information is now displayed, as well as mbuf tag information).

Teach libmemstat(3) to speak libkvm(3) in order to allow tools linked -lmemstat to interogate kernel core dumps. Teach libmemstat(3) to interface with user space malloc and track malloc allocations for user space applications. Update vmstat(8) -m and -z implementations to use libmemstat(3) instead of the old monitoring interfaces. Code to do this exists in the sample libmemstat(3) applications. Identify how to make streams or the library endian-aware so that streams dumped from a kernel of alternative endian could be processed using libmemstat(3) on another system. Identify any remaining caching allocators in the kernel, such as the sfbuf allocator, and teach libmemstat(3) how to interface with them.
diff --git a/en/news/status/report-2006-01-2006-03.xml b/en/news/status/report-2006-01-2006-03.xml index 4c979838da..77438b4b96 100644 --- a/en/news/status/report-2006-01-2006-03.xml +++ b/en/news/status/report-2006-01-2006-03.xml @@ -1,1467 +1,1467 @@ January-March 2006
Introduction

The highlights of this quarters report certainly include the availability of native Java binaries thanks to the FreeBSD Foundation , as well as progress has been made with Xen support and Sun's Ultrasparc T1. Futhermore we are looking forward to FreeBSD 6.1 and TrustedBSD audit support has been imported into FreeBSD 7-CURRENT. All in all, a very exiting start to 2006.

In just under a month the developers will be gathering at BSDCan 2006 for, FreeBSD Dev Summit, a two day meeting of FreeBSD developers. Once again the BSDCan schedule is filled with many interesting talks.

We hope you enjoy reading and look forward to hear from you for the next round. Consult the list of projects and ideas for ways to get involved. The submission date for the second quarter reports will be July, 7th 2006.

Thanks to everybody who submitted a report and to Brad Davis, who joined the Status Report team, for proof reading.

proj Projects net Network infrastructure kern Kernel doc Documentation bin Userland programs arch Architectures ports Ports vendor Vendor / 3rd Party Software misc Miscellaneous FreeBSD Security Officer and Security Team Security Officer security-officer@FreeBSD.org Security Team security-team@FreeBSD.org

In March 2006, Marcus Alves Grando, George Neville-Neil, and Philip Paeps joined the FreeBSD Security Team. The current Security Team membership is published on the web site.

In the time since the last status report, eight security advisories have been issued concerning problems in the base system of FreeBSD; of these, three problems were in "contributed" code, while five were in code maintained within FreeBSD. The Vulnerabilities and Exposures Markup Language (VuXML) document has continued to be updated by the Security Team and the Ports Committers documenting new vulnerabilities in the FreeBSD Ports Collection; since the last status report, 50 new entries have been added, bringing the total up to 686.

The following FreeBSD releases are supported by the FreeBSD Security Team: FreeBSD 4.10, FreeBSD 4.11, FreeBSD 5.3, FreeBSD 5.4, and FreeBSD 6.0. Upon their release, FreeBSD 5.5 and FreeBSD 6.1 will also be supported. The respective End of Life dates of supported releases are listed on the web site; of particular note, FreeBSD 4.10 and FreeBSD 5.4 will cease to be supported at the end of May 2006.

FreeBSD NFS Status Report Chuck Lever cel@FreeBSD.org

Support for NFS in FreeBSD received a boost this quarter as a kernel developer from Network Appliance has volunteered to help with the clients. Chuck Lever is now a src committer, mentored by Mike Silbersack. Mohan Srinivasan and Jim Rees have ended their apprenticeships and are now full committers. Mohan continues his effort to make the NFSv2/3 client SMP safe. He expects to make the changes available for review soon.

FreeBSD gained presence at the annual NFS interoperability event known as Connectathon. Rick Macklem's FreeBSD NFSv4 server is pretty stable now and available via anonymous ftp. NFSv4.1 features are not a part of it yet and are not likely to happen until at least the end of 2006. Contact rick@snowhite.cis.uoguelph.ca for details.

BSDCan Dan Langille dan@langille.org

The schedule for BSDCan 2006 demonstrates just how strong and popular BSDCan has become in a very short time. Three concurrent streams of talks make sure that there is something for everyone. We provide high quality talks at very affordable prices .

BSDCan is the biggest BSD event of 2006. Ask others who attended in past years how much they enjoyed their time in Ottawa. Ask them who they met, who they talked to, the contacts they made, the information they learned.

Remember to bring your wife/husband/spouse/etc because we will have things for them to do while you are attending the conference. Ottawa is a fantastic tourist destination.

See you at BSDCan 2006!

Works in Progress - if you want to talk about your project for 5 minutes, this is your chance. Get in touch with us ASAP to reserve your spot. We're looking for volunteers to help out just before and during the conference. Contact Dan at the above address.
Ports Collection Mark Linimon linimon@FreeBSD.org The FreeBSD Ports Collection Contributing to the FreeBSD Ports Collection FreeBSD ports unfetchable distfile survey (Bill Fenner's report) FreeBSD ports updated distfile survey (Edwin Groothius' report) FreeBSD ports monitoring system The FreeBSD Ports Management Team marcuscom tinderbox

During this time, the number of ports PRs rose dramatically from its impressive low number seen late last quarter. This was due to the holidays, the freeze for the 5.5/6.1 release cycle, and the aggressive work several submitters have been doing to correct long-standing problems with stale distfiles, stale WWW sites, port that only work on i386, and so forth. Over 200 new ports have also been added. The statistics do not truly reflect the state of the Ports Collection, which continues to improve despite the increased number of ports.

We now have 3 people who are qualified to run the 5-exp regression tests. Due to this, we were able to run several cycles, resulting in a series of commits that retired more than 3 dozen portmgr PRs. There were a few snags during one commit due to some unintended consequences, but the breakage was fixed in less than one day. Notable changes include the addition of physical category net-p2p and virtual categories hamradio and rubygems. Once 5.5 and 6.1 are released, portmgr hopes to be able to run regression tests more often.

We have added 5 new committers since the last report.

We need help getting back to our modern low of 500 PRs. We have over 4,000 unmaintained ports (see, for instance, the list on portsmon ). We are always looking for dedicated volunteers to adopt at least a few ports.
OpenBSD dhclient Brooks Davis brooks@FreeBSD.org Sam Leffler sam@FreeBSD.org

All dhclient changes in HEAD have been merged to 6-STABLE for 6.1-RELEASE. New patches currently in testing include startup script support for fully asynchronous starting of dhclient which eliminates the wait for link during startup and support for sending the system hostname to the server when non is specified.

FAST_IPSEC Upgrade George Neville-Neil gnn@FreeBSD.org Bjoern A. Zeeb bz@FreeBSD.org

Split out of PF_KEY code between the kernel and user space has been completed and committed to CVS.

The diff between Kame IPv4 based IPSec and FAST_IPSEC IPv4 did not show any glaring issues.

Moving on to making IPv6 work in FAST_IPSEC including being able to run the kernel with the following variations:

Any patches for FAST_IPSEC, KAME IPsec of either variant (v4 or v6) should be forwarded to bz@ and gnn@. Build a better TAHI. TAHI, the test framework, will not be maintained and is not the easiest system to use and understand. A better test harness is possible and is necessary for other networking projects as well. Contact gnn@ if you have time to work on this as he has some code and ideas to start from.
FreeSBIE FreeSBIE Staff staff@FreeSBIE.org FreeSBIE Mailing List freesbie@gufi.org Website ML Subscribe Page

The project is alive and plans to release an ISO image of FreeSBIE 2.0 based on FreeBSD 6.1-RELEASE few day after the same has been release. FreeSBIE 2.0 will be available for i386 and amd64 archs. Tests images can be download via BitTorrent from torrent.freesbie.org .

Test "test ISO images" for both amd64 and i386 Suggest packages to be added to the ISO image. Suggestions needed for Xfce and fluxbox look. Suggestions needed for applications' configuration files.
HPLIP (Full HP Printer and MFD support) Anish Mistry amistry@am-productions.biz HPLIP FreeBSD Information Official Site

A preliminary version of HP's hplip software for their printers and multi-function devices has been ported. This allows viewing of the status informantion from the printer. Such as ink levels, error messages, and queue information. If you have an Officejet you can also fax and scan. Photocard and Copies functionality is untested.

General Testing Photocard Testing Various ugen fixes Fix Officejet Panel Display Run hpiod and hpssd as unprivileged users Banish the Linuxisms in the Makefile Fix "Make Copies" Automatically Setup Scanner
Low-overhead performance monitoring for FreeBSD Joseph Koshy jkoshy@FreeBSD.org Project home page

This projects implements a kernel module (hwpmc(4)), an application programming interface (pmc(3)) and a few simple applications (pmcstat(8) and pmccontrol(8)) for measuring system performance using event monitoring hardware in modern CPUs.

New features since the last status report:

FreeBSD list of projects and ideas for volunteers Joel Dahl joel@FreeBSD.org Alexander Leidinger netchild@FreeBSD.org

The FreeBSD list of projects and ideas for volunteers is doing well. Several items were picked up by volunteers and have found their way into the tree. Others are under review or in progress.

We are looking forward to hear about new ideas, people willing to be technical contacts for generic topics (e.g. USB) or specific entries (already existing or newly created), suggestions for existing entries or completion reports for (parts of) an entry.

Add more ideas. Find more technical contacts. Find people willing to review/test implementations of (somewhat) finished items.
Java Binaries Deb Goodkin deb@freebsd.org FreeBSD Foundation Java Homepage

The FreeBSD Foundation released official certified JDK and JRE 1.5 binaries for the official FreeBSD 5.4 and FreeBSD 6.0 releases on the i386 platform.
We were able to accomplish this by hiring a contractor to run the Sun certification tests and fixing the problems found. This could not have been completed without the support from the BSD Java Team.

We provided financial support for Java development and funded the certification process. We spent a significant amount of time and money on legal issues from contract and NDA creation for our contractor to license agreements from Sun and creating our own for the binaries. We worked with OEMs who would like to use the binaries, but needed to understand what they need to do legally to be able to redistribute the binaries. This is an area we are still working on at our end. We are waiting for a letter from Sun to put on our website to OEMs. We are also in the process of updating our OEM license agreement. This should be available by mid-April.

We have received a positive response from the FreeBSD community regarding the release of the binaries. We received a few requests to support the FreeBSD 6.1/amd64 platform. We have decided to move forward and support this too. We currently are working with a contractor to provide Java support on 5.5/i386, 6.1/i386, and 6.1/amd64. Once 5.5 and 6.1 are released, we'll update the FreeBSD Foundation website with the Java status. Regular updates to the website will continue.

Update of the linux infrastructure in the Ports Collection Emulation Mailinglist freebsd-emulation@FreeBSD.org Alexander Leidinger netchild@FreeBSD.org Boris Samorodov bsam@ipt.ru

Work is underway to use the new linux_base-fc3 as the new default linux base. Since there's some infrastructure work to do before it can be made the new default, this will not happen before the release of FreeBSD 5.5 and 6.1. At the same time a new X.org based linux port will replace the outdated XFree86 based linux X11 port.

The use of fc3 instead of fc4 or fc5 is to make sure we have a smooth transition with as less as possible breakage. We already use several fc3 RPM's with the current default of linux_base-8, so there should be not much problems to solve.

Mark all old linux_base ports as DEPRECATED (after making fc3 the default linux_base port). Have a look at a linux-dri version which works with the update to X.org. When everything is switched to fc3 and everything works at least as good as before, have a look at porting fc4 or fc5.
Mouse Driver Framework Jordan Sissel jls@csh.rit.edu mouse framework project

The current mouse system is a mess with moused, psm, ums, and mse supporting, individually, multiple kinds of mice. This project aims to move all driver support into moused modules in userland. In addition, many features lacking in the existing mouse infrastructure are being added. It is my hope that this new system will make both using mice and writing drivers easier down the road.

Testing. Contact if interested.
SMPng Network Stack Robert Watson rwatson@FreeBSD.org FreeBSD Netperf Project

The FreeBSD netperf project has recently focused on revising the socket and protocol control block reference counts to define and enforce reference and memory management invariants, allowing the removal of unnecessary checks, error handling, and locking. Use of global pcbinfo locks has now been eliminated from the socket send and receive paths into all network protocols, including netipx, netnatm, netatalk, netinet, netinet6, netgraph, and others. Checks have generally been replaced with assertions; so_pcb is now guaranteed to be non-NULL. This should improve performance by reducing lock contention and unnecessary checks, as well as facilitate future work to eliminate long holding of pcbinfo locks in the TCP input path through proper reference counting for pcbs. These changes have been committed to FreeBSD 7-CURRENT, and will be merged in a few months once they have stabilized.

pfSense Scott Ullrich sullrich@gmail.com pfSense website

pfSense continues to grow and fix bugs. Since the last report we have grown to 14 developers working part and full time on bringing pfSense to 1.0. Beta 3 is scheduled for release on 4/15/2006.

Fix remaining bugs listed in CVSTrac Fine tune existing code
Symbol Versioning Daniel Eischen deischen@FreeBSD.org Symbol Versioning in FreeBSD. Symbol Versioning in Solaris. Symbol Versioning in Linux

Symbol versioning libraries allows us to maintain binary compatibility without bumping library version numbers. Recently, symbol versioning for libc, libpthread, libthread_db, and libm was committed to -current. It is disabled by default, and can be enabled by adding "SYMVER_ENABLED=true" to/etc/make.conf. A final version bump for libc and other affected libraries (perhaps all) should be done before enabling this by default.

Determining the impact on ports - portmgr (Kris) is running a portbuild to identify any problems. I am working to resolve the few problems that were found. Making our linker link to libc and libpthread (when using (-pthread)) when building shared libraries. This is needed so that symbol version dependencies are recorded in the shared library. I think kan@ is working on this.??? Identify and symbol version any other libraries that should be symbol versioned. If anyone has any suggestions, I'm all ears.
Status Report ATA project Søren Schmidt sos@FreeBSD.org

The last months has mostly been about stabilizing ATA for 6.1-RELEASE, and adding support for new chipsets. On that front JMicron has raised the bar for vendors as they have provided not only hardware but documentation on both their hardware and their software RAID implementation, making it a breeze to add support for their, by the way excellent, products. Other vendors can join in here. :) Otherwise I'm always in the need for any amount of time or means to get it if nothing else.

ATA has grown a USB backend so that fx. flash keys and external HD/CD/DVD drives can be used directly without atapicam/CAM etc. This is very handy on small (embedded) systems where resources are limited and kernel space at a premium. burncd(8) is in the process of being updated so it will support this along with SATA ATAPI devices, and if time permits adding DVD support.

The next months will be used to (hopefully) work on getting ATA to work properly on systems with > 4G of memory and utilize the 64bit addressing of controllers that support it. RAID5 support for ataraid is on the list together with hardening of the RAID subsystem to help keep data alive and well.

BSDInstaller Andrew Turner soc-andrew@FreeBSD.org

The BSDInstaller integration work has progressed since the previous report. The backend has been changed to the new Lua version. This is to ensure the version we use will be maintained. The release Makefile now uses the Lua package rather the local copy in Perforce. Ports are also being created for the required modules to remove the need to bring Lua into the base.

Create a port for all the Lua modules required
libpkg - Package management library Andrew Turner andrew@fubar.geek.nz

Libpkg is a package management library using libarchive to extract the package files. It is able to download, install and get a list of installed packages. Work has also been started on implementing the package tools from the base system. Most of pkg_info has been implemented and pkg_add has been started.

Support for more command line options in pkg_info and pkg_add Creating a package Test pkg_add works as expected for all implemented command line options
Bridge STP Improvements Andrew Thompson thompsa@FreeBSD.org

Work has been started to implement the Rapid Spanning Tree Protocol which supersedes STP. RSTP has a much faster link failover time of around one second compared to 30-60 seconds for STP, this is very important on modern networks. Some progress has been made but a RSTP capable switch will be needed soon to proceed, see http://www.freebsd.org/donations/wantlist.html .

Donation of a RSTP switch
TMPFS (Filesystem) for FreeBSD Rohit Jalan rohitj@purpe.com Project Home I/O Benchmarks

Three betas have been released so far. The code is operational and seems to be stable but it is not MPSAFE yet.

The second and third betas used different mechanisms for data I/O. (sfbuf vs. kernel_map+vacache) and at present I am in the process on selecting one mechanism over the other. Your opinion is solicited.

Sound subsystem improvements Multimedia Mailinglist freebsd-multimedia@FreeBSD.org Ariff Abdullah ariff@FreeBSD.org Alexander Leidinger netchild@FreeBSD.org Start of Intel HDA support.

A lot of fixes (bugs, LORs, panics) and improvements (performance, compatibility, a new driver, 24/32bit samples support, ...) have been merged to RELENG_6. FreeBSD 6.1 is the first release which ships with the much improved sound system. Additionally there's work underway:

Parts of this work may be already in 6.1, but there's still a good portion which isn't even in -current as of this writing.

Style(9) cleanup, survive against WARNS=2 (at least). Have a look at the sound related entries on the ideas list. Rewrite some parts (e.g. a new mixer subsystem with OSS compatibility). sndctl(1): tool to control non-mixer parts of the sound system (e.g. spdif switching, virtual-3D effects) by an user (instead of the sysctl approach in -current); pcmplay(1), pcmrec(1), pcmutil(1). Plugable FEEDER infrastructure. For ease of debugging various feeder stuff and/or as userland library and test suite. Closer compatibility with OSS, especially for the upcoming OSS v4.
Fundraising for FreeBSD security development Colin Percival cperciva@FreeBSD.org

Since 2003, I have introduced the (now quite widely used) FreeBSD Update and Portsnap tools, but rarely had time to make improvements or add requested features. Consequently, on March - 30th, I sent email to the the freebsd-hackers, freebsd-security, + 30th, I sent email to the freebsd-hackers, freebsd-security, and freebsd-announce lists announcing that I was seeking funding to allow me to spend the summer working full-time on these and my role as FreeBSD Security Officer. Assuming that some cheques arrive as expected, I have reached my donation target and will start work at the beginning of May.

The work which I'm aiming to do is listed at the URL above.
FreeBSD on Xen 3.0 Scott Long scottl@FreeBSD.org Kip Macy kmacy@FreeBSD.org

We had hoped to finish a prototype of Xen DomU and possible Dom0 in time for FreeBSD 6.1. The primary work was focused on bringing Xen into the FreeBSD 'newbus' framework. Unfortunately, an architectural problem in FreeBSD has stopped us. Xen relies on message passing between to child and parent domains to communicate device configuration, and this message passing requires that tsleep and wakeup work early in boot. That doesn't seem to be the case, and it's unclear what it would take to make it work. Without the newbus work, it's hard to complete the Dom0 code, and impossible to support Xen 3.0 features like domain suspension.

Make tsleep and wakeup work during early boot Continue DomU newbus work Continue Dom0 work
TrustedBSD Audit Robert Watson rwatson@FreeBSD.org trustedbsd-audit@TrustedBSD.org TrustedBSD Audit Web Page

In the past three months, the TrustedBSD CAPP audit implementation has been merged to the FreeBSD 7-CURRENT development tree in CVS, and the groundwork has been laid for a merge to 6.X. OpenBSM, a BSD-licensed implementation of Sun's Basic Security Module (BSM) API and file format, as well as extensions to support intrusion detect applications. New features included support for audit pipes, a pseudo-device that provides a live audit record trail interface for intrusion detection applications, and an audit filter daemon that allows plug-in modules to monitor live events.

Complete audit coverage of non-native system call ABIs, some more recent base system calls. Integrate OpenBSM 1.0 alpha 6, which includes auditfilterd and the audit filter API.
TrustedBSD OpenBSM Robert Watson rwatson@FreeBSD.org trustedbsd-audit@TrustedBSD.org TrustedBSD OpenBSM Web Page

OpenBSM is a BSD-licensed implementation of Sun's Basic Security Module (BSM) API and file format, based on Apple's Darwin implementation. OpenBSM 1.0 alpha 5 is now available, and includes significant bugfixes, documentation, and feature enhancements over previous releases, including 64-bit token support, endian-independent operation, improved memory management, and bug fixes resulting from the static analysis tools provided by Coverity and FlexeLint. Recent versions are now built and configured using autoconf and automake, and have been built and tested with FreeBSD, Mac OS X, and Linux.

Complete OpenBSM file format validation test suite. Finalize audit filter API. Complete file format documentation; record documentation for new record types associated with Mac OS X, FreeBSD, and Linux specific events not present in documented Solaris record format.
ARM Support for TS-7200 John-Mark Gurney jmg@FreeBSD.org TS-7200 Board Perforce Code Location FreeBSD/arm TS-7200 dmesg output

This is just an update to note that TS-7200 is building and running with a recent -current.

I have been working on getting FreeBSD/arm running on the TS-7200. So far the board boots, and has somewhat working ethernet (some unexplained packet loss). I can netboot from a FreeBSD/i386 machine, and I can also mount msdosfs's on CF.

Figuring out why some small packets transmit with error (if someone can get Technologic Systems to pay attention to me and this issue, that'd be great!) EP93xx identification information to properly attach various onboard devices
Ultrasparc T1 support Kip Macy kmacy@FreeBSD.org John Gurney jmg@FreeBSD.org T1 processor and hypervisor documentation. TODO list

FreeBSD has been ported the T1, Sun's newest processor. FreeBSD currently runs multi-user SMP. JMG is actively working on improving device support.

The port has taken several weeks longer than initially anticipated as the majority of the current sparc64 port could not be re-used.

OpenBSD packet filter - pf Max Laier mlaier@FreeBSD.org

Work towards importing the upcoming OpenBSD 3.9 version of pf is starting slowly. There are a couple of infrastructural changes (e.g. interface groups) that need to be imported beforehand. This work is in the final stage of progress.

A couple of bugfixes have happend since the last report and will be available in FreeBSD 6.1/5.5. pf users are strongly encouraged to upgrade to RELENG_6 as the version present in RELENG_5 is collecting dust.

diff --git a/en/news/status/report-2009-10-2009-12.xml b/en/news/status/report-2009-10-2009-12.xml index edff53132d..76aa692ef0 100644 --- a/en/news/status/report-2009-10-2009-12.xml +++ b/en/news/status/report-2009-10-2009-12.xml @@ -1,2033 +1,2033 @@ - + October-December 2009
Introduction

This report covers &os; related projects between October and December 2009. This is the last of the four reports covering 2009, which has shown to be a very important year for the &os; Project. Besides other notable things, a new major version of &os;, 8.0-RELEASE, has been released, while the release process for 7.3-RELEASE is soon to begin.

Thanks to all the reporters for the excellent work! We hope you enjoy reading. Let us also take this opportunity to wish you all a happy and successful new year for 2010.

Please note that the deadline for submissions covering the period between January and March 2010 is April 15th, 2010.

soc Google Summer of Code proj Projects team &os; Team Reports net Network Infrastructure kern Kernel docs Documentation arch Architectures ports Ports vendor Vendor / 3rd Party Software misc Miscellaneous bin Userland utilities DAHDI (Zaptel) support for &os; Max Khon fjoe@FreeBSD.org Official Announcement SVN repository

A DAHDI support module for &os; has been created in the official Asterisk SVN repository.

The following drivers are currently ported:

The following HW drivers are currently ported and tested:

The port for dahdi_dynamic_eth and dahdi_dynamic_ethmf is underway. More HW drivers need to be ported. Please let me know if you can provide remote access with serial console to any box with ISDN/T1/E1 HW not currently supported by DAHDI for &os; but supported by DAHDI for Linux. I am also interested in porting drivers for FXO/FXS cards. Please let me know if you can provide a remote access or donate a card.
CAM-based ATA implementation Alexander Motin mav@FreeBSD.org Scott Long scottl@FreeBSD.org

Existing ata(4) infrastructure, which has been around many years, has various problems and limitations when compared to modern controllers/device support. Although the CAM subsystem (used for SCSI) is almost as old as ata(4), it is more eligible to solve the current problems. To reduce code duplication and better support border cases such as ATAPI and SAS, we have started to develop a new CAM based ATA implementation.

As such, CAM infrastructure has been extended to support different transports. New transport has been implemented to support PATA/SATA buses. To support ATA disks, a new CAM driver (ada) has been written. ATAPI devices are supported by existing SCSI drivers cd, da, sa, etc. To support SATA port-multipliers another new CAM driver (pmp) has been written. To support most featured and widespread SATA controllers, new drivers ahci(4) and siis(4) have been developed.

To support legacy ATA controllers, a kernel option ATA_CAM has been added. When used, it makes all ata(4) controllers directly available to CAM, deprecating ata(4) peripheral drivers and external APIs. To make this possible, ata(4) code has been heavily refactored, making controller driver API stricter.

Command queuing support gives new ATA implementation up to double performance benefit on some workloads, with 20-30% improvement quite usual.

SATA Port Multiplier support makes it easy to build fast and cheap storage with huge capacities, by using dozens of SATA drives in one system or external enclosures,

Some of that code has been presented in the recently released &os; 8.0-RELEASE but 8-STABLE now includes a much improved version.

Improve timeout and transport error recovery. Improve hot-plug support. Find and fix any show stoppers for legacy ata(4) deprecation. Write a new, more featured driver for Marvell SATA controllers (specifications desired). Write SAS-specific transport and drivers for SAS HBAs (specifications desired). SAS controllers can support SATA devices and multipliers, so it should fit nicely into the new infrastructure.
Chromium web browser Ben Laurie ben@links.org test builds and port progress first build information

Chromium is a Webkit-based web browser that is largely BSD licensed. It has been ported from Linux to &os; in October and we have been posting patches and test builds periodically since then. Chromium works well on &os; — it is very fast and stable but there are a handful of rough edges that need to be polished up. Two remaining bugs should probably be fixed before releasing a chromium-devel port. We are looking for volunteers to test and maintain this port to make this BSD browser a viable option on &os; desktop systems.

Fix sporadic rendering freezes. Fix JavaScript interpreter, v8, on i386 architecture.
SUJ — Journaled SoftUpdates Jeff Roberson jeff@FreeBSD.org

I have been adding a small intent log to SoftUpdates to eliminate the requirement for fsck after an unclean shutdown. This work has been funded by Yahoo!, iXsystems, and Juniper. Kirk McKusick has been aiding me with design critiques and helping me better understand SoftUpdates.

Extensive testing by myself and Peter Holm has yielded a stable patch. Current users are encouraged to follow the instructions posted to the current@FreeBSD.org mailing list to verify stability in your own workloads. Updates are forthcoming and it is expected to be merged to 9.0-CURRENT before the end of January. Ports to older versions of &os; will be available in SVN under alternate branches. Official backports will be decided by re@ when 9.0-CURRENT is stable.

The changes are fully backwards and forwards compatible as there are very few metadata changes to the filesystem. The journal may be enabled or disabled on existing FFS filesystems using tunefs(8). The log consumes 64 MB of space at maximum and fsck time is bounded by the size of the log rather than the size of the filesystem. Other details are available in my technical journal.

Ports Collection Mark Linimon linimon@FreeBSD.org The &os; Ports Collection Contributing to the &os; Ports Collection &os; ports monitoring system The &os; Ports Management Team marcuscom Tinderbox

Most of the recent activity has been dealing with the 8.0-RELEASE process. As an experiment, we have tried to decouple the ports QA timeline as much as possible from the src QA timeline. Although this meant that the impact on people actively maintaining and using ports has been much less than in previous releases, it still has not solved the problem of the release going out with a stale set of packages. We are still trying to come up with a better solution for the problem.

The ports count is over 21,000. The PR count jumped to over 1,000 but is now back to around 950.

We are currently building packages for amd64-6, amd64-7, amd64-8, i386-6, i386-7, i386-8, i386-9, ia64-8, sparc64-7, and sparc64-8. This represents the addition of i386-9 and ia64-8 since the last report.

There has been some discussion of when to drop regular package builds for 6.X but no decision has been made yet. The cluster and the port managers are struggling to keep up with so many branches being active all at the same time.

Mark Linimon continues to make progress on the cluster nodes. Almost every node that does not have a hard disk failure is now online. In addition, he continues to make progress debugging problems that occasionally take nodes offline.

The next task is to characterize the overall performance of the build cluster. The question has been asked of us, "what would it take to speed up package builds?" There is no one simple answer. It is not merely a matter of having a larger number of package building machines, so before asking for funding we first need to identify the current bottlenecks. While we are starting to understand the problems on the nodes, the problems on the dispatch machine itself are much harder. Complicating the matter is that there are several periodic processes (ZFS backup, ZFS expiration, and errorlog compression, among others) that can combine to slow that machine significantly. The simultaneous interaction of all these is proving difficult to quantify.

Between Pav Lucistnik and Martin Wilke, many more experimental ports runs have been completed and committed.

We have added 3 new committers since the last report, and 1 older one has rejoined us.

We are still trying to set up ports tinderboxes that can be made available to committers for pre-testing. Most of the remaining ports PRs are "existing port/PR assigned to committer". Although the maintainer-timeout policy is helping to keep the backlog down, we are going to need to do more to get the ports in the shape they really need to be in. Although we have added many maintainers, we still have more than 4,700 unmaintained ports. (See, for instance, the list on portsmon. The percentage remains steady at just over 22%.) We are always looking for dedicated volunteers to adopt at least a few unmaintained ports. As well, the packages on amd64 and especially sparc64 lag behind i386, and we need more testers for those.
&os;/sparc64 Marius Strobl marius@FreeBSD.org

The main thing that has taken place since the last Status Report is that I have gotten to the bottom of the remaining PCI problems with Sun Fire V215/V245 and support for these has been completed and since r202023 now is part of 9.0-CURRENT. With some luck it will also be part of the upcoming 7.3-RELEASE.

Some other news:

3G USB support Andrew Thompson thompsa@FreeBSD.org

Recently, a bunch of new device IDs have been added for the u3g(4) cellular wireless driver; the list should be comparable now with other operating systems around. A lot of these devices have a feature where the unit first attaches as a disk or CD-ROM that contains the Win/Mac drivers. This state should be detected by the u3g driver and the usb device is sent a command to switch to modem mode. This has been working for quite some time but as it is implemented differently for each vendor I am looking for feedback on any units where the auto switchover is not working (or the init is not recognized at all). Please ensure you are running an up to date kernel, like r201681 or later from 9.0-CURRENT, or 8-STABLE after the future merge of this revision.

The &os; German Documentation Project Johann Kois jkois@FreeBSD.org Benedict Reuschling bcr@FreeBSD.org Martin Wilke miwi@FreeBSD.org German Documentation Project Homepage

We are happy to announce that Benedict Reuschling is now free from mentorship and can commit to the documentation tree on his own.

Since the last status report, the German Documentation Team has chased updates to various sections of the &os; Handbook, FAQ and the German website. Many handbook pages have been updated to the latest version, including chapters about configuration, disks, kernel configuration, printing, multimedia and virtualization.

We require help from volunteers that are willing to contribute bug fixes or translations. The following documents need active maintainership and are a good training ground for those willing to join the translation team:

Read the translations and report bugs to de-bsd-translators@de.FreeBSD.org. Translate articles or missing sections listed above.
The &os; Spanish Documentation Project Gábor Kövesdán gabor@FreeBSD.org Introduction to the Spanish Documentation Project Translators' Mailing List

There is one article translation pending review. Apart from this, neither translations nor maintainance work have been done. We need more volunteers, mostly translators but we are glad to have more reviewers, as well. One can join by simply subscribing to the translators' mailing list where all the work is done.

Update Handbook translation. Update webpage translation. Add more article translations.
The &os; Hungarian Documentation Project Gábor Kövesdán gabor@FreeBSD.org Gábor Páli pgj@FreeBSD.org Hungarian Web Page for &os; Hungarian Documentation for &os; The &os; Hungarian Documentation Project's Wiki Page Perforce Depot for the &os; Hungarian Documentation Project

In the last months, no new translation has been added. Lacking human resources, we can only manage to keep the existing documentation and web page translations up to date. If you are interested - in helping us, please contact us via the the email addresses + in helping us, please contact us via the email addresses noted above.

Translate release notes. Add more article translations.
The &os; Forums &os; Forums Admins forum-admins@FreeBSD.org &os; Forums Moderators forum-moderators@FreeBSD.org

Since the last report we have seen a growth of 2,000 users on our forums resulting in approximately 10,000 registered users at this time. The posts count is about to reach 60,000 soon, which are contained in almost 9,000 threads.

The sign-up rate still hovers between 50-100 each week. The total number of visitors (including 'guests') is currently hard to gauge, but is likely to be a substantial multiple of the registered userbase.

New topics and posts are actively 'pushed out' to search engines. This in turn makes the forums show up in search results more and more often, making it a valuable and very accessible source of information for the &os; community.

One of the contributing factors to the forums' success is their 'BSD-style' approach when it comes to administration and moderation. The forums have a strong and unified identity and are very actively moderated, spam-free, and with a core group of very active and helpful members, dispensing many combined decades' worth of knowledge to starting, intermediate and professional users of &os;.

V4L support in Linux emulator J.R. Oldroyd fbsd@opal.com

V4L video support in the Linux emulator is now available.

This work allows Linux applications using V4L video calls to work with existing &os; video drivers that provide V4L interfaces. It is tested and working with the net/skype port and also with browser-based Flash applications that access webcams. An early version has been committed to 9.0-CURRENT and work is in progress to commit the latest version and then MFC. It is also tested on &os;-8.0/amd64 and &os;-7.2/i386.

Note: to be clear, this does not add V4L support to all webcams. The &os; camera driver must already offer V4L support itself in order for a Linux application to be able to use that camera. The multimedia/pwcbsd port provides the pwc(4) driver that already has V4L support. If your camera is supported by a different driver, you will need to enhance that driver to add V4L support.

The webcamd deamon Hans Petter Selasky hselasky@FreeBSD.org

The webcamd daemon enables hundreds of different USB based webcam devices to be used under the &os;-8/9 operating system. The webcam daemon is basically an application, which is a port of Video4Linux USB webcam drivers into userspace on &os;. The daemon currently depends on libc, pthreads, libusb and the VIDEO4BSD kernel module.

Add support for the remaining Video4Linux USB devices. Make patches for increased buffer sizes, due to higher latency in userspace. Especially for High Speed USB.
Group Limit Increase Brooks Davis brooks@FreeBSD.org

Historically, &os; has limited the number of supplemental groups per process to 15 (NGROUPS_MAX was incorrectly declared to be 16). In &os; 8.0-RELEASE we raised the limit to 1023, which should be sufficient for most users and will be acceptably efficient for incorrectly written applications that statically allocate NGROUPS_MAX + 1 entries.

Because some systems such as Linux 2.6 support a larger group limit, we have further relaxed this restriction in 9.0-CURRENT and made kern.ngroups a tunable value, which supports values between 1023 and INT_MAX - 1. We plan to merge this to 8-STABLE before 8.1-RELEASE.

Syncing pf(4) with OpenBSD 4.5 Ermal Luçi eri@FreeBSD.org Viewing the changes. The actual repo to build from.

This import is based on OpenBSD 4.5 state of pf(4). It includes many improvements over the code currently present in &os;. The actual new feature present in pf45 repository is support for divert(4), which should allow tools like snort_inline to work with pf(4) too.

Currently, the pf(4) import is considered stable with normal kernel, as well as VIMAGE enabled kernels.

pflow(4)/pflog(4)/pfsync(4) need to be made VIMAGE aware. More regression testing is needed.
NFSv4 ACL support Edward Tomasz Napierala trasz@FreeBSD.org

Native NFSv4 ACL support in ZFS and UFS has been committed into 9.0-CURRENT. It is expected to be MFCed in order to make it into &os; 8.1-RELEASE.

Support for NFSv4 ACLs in tar(1). MFC.
Ralink wireless RT2700U/2800U/3000U run(4) USB driver Akinori Furukoshi moonlightakkiy@yahoo.ca Announcement on the &os; Forums

The run(4) driver brings support for Ralink RT2700U/2800U/3000U USB wireless devices. For detailed information and list of all the supported devices, please see the above mentioned URL. The source code has been imported to the USB P4 repository on January 10, 2010 (172906).

Solve USB_TIMEOUT problem when sending beacons, and/or confirm which chipsets supports AP mode if all of them do not support it. Read TX stats for AMRR on AP mode, and/or confirm which chipsets supports AP mode if all of them do not support it. Maintain the code.
&os;/mips The &os;/mips mailing list mips@FreeBSD.org Warner Losh imp@FreeBSD.org

The base/projects/mips branch has been merged into 9.0-CURRENT. The merge is complete and the sanity tests have passed. The code has booted on both a Ubiquiti RouterStation (big endian) as well as in gxemul (little endian).

The branch lived for one year, minus a day, and accumulated much work:

The development branch had been updated incorrectly several times over the past year, and the damage was too much to repair. We have retired the branch and will do further mips development in 9.0-CURRENT for the time being. If you have a checked out tree, the suggested way to update the projects/mips tree you have is to do a "svn switch svn://svn.FreeBSD.org/base/head" in that tree.

I would like to thank everybody that has contributed time, code or hardware to make &os;/mips better.

As development proceeds, I will keep posting updates. In addition, I hope to have some mini "how-to" wiki pages done for people that want to try it out.

We are still investigating how feasible merging all this work into 8-STABLE will be, as it represents a huge leap forward in code stability and quality.
Flattened Device Tree for embedded &os; Rafal Jaworowski raj@semihalf.com Project wiki pages Project P4 branch

The purpose of this project is to provide &os; with support for the Flattened Device Tree (FDT) technology, the mechanism for describing computer hardware resources, which cannot be probed or self enumerated, in a uniform and portable way. The primary consumers of this technology are embedded &os; platforms (ARM, AVR32, MIPS, PowerPC), where a lot of designs are based on similar chips but have different assignment of pins, memory layout, addresses bindings, interrupts routing and other resources.

Current state highlights:

Work on this project has been sponsored by the &os; Foundation.

Complete missing pieces for PowerPC (PCI bridge driver conversion to FDT). Complete ARM support. Merge to SVN.
HAST — Highly Available Storage Pawel Jakub Dawidek pjd@FreeBSD.org Announcement

HAST software will provide synchronous replication of any GEOM provider (eg. disk, partition, mirror, etc.) or file from one &os; machine (primary node) to another one (secondary node).

Because data is replicated at the block level neither applications, nor file systems have to be modified to take advantage of this functionality.

The functionality that HAST software will provide is very similar to the functionality provided by the DRBD project for Linux.

The HAST project is sponsored by the &os; Foundation.

Work is progressing well; first milestone was reached in December 2009 and the expected project completion date is January 31, 2010.

Check out &os; mailing lists for patches to test in February and wish me good luck!

And by the way, do not forget to donate to the &os; Foundation, as your donations make projects like this possible.

Thank you!

Wireless mesh networking Rui Paulo rpaulo@FreeBSD.org

Development of the &os; 802.11s stack continues. The code in &os; HEAD has been updated to comply with draft 4.0. Merge to &os; 8-STABLE will be done soon.

The developer is looking for funding to be able to implement mesh link security algorithms and/or coordinated channel access (performance improvement).

&os; TDM Framework Rafal Czubak rcz@semihalf.com Michal Hajduk mih@semihalf.com

Important changes regarding &os; TDM Framework since the last status report:

Improve various issues regarding working drivers and demo application. Test Si3050 codec driver operation with PSTN. Fully integrate voiceband infrastructure with Zaptel/DAHDI telephony hardware drivers.
POSIX utmpx for &os; Ed Schouten ed@FreeBSD.org Announcement POSIX specification NetBSD's implementation OpenSolaris' implementation

On January 13, I removed the utmp user accounting database and replaced it with a new POSIX utmpx implementation. Unfortunately, the upgrade path is a bit complex, because the utmp interface provided almost no library interface to interact with the database files.

This change may have caused some regressions. Some ports may fail to build, while there could also be bugs in the library functions.

Get a list of broken ports. Fix them to comply to standards. Send patches upstream.
BSD-licensed iconv Gábor Kövesdán gabor@FreeBSD.org Sources in the Perforce repository

Good compatibility has been ensured and there are only few pending items that have to be reviewed/enhanced. Recently, an enhancement has been completed, which makes it possible to accomplish better transliteration, just like in the GNU version. An initial testing patch is expected at the beginning of February.

Enhance conversion tables to make use of enhanced transliteration. A performance optimization might be done later.
BSD-licensed text processing tools Gábor Kövesdán gabor@FreeBSD.org Perforce repository

As 8.0-RELEASE is out, BSD bc/dc can be now committed to 9.0-CURRENT. We are only waiting for an experimental package building to make sure there are no regressions after this change. BSD grep is complete but it cannot be integrated yet because of some regex library issues. We need first a fast and modern regex library so that we can change to BSD grep. BSD sort has few incomplete features and needs some performance review.

Commit BSD bc/dc. Implement remaining features for sort and optimize performance.
NVIDIA amd64 driver John Baldwin jhb@FreeBSD.org Release Announcement

NVIDIA has released the first BETA version of its graphics drivers for &os;/amd64. Note that this driver will work on &os; versions 7.3-RELEASE or 8.0-RELEASE and later. It also works on very recent versions of 7.2-STABLE. More details are provided in the official release announcement.

&os; Bugbusting Team Gavin Atkinson gavin@FreeBSD.org Mark Linimon linimon@FreeBSD.org Remko Lodder remko@FreeBSD.org Volker Werth vwe@FreeBSD.org GNATS BugBusting Experimental report pages PRs recommended for committer evaluation by the bugbusting team Subscription list for the above report)

Bugmeister Gavin Atkinson has now been granted a src commit bit, and is now starting to work through some of our backlog.

The list of PRs recommended for committer evaluation by the Bugbusting Team continues to receive new additions; however, it has not yet achieved high visibility. (This list contains PRs, mostly with patches, that the Bugbusting Team consider potentially ready to be committed as-is, or are probably trivially resolved in the hands of a committer with knowledge of the particular subsystem.) One of the suggestions at the Cambridge devsummit was to create a way for people to be emailed the weekly summary that is posted to freebsd-bugs@, and this has now been implemented. Please email linimon@FreeBSD.org to ask to be added to the recommended_subscribers.txt file (see above).

We continue to classify PRs as they arrive, adding 'tags' to the subject lines corresponding to the kernel subsystem involved, or man page references for userland PRs. These tags, in turn, produce lists of PRs sorted both by tag and by manpage. At this point most of the PRs that refer to supported versions of &os; have been converted, and we are keeping up as new ones come in. We hope that this is making it easier to browse the PR database.

The overall PR count jumped to over 6,200 during the 8.0-RELEASE release cycle but seems to have stabilized at around 6,100. As in the past, we have a fairly good clearance rate for ports PRs but much less so for other PRs. (Partly this is due to the concept of individual ports having 'maintainers'.)

Try to find ways to get more committers helping us with closing PRs that the team has already analyzed.
&os;/ia64 Marcel Moolenaar marcel@FreeBSD.org

Work continues on our ia64 port. Many recent commits to help improve stability have been made to 9.0-CURRENT and MFCed to 8-STABLE.

Due to interest from a very motivated user, package builds have been restarted for ia64-8. This is primarily intended as a QA step to discover and fix bugs on ia64, rather than to create packages for upload.

Based on the above, Mark Linimon documented how to add more architectures to the package cluster scheduler. (This work will also be of use in an upcoming effort to start powerpc package builds.)

There are currently 3 ia64 machines online and building packages. The machines seem stable as long as multiple simultaneous package builds are not attempted, in which case they get machine checks. This is puzzling, since other heavy workloads seem stable on the same machines.

Continue to try to understand why multiple simultaneous package builds bring the machines down. Upgrade the firmware on the two machines at Yahoo! to see if that helps the problem. Configure a fourth machine that has been made available to us. Figure out the problems with the latest GCC port on ia64. We can use some help with reviewing the ia64 platform pages and bringing them up-to-date.
bwn(4) — Broadcom Wireless driver Weongyo Jeong weongyo@FreeBSD.org bwn(4) sources in P4

bwn(4) is replacing bwi(4) driver for to the following reasons:

Currently, it is tested on big/little endian machines and 32/64-bit DMA operation with STA mode. A major patch for siba(4) is being reviewed before committing into 9.0-CURRENT.

MESH/IBSS/HOSTAP mode is not supported. LP/N PHYs are not supported.
&os; Release Engineering Release Engineering Team re@FreeBSD.org

The Release Engineering Team announced &os; 8.0-RELEASE on November 26th, 2009. With 8.0-RELEASE completed planning has begun for 7.3-RELEASE. The schedule has been set with the release date planned for early March 2010.

The Release Engineering Team would like to thank George Neville-Neil (gnn@) for his service on the team. George continues to work with the &os; Project but has stepped down from the Release Engineering Team to focus on other activities.

IP Payload Compression Protocol support Bjoern A. Zeeb bz@FreeBSD.org

One of the longer outstanding feature problems with the &os; IP security stack, broken IP Payload Compression Protocol (IPcomp) support, has been fixed.

While working on the fix, various problems had been identified:

Patches for all but the zlib support have been committed to 9.0-RELEASE and merged to all supported stable branches including 6-STABLE. Special thanks to Eugene Grosbein for helping with testing.

Fix ng_deflate so that we can make use of Kip Macy's work on an up-to-date unified zlib version in the kernel, which would also fix the last occasional IPcomp hiccups.
The &os; Foundation Status Report Deb Goodkin deb@FreeBSDFoundation.org The &os; Foundation Follow us on Twitter

Despite a difficult economy, we more than doubled our number of donors, we raised $269K towards our goal of $300K, and with an improved economy hope to surpass that this year.

We have funded two new projects. One is the Flattened Device Tree by Rafal Jaworowski. And, the second one is Highly Available Storage by Pawel Jakub Dawidek. We continued supporting the New Console Driver by Ed Schouten and Improvements to the &os; TCP Stack by Lawrence Stewart. We also purchased equipment for several projects.

We have big plans for the new year! We are going to significantly increase our project development and equipment spending. Stay tuned for a project proposal submission announcement soon. We just announced that we are accepting travel grant applications for AsiaBSDCon and will be accepting them soon for BSDCan. And, we are working on infrastructure projects to beef up hardware for package-building, network-testing, etc.

Read more about how we supported the project and community by reading our end-of-year newsletter available at http://www.FreeBSDFoundation.org/press/2009Dec-newsletter.shtml.

We are fund-raising for 2010 now! Find out more at http://www.FreeBSDFoundation.org/donate/.

VirtualBox on &os; Beat Gaetzi beat@FreeBSD.org Bernhard Froehlich decke@bluelife.at Juergen Lock nox@FreeBSD.org Martin Wilke miwi@FreeBSD.org

VirtualBox 3.1.2 has been committed to the ports tree.

Several changes to the port have been performed with this update including:

We would like to say thanks to all the people that helped us by reporting bugs and submitting fixes. We also thank the VirtualBox developers for their help with the ongoing effort to port VirtualBox to &os;

BSDCan 2010 — The BSD Conference BSDCan Information info@BSDCan.org

BSDCan, a BSD conference held in Ottawa, Canada, has quickly established itself as the technical conference for people working on and with 4.4BSD based operating systems and related projects. The organizers have found a fantastic formula that appeals to a wide range of people from extreme novices to advanced developers.

BSDCan 2010 will be held on 13-14 May 2010 at the University of Ottawa, and will be preceded by two days of Tutorials on 11-12 May 2010.

There will be related events (of a social nature, for the most part) on the day before and after the conference.

Please check the conference web site for more information.

AsiaBSDCon 2010 — The BSD Conference AsiaBSDCon Information secretary@AsiaBSDCon.org

AsiaBSDCon is a conference for users and developers on BSD based systems. AsiaBSDCon is a technical conference and aims to collect the best technical papers and presentations available to ensure that the latest developments in our open source community are shared with the widest possible audience. The conference is for anyone developing, deploying and using systems based on FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Darwin and MacOS X.

The next conference will be held at the Tokyo University of Science, Tokyo, Japan, on 11th to 14th March, 2010.

For more detailed information, please check the conference web site.

meetBSD 2010 — The BSD Conference meetBSD Information info@meetBSD.org

The meetBSD conference is an annual event gathering users and developers of the BSD operating system family, mostly &os;, NetBSD and OpenBSD. Afer the special California edition, meetBSD Wintercamp in Livigno, this year we are back to Krakow, Poland.

In 2010, meetBSD will be held on 2-3 July at the Jagiellonian University.

See the conference main web site for more details.

Clang replacing GCC in the base system Ed Schouten ed@FreeBSD.org Roman Divacky rdivacky@FreeBSD.org Brooks Davis brooks@FreeBSD.org Pawel Worach pawel.worach@gmail.com

We are again able to build bootable i386/amd64 kernel. Nathan Whitehorn committed a fix to &os;, which enabled LLVM/clang to work mostly fine on PowerPC. There is some preliminary testing of LLVM/clang on ARM and MIPS being done. We have some ideas about sparc64 support which are currently being investigated. You are welcome to contact us if you want to help.

Since the last report, a lot has happened mostly in the area of C++; clang is currently able to build working groff, gperf and devd, i.e. all of the C++ apps we have in base. Unfortunately, it still cannot build any of the C++ libraries — two of them are missing builtins and libstdc++ is broken for other reasons.

Not much happened in the clangbsd branch as we cannot upgrade the clang/llvm there because we are blocked by a bug that requires using newer assembler than we can ship. This might be solved by either fixing this (short term) or using llvm-mc instead of GNU as for assembling (longer term).

Help with ARM/MIPS/sparc64. More testing of clang on 3rd party apps (ports). Discussion on integrating LLVM/clang into &os;.
Intel XScale hwpmc(9) support Rui Paulo rpaulo@FreeBSD.org

Preliminary Hardware Performance Counter support for Intel XScale ARM processors was committed to &os; 9.0-CURRENT in December. This adds another supported architecture to hwpmc(9). The system works for basic performance counter usage but more advanced usage scenarios, namely callchain support, are not yet implemented.

diff --git a/en/releases/7.0R/relnotes.html b/en/releases/7.0R/relnotes.html index 12a5f54ffa..898da1cd61 100644 --- a/en/releases/7.0R/relnotes.html +++ b/en/releases/7.0R/relnotes.html @@ -1,2294 +1,2294 @@ FreeBSD 7.0-RELEASE Release Notes

FreeBSD 7.0-RELEASE Release Notes

The FreeBSD Project

$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1068.2.20.2.3 2008/02/16 16:03:48 bmah Exp $

FreeBSD is a registered trademark of the FreeBSD Foundation.

IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks of International Business Machines Corporation in the United States, other countries, or both.

IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical and Electronics Engineers, Inc. in the United States.

Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

Sparc, Sparc64, SPARCEngine, and UltraSPARC are trademarks of SPARC International, Inc in the United States and other countries. Products bearing SPARC trademarks are based upon architecture developed by Sun Microsystems, Inc.

Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the “™” or the “®” symbol.

The release notes for FreeBSD 7.0-RELEASE contain a summary of the changes made to the FreeBSD base system on the 7-STABLE development line. This document lists applicable security advisories that were issued since the last release, as well as significant changes to the FreeBSD kernel and userland. Some brief remarks on upgrading are also presented.


Table of Contents
1 Introduction
2 What's New
2.1 Security Advisories
2.2 Kernel Changes
2.2.1 Boot Loader Changes
2.2.2 Hardware Support
2.2.3 Network Protocols
2.2.4 Disks and Storage
2.2.5 File Systems
2.3 Userland Changes
2.3.1 /etc/rc.d Scripts
2.4 Contributed Software
2.5 Ports/Packages Collection Infrastructure
2.6 Release Engineering and Integration
2.7 Documentation
3 Upgrading from previous releases of FreeBSD

1 Introduction

This document contains the release notes for FreeBSD 7.0-RELEASE. It describes recently added, changed, or deleted features of FreeBSD. It also provides some notes on upgrading from previous versions of FreeBSD.

This distribution of FreeBSD 7.0-RELEASE is a snapshot distribution. It can be found at http://www.FreeBSD.org/snapshots/ or any of its mirrors. More information on obtaining this (or other) snapshot distributions of FreeBSD can be found in the “Obtaining FreeBSD” appendix to the FreeBSD Handbook.

All users are encouraged to consult the release errata before installing FreeBSD. The errata document is updated with “late-breaking” information discovered late in the release cycle or after the release. Typically, it contains information on known bugs, security advisories, and corrections to documentation. An up-to-date copy of the errata for FreeBSD 7.0-RELEASE can be found on the FreeBSD Web site.


2 What's New

This section describes the most user-visible new or changed features in FreeBSD since 6.0-RELEASE. In general, changes described here are unique to the 7-STABLE branch unless specifically marked as [MERGED] features.

Typical release note items document recent security advisories issued after 6.0-RELEASE, new drivers or hardware support, new commands or options, major bug fixes, or contributed software upgrades. They may also list changes to major ports/packages or release engineering practices. Clearly the release notes cannot list every single change made to FreeBSD between releases; this document focuses primarily on security advisories, user-visible changes, and major architectural improvements.


2.1 Security Advisories

Two remote denials of service in BIND (one involving DNSSEC and one involving recursive DNS queries) have been fixed. For more information, see security advisory FreeBSD-SA-07:02.bind. [MERGED]

Processing of IPv6 type 0 Routing Headers is now controlled by the net.inet6.ip6.rthdr0_allowed sysctl variable, which defaults to 0 (off). For more information, see security advisory FreeBSD-SA-07:03.ipv6. [MERGED]

A potential heap overflow in the file(1) utility (and the libmagic(3) library on which it relies) has been fixed. More details can be found in security advisory FreeBSD-SA-07:04.file. [MERGED]

Problems with libarchive(3) and tar(1) handling corrupted tar(5) archive files have been fixed. More details can be found in security advisory FreeBSD-SA-07:05.libarchive. [MERGED]

A buffer overflow in tcpdump(1) has been corrected. More information can be found in security advisory FreeBSD-SA-07:06.tcpdump. [MERGED]

A bug in named(8), which could result in an attacker being able to poison a resolver's DNS cache, has been fixed. More details are included in security advisory FreeBSD-SA-07:07.bind. [MERGED]

A buffer overflow in OpenSSL (fixed incorrectly in a previously security patch) has been corrected. More details can be found in security advisory FreeBSD-SA-07:08.openssl. [MERGED]

An flaw that could lead to the disclosure of previously-generated random(4) data has been corrected. Information regarding this issue can be found in security advisory FreeBSD-SA-07:09.random. [MERGED]

Information disclosure issues found in openpty(3) and ptsname(3) have been corrected. Information regarding this issue can be found in security advisory FreeBSD-SA-08:01.pty. [MERGED]

A programming error in the inet_network(3) Internet address manipulation function that could lead to overwriting a region of memory with user defined data has been corrected. Information regarding this issue can be found in security advisory FreeBSD-SA-08:02.libc. [MERGED]

An error that could allow sendfile(2) to inappropriately access the contents of a file has been fixed. For more information, see security advisory FreeBSD-SA-08:03.sendfile. [MERGED]


2.2 Kernel Changes

acpi(4) now has support for the HPET time counter. [MERGED]

The acpi_ibm(4) driver now supports setting the fan control mode to manual or automatic, and adjusting the fan speed if the fan control mode is manual. To enable manual control of the fan speed, the sysctl variable dev.acpi_ibm.0.fan needs to be set to zero (manual). This should only be used with extreme precaution, as disabling automatic fan control might overheat the hardware and lead to permanent damage.

The apm(4) suspend/resume support has been improved.

The cpufreq(4) CPU frequency control framework is now enabled in the GENERIC kernel.

Support for the Camellia block cipher has been added to the FreeBSD kernel. It can now be specified as a cipher in ipsec(4) and geli(8). More information on Camellia can be found in RFC 4132.

The options COMPAT_43 kernel configuration option has been deemed unnecessary and has been removed from GENERIC and related kernel configurations. This change may result in a small performance increase for some workloads.

The dumb console driver ( dcons(4)) is now enabled in the GENERIC kernel.

The ddb(4) debugger now provides the show sleepq command. This takes a wait channel as an argument and looks for a sleep queue associated with that wait channel.

A bug in file descriptor handling such that a simple close(0); dup(fd) sequence does not return descriptor 0 in some cases, has been fixed.

The gdb(1) remote debugging interface now supports copying console messages to a remote debugger instance. To enable this, set debug.gdbcons="1" in loader.conf, enter boot -d; gdb; step from the loader prompt, then attach gdb(1) from a remote machine. The sysctl variable debug.gdbcons can be used to turn on/off this functionality.

hwpmc(4) and pmcstat(8) now support profiling of dynamically loaded kernel modules and shared objects loaded with dlopen(3).

A new kern.hostuuid sysctl variable has been added to hold a host's Universally Unique Identifier (UUID). This UUID is computed or generated by a new rc.d/hostid startup script and, where possible, is saved to disk to be persistent across reboots.

The INCLUDE_CONFIG_FILE kernel configuration option has been improved. The full configuration of a running kernel can now be obtained via sysctl -b kern.conftxt. It can also be extracted from a kernel file via config -x kernelfile. To preserve the literal kernel configuration with all the comments included, the -C option of config(8) can be used.

Support for Kernel Scheduled Entities (KSE) is now a kernel option (previously it was a mandatory feature in the kernel). It is enabled in the GENERIC kernel (thus there is no change in functionality) for all platforms except sun4v.

The Linux ABI support was enhanced to support emulation of Linux 2.6.16. This is not enabled by default. To turn it on the compat.linux.osrelease sysctl variable has to be set to 2.6.16. Note that this support is still experimental.

Support for Message Signaled Interrupts (MSI) and Extended Message Signaled Interrupts (MSI-X) has been added to the kernel's PCI support code. [MERGED]

The priv(9) kernel interface has been added. Its purpose is checking the availability of privilege for threads and credentials. Unlike the existing suser(9) interface, priv(9) exposes a named privilege identifier to the privilege checking code, allowing more complex policies regarding the granting of privilege to be expressed.

FreeBSD now supports concurrent read(2)/ readv(2) access to a file.

The kernel's sx(9) locks have been optimized to use simple atomic operations for the common cases of obtaining and releasing shared and exclusive locks. While this change is not generally user-visible, it is the basis for some substantial performance improvements.

The ULE process scheduler has been revised to improve its behavior, in particular interactivity under load, for both uniprocessor and multiprocessor machines. This implementation has commonly been referred to as “ULE 3.0”. (ULE 3.0 was formerly known as SCHED_SMP, which in turn was based on version 2.0 of the ULE scheduler. ULE 2.0 was never a part of any FreeBSD release, however it was the subject of many development, testing, and benchmarking efforts.)

The SIGCHLD signal queuing has been added. For each child process whose status has been changed, a SIGCHLD instance is queued. If the signal is still pending, and the process changed status several times, the signal information is updated to reflect the latest process status. There is a loader tunable kern.sigqueue.queue_sigchild which can control the behavior, setting it to zero disables the SIGCHLD queuing feature.

A new sysctl variable kern.malloc_stats has been added. This allows exporting of kernel malloc statistics via a binary structure stream.

A new sysctl variable kern.forcesigexit has been added. This forces a process to sigexit if a trap signal is being held by the current thread or ignored by the current process. It is enabled by default.

The pcvt(4) driver, an alternative to syscons(4), has been removed, as it had fallen out of sync with the rest of the kernel.

RedZone, a buffer corruption protection for the kernel malloc(9) facility has been implemented. This detects both buffer underflows and overflows at runtime on free(9) and realloc(9), and prints backtraces from where memory was allocated and from where it was freed. For more details, see the redzone(9) manual page.

A new loader tunable vm.kmem_size_min has been added. This allows to specify a minimal size for vm.kmem_size.

A new sysctl variable vm.zone_stats has been added. This allows to export uma(9) allocator statistics via a binary structure stream.

The sysctl variable hw.pci.do_powerstate has been split into two sysctl variables hw.pci.do_powerstate_nodriver and hw.pci.do_powerstate_resume. Also, these variables have been changed from a boolean to a range. 0 means no power management, 1 means conservative power management which any device class that has caused problems is added to the watch list, 2 means aggressive power management where any device class that is not fundamental to the system is added to the list, and 3 means power them all down unconditionally. The default values are 0 for hw.pci.do_powerstate_nodriver and 1 for hw.pci.do_powerstate_resume.

[ia64] The GENERIC kernel now enables SMP support by default.

Sample kernel configuration files src/sys/arch/conf/MAC for the Mandatory Access Control framework have been added.

POSIX_TIMERS support has been updated to 200112L.

An experimental support for POSIX message queue has been implemented.

The locking strategy for UNIX domain sockets has been revised to improve concurrency; this change has yielded substantial performance improvements on various SMP workloads (in particular, MySQL on 8-way amd64 systems) with little or no measured overhead on UP systems.

Several minor but widespread changes to the Newbus API have been made In order to support some on-going work with interrupt filtering. Because this change also breaks the kernel ABI, all third-party device drivers will need to be modified and recompiled.


2.2.1 Boot Loader Changes

A new option -S, which allows setting the boot2 serial console speed in the /boot.config file or on the boot: prompt line, has been added.

[amd64, i386] firewire(4) and dcons(4) support has been added to the boot loader. To enable it, LOADER_FIREWIRE_SUPPORT=yes has to be added to /etc/make.conf and the loader be rebuilt.

[pc98] The IPLware support in boot0.5 has been enhanced to support version 3.33.


2.2.2 Hardware Support

The cardbus(4), pccard(4), pccbb(4), and ex(4) drivers are now buildable as kernel modules.

An acpi_dock(4) driver has been added to provide support for controlling laptop docking station functions via ACPI. [MERGED]

The acpi_thermal(4) driver now supports overriding the _PSV, _HOT, and _CRT temperature values.

Support for the alpha architecture has been removed. Alpha support will remain on the RELENG_5 and RELENG_6 codelines.

The cardbus(4) driver now supports /dev/cardbus%d.cis.

[i386, amd64] The coretemp(4) driver has been added to provide temperature readings on Intel® Core™ processors. [MERGED]

The est cpufreq(4) driver now supports frequency control for the VIA C7-M family of processors.

The firewire(4) code is now MPSAFE.

icee(4), a generic I2C EEPROM driver, has been added.

A bug which prevented the ichsmb(4) kernel module from unloading has been fixed.

[amd64, i386] Dual-core processors (such as the Intel Core Duo) now have both cores available for use by default in SMP-enabled kernels. [MERGED]

[ia64, powerpc] The loader tunable debug.mpsafevfs is set to 1 by default.

The sab(4) driver has been removed (it has been superceded by the scc(4) driver).

The scc(4) driver has been added. This provides generic support for serial communications controllers and delegates the control over each channel and mode to a subordinate driver such as uart(4).

[amd64] The smbios(4) driver support for amd64 has been added.

[sun4v] FreeBSD now has preliminary support for the Sun Microsystems UltraSPARC-T1 architecture. FreeBSD/sun4v has been demonstrated to run on the Sun Fire T1000 and Sun Fire T2000 servers. More information can be found on the sun4v Project page.

The tnt4882(4) driver, which supports the National Instruments PCI-GPIB card, has been added.

[amd64, i386, ia64, sparc64] The uart(4) driver has been included in the GENERIC kernel by default. When both sio(4) and uart(4) can handle a given serial port, sio(4) will claim it.

The uark(4) driver, which supports the Arkmicro Technologies ARK3116-based USB serial adapter, has been added.

The uart(4) driver now supports LOM (Lights Out Management) and RSC (Remote System Control) devices as consoles.

The zs driver has been removed. Its functionality has been superceded by that of the uart(4) driver.

[i386] A new loader tunable hw.apic.enable_extint has been added. This tunable can be used to disable masking of the ExtINT pin on the first I/O APIC. At least one chipset for the Intel Pentium III seems to need this, even though all of the pins in the 8259As are masked. The default is still to mask the ExtINT pin.


2.2.2.1 Multimedia Support

The new midi(4) driver which is based on NetBSD's one has been added. This supports snd_cmi(4) and snd_emu10k1(4) drivers.

The snd_cmi(4) driver is now MPSAFE.

The snd_emu10kx(4) driver has been added. It supports Creative SoundBlaster Live! and Audigy series sound cards with optional pseudo-multichannel playback.

The snd_envy24(4) driver has been added to support the Envy24 series of audio chips. [MERGED]

The snd_envy24ht(4) driver has been added to support the VIA Envy24HT series of audio chips. [MERGED]

The snd_hda(4) driver has been added. It supports devices that conform to revision 1.0 of the Intel High Definition Audio specification. [MERGED]

The snd_solo(4) driver is now MPSAFE. [MERGED]

The snd_spicds(4) driver has been added to support I2S SPI audio codec chips. [MERGED]

The uaudio(4) driver now supports 24/32 bit audio formats and conversion.


2.2.2.2 Network Interface Support

The ath(4) driver has been updated to HAL version 0.9.20.3. [MERGED]

The axe(4) driver now supports altq(4). [MERGED]

The bge(4) driver's Jumbo frame support is now MPSAFE.

The bge(4) driver now supports big-endian architectures such as sparc64.

The cm(4) driver is now MPSAFE.

The cxgb(4) driver has been added. It provides support for 10 Gigabit Ethernet adapters based on the Chelsio T3 and T3B chipsets. [MERGED]

The edsc(4) driver, which provides Ethernet discard network interfaces, has been added. [MERGED]

The el(4) driver has been removed due to lack of use.

The em(4) driver has been updated to version 6.7.3 from Intel. Among other changes, it now supports 80003, 82571, 82571EB, 82572 and 82575 based adapters, as well as onboard-NICs on ICH8-based motherboards. [MERGED]

The em(4) driver now includes initial support for suspend and resume features.

The performance of the em(4) driver has been improved by using a fast interrupt handler and taskqueue instead of ithread handler. This change can be disabled by defining NO_EM_FASTINTR kernel option for debugging purpose.

The IP over FireWire ( fwip(4)) driver is now enabled in the GENERIC kernel.

The gem(4) driver now supports altq(4).

The firmware images needed by the ipw(4) driver are now part of the FreeBSD base system. For the loaded firmware to work the license at /usr/share/doc/legal/intel_ipw/LICENSE must be agreed to and legal.intel_ipw.license_ack=1 has to be added to /boot/loader.conf. Prior versions of the driver used the firmware image in the net/ipw-firmware-kmod port/package or the net/ipw-firmware port/package.

The iwi(4) driver now supports big-endian architectures such as sparc64.

The firmware images needed by the iwi(4) driver are now part of the FreeBSD base system. For the loaded firmware to work the license at /usr/share/doc/legal/intel_iwi/LICENSE must be agreed to and legal.intel_iwi.license_ack=1 has to be added to /boot/loader.conf. Prior versions of the driver used the firmware image in the net/iwi-firmware-kmod port/package or the net/iwi-firmware port/package.

The ixgbe driver, which supports the Intel 10G PCI-Express adapter (82598), has been added.

The lnc(4) driver has been removed. The le(4) and pcn(4) drivers support all devices that were supported by lnc(4).

The msk(4) driver has been added. It supports network interfaces using the Marvell/SysKonnect Yukon II Gigabit Ethernet controller. [MERGED]

[amd64, i386] The mxge(4) driver, which supports Myricom Myri10GE 10 Gigabit Ethernet adapters, has been added. For more details, see mxge(4). [MERGED]

[amd64, i386] The nfe(4) driver, an open-source driver for nForce Ethernet devices, has been added, originally from OpenBSD. This driver has replaced the nve(4) driver in the GENERIC kernel.

[arm] The npe(4) driver, which supports the Intel XScale Network Processing Engine, has been added. [MERGED]

The nxge(4) driver, which supports the Neterion Xframe 10 Gigabit Ethernet adapter, has been added.

The re(4) driver now supports the D-Link DGE-528(T) Gigabit Ethernet card.

The rum(4) driver has been added. It supports WLAN adapters based on the Ralink RT2501USB and RT2601USB chipsets.

The ti(4) driver now supports big-endian architectures such as sparc64.

The ufoma(4) driver for FOMA (third generation mobile phone system by NTT DoCoMo, Inc. in Japan) has been added. This should support other third generation mobile phones since the driver is based on USB Implementation Guideline from MCPC (Mobile Computing Promotion Consortium) in Japan.

The vgapci(4) driver has been added. This is a stub device driver for VGA PCI devices and serves as a bus so that other drivers such as drm(4), acpi_video(4), and agp(4) can attach to it thus allowing multiple drivers for the same device.

The vge(4) driver now supports altq(4). [MERGED]

The wi(4) driver is now buildable as a kernel module.

[amd64, i386, pc98] The wlan_wep(4), wlan_ccmp(4), and wlan_tkip(4) drivers have been included in the GENERIC kernel by default.

[amd64, i386] The wpi(4) driver has been added to support the Intel 3945 Wireless LAN Controller.

[amd64, i386] The zyd(4) driver has been added. It provides support for ZyDAS ZD1211/ZD1211B USB IEEE 802.11 b/g wireless network devices.

The network interface groups feature has been imported from OpenBSD. This feature allows an administrator to, for example, apply firewall rules to an entire group of interfaces. More information can be found in ifconfig(8).

The 802.11 protocol stack has been significantly reworked. Among the new features are support for background scanning and roaming between APs, as well as support that will be required by 802.11n-capable devices.

The 802.11 protocol stack now has support for 900 MHz cards, as well as quarter- and half-channel support for 802.11a. [MERGED]

The FreeBSD network stack now runs entirely free of the Giant kernel lock, and relies solely on the kernel's fine-grained locking primitives to manage parallelism. This significantly improves the network stack's performance on multi-processor systems; uni-processor systems could also see performance gains. ISDN4BSD and netatm have been temporarily disconnected from the build. These modules all require the Giant kernel lock for their operation; disconnecting them allows the removal of the NET_NEEDS_GIANT compatability shim. It is planned to convert these modules to fine-grained kernel locking and re-connect them for FreeBSD 7.1-RELEASE.


2.2.3 Network Protocols

[amd64, i386, pc98] An experimental BPF Just-In-Time compiler has been implemented for both bpf(4) and ng_bpf(4). To enable this, the options BPF_JITTER kernel option is needed. The net.bpf_jitter.enable can be used to disable this feature.

The bpf(4) device now supports several new ioctl(2) calls to allow examining inbound vs. outbound packets, as well as packets that have been injected onto the network.

The bridge(4) driver has been removed from the tree. Its functionality has been completely replaced by if_bridge(4).

The gre(4) driver, which is for GRE encapsulation found in RFC 1701 and RFC 1702, now supports IPv6 over GRE.

The if_bridge(4) driver now supports RSTP, the Rapid Spanning Tree Protocol (802.1w). [MERGED]

The if_bridge(4) driver now supports a private flag on bridge ports; no private port on a bridge can communicate with any other private port. This functionlity is useful in scenarios such as number of customers VLANs bridged with a server network; it might be desirable to prevent the customer VLANs from communicating with each other but allow all of them to access the server network. The private flag on a bridge port can be set or cleared via ifconfig(8).

A hard-coded limit on the number of IPv4 multicast group memberships (formerly 20) has been removed.

IPv6 multicast forwarding is now dynamically loadable, via the ip_mroute.ko module.

The ipfw(4) packet filter now supports filtering on Routing Header Type 0 and Mobile IPv6 Routing Header Type 2 in addition to filtering on the non-differentiated presence of any Routing Header.

The ip6fw(8) packet filter has been removed. Since ipfw(4) has gained IPv6 support, it should be used instead. Please note that some rules might need to be adjusted.

The KAME IPsec implementation has been removed. In its place, FAST_IPSEC is now the only IPsec implementation supported by the FreeBSD kernel. The IPSEC kernel configuration option, which formerly enabled KAME IPsec, now enables FAST_IPSEC. FAST_IPSEC now supports both IPv4 and IPv6, uses fine-grained kernel locking, and supports hardware cryptographic acceleration.

Support for tunneling IPX over IP has been removed.

The lagg(4) driver, ported from OpenBSD and NetBSD, has been added to support a variety of protocols and algorithms for link aggregation, failover, and fault tolerance. [MERGED]

The natm(4), Native Mode ATM protocol layer is now MPSAFE.

The ng_car(4) Netgraph node has been added. It implements various traffic shaping and rate limiting algorithms.

A new ng_deflate(4) Netgraph node type has been added. It implements Deflate PPP compression. [MERGED]

The ng_h4(4) Netgraph node is now MPSAFE.

The ng_ppp(4) Netgraph node is now MPSAFE. [MERGED]

A new ng_pred1(4) Netgraph node type has been added to implement Predictor-1 PPP compression. [MERGED]

The default retransmit timer for NFS over TCP is now 60 seconds. This change prevents the unnecessary retransmission of non-idempotent NFS requests. The nfs_access_cache variable in rc.conf(5) has also been changed to 60.

The default minimum number of nfsiod kernel threads ( sysctl(8) variable vfs.nfs.iodmin) has been changed from 4 to 0.

A new sysctl variable net.inet.icmp.reply_from_interface has been added. This allows the icmp(4) reply to non-local packets to be generated with the IP address the packet came through in. This is useful for routers to show in traceroute(8) the actual path a packet has taken instead of the possibly different return path.

A new sysctl variable net.inet.icmp.quotelen has been added. This allows to change length of the quotation of the original packet in an ICMP reply. The minimum of 8 bytes is internally enforced. The maximum quotation is the remaining space in the reply mbuf. This option is added in response to the issues raised in I-D draft-gont-icmp-payload-00.txt.

The icmp(4) now always quotes the entire TCP header when responding and allocate an mbuf cluster if needed. This change fixes the TCP issues raised in I-D draft-gont-icmp-payload-00.txt.

A new socket option IP_MINTTL has been added. This may be used to set the minimum acceptable TTL a packet must have when received on a socket. All packets with a lower TTL are silently dropped. This works on already connected/connecting and listening sockets for RAW, UDP, and TCP. This option is only really useful when set to 255, preventing packets from outside the directly connected networks reaching local listeners on sockets. Also, this option allows userland implementation of “The Generalized TTL Security Mechanism (GTSM)” found in RFC 3682.

The kernel ppp(4) driver now supports IPv6.

Stealth forwarding now supports IPv6 as well as IPv4. This behavior can be controlled by using a new sysctl variable net.inet6.ip6.stealth.

The PIM kernel option has been removed. The corresponding code is now included in the MROUTING kernel option.

Support has been added for the RFC 3678 Source-Specific Multicast (SSM) socket API. More details can be found in the sourcefilter(3) manual page.

Support has been added for the Stream Control Transmission Protocol (SCTP). SCTP implements a reliable, message-oriented transport protocol, and is defined in RFC 4960. It is enabled in FreeBSD with the SCTP kernel option and is part of the GENERIC kernel. More information can be found in the sctp(4) manual page.

The IPV6_V6ONLY socket option now works for UDP.

The TCP_DROP_SYNFIN kernel option is now included in the kernel by default. The net.inet.tcp.drop_synfin sysctl variable still defaults to 0.

The FreeBSD network stack now has support for TCP Segmentation Offload (TSO). TSO reduces the overhead of sending bulk TCP data by allowing a network interface to convert a large data transfer into multiple TCP segments to be sent on the network. This functionality can be enabled or disabled on a per-interface basis with the tso and -tso flags to ifconfig(8). Network interfaces and drivers supporting TSO currently include em(4), mxge(4) and cxgb(4).

FreeBSD now supports auto-sizing of TCP socket buffers. This allows the socket buffer sizes to adapt dynamically to network conditions, rather than being set statically. The behavior of this feature can be controlled using the net.inet.tcp.sendbuf_* and net.inet.tcp.recvbuf_* sysctl variables.

The net.link.tap.up_on_open sysctl variable has been added to the tap(4) driver. If enabled, new tap devices will marked up upon creation. [MERGED]


2.2.4 Disks and Storage

The aac(4) driver now supports the Adaptec 2610SA SATA-RAID controller in some Hewlett-Packard machines.

The ahc(4) driver is now MPSAFE.

The ahd(4) driver is now MPSAFE.

The CAM subsystem is now MPSAFE.

The ciss(4) driver is now MPSAFE.

A new GEOM_JOURNAL class has been added to the GEOM storage transformation system. It supports block-level journaling operations, which can be used by file system modules to perform file system journaling and to keep file systems in a consistent state. (Currently, only UFS file systems are supported.) Its operation can be controlled using the gjournal(8) utility.

A new GEOM_MULTIPATH class has been added to support multiple access paths to disk devices. The gmultipath(8) utility has been added to control the behavior of disk devices using this feature.

A new GEOM_VIRSTOR class has been added to provide virtual storage devices of arbitrary size with physical devices as backing store. More information can be found in the manual page for its control utility, gvirstor(8).

The GEOM class kernel module g_md.ko has been renamed to geom_md.ko for consistency.

[amd64, i386] The hptiop(4) driver has been added. It supports the Highpoint RocketRAID 3xxx and 4xxx series of SAS and SATA RAID controllers.

[amd64, i386] The hptrr(4) driver has been added, to support several HighPoint RocketRAID controllers (more details can be found in the manual page). [MERGED]

[amd64, i386] The hptmv(4) driver has been updated and now supports amd64 as well as PAE.

The isp(4) driver is now MPSAFE.

The mpt(4) driver has been updated to support various new features such as RAID volume and RAID member state/settings reporting, periodic volume re-synchronization status reporting, and sysctl variables for volume re-synchronization rate, volume member write cache status, and volume transaction queue depth. [MERGED]

The mpt(4) driver now supports SAS HBA (partially), 64-bit PCI, and large data transfer. [MERGED]

The mpt(4) driver is now MPSAFE.

The rr232x(4) driver, which appeared in some older versions of FreeBSD, is no longer supported, and has been superceded by the hptrr(4) driver. At the request of Highpoint, the rr232x(4) driver has been removed. [MERGED]

The twa(4) driver has been updated to the 3.70.03.007 release on the 3ware Web site. It now supports AMCC's 3ware 9650 series of SATA controllers. [MERGED]

The iscsi_initiator(4) driver, a kernel driver for the Internet SCSI (iSCSI) protocol, has been added. This driver allows access to remote SCSI devices over TCP/IP networks. The iscontrol(8) userland utility is used to control the operation of the driver.

The scsi_sg driver, which emulates a significant subset of the Linux SCSI SG passthrough device API, has been added. It is intended to allow programs running under Linux emulation (as well as native FreeBSD applications) to access the /dev/sg* devices supported by Linux. [MERGED]

The umass(4) driver now supports PLAY_MSF, PLAY_TRACK, PLAY_TRACK_REL, PAUSE, PLAY_12 commands so that the cdcontrol(1) utility can handle a USB CD drive.


2.2.5 File Systems

A part of the FreeBSD NFS subsystem (the interface with the protocol stack and callouts, the NFS client side) is now MPSAFE.

The pseudofs(9) pseudo file system construction kit and all of its consumers ( procfs(5), linprocfs(5) and linsysfs(5)), are now MPSAFE.

[amd64, i386] Experimental support for the TMPFS file system has been added. TMPFS is an efficient memory file system originally developed for the NetBSD project during the Google Summer of Code. More information can be found in the tmpfs(5) manual page.

The unionfs file system has been re-implemented. This version solves many crashing and locking issues compared to the previous implementation. It also adds new “transparent” and “masquerade” modes for automatically creating files in the upper file system layer of unions. More information can be found in the mount_unionfs(8) manual page. [MERGED]

[amd64, i386, pc98] Support for Sun's ZFS has been added. More information about this file system can be found in the zfs(8) manual page or on the OpenSolaris ZFS page.

Initial (read-only) support for SGI's XFS file system has been added.


2.3 Userland Changes

The addr2ascii() and ascii2addr() library calls, originally introduced by the INRIA IPv6 implementation, have been removed from libc. They have no consumers in the FreeBSD base system. In a related change, support for AF_LINK addresses has been added to getnameinfo(3).

Padding of ai_addrlen in struct addrinfo has been removed, which was originally for the ABI compatibility. For example, this change breaks the ABI compatibility of the getaddrinfo(3) function on 64-bit architectures, including FreeBSD/amd64, FreeBSD/ia64, and FreeBSD/sparc64.

The atrun(8) utility has gained PAM support. Before running a job for a user account, it will check the account status with PAM and refuse to run the job if the account is unavailable. The default definition of an unavailable account includes those expired and administratively locked out with pw(8).

The camcontrol(8) utility now supports a readcap command to display the size of devices. [MERGED]

The cron(8) daemon has gained PAM support. Before running a command from account's private crontab(5) file, it will check the account status with PAM and skip the command if the account is unavailable. The default definition of an unavailable account includes those expired and administratively locked out with pw(8). In addition, cron(8) will skip commands from private crontab(5) files if a nologin(5) file exists, unless the crontab(5) owner's login class is exempt from nologin(5) restriction. Commands from the system file /etc/crontab are not subject to the PAM check.

The dhclient(8) program now supports the Classless Static Route option as described in RFC 3442.

The dump(8) and restore(8) programs now attempt to save and restore extended attribute information on files.

A libelf library implementing the SVR4 elf(3) / gelf(3) API for manipulating ELF files has been added.

The fdisk(8) program now supports a -p flag to print the slice table in fdisk configuration format. [MERGED]

T/TCP support in finger(1) (and the -T flag used to enable it) has been removed.

A bug in the find(1) program which prevents numeric arguments for -user and -group from working as expected has been fixed.

The freebsd-update(8) command now supports an upgrade command to perform binary upgrades between different versions of FreeBSD. [MERGED]

The ftpd(8) utility now has support for RFC2389 (FEAT) and rudimentary support for RFC2640 (UTF8). The RFC2640 support is optional and can be enabled using the new -8 flag. More information can be found in the ftpd(8) manual page. [MERGED]

The gcc(1) SSP (Stack-Smashing Protector) support is now enabled by default.

The gbde(8) utility now supports -k and -K options to specify a key file in addition to a passphrase.

The gpt(8) utility now supports setting GPT partition labels.

The gvinum(8) utility now supports the resetconfig sub-command.

An implementation of Generic Security Service API (GSS-API) version 2 and its C binding described in RFC2743 and RFC2744 has been added. This is a new extensible GSS-API -layer which can support GSS-API plugins, similar the the Solaris implementation, and the +layer which can support GSS-API plugins, similar to the Solaris implementation, and the Kerberos 5 GSS mechanism has been rewritten as a plugin library for the new implementation.

The hccontrol(8) utility now supports HCI node autodetection.

The id(1) utility now prints the effective user ID after the group ID.

The ipfwpcap(8) utility has been added; it captures packets on a divert(4) socket and writes them as pcap(3) (also known as tcpdump(1)) format data to a file or pipe. [MERGED]

The kdump(1) program now supports printing flags in a system call argument by using symbol names.

The kenv(1) utility now supports a -q flag to suppress warnings.

kgdb(1) now supports a -w option to open kmem-based targets in read-write mode. This allows one to use kgdb on /dev/mem and be able to patch memory on a live system.

The libarchive(3) library now supports POSIX.1e-style Extended Attributes.

The libarchive(3) library now contains support for ar(1)-style archives.

The libc library now includes initial implementation of symbol maps and symbol version definitions.

The libedit library has been updated from the NetBSD source tree as of August 2005.

The libm library now includes initial implementation of symbol maps and symbol version definitions.

A new malloc(3) implementation has been introduced. This implementation, sometimes referred to as “jemalloc”, was designed to improve the performance of multi-threaded programs, particularly on SMP systems, while preserving the performance of single-threaded programs. Due to the use of different algorithms and data structures, jemalloc may expose some previously-unknown bugs in userland code, although most of the FreeBSD base system and common ports have been tested and/or fixed. Note that jemalloc uses mmap(2) to obtain memory and only uses sbrk(2) under limited circumstances (and then only for 32-bit architectures). As a result, the datasize resource limit has little practical effect for typical applications. The vmemoryuse resource limit, however, can be used to bound the total virtual memory used by a process, as described in limits(1).

The mdconfig(8) utility now supports producing device listings formatted as XML. Currently, the list and query sub-commands support this feature.

The mdconfig(8) utility's -u option now supports specifying multiple devices separated by comma character.

The mdmfs(8) utility now supports a -P flag to allow skipping the newfs(8) process when using a vnode-backed disk.

The mdmfs(8) utility now supports a -E flag to allow to specify location of the mdconfig(8) utility instead of using the default one (/sbin/mdconfig).

A new function memmem(3) has been implemented in libc. This is the binary equivalent to strstr(3) and found in glibc.

The mount(8) dev and nodev options have been removed.

The mount(8) utility now supports mqueuefs(5).

A bug which prevents the mount(8) utility from converting a read-only mount to read-write via mount -u -o rw, has been fixed.

A number of the file system-specific mount_* utilities have been removed, in favor of the more general mount(8) command with a -t option. Specifically, these commands are: mount_devfs, mount_ext2fs, mount_fdescfs, mount_linprocfs, mount_procfs, mount_std, mount_linsysfs, mount_reiserfs, and mount_umapfs.

The mrouted(8) multicast routing daemon has been removed from the FreeBSD base system. It implements the DVMRP multicast routing protocol, which has largely been replaced by PIM in many multicast installations. The related map-mbone(8) and mrinfo(8) utilities have also been removed. These programs are now available in the FreeBSD Ports Collection as net/mrouted.

The netstat(1) utility now supports printing sctp(4) protocol statistics.

The /etc/nsswitch.conf file is now installed statically instead of being generated on every reboot.

The objformat(1) utility and getobjformat(3) library (the last remnants of a.out object file support) have been removed.

The pam_nologin(8) module no longer provides an authentication function; instead it now provides an account management function. Third-party files in /usr/local/etc/pam.d may need manual editing; specifically, lines in these files of the form:

 auth    required        pam_nologin.so  no_warn
 


These lines need to have the word auth replaced with the word account.

nscd(8) has been added. It is a daemon that caches the results of nsswitch lookups (such as those to the password, group, and services databases) for improved performance.

The pkill(1) utility now supports a -F option which allows to restrict matches to a process whose PID is stored in the pidfile file. When another new option -L is also specified, the pidfile file must be locked with the flock(2) syscall or created with pidfile(3).

The pkill(1) utility now supports a -I flag which works like -i of rm(1). When this flag is specified, pkill(1) will ask for confirmation before sending a signal to each matching process.

The pmcstat(8) program has seen several enhancements: It can now log over a network socket to a remote host. The -c now takes a comma-seperated list of CPUs to configure for PMC allocation. The -t option has been enhanced to take a regular expression for selecting processes based on their command names. pmcstat(8) now allocates system PMCs on all CPUs by default, not just CPU 0.

The powerd(8) program now supports a -P option, which specifies a pidfile to use.

The pw(8) program now supports a -M option to set the permissions of a user's newly created home directory. [MERGED]

The DNS resolver library in FreeBSD's libc has been updated to that from BIND 9.4.1.

The rpcbind(8) program can now bind its TCP listening socket to an IP address other than INADDR_ANY using the -h flag. The new -6 flag allows it to bind to IPv6 addresses only.

The rpcgen(1) utility now generates headers and stub files that can be used with ANSI C compilers by default.

The rpc.lockd(8) and rpc.statd(8) programs now accept -p options to indicate which port they should bind to. [MERGED]

The rtld(1) runtime linker now supports ELF symbol versioning using GNU semantics. This implementation aims to be compatible with symbol versioning support as implemented by GNU libc and documented in http://people.redhat.com/~drepper/symbol-versioning and LSB 3.0. Also, dlvsym() function has been added to allow lookups for a specific version of a given symbol.

The sa(8) utility now supports -U and -P flags. They can be used to specify the per-user and per-process summary file location, respectively.

The sade(8) disk partitioning and labeling utility has been added. This utility is based on the partition editing bits of sysinstall(8).

A bug in the sed(1) utility which can cause incorrect calculation of pattern space length in some cases has been fixed.

The sed(1) utility now supports case-insensitive pattern matching; this feature can be enabled by using the I flag after the closing delimiter for a regular expression.

The behavior of the setenv(3) family of library calls has been changed from the historic BSD API to the behavior mandated by POSIX. As a result, several base system utility that relied on the old API have been updated to track this change.

The -h flag to setfacl(1) now properly sets the ACL on a symbolic link, not the link target.

The sockstat(1) utility, which shows connected and listening network sockets, now supports a new -P command-line option, which can be used to filter displayed sockets by protocol name (as listed in protocols(5)).

The sysctl(8) utility now supports a -q flag to suppress a limited set of warnings and errors.

The version of tcpslice in the FreeBSD base system has been removed due to obsolescence. A more up-to-date version can be found in the Ports Collection as net/tcpslice.

The time(1) utility now prints the time that a given command has been running if sent a SIGINFO signal.

The top(1) program now supports a -a flag to display process titles from their argument vectors; this feature is useful for watching processes that change their titles via setproctitle(3).

The top(1) program now supports a -j flag to display the jail(8) ID for each process. [MERGED]

The touch(1) utility now supports a -A flag that allows the access and modification times of a file to be adjusted by a specified value. [MERGED]

The truss(1) utility now supports an -s flag for the same functionality as the strace utility (devel/strace).

The truss(1) utility no longer depends on the availability of the procfs(5) file system; it uses the ptrace(2) interface instead for controlling a traced process.

[powerpc] The truss(1) utility now supports FreeBSD/powerpc.

The usbd(8) utility has been removed. The devd(8) utility and its configuration file now support functionality which is equivalent to it.

The uuidgen(1) utility has been moved from /usr/bin to /bin.

The vnconfig(8) utility, which was long ago replaced by mdconfig(8), has been removed.

The wicontrol(8) utility has been removed. Configuration functions for wi(4) interfaces should be performed using ifconfig(8).

The shared library version number of all libraries has been updated due to some possible ABI changes. The libraries include: snmp_*, libdialog, libg2c, libobjc, libreadline, libregex, libstdc++, libkrb5, libalias, libarchive, libbegemot, libbluetooth, libbsnmp, libbz2, libc_r, libcrypt, libdevstat, libedit, libexpat, libfetch, libftpio, libgpib, libipsec, libkiconv, libmagic, libmp, libncp, libncurses, libnetgraph, libngatm, libopie, libpam, libpthread, libradius, libsdp, libsmb, libtacplus, libthr, libthread_db, libugidfw, libusbhid, libutil, libvgl, libwrap, libypclnt, libm, libcrypto, libssh, and libssl.

The wcsdup() function has been implemented. This function is popular in Microsoft and GNU systems.

The wlandebug(8) utility has been added to the main FreeBSD source tree (it previously lived in a tools area). It provides control over a number of types of debugging output in the wlan(4) module and related drivers, and can be useful for debugging wireless issues.

The wpa_passphrase(8) utility has been added. It generates a 256-bit pre-shared WPA key from an ASCII passphrase. [MERGED]


2.3.1 /etc/rc.d Scripts

The ftpd script for stand-alone ftpd(8) has been added.

The gbde_swap script has been removed in favor a new encswap script which also supports geli(8) for swap encryption.

The geli and geli2 scripts has been added for geli(8) device configuration on boot.

The ike script for IPsec IKE daemon has been removed because no such daemon is included in the base system.

The mdconfig script to handle vnode backed md(4) devices has been added. This is a replacement of the ramdisk script, and all of variables in ramdisk_* have been changed to mdconfig_*. Also, two new rc.conf(5) variables mdconfig_*_files and mdconfig_*_cmd have been added. For example:

 mdconfig_md0="-t malloc -s 10m"
 mdconfig_md1="-t vnode -f /var/foo.img"
 

The rcconf.sh script in /etc/rc.d has been removed and a variable early_late_divider, which designates the script to separate the early and late stages of the boot process, has been added.

The rc.initdiskless script now uses tar(1) instead of pax(1) because pax(1) needs a writable temporary directory that may not be available when this script runs.

The pccard script has been removed since OLDCARD is deprecated.

The sendmail script no longer rebuilds the aliases database if it is missing or older than the aliases file. [MERGED] If desired, set the new rc.conf option sendmail_rebuild_aliases to "YES" to restore that functionality.

The removable_interfaces variable has been removed.

A new keyword NOAUTO in ifconfig_ifn has been added. This prevents configuration of an interface at boot time or via /etc/pccard_ether, and allows /etc/rc.d/netif to be used to start and stop an interface on a purely manual basis.

The /etc/rc.d/nfslocking script has been deprecated and will be removed in a future release. It has been replaced by the /etc/rc.d/lockd and /etc/rc.d/statd scripts. [MERGED]


2.4 Contributed Software

Intel ACPI-CA has been updated to 20070320.

awk has been updated from the 24 April 2005 release to the 1 May 2007 release. [MERGED]

BIND has been updated from 9.3.3 to 9.4.2.

BSNMPD has been updated from 1.11 to 1.12.

BZIP2 has been updated from 1.0.3 to 1.0.4. [MERGED]

GNU Diffutils has been updated from 2.7 to 2.8.7. [MERGED]

DRM has been updated to a snapshot from DRI CVS as of 20060517. [MERGED]

The Forth Inspired Command Language (FICL) used in the boot loader has been updated to 3.03.

FILE has been updated from 4.12 to 4.23.

GCC has been updated from 3.4.6 to 4.2.1.

GNU Readline library has been updated from 5.0 to 5.2 patch 2. [MERGED]

The GNU version of gzip has been replaced with a modified version of gzip ported from NetBSD. [MERGED]

IPFilter has been updated from 4.1.13 to 4.1.28. [MERGED]

less has been updated from v394 to v416. [MERGED]

libpcap has been updated from 0.9.4 to 0.9.8.

netcat has been updated from the version included in OpenBSD 3.9 to the version included in OpenBSD 4.1. [MERGED]

OpenSSL has been updated from 0.9.7e to 0.9.8e.

ncurses has been updated from 5.2-20020615 to 5.6-20061217. ncurses now also has wide character support. [MERGED]

hostapd has been updated from version 0.3.9 to version 0.5.8.

PF has been updated from OpenBSD version 3.7 to OpenBSD version 4.1. This update includes a number of functional enhancements. Two notable changes are that keep state is now the default behavior for rules in pf.conf(5) and that flags S/SA is now the default flags setting for TCP rules. The options no state and flags any can be used to disable stateful filtering or TCP flags checking, respectively.

sendmail has been updated from 8.13.8 to 8.14.2. [MERGED]

tcpdump has been updated from 3.9.4 to 3.9.8.

The timezone database has been updated from the tzdata2006g release to the tzdata2007k release. [MERGED]

tip has been updated to a snapshot from OpenBSD as of 20060831.

TrustedBSD OpenBSM, has been updated from version 1.0 alpha 12 to version 1.0.

WPA Supplicant has been updated from version 0.3.9 to version 0.5.8.


2.6 Release Engineering and Integration

The default partition sizing algorithm of the sysinstall(8) utility has been changed.

  • On systems where the disk capacity is larger than (3 * RAMsize + 10GB), the default sizes will now be as follows:

    Partition Size
    swap RAMsize * 2
    / 512 MB
    /tmp 512 MB
    /var 1024 MB + RAMsize
    /usr the rest (8GB or more)
  • On systems where the disk capacity is larger than (RAMsize / 8 + 2 GB), the default sizes will be in the following ranges, with space allocated proportionally:

    Partition Size
    swap from RAMsize / 8 to RAMsize * 2
    / from 256MB to 512MB
    /tmp from 128MB to 512MB
    /var from 128MB to 1024MB
    /usr from 1536MB to 8192MB
  • On systems with even less disk space, the existing behavior is not changed.

A new showconfig target has been added in src/Makefile to show the build configuration of the FreeBSD source tree.

The src.conf file, which contains settings that will apply to every build involving the FreeBSD source tree, has been added. For details, see build(7) and src.conf(5).

The supported version of the GNOME desktop environment (x11/gnome2) has been updated from 2.16.1 to 2.20.1. [MERGED]

The supported version of the KDE desktop environment (x11/kde3) has been updated from 3.5.4 to 3.5.7. [MERGED]

The supported version of the Xorg windowing system (x11/xorg) has been updated from 6.9.0 to 7.3.0. [MERGED]

The default value of X11BASE has been changed from /usr/X11R6 to /usr/local, the default value of LOCALBASE. [MERGED]

The ISO images for FreeBSD are now sized for 700MB CDROM media. For most prior versions of FreeBSD, they assumed 650MB CDROM media. [MERGED]


2.7 Documentation

Documentation of existing functionality has been improved by the addition of the following manual pages: acpi_sony(4), device_get_sysctl(9), ext2fs(5), mca(8), nanobsd(8), snd_mss(4), snd_t4dwave(4), sysctl(9).

Initial support for kernel subsystem API documentation generating framework using devel/doxygen has been added into src/sys/doc/subsys. To generate the API document, type make doxygen in src/ directory.


3 Upgrading from previous releases of FreeBSD

[i386, amd64] Beginning with FreeBSD 6.2-RELEASE, binary upgrades between RELEASE versions (and snapshots of the various security branches) are supported using the freebsd-update(8) utility. The binary upgrade procedure will update unmodified userland utilities, as well as unmodified GENERIC or SMP kernels distributed as a part of an official FreeBSD release. The freebsd-update(8) utility requires that the host being upgraded have Internet connectivity.

An older form of binary upgrade is supported through the Upgrade option from the main sysinstall(8) menu on CDROM distribution media. This type of binary upgrade may be useful on non-i386, non-amd64 machines or on systems with no Internet connectivity.

Source-based upgrades (those based on recompiling the FreeBSD base system from source code) from previous versions are supported, according to the instructions in /usr/src/UPDATING.

Important: Upgrading FreeBSD should, of course, only be attempted after backing up all data and configuration files.


This file, and other release-related documents, can be downloaded from http://www.FreeBSD.org/snapshots/.

For questions about FreeBSD, read the documentation before contacting <questions@FreeBSD.org>.

All users of FreeBSD 7-STABLE should subscribe to the <current@FreeBSD.org> mailing list.

For questions about this documentation, e-mail <doc@FreeBSD.org>.