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 @@
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! 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. 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. The following new features have been added to FreshPorts: 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. 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. 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. 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. 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 :-) 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. 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. 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 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. 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. 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. Florent Thoumie has updated the massively out-of-date platform
page. Work continues to creating a 6.0 release of the PowerPC
port. 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.
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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: 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. 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". 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. 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. 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. 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). 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. 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). Thanks Robert Watson and Scott Long for their kind help. 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. 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. 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: 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. 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) 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). 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. 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. 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. 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! 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. 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. 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:
-
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 .
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.
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:
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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 .
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.
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.
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:
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.
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:
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.
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.
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 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 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.
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.
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.
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.
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).
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.
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.
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!
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).
Important changes regarding &os; TDM Framework since the last status report:
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.
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.
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.
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.
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'.)
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.
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.
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.
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.
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 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, 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 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.
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.
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).
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.
Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 The FreeBSD Documentation 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.
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.
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.
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]
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.
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.
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.
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.
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.
[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]
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.
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.
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]
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]
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.
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:
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:
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]
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.
[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>.