FreeBSD Quarterly Status Report
Introduction
This report covers FreeBSD related projects between April and September
2009. During that time a lot of work has been done on wide variety of
projects, including the Google Summer of Code projects. The BSDCan
conference was held in Ottawa, CA, in May. The EuroBSDCon conference
was held in Cambridge, UK, in September. Both events were very
successful. A new major version of FreeBSD, 8.0 is to be released soon.
If you are wondering what's new in this long-awaited release, read Ivan
Voras' excellent summary.
Thanks to all the reporters for the excellent work! We hope you enjoy
the reading.
Please note that the next deadline for submissions covering reports
between October and December 2009 is January 15th, 2010.
__________________________________________________________________
Google Summer of Code
* About Google Summer of Code 2009
* BSD-licensed iconv (Summer of Code 2009)
* BSD-licensed text-processing tools (Summer of Code 2008)
* Ext2fs Status report (Summer of Code 2009)
* libnetstat(3) - networking statistics (Summer of Code 2009)
* pefs - stacked cryptographic filesystem (Summer of Code 2009)
Projects
* BSD# Project
* Clang replacing GCC in the base system
* FreeBSD TDM Framework
* Grand Central Dispatch - FreeBSD port
* libprocstat(3) - process statistics
* New BSD licensed debugger
* NFSv4 ACLs
* The Newcons project
* VirtualBox on FreeBSD
FreeBSD Team Reports
* FreeBSD Bugbusting Team
* FreeBSD KDE Team
* FreeBSD Ports Management Team
* Release Engineering Status Report
* The FreeBSD Foundation Status Report
Network Infrastructure
* Enhancing the FreeBSD TCP Implementation
* Modular Congestion Control
* Network Stack Virtualization
* Stream Control Transmission Protocol (SCTP)
Kernel
* FreeBSD/ZFS
* hwpmc for MIPS
Documentation
* The FreeBSD Dutch Documentation Project
* The FreeBSD German Documentation Project
* The FreeBSD Hungarian Documentation Project
* The FreeBSD Spanish Documentation Project
Architectures
* FreeBSD/sparc64
Ports
* FreeBSD Gecko Project
* Portmaster - utility to assist users with managing ports
* Valgrind suite on FreeBSD
Miscellaneous
* EuroBSDcon 2009
* FreeBSD Developer Summit, Cambridge UK
* New approach to the locale database
* The FreeBSD Forums
__________________________________________________________________
About Google Summer of Code 2009
URL: http://socghop.appspot.com/org/home/google/gsoc2009/freebsd
URL: http://wiki.freebsd.org/SummerOfCode2009Projects
Contact: Brooks Davis <brooks@freebsd.org>
Contact: Tim Kientzle <kientzle@freebsd.org>
Contact: Robert Watson <rwatson@freebsd.org>
2009 was The FreeBSD Project's fifth year of participation in the
Google Summer of Code. We had a total of 17 successful projects. Some
GSoC code will be shipping with FreeBSD 8.0-RELEASE and others will be
integrated into future releases.
The FreeBSD GSoC admin team would like to thank Google and our students
and mentors of another great year!
__________________________________________________________________
BSD# Project
URL: http://code.google.com/p/bsd-sharp/
URL: http://www.mono-project.org/
Contact: Romain Tarti?re <romain@blogreen.org>
The BSD# Project is devoted to porting the Mono .NET framework and
applications to the FreeBSD operating system.
During the past year, the BSD# Team continued to track the Mono
development and the lang/mono port have almost always been up-to-date
(we however had to skip mono-2.2 because of some regression issues in
this release). Most of our patches have been merged in the mono trunk
upstream, and should be included in the upcoming mono-2.6 release.
In the meantime, a few more .NET related ports have been updated or
added to the FreeBSD ports tree. These ports include:
* www/xsp and www/mod_mono that make it possible to use FreeBSD for
hosting ASP.NET application;
* lang/boo, a CLI-targeted programming language similar to Python;
* lang/mono-basic, the Visual Basic .NET Framework for Mono;
* devel/monodevelop, an Integrated Development Environment for .NET;
* and much more...
Open tasks:
1. Test mono ports and send feedback (we are especially interested in
tests where NOPORTDOCS / WITH_DEBUG is enabled).
2. Port the mono-debugger to FreeBSD.
3. Build a debug live-image of FreeBSD so that Mono hackers without a
FreeBSD box can help us fixing bugs more efficiently.
__________________________________________________________________
BSD-licensed iconv (Summer of Code 2009)
URL: http://wiki.freebsd.org/G%C3%A1borSoC2009
Contact: G?bor K?vesd?n <gabor@FreeBSD.org>
The code has been extracted from NetBSD and has been transformed into
an independent shared library. The basic encodings are well supported.
Almost all forward conversions (foo -> UTF-32) are compatible with GNU
but the reverse ones are not so accurate because of GNU's advanced
transliteration. Some extra encodings have also been added. There are
two modules, which segfault; they need some debugging. I can keep
working on this project as part of my BSc thesis, so I hope to be able
to solve the remaining issues. Improved GNU compatibility is also very
desired (extra command line options for iconv(1), iconvctl(), private
interfaces, etc.).
Open tasks:
1. Fix segfaults in Big5 and HZ modules
2. Improve transliteration in reverse encodings
3. Improve GNU compatibility by implementing extra features
4. Verify POSIX compatibility
5. Verify GNU compatibility
6. Check performance
__________________________________________________________________
BSD-licensed text-processing tools (Summer of Code 2008)
URL: http://wiki.freebsd.org/G%C3%A1borSoC2008
Contact: G?bor K?vesd?n <gabor@FreeBSD.org>
This project was started as part of Google Summer of Code 2008 but
there is still a bit of work to complete some missing parts. The
BSD-licensed grep implementation is feature-complete and has a good
level of GNU compatibility. Our only current concern about the
BSD-licensed version is to improve its performance. The GNU variant is
much more complex, has about 8 KSLOC, while BSD grep is tiny, has only
1.5 KSLOC. GNU uses some shortcuts and optimizations to speed-up calls
to the regex library; that is why it is significantly faster. My point
of view is that such optimizations must be implemented in the regex
library, keeping the dependent utilities clean and easy to read. BSD
grep is so tiny that there is hardly any optimization opportunity by
simplifying the code, so the regex library is the next important TODO.
There is another issue with the current regex library. It does not
support some invalid regular expressions, which work in GNU. We need to
maintain compatibility, so we cannot just drop this feature. Actually,
BSD grep is linked to the GNU regex library to maintain this feature
but due to the lack of the mentioned shortcuts, it is still slower than
GNU. Anyway, if we can live with this little performance hit until we
get a modern regex library, I think grep is ready to enter HEAD. As for
the regex library, NetBSD's result of the last SoC is worth taking a
look.
The sort utility has been rewritten from scratch. The existing
BSD-licensed implementation could not deal with wide characters by
design. The new implementation is still lacking some features but is
quite complete. There is a performance issue, though. Sorting is a
typical algorithmic subject but I am not an algorithmic expert, so my
implementation is not completely optimal. Some help would be welcome
with this part.
The bc/dc utilities have been ported from OpenBSD. They pass OpenBSD's
and GNU's regression tests but they arrived too late to catch 8.X, so
they will go to HEAD after the release.
Open tasks:
1. Improve sort's sorting and file merging algorithms
2. Complete missing features for sort
3. Get a modern regex library for FreeBSD
__________________________________________________________________
Clang replacing GCC in the base system
URL: http://wiki.freebsd.org/BuildingFreeBSDWithClang
Contact: Ed Schouten <ed@FreeBSD.org>
Contact: Roman Divacky <rdivacky@FreeBSD.org>
Contact: Brooks Davis <brooks@FreeBSD.org>
Contact: Pawel Worach <pawel.worach@gmail.com>
The clang@FreeBSD team presents the status of clang/LLVM being able to
compile FreeBSD system. The current status is:
* i386 - kernel boots, world needs little hacks but works
* amd64 - kernel boots, world needs little hacks but works
* ppc - broken because of unknown RTLD bug
* other - unknown
All other platforms are untested.
A lot has happened over the spring/summer: amd64 got proper
mcmodel=kernel support, compiler-rt has been introduced (paving the way
for libgcc replacement), we have run two experimental port builds to
see how clang does there. The C++ support is able to parse devd.cc
without warnings. We have got the kernel working with -O2. FreeBSD has
been promoted to be an officially supported plaform in LLVM. As a
result of all this work, many parts of FreeBSD that did not compile
before now build without problems.
Open tasks:
1. The "ClangBSD" branch of FreeBSD got a little stale and has not
been updated for a while.
2. We also need to get some important fixes into LLVM to get libc
compiling and some other smaller issues.
3. We can still appreciate more testers on minor platforms (mostly on
ARM, PPC and MIPS, but testing on other platforms is also welcome).
__________________________________________________________________
Enhancing the FreeBSD TCP Implementation
URL: http://caia.swin.edu.au/freebsd/etcp09/
URL: http://caia.swin.edu.au/urp/newtcp/
URL: http://www.freebsdfoundation.org/projects.shtml
URL: http://people.freebsd.org/~lstewart/patches/tcp_ffcaia2008/
Contact: Lawrence Stewart <lstewart@freebsd.org>
TCP appropriate byte counting (RFC 3465) support has been merged into
the FreeBSD 8 branch and will ship in FreeBSD 8.0-RELEASE.
The reassembly queue auto-tuning and SIFTR work was not ready in time
to safely integrate for 8.0-RELEASE. Padding has been added to
necessary TCP structs to facilitate MFCing features back to the
8-STABLE branch after 8.0 is released.
Candidate patches against FreeBSD-CURRENT will be ready for wider
testing in the coming weeks. The freebsd-net mailing list will be
solicited for testing/feedback when everything is ready.
Open tasks:
1. Solicit review/testing and integrate the ALQ kld and variable
length message support patch into FreeBSD-CURRENT.
2. Solicit review/testing and integrate the SIFTR tool into
FreeBSD-CURRENT.
3. Complete dynamic reassembly queue auto-tuning patch for
FreeBSD-CURRENT.
4. Fix an identified bug in the SACK implementation's fast
retransmit/fast recovery behavior.
5. Profit!
__________________________________________________________________
EuroBSDcon 2009
URL: http://2009.eurobsdcon.org/
URL: http://2010.eurobsdcon.org/
Contact: Sam Smith <eurobsdcon@ukuug.org>
Contact: Robert Watson <rwatson@FreeBSD.org>
EuroBSDcon 2009 happened in Cambridge, with over 160 users, developers,
friends and others. Slides, papers and audio are now up on the website
for those who could not make it to Cambridge. Next year's event in 2010
will take place in Karlsruhe from 8 to 10 October 2010. If you are
interested in what you missed in 2009, or to join the mailing list so
you do not miss out next year, visit http://2009.eurosbsdcon.org.
__________________________________________________________________
Ext2fs Status report (Summer of Code 2009)
URL: http://wiki.freebsd.org/SOC2009AdityaSarawgi
Contact: Aditya Sarawgi <sarawgi.aditya@gmail.com>
FreeBSD's ext2fs had some parts under GPL. The aim of my project was to
rewrite those parts and free ext2fs from GPL. I have been successful in
rewriting the parts and NetBSD's ext2fs was a great help in this.
Certain critical parts under GPL were also removed due to which the
write performance suffered. I also implemented Orlov Block Allocator
for ext2fs. Currently I am planning to make ext2fs Multiprocessor Safe
(MPSAFE). My work resides in truncs_ext2fs branch of Perforce.
Open tasks:
1. Ext4 support for FreeBSD
2. Directory indexing for ext2fs
3. Journaling in ext2fs using gjournal
__________________________________________________________________
FreeBSD Bugbusting Team
URL: http://www.FreeBSD.org/support.html#gnats
URL: http://wiki.FreeBSD.org/BugBusting
URL: http://people.FreeBSD.org/~linimon/studies/prs/
URL:
http://people.FreeBSD.org/~linimon/studies/prs/recommended_prs.html
Contact: Gavin Atkinson <gavin@FreeBSD.org>
Contact: Mark Linimon <linimon@FreeBSD.org>
Contact: Remko Lodder <remko@FreeBSD.org>
Contact: Volker Werth <vwe@FreeBSD.org>
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.
The list of PRs recommended for committer evaluation by the Bugbusting
Team continues to receive new additions. This list contains PRs, mostly
with patches, that the Bugbusting Team feel are probably ready to be
committed as-is, or are probably trivially resolved in the hands of a
committer with knowledge of the particular subsystem. All committers
are invited to take a look at this list whenever they have a spare 5
minutes and wish to close a PR.
A full list of all the automatically generated reports is also
available at one of the cited URLs. Any recommendations for reports
which not currently exist but which would be beneficial are welcomed.
Gavin Atkinson gave a presentation on "The PR Collection Status" at
the
EuroBSDCon 2009 DevSummit, and discussed with other participants
several other ideas to make the PR database more useful and usable.
Several good ideas came from this, and will hopefully lead to more
useful tools in the near future. Discussions also took place on how it
may be possible to automatically classify non-ports PRs with a view
towards notifying interested parties, although investigations into this
have not yet begun.
Mark Linimon also continues attempting to define the general problem
and investigating possible new workflow models, and presented work on
this at BSDCan 2009.
Since the last status report, the number of open bugs has increased to
around the 5900 mark, partially because of an increased focus on
getting more information into the existing PRs, in an attempt to make
sure all the information required is now available. As a result,
although the number of open PRs has increased, they are hopefully of
better quality.
As always, more help is appreciated, and committers and non-committers
alike are always invited to join us on #freebsd-bugbusters on EFnet and
help close stale PRs or commit patches from valid PRs.
Open tasks:
1. Work on suggestions from developers who were at the EuroBSDCon
DevSummit.
2. Try to find ways to get more committers helping us with closing the
PRs that the team has already analyzed.
__________________________________________________________________
FreeBSD Developer Summit, Cambridge UK
URL: http://wiki.FreeBSD.org/200909DevSummit
Contact: Robert Watson <rwatson@FreeBSD.org>
Around 70 FreeBSD developers and guests attended the FreeBSD developer
summit prior to EuroBSDCon 2009 in Cambridge, UK. Hosted at the
University of Cambridge Computer Laboratory, the workshop-style event
consisted of prepared presentations, as well as group hacking and
discussion sessions. Talks covered topics including 802.11 mesh
networking, virtual network stacks and kernels, a new BSD-licensed
debugger, benchmarking, bugbusting, NetFPGA, a port of Apple's GCD
(Grand Central Dispatch) to FreeBSD, security policy work,
cryptographic signatures, FreeBSD.org system administration, time
geeks, a new console driver, and the FreeBSD subversion migration.
Slides for many talks are now available on the wiki page. A good time
was had by all, including a punting outing on the River Cam!
__________________________________________________________________
FreeBSD Gecko Project
URL: https://trillian.chruetertee.ch/freebsd-gecko/wiki/TODO
Contact: Beat Gaetzi <beat@FreeBSD.org>
Contact: Martin Wilke <miwi@FreeBSD.org>
Contact: Andreas Tobler <andreast-list@fgznet.ch>
Andreas Tobler made the classic mistake of sending us a lot of powerpc
and sparc64 related patches. The usual punishment, of giving him a
commit bit to the Gecko repository, has been applied.
We currently have some old ports in the ports tree:
* www/mozilla is 5 year old now, no longer supported upstream, and
has a lot of security vulnerabilities. We can use www/seamonkey
instead.
* www/xulrunner is superseeded by www/libxul.
A patch that includes the following changes has been tested on
pointyhat and is ready for commit:
* Remove references to www/mozilla/Makefile.common and
www/mozilla/bsd.gecko.mk
* Switch USE_GECKO= xulrunner firefox mozilla to USE_GECKO= libxul
and remove www/xulrunner
We are also working on Firefox 3.6 (Alpha 2), Thunderbird 3.0 (Beta 4),
new libxul 1.9.1.3 and Seamonkey 2.0 (Beta 2) ports. All of them are
already committed to our Gecko repository.
A current status and todo list can be found at
http://trillian.chruetertee.ch/freebsd-gecko/wiki/TODO.
Open tasks:
1. Remove mozilla, xulrunner and firefox2 from the ports tree.
2. The www/firefox35 port should be moved to www/firefox.
3. The old (and somewhat stale) Gecko providers mozilla, nvu,
xulrunner, flock and firefox also need to be removed.
__________________________________________________________________
FreeBSD KDE Team
URL: http://freebsd.kde.org
URL: http://miwi.bsdcrew.de/category/kde/
URL: http://blogs.freebsdish.org/tabthorpe/category/kde
Contact: Thomas Abthorpe <tabthorpe@FreeBSD.org>
Contact: Max Brazhnikov <makc@FreeBSD.org>
Contact: Martin Wilke <miwi@FreeBSD.org>
Since the spring, the FreeBSD KDE team has been busy upgrading KDE from
4.2.0 up through to 4.3.1. As part of the ongoing maintenance of KDE,
the team also updated Qt4 from 4.4.3 through to 4.5.2
We added two new committers/maintainers to the team, Kris Moore
(kmoore@) and Dima Panov (fluffy@). We also granted enhanced area51
access to contributors Alberto Villa and Raphael Kubo da Costa. Alberto
has been our key contributor updating and testing Qt 4.6.0-tp1. Raphael
is a KDE developer, who has become our Gitorious liaison, he has been
responsible for getting FreeBSD Qt patches merged in upstream.
Markus Br?ffer (markus@) spent a lot of time patching widgets and
system plugins so they would work under FreeBSD. We would like to thank
him for all his effort!
Open tasks:
1. Update to Qt 4.6.0
2. Update to KDE 4.4.0
3. Work with our userbase on fixing an EOL for KDE3 in the ports tree
__________________________________________________________________
FreeBSD Ports Management Team
URL: http://www.freebsd.org/ports/
URL:
http://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributing-ports/
URL: http://portsmon.FreeBSD.org/index.html
URL: http://www.freebsd.org/portmgr/index.html
URL: http://tinderbox.marcuscom.com
Contact: Mark Linimon <linimon@FreeBSD.org>
The ports count has soared to over 20,700. The PR count had been driven
below 800 by some extraordinary effort, but once again is back to its
usual count of around 900.
We are currently building packages for amd64-6, amd64-7, amd64-8,
i386-6, i386-7, i386-8, sparc64-7, and sparc64-8. There have been
preliminary runs of i386-9; however, to be able to continue builds on
-9, we will either need to find places to host a number of new
machines, or drop package building for -6. The mailing list discussion
of the latter proved quite controversial.
We have added some new i386 machines to help speed up the builds, but
this only makes up for the disk failures on some of our older, slower,
i386 nodes.
We also appreciate the loan of more package build machines from several
committers, including pgollucci@, gahr@, erwin@, Boris Kochergin, and
Craig Butler.
The portmgr@ team has also welcomed new members Ion-Mihai Tetcu
(itetcu@) and Martin Wilke (miwi@). We also thank departing member
Kirill Ponomarew (krion@) for his long service.
Ion-Mihai has spent much time working on a system that does automatic
Quality Assurance on new commits, called QAT. A second tinderbox called
QATty has helped us to fix many problems, especially those involving
custom PREFIX and LOCALBASE settings, and documentation inclusion
options. Ports conformance to documented features / non-default
configuration will follow.
Between pav and miwi, over 2 dozen experimental ports runs have been
completed and committed.
We have added 5 new committers since the last report, and 2 older ones
have rejoined.
Open tasks:
1. We are currently trying to set up ports tinderboxes that can be
made available to committers for pre-testing; those who can loan
machines for this should contact Ion-Mihai (itetcu@) with details
regarding the hardware and bandwidth.
2. Most of the remaining ports PRs are "existing port/PR assigned to
committer". Although the maintainer-timeout policy is helping to
keep the backlog down, we are going to need to do more to get the
ports in the shape they really need to be in.
3. Although we have added many maintainers, we still have almost 4,700
unmaintained ports (see, for instance, the list on portsmon). (The
percentage is down to 22%.) We are always looking for dedicated
volunteers to adopt at least a few unmaintained ports. As well, the
packages on amd64 and sparc64 lag behind i386, and we need more
testers for those.
__________________________________________________________________
FreeBSD TDM Framework
Contact: Rafal Czubak <rcz@semihalf.com>
Contact: Michal Hajduk <mih@semihalf.com>
This work's purpose is a generic and flexible framework for systems
equipped with Time Division Multiplexing (TDM) units, often found on
embedded telecom chips. The framework is designed to support various
controllers and many types of TDM channels e.g. voiceband, sound and
miscellaneous data channels. Currently, voiceband infrastructure is
being developed on Marvell RD-88F6281 reference board. It will serve as
an example of how to use the TDM framework for other channel types. The
direct objective of using TDM with voiceband channels is bringing a
FreeBSD based VoIP system, capable of bridging analog telephone world
with digital IP telephony. Together with third party VoIP software
(e.g. Asterisk), the design can serve as VoIP Private Branch Exchange
(PBX).
Current state highlights:
* TDM controller interface
* TDM channel interface
* TDM channel API for kernel modules
* codec interface
* voiceband channel character device driver
* TDM controller driver for Marvell Kirkwood and Discovery SoCs
* Si3215 SLIC driver
* Si3050 DAA driver
Open tasks:
1. Develop demo application showing example usage of voiceband
channel.
2. Integrate voiceband infrastructure with Zaptel/DAHDI telephony
hardware drivers.
__________________________________________________________________
FreeBSD/sparc64
Contact: Marius Strobl <marius@FreeBSD.org>
Noteworthy developments regarding FreeBSD/sparc64 since the last Status
Reports are:
* Cas(4), a driver for Sun Cassini/Cassini+, as well as National
Semiconductor DP83065 Saturn Gigabit NICs has been committed and
thus will be part of FreeBSD beginning with 8.0-RELEASE and
7.3-RELEASE, respectively. This means that the on-board NICs found
in Fire V440, as well as the add-on cards based on these chips, are
now supported, including on non-sparc64 machines. Unfortunately,
the cas(4) driver triggers what seem to be secondary problems with
the on-board NICs found in B100 blades and Fire V480, which due to
lack of access to such systems could not be fixed so far.
* Initial support for sun4u machines based on the "Fire"
Host-PCI-Express bridge like Fire V215, V245, etc. has been
completed (including support for the on-board ATA controller, which
caused several problems at first, and MSI/MSI-X). Some code like
the quirk handling for the ALi/ULi chips found in these machines
needs to be revisited though and no stability tests have been
conducted so far. If all goes well, the code will hit HEAD some
time after FreeBSD 8.0-RELEASE has been released. In theory,
machines based on the "Oberon" Host-PCI-Express bridge, at
least
for the most part, should also be supported with these changes, but
due to lack of access to a Mx000 series machine the code could not
be tested with these so far.
* Some bugs in the snd_t4dwave(4) driver have been fixed, as well as
some special handling for sparc64 has been added so it does 32-bit
DMA and now generally works with the on-board ALi M5451 found for
example in Blade 100 and Blade 1500. Unfortunately, it was only
tested to work correctly in two out of three Blade 100. Why it
still does not work correctly in the remaining one is currently
unknown but at least no longer causes IOMMU-panics so testing
snd_t4dwave(4) on sparc64 is no longer harmful. These changes will
be part of FreeBSD 8.0-RELEASE and 7.3-RELEASE.
* Ata-marvell(4) has been fixed to work on sparc64 (actually also on
anything that is not x86 with less than 4GB of RAM). These fixes
will be part of FreeBSD 8.0-RELEASE and 7.3-RELEASE.
* A proper and machine-independent fix for the old problem that the
loader leaves the NIC opened by the firmware, which could lead to
panics during boot when netbooting, has been developed but not
committed yet.
Open tasks:
__________________________________________________________________
FreeBSD/ZFS
Contact: Pawel Dawidek <pjd@FreeBSD.org>
We believe that the ZFS file system is now production-ready in FreeBSD
8.0. Most (if not all) reported bugs were fixed and ZFS is no longer
tagged as experimental. There is also ongoing work in Perforce to bring
the latest ZFS version (v19) to FreeBSD.
Open tasks:
1. Download 8.0 release candidates and test, test, test and report any
problems to the freebsd-fs@FreeBSD.org mailing list.
__________________________________________________________________
Grand Central Dispatch - FreeBSD port
URL: http://libdispatch.macosforge.org/
Contact: Robert Watson <rwatson@FreeBSD.org>
Contact: Stacey Son <sson@FreeBSD.org>
Contact: libdispatch mailing list
<libdispatch-dev@lists.macosforge.org>
We have ported libdispatch, Apple's Grand Central Dispatch event and
concurrency framework to FreeBSD:
* Added new kqueue primitives required to support GCD, such as
EVFILT_USER and EV_TRIGGER
* Created autoconf and automake build framework for libdispatch
* Modified libdispatch to use POSIX semaphores instead of Mach
semaphores
* Adapted libdispatch to use portable POSIX time routines
Jordan Hubbard has also prepared a blocks-aware clang compiler package
for FreeBSD. When compiled with clang, libdispatch provides
blocks-based, as well as function-based callbacks.
The port was presented at the FreeBSD Developer Summit in Cambridge, UK
in September, and slides are online on the devsummit wiki page. A
FreeBSD port is now available in the Ports Collection. After FreeBSD
8.0-RELEASE has shipped, the new kqueue primitives will be MFC'd so
that libdispatch works out of the box on FreeBSD 8.1-RELEASE.
Open tasks:
1. Complete porting of libdispatch test suite to FreeBSD.
2. Investigate pthread work queue implementation for FreeBSD.
3. Evaluate performance impact of some machine-dependent and
OS-dependent optimizations present in the Mac OS X version of
libdispatch to decide if they should be done for other platforms
and OS's.
4. Explore whether FreeBSD base operating system tools would benefit
from being modified to use libdispatch.
__________________________________________________________________
hwpmc for MIPS
URL: http://wiki.freebsd.org/FreeBSD/mips
URL: http://wiki.freebsd.org/FreeBSD/mips/UBNT-RouterStationPro
Contact: George Neville-Neil <gnn@freebsd.org>
Currently working on board bringup. I have looked over the docs for how
MIPS provides performance counters and will begin adding code soon.
__________________________________________________________________
libnetstat(3) - networking statistics (Summer of Code 2009)
URL: http://wiki.FreeBSD.org/PGJSoc2009
URL:
http://p4web.freebsd.org/@md=d&cd=//&c=McZ@//depot/projects/soc2009/pgj
_libstat/?ac=83
Contact: G?bor P?li <pgj@FreeBSD.org>
The libnetstat(3) project provides a user-space library API to monitor
networking functions with the following benefits:
* ABI-robust interface making use of accessor functions in order to
divorce monitoring applications from kernel or user ABI changes.
* Supports running 32-bit monitoring tools on top of a 64-bit kernel.
* Improved consistency for both kvm(3) and sysctl(3) when retrieving
information.
The supported abstractions are as follows:
* Active sockets and socket buffers
* Network interfaces and multicast interfaces
* mbuf(9) statistics
* bpf(4) statistics
* Routing statistics, routing tables, multicast routing
* Protocol-dependent statistics
There is a sample application, called nettop(8), which provides a
simple ncurses-based top(1)-like interface for monitoring active
connections and network buffer allocations via the library. A modified
version of netstat(1) has also been created to use libnetstat(3) as
much as possible.
__________________________________________________________________
libprocstat(3) - process statistics
URL: http://svn.freebsd.org/viewvc/base/projects/libprocstat/
Contact: Stanislav Sedov <stas@FreeBSD.org>
Contact: Ulf Lilleengen <lulf@FreeBSD.org>
The libprocstat project is an ongoing effort to develop a library that
can be used to retrieve information about running processes and open
files in the uniform and platform-independent way both from a running
system or from core files. This will facilitate the implementation of
file- or process-monitoring applications like lsof(1), fstat(1), fuser,
etc. The libprocstat repository contains a preliminary version of the
library. It also includes rewrites of the fstat and the fuser utilities
ported to use this library instead of retrieving all the required
information via the kvm(3) interface; one of the important advantages
of the versions that use libprocstat is that these utilities are ABI
independent.
Open tasks:
1. Implement KVM-based namecache lookup to retrieve filesystem paths
associated with file descriptors and VM objects.
2. Analyze possible ways of exporting file and process information
from the kernel in an extensible and ABI-independent way.
__________________________________________________________________
Modular Congestion Control
URL: http://caia.swin.edu.au/urp/newtcp/
URL: http://svn.freebsd.org/viewvc/base/projects/tcp_cc_8.x/
Contact: Lawrence Stewart <lstewart@freebsd.org>
The patch has received some significant rototilling in the past few
months to prepare it for merging to FreeBSD-CURRENT. Additionally, I
completed an implementation of the CUBIC congestion control algorithm
to complement the existing NewReno and H-TCP algorithm implementations
already available.
I have one further intrusive change to make, which will allow
congestion control modules to be shared between the TCP and SCTP
stacks. Once this is complete, I will be soliciting for review/testing
in the hope of committing the patch to FreeBSD-CURRENT in time to be
able to backport it for 8.1-RELEASE.
Open tasks:
1. Abstract the congestion control specific variables out of the TCP
and SCTP control blocks into a new struct that can be passed into
the API instead of the control block itself.
__________________________________________________________________
Network Stack Virtualization
URL: http://wiki.freebsd.org/Image
URL: http://wiki.freebsd.org/200909DevSummit
Contact: Bjoern A. Zeeb <bz@FreeBSD.ORG>
Contact: Marko Zec <zec@FreeBSD.ORG>
Contact: Robert Watson <rwatson@FreeBSD.ORG>
The network stack virtualization project aims at extending the FreeBSD
kernel to maintain multiple independent instances of networking state.
This allows for networking independence between jail environment, each
maintaining its private network interfaces, IPv4 and IPv6 network and
port address space, routing tables, IPSec configuration, firewalls, and
more.
During the last months the remaining pieces of the VIMAGE work were
merged by Marko, Julian and Bjoern. Robert Watson developed a vnet
allocator to overcome ABI issues. Jamie Gritton merged his hierachical
jail framework that now also is the management interface for virtual
network stacks.
During the FreeBSD Developer Summit that took place at EuroBSDCon 2009
in Cambridge, UK, people virtualized more code. As a result SCTP and
another accept filter were virtualized and more people became familiar
with the design of VImage and the underlying concepts. Finally getting
more hands involved was a crucial first step for the long term success
of kernel virtualization.
The next steps will be to finish the network stack virtualization,
generalize the allocator framework before thinking of virtualizing
further subsystems and to update the related documentation. Along with
that a proper jail management framework will be worked on. Long term
goals, amongst others, will be to virtualize more subsystems like SYS-V
IPC, better privilege handling, and resource limits.
In the upcoming FreeBSD 8.0 Release, vnets are treated as an
experimental feature. As a result, they are not yet recommended for use
in production environments. There was lots of time spent to finalize
the infrastructure for vnets though, so that further changes can be
merged and we are aiming to have things production ready for 8.2.
In case you want to help to achieve this goal, feel free to contact us
and support or help virtualizing outstanding parts like two firewalls,
appletalk, netipx, ... as well as generating regression tests.
__________________________________________________________________
New approach to the locale database
URL: http://wiki.freebsd.org/LocaleNewApproach
URL: svn://svn.freebsd.org/base/user/edwin/locale
Contact: Edwin Groothuis <edwin@FreeBSD.org>
Contact: i18n mailinglist <freebsd-i18n@FreeBSD.org>
Problem: Over the years the FreeBSD locale database (share/colldef,
share/monetdef, share/msgdef, share/numericdef, share/timedef) has
accumulated a total of 165 definitions (language - country-code -
character-set triplets). The contents of the files for Western European
languages are often low-ASCII but for Eastern European and Asian
languages partly or fully high-ASCII. Without knowing how to display or
interpret the character-sets, it is difficult to make sure by the
general audience that the local language (language - country-code)
definitions are displayed properly in various character-sets.
Suggested approach: With the combination of the data in the Unicode
project (whose goal is to define all the possible written characters
and symbols on this planet) and the Common Locale Data Repository
(whose goal is to document all the different data and definitions
needed for the locale database), we can easily keep track of the data,
without the need of being able to display the data in the required
character sets or understand them fully when updates are submitted by
third parties.
Current status: Conversion of share/monetdef, share/msgdef,
share/numericdef, share/timedef to the new design is completed. The
Makefile infrastructure is converted. Regression checks are done. Most
of the tools are in place, waiting on the import of bsdiconv to the
base system.
Open tasks:
1. At this moment the system is not self-hosted yet, because of the
lack of an iconv-kind of program in the base operating system.
Gabor@ is working on bsdiconv as a GSoC project and once that has
been imported we will be able to perform a clean install from the
definitions in Unicode text format to the required formats and
character sets.
__________________________________________________________________
New BSD licensed debugger
URL: http://wiki.freebsd.org/TheBsdDebugger
URL: http://people.freebsd.org/~dfr/ngdb.git
URL:
http://wiki.freebsd.org/200909DevSummit?action=AttachFile&do=view&targe
t=NGDB-200909.pdf
Contact: Doug Rabson <>
I have been working recently on writing a new debugger, primarily for
the FreeBSD platform. For various reasons, I have been writing it in a
relatively obscure C-like language called D.
So far, I have a pretty useful (if a little raw at the edges) command
line debugger which supports ELF, Dwarf debugging information and
(currently) 32 bit FreeBSD and Linux. The engine includes parsing and
evaluation of arbitrary C expressions along with the usual debugging
tools such as breakpoints, source code listing, single-step etc. All
the code is new and BSD licensed. Currently, the thing supports
userland debugging of i386 targets via ptrace and post-mortem core file
debugging of the same. I will be adding amd64 support real soon (TM)
and maybe support for GDB's remote debugging protocol later.
__________________________________________________________________
NFSv4 ACLs
URL: http://wiki.freebsd.org/NFSv4_ACLs
Contact: Edward Tomasz Napierala <trasz@FreeBSD.org>
During Google Summer of Code 2008, I have implemented native support
for NFSv4 ACLs for both ZFS and UFS. Most of the code has already been
merged to CURRENT. NFSv4 ACLs are unconditionally enabled in ZFS and
the usual tools, like getfacl(1) and setfacl(1) can be used to view and
change them. I plan to merge the remaining bits (UFS support) this
month. It should be possible to MFC it in order to ship in FreeBSD
8.1-RELEASE.
Open tasks:
1. UFS changes review
2. Support for NFSv4 ACLs in tar(1)
__________________________________________________________________
pefs - stacked cryptographic filesystem (Summer of Code 2009)
URL: http://blogs.freebsdish.org/gleb/
URL: http://wiki.freebsd.org/SOC2009GlebKurtsov
Contact: Gleb Kurtsou <gk@FreeBSD.org>
Contact: Stanislav Sedov <stas@FreeBSD.org>
Pefs is a kernel level filesystem for transparently encrypting files on
top of other filesystems (like zfs or ufs). It adds no extra
information into files (unlike others), doesn't require cipher block
sized io operations, supports per directory/file keys and key chaining,
uses unique per file tweak for encryption. Supported algorithms: AES,
Camellia, Salsa20. The code is ready for testing.
Open tasks:
1. Implement encrypted name lookup/readir cache
2. Optimize sparse files handling and file resizing
__________________________________________________________________
Portmaster - utility to assist users with managing ports
URL: http://dougbarton.us/portmaster.html
Contact: Doug Barton <dougb@FreeBSD.org>
I am currently seeking funding for further development work on
portmaster. There are several features that are regularly requested by
the community (such as support for installing packages) that I would
very much like to implement but that will take more time than I can
reasonably volunteer to implement correctly. There is information about
the funding proposal available at the link above.
Meanwhile I have recently completed another round of bug fixes and
feature enhancements. The often-requested ability to specify the -x
(exclude) option more than once on the command line was added in
version 2.12. Also in that version I added the --list-origins option to
make it easier to reinstall ports after a major version upgrade, or
install the same set of ports on another system.
Open tasks:
1. See the funding proposal.
__________________________________________________________________
Release Engineering Status Report
URL: http://www.FreeBSD.org/releng/
Contact: Release Engineering Team <re@FreeBSD.org>
The Release Engineering Team continues to work on FreeBSD 8.0-RELEASE.
Public testing has turned up quite a few problems, many related to the
low-level network (routing/ARP table) changes and their interactions
with IPv6.
Progress continues to be made on fixing up the issues that have been
identified during the public testing. At this point in time we are
shooting for two more public test builds (RC2 and RC3) followed by the
release late October or early November.
__________________________________________________________________
Stream Control Transmission Protocol (SCTP)
Contact: Randall Stewart <rrs@FreeBSD>
SCTP continues to have minor fixes added to it as well as some new
features. First and foremost, we now have VIMAGE and SCTP working and
playing together. This goal was accomplished with the help of bz@, my
new mentee tuexen@ and myself working together at the FreeBSD DevSummit
in Cambridge, UK. Also the non-renegable SACK feature contributed by
the university of Delaware was fixed so that now its safe to turn on
(its sysctl). If you are using SCTP with CMT (Conncurrent Multipath
Transfer) you will want to enable this option (CMT is also a sysctl).
With CMT enabled you will be able to send data to all the destinations
of an SCTP peer.
We welcomed a new mentee (soon to be a commiter) to FreeBSD. Michael
Tuexen is now a mentee of rrs@. Michael has been contributing to the
SCTP work for quite some time and also moonlights as a Professor at the
University of Muenster in Germany (when not doing SCTP coding).
__________________________________________________________________
The FreeBSD Dutch Documentation Project
URL: http://www.freebsd.org/docproj/translations.html#dutch
Contact: Ren? Ladan <rene@FreeBSD.org>
Contact: Remko Lodder <remko@FreeBSD.org>
The current translations (Handbook and some articles) are kept up to
date with the English versions. Some parts of the website have been
translated, more work is in progress.
Open tasks:
1. Find more volunteers for translating the remaining parts of the
website and the FAQ.
__________________________________________________________________
The FreeBSD Forums
URL: http://forums.freebsd.org/
Contact: FreeBSD Forums Admins <forum-admins@FreeBSD.org>
Contact: FreeBSD Forums Moderators <forum-moderators@FreeBSD.org>
Since their public launch in November 2008, the FreeBSD Forums (the
most recent addition to the user community and support channels for the
FreeBSD Operating System) have witnessed a healthy and steady growth.
The user population is now at over 8,000 registered users, who have
participated in over 6,000 topics, containing over 40,000 posts in
total. The sign-up rate hovers between 50-100 each week. The total
number of visitors (including 'guests') is 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
FreeBSD 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, they are neatly divided
into sub-forums (like 'Networking', 'Installing &
Upgrading', etc.),
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 FreeBSD.
We expect the Forums to be, and to remain, a central hub in FreeBSD's
community and support efforts.
__________________________________________________________________
The FreeBSD Foundation Status Report
URL: http://www.freebsdfoundation.org
Contact: Deb Goodkin <deb@FreeBSDFoundation.org>
Kicking off our fall fund-raising campaign! Find out more at
http://www.freebsdfoundation.org/donate/.
We were a sponsor for EuroBSDCon 2009, and provided travel grants to 8
FreeBSD developers and users. We sponsored Kyiv BSD 2009, in Kiev
Ukraine. We were also a sponsor of BSDCan, and sponsored 7 developers.
We funded three new projects, New Console Driver by Ed Schouten, AVR32
Support by Arnar Mar Sig, and Wireless Mesh Support by Rui Paulo, which
has completed. We continued funding a project that is making
improvements to the FreeBSD TCP Stack by Lawrence Stewart. The project
that made removing disk devices with mounted filesystems on them safe,
by Edward Napierala, is now complete.
We recognized the following FreeBSD developers at EuroBSDCon 2009:
Poul-Henning Kamp, Bjoern Zeeb, and Simon Nielsen. These developers
received limited edition FreeBSD Foundation vests.
Follow us on Twitter now!
__________________________________________________________________
The FreeBSD German Documentation Project
URL: https://doc.bsdgroup.de
URL: http://code.google.com/p/bsdcg-trans/wiki/BSDPJTAdede
Contact: Johann Kois <jkois@FreeBSD.org>
Contact: Benedict Reuschling <bcr@FreeBSD.org>
Contact: Martin Wilke <miwi@FreeBSD.org>
In May 2009, Benedict Reuschling received his commit bit to the www/de
and doc/de_DE.ISO8859-1 trees under the mentorship of Johann Kois.
Since then, he has been working primarily on the Handbook, updating
existing chapters and translating new ones. Most notably, the
filesystems and DTrace chapters have been recently translated. Bugs
found in the original documents along the way were reported back so
that the other translation teams could incorporate them, as well.
Christoph Sold has put his time in translating the wiki pages of the
BSD Certification Group into the German language. This is very helpful
for all German people who want to take the exam and like to read the
information about it in their native language. Daniel Seuffert has sent
valuable corrections and bugfixes. Thanks to both of them for their
time and efforts!
The website is translated and updated constantly. Missing parts will be
translated as time permits.
We appreciate any help from volunteers in proofreading documents,
translating new ones and keeping them up to date. Even small error
reports are of great help for us. You can find contact information at
the above URL.
Open tasks:
1. Update the existing documentation set (especially the Handbook).
2. Translate more articles to German.
3. Read the translations. Check for problems and mistakes. Send
feedback.
__________________________________________________________________
The FreeBSD Hungarian Documentation Project
URL: http://www.FreeBSD.org/hu
URL: http://www.FreeBSD.org/doc/hu
URL: http://wiki.FreeBSD.org/HungarianDocumentationProject
URL:
http://p4web.freebsd.org/@md=d&cd=//depot/projects/docproj_hu/&c=aXw@//
depot/projects/docproj_hu/?ac=83
Contact: G?bor K?vesd?n <gabor@FreeBSD.org>
Contact: G?bor P?li <pgj@FreeBSD.org>
In the last months, we have not added new translations, although we
have been working on the existing ones to have them updated. We need
more translators and volunteers to keep the amount of the translated
documentation growing, so feel free to contribute. Every line of
submission or feedback is appreciated and highly welcome.
If you want to join our work, please read the introduction to the
project as well as the FDP Primer (both of them are available in
Hungarian).
Open tasks:
1. Translate news entries, press releases
2. Translate Release Notes for -CURRENT and 8.X
3. Translate articles
4. Translate web pages
5. Read the translations, send feedback
__________________________________________________________________
The FreeBSD Spanish Documentation Project
URL: http://www.FreeBSD.org/es
URL: http://www.FreeBSD.org/doc/es
URL: http://www.freebsd.org/doc/es/articles/fdp-es/
Contact: Jos? Vicente Carrasco Vay? <carvay@FreeBSD.org>
Contact: G?bor K?vesd?n <gabor@FreeBSD.org>
Recently, we have added one new article translation. The existing
translations have not been updated, though. We need more human
resources to keep up with the work and keep the translations
up-to-date.
Open tasks:
1. Update the Handbook translation
2. Update the web page translation
__________________________________________________________________
The Newcons project
URL: http://wiki.FreeBSD.org/Newcons
URL: http://people.freebsd.org/~ed/newcons/patches/
Contact: Ed Schouten <ed@FreeBSD.org>
Some time ago I started writing a new driver for the FreeBSD kernel
called vt(4), which is basically a replacement of syscons. There is
still a lot of work that needs to be done but it is probably useful to
mention what it does (and what does not).
Right now there are just two graphics drivers for vt(4), namely a VGA
driver for i386 and amd64 and a Microsoft Xbox graphics driver (because
it was so easy to implement). I still have to figure out what I am
going to do with VESA, because maybe it is better to just ignore VESA
and figure out how hard it is to extend DRM to interact with vt(4).
Some random features: it already supports both Unicode (UTF-8) input
and output, it is MPSAFE and supports per-window graphical fonts of
variable dimensions, containing an almost infinite amount of glyphs
(both bold and regular).
Open tasks:
1. Research needs to be done on DRM's codebase.
2. Syscons should already be migrated to TERM=xterm to make switching
between drivers a bit easier.
__________________________________________________________________
Valgrind suite on FreeBSD
URL: http://wiki.freebsd.org/Valgrind
Contact: Stanislav Sedov <stas@FreeBSD.org>
The Valgrind suite in the FreeBSD ports collection has been updated to
version 3.5.0 (the latest available version). Most of the issues of the
previous version should be resolved now: we expect memcheck, callgrind
and cachegrind to be fully functional on both i386 and amd64 platforms
as well as for i386 binaries running on amd64 system. DRD/hellgrind
should work too, though they generate a lot of false-positives for now,
so their output is a bit messy.
Open tasks:
1. Port exp-ptrcheck valgrind tool and fix outstanding issues that
show up in memcheck/helgrind/DRD in the Valgrind regression tests
suite.
2. More testing (please, help).
3. Integrate our patches upstream.
__________________________________________________________________
VirtualBox on FreeBSD
URL: http://wiki.freebsd.org/VirtualBox
Contact: Beat Gaetzi <beat@FreeBSD.org>
Contact: Bernhard Froehlich <decke@bluelife.at>
Contact: Dennis Herrmann <dhn@FreeBSD.org>
Contact: Juergen Lock <nox@FreeBSD.org>
Contact: Martin Wilke <miwi@FreeBSD.org>
VirtualBox has been committed to the Ports tree and synchronized with
the latest trunk version from Sun. Several known problems are already
fixed and some new features have been added:
* VT-x support
* Bridging support (Big Thanks to Fredrik Lindberg)
* Host Serial Support
* ACPI Support
* Host DVD/CD access
* SMP Support
We would like to say thanks to all the people who helped us by
reporting bugs and submitting fixes. We also thank the VirtualBox
developers for their help with the ongoing effort to port VirtualBox on
FreeBSD.