2013 Project Announcements

New Technical Staff Member!

The FreeBSD Foundation is pleased to announce that Konstantin Belousov has been hired as its first full-time member of technical staff, a key milestone of the Foundation's investment in staff for 2013.

Konstantin has been a FreeBSD committer since 2006, and he recently implemented support for current-generation Intel graphics controllers under contract to the FreeBSD Foundation. This new position will allow him to spend his full working time on supporting and improving FreeBSD.

Konstantin's first project brings support for unmapped I/O to FreeBSD. The unmapped I/O project improves performance by avoiding mapping buffers in the buffer cache, significantly reducing overhead on multi-processor systems. The project builds on foundational work to unify machine-dependent parts of the busdma interface, recently contributed by Jeff Robertson at EMC's Isilon Storage Division. EMC became a FreeBSD foundation donor in 2012.

Netflix, another new Foundation donor for 2012, is already making use of this project. "Netflix partnered closely with Konstantin to provide design input and testing resources for the unmapped I/O project. The work helped us realize an immediate 25% increase in system performance on production workloads. It underscores the immense value of collaborating and investing in the open source community and FreeBSD in particular," said Scott Long, Senior Software Engineer at Netflix.

Konstantin has also been working with the release engineering team since 2008 and his new role with the Foundation will allow him to focus more time on the tools and process used to make FreeBSD releases.

Konstantin lives in Kiev, Ukraine.

UEFI Support

The FreeBSD Foundation is pleased to announce that Benno Rice has been awarded a grant to implement the ability to boot FreeBSD in the Unified Extensible Firmware Interface (UEFI) boot environment.

The work to be done includes a new version of the loader, kernel modifications to support starting from a UEFI environment and the ability to create install media for pure UEFI systems.

"UEFI support is critical for FreeBSD's future on the amd64 platform and I'm really pleased to be able to ensure that FreeBSD gains support for it," said Benno.

This project is expected to be completed in March 2013.

FreeBSD/arm Architecture Superpages Support

The FreeBSD Foundation is pleased to announce that Semihalf, an embedded solutions company, has been awarded a grant to develop transparent superpages support for the FreeBSD/arm architecture. Semihalf is co-sponsoring the project with the foundation.

The ARM architecture is already common in the mobile and embedded markets, and is becoming more prevalent in the server market. Among the more interesting industry trends emerging recently is the 64-bit ARMv8 architecture, which as an "ARM server" concept. Many top tier companies have started developing systems or are announcing products with this architecture.

One of the features needed for FreeBSD to be successful in this area is transparent super pages. This provides improved performance and scalability by allowing TLB translations to dynamically cover large physical memory regions.

The project is expected to complete in mid July 2013.

2012 Project Announcements

Porting Efika

The FreeBSD Foundation is pleased to announce that Aleksandr Rybalko has been awarded a grant to port FreeBSD to the Genesi Efika MX SmartBook laptop and SmartTop nettop devices.

Both use the Freescale i.MX515, an ARM Cortex-A8 System-on-Chip (SoC). These low power devices will provide convenient reference platforms for FreeBSD on ARM, as they are low-cost complete systems. The Smartbook includes a 10" display, 3G connectivity and a battery life of 6 to 8 hours for $199.

When this project is completed, it will be possible to run X11 applications on FreeBSD on the Efika, with full support for sound and networking. It will also make it much easier to support other devices, such as some Android tablets, that ship with the i.MX515 SoC.

This project will be completed by the end of 2012.

Capsicum Improvements

The FreeBSD Foundation is pleased to announce that Pawel Jakub Dawidek has been awarded a grant to develop a comprehensive userspace framework for writing Capsicum-based applications, building on the kernel features originally developed by the University of Cambridge and Google Research.

This framework will include a Capsicum runtime linker and component library providing sandboxed versions of key higher-level system libraries. Components will both be sandboxed, improving resistance to vulnerabilities, and also easily available for delegation to sandboxed applications, such as the Chromium web browser. The prototype libcapsicum developed by Cambridge will be analyzed and updated based on lessons learned in implementing Capsicumised software packages, such as hastd and auditdistd. Funding for this project will be provided by the FreeBSD Foundation matched 100% by the Google Open Source Program Office, in support of open source technology transition of Capsicum.

"A continuing challenge in security is to find solutions that not only fix the problems but also can be applied to existing technologies: attractive though the notion is, we are not going to persuade the world to rewrite everything! This is why we at Google are pleased and excited to support the continuing development of Capsicum, which radically improves the security of UNIX based systems whilst allowing a continuous migration path from today's mechanisms to tomorrow's," said Ben Laurie, Google Senior Staff Software Engineer.

"I'm very excited to be able to work on Capsicum. Some of my software is already using Capsicum, so I'm fully aware of the great potential of this framework. This technology is so much superior than the current attempts to provide sandboxing using tools like chroot(2) or unprivileged user credentials. No matter how corny it sounds, I strongly believe Capsicum can make the Internet a safer place." said Pawel.

This project will conclude in August, 2012

Foundation Funds Growing Filesystems Online Project

The FreeBSD Foundation is pleased to announce that Edward Tomasz Napierala has been awarded a grant to implement the ability to grow filesystems while they are mounted.

Users of FreeBSD in a virtualized environment will be pleased with with the increased ease of deployment afforded by the ability to grow mounted filesystems" said Ed Maste, Director, The FreeBSD Foundation.

This project will add GEOM and filesystem changes that are necessary to increase the size of both UFS and ZFS filesystems while a filesystem is mounted read-write. This project will provide the additional benefit of online provisioning of virtual instances.

The Foundation is pleased to be working with Edward again. He was previously awarded a grant to implement resource containers and a simple per-jail resource limits mechanism. This work was included in FreeBSD 9.0 RELEASE.

This project is expected to be completed by October 2012.

NAND Flash Support

The FreeBSD Foundation is pleased to announce that Semihalf, an embedded solutions company, has been awarded a grant to bring their comprehensive NAND Flash file system and storage stack to FreeBSD. This technology enables FreeBSD to natively manage NAND Flash devices, satisfying a crucial requirement for many applications needing access to fast, reliable, non-volatile storage.

FreeBSD is widely used as the OS foundation of embedded appliances both small and large. Semihalf's NAND Flash stack opens new opportunities for FreeBSD in this space, where size, cost, or performance, mandate the use of direct attached NAND Flash.

Made possible by matching funds from Juniper Networks, this FreeBSD Foundation grant covers the costs of transferring technology developed for Juniper Networks by Semihalf to the FreeBSD project. This will ensure that the NAND framework meets community standards and can be easily maintained and enhanced.

Highlighting the return on investment offered by this kind of technology transfer, FreeBSD Foundation president Justin T. Gibbs, noted:

"Open sourcing enhancements that do not expose 'business critical intellectual property' reduces the cost of managing a FreeBSD distribution that has been customized for a product. The NAND subsystem is a perfect example of how technology transfer benefits both the FreeBSD community and its commercial users. We'd like to thank Semihalf and Juniper for partnering with us to make the code available under a BSD license"

The NAND Flash subsystem consists of a driver framework for NAND controllers and memory chips, a NAND device simulator and a fault tolerant, log-structured file system, tailored to meet the unique challenges of NAND flash storage. The package includes all the tools, utilities and documentation needed to deploy this technology in custom applications.

"A reliable file system that supports NAND Flash is critical for Juniper's ongoing success," said Marcel Moolenaar, Distinguished Engineer, Juniper Networks. "But since storage isn't Juniper's core business, we were eager to find a solution that would put the implementation and support of the file system in the most capable hands. We reached out to Semihalf and ultimately the Foundation to help us achieve our goals. Juniper cannot be more pleased to have the NAND Flash file system and NAND Flash framework present in the next major FreeBSD version as a standard feature and under the care of the community."

"We are very glad to have the NAND framework made available for the general FreeBSD audience, reaffirming the system as a versatile platform for appliances and other embedded and industrial designs," said Rafal Jaworowski of Semihalf.

The Foundation is pleased to be working with Semihalf again. They were previously awarded a grant to bring "Flattened Device Tree" support to FreeBSD. This new feature in FreeBSD 9.0 has been well received by the FreeBSD community.

Implementing auditdistd daemon

The FreeBSD Foundation is pleased to announce that Paweł Jakub Dawidek has been awarded a grant to implement auditdistd daemon.

The FreeBSD audit facility provides fine-grained, configurable logging of security-relevant events. One of the key purposes of logging security events is postmortem analysis in case of system compromise. Currently the kernel can push audit records directly into a file or make them available through /dev/auditpipe device. Because audit logs are stored locally by the kernel, an attacker has access to them once the system is compromised, which enables him to remove trails of his activity.

The auditdistd project goal is to securely and reliabily distribute audit records over the TCP/IP network from a local auditdistd daemon to a remote auditdistd daemon. In case of source system compromise, attacker's activity can be analysed using data collected by the remote system, as only remote system's audit logs can be trusted then.

The project will conclude in February 2012.

IPv6 Performance Analysis

The FreeBSD Foundation is pleased to announce that it has awarded Bjoern Zeeb a grant to analyze the performance of FreeBSD's IPv6 stack. This project is jointly sponsored with iXsystems.

Last year, Bjoern improved FreeBSD IPv6 support, allowing the possibility to build a FreeBSD system without IPv4 support. This project will continue on this work and concentrate on the kernel, looking at the performance of FreeBSD's IPv6 stack. Various parties have seen lower performance when comparing IPv4 to IPv6 on FreeBSD. While the numbers seem to differ between releases the causes are mostly unknown.

The project will carry out a detailed performance analysis starting with benchmarking IPv6 to IPv4 to get up-to-date numbers to better understand where we are. It will then continue to identify the origins of differences in performance, and where possible, directly address them or identify areas of future work. Having initial benchmark numbers will allow changes to be evaluated by re-running the measurements and quantifying the improvements.

"As the world starts to roll out IPv6 and traffic patterns shift from IPv4 to IPv6, not only correctness and stability, but also feature parity and performance matter," said developer Bjoern Zeeb. "Getting the performance numbers aligning with IPv4 will ensure that our users will not need more resources when using IPv6."

"ISC uses FreeBSD extensively across our server infrastructure and have provided IPv6 services to the community since 2002," commented Peter Losher, ISC Sr. Operations Engineer. "We are excited to support The FreeBSD Foundation and Bjoern's efforts to improve IPv6 performance in FreeBSD."

Bjoern Zeeb is a consultant based in Germany and has been an active FreeBSD committer since 2004. He is currently also a member of the FreeBSD Security and Release Engineering teams.

2011 Project Announcements

DIFFUSE for FreeBSD

The FreeBSD Foundation is pleased to announce that Swinburne University of Technology's Centre for Advanced Internet Architectures has been awarded a grant to implement DIFFUSE for FreeBSD.

DIFFUSE (Distributed Firewall and Flow-shaper Using Statistical Evidence) is an extension to the FreeBSD IPFW firewall subsystem developed by CAIA. It allows IPFW to classify traffic based on statistical properties of flows being observed in realtime, and instantiate network actions across a distributed set of "action nodes" for particular flows if required.

This project will tidy up and integrate the existingDIFFUSE prototype into FreeBSD, and incorporate a number of important new features. Integration of DIFFUSE into FreeBSD will increase FreeBSD's utility to designers and implementers of FreeBSD-based networking infrastructure.

Network architects frequently require the ability to classify different traffic types flowing across a network, typically using packet inspection capabilities of base system tools such as ipfw and pf. Traffic classification then enables the provision of customized service levels to different traffic types (such as priority packet queuing and forwarding, or allocation of specific bandwidth guarantees).

DIFFUSE uses machine learning techniques to enable robust and efficient classification of IP traffic flows based on their unique statistical properties in addition to traditional inspection of packet header or payload contents. DIFFUSE also allows traffic classification to occur in one place (e.g. in the core of a network) and trigger traffic shaping and differentiation elsewhere (e.g. at the edges of a network). DIFFUSE has applications in ISP, residential broadband and large corporate network scenarios to name a few.

The project will conclude the end of October 2011.

Implementing xlocale APIs

The FreeBSD Foundation is pleased to announce that David Chisnall has been awarded a grant to implement xlocale APIs to enable porting libc++.

The C standard library (libc) is one of the most important parts of a UNIX system as most programs interact with the kernel through interfaces written in C. Porting code between platforms with similar libc implementations is trivial and if something is supported by libc, higher-level languages can use it without being reimplemented.

Over time, the C language has slowly evolved to modern multicore systems, but there are still some places that are problematic. One of these is localization as C began originally had no localization support. FreeBSD libc and Darwin libc (used by Mac OS X) are similar, making it much easier to port code from OS X to FreeBSD than from OS X to Linux. The libc used by OS X supports a set of extended locale functions (xlocale) that allow locale to be set on a per-thread basis.

Additionally, libc++, from the LLVM project, was originally developed on Darwin, so it uses xlocale for most of the C++ locale support. The lack of this support is the primary obstacle to porting it to FreeBSD.

Once xlocale is supported in FreeBSD libc, we can port libc++ to FreeBSD, giving us an MIT-licensed C++11 standard library implementation. This, in conjunction with Clang and libcxxrt, means that the entire C++ stack in FreeBSD will be free of any GNU code. This leaves the linker as the only significant obstacle to a GPL-free FreeBSD 10.

The project will conclude the end of September 2011.

IPv6 Support in FreeBSD and PC-BSD

The FreeBSD Foundation is pleased to announce that it has awarded Bjoern Zeeb a grant to improve the maturity of IPv6 support in FreeBSD and PC-BSD. This project is jointly sponsored with iXsystems.

FreeBSD's KAME-based reference implementation of IPv6 first appeared in FreeBSD 4.0, and can be found in a broad range of FreeBSD-derived commercial products. To date, IPv6 has been an optionally configured feature present in the default FreeBSD kernel; however, IPv6 configuration has implied configuration of IPv4. With much "IPv6-ready" application software relying on dual-stack behavior, broken IPv6 applications go unnoticed. Adding support for an IPv6 kernel without IPv4 will make FreeBSD and PC-BSD an ideal test and development platform for both open source and proprietary IPv6-aware application software.

"Narrowing down the code base to not rely on legacy IP will help us to identify OS and application components requiring improvement to work well in an IPv6 environment. This project will help to ensure a bright IPv6 future, as FreeBSD is used throughout the Internet: root name servers, storage appliances, routers, firewalls, TVs, desktop and mobile systems, and many of the world's busiest web sites," said Mr. Zeeb. FreeBSD Foundation director and FreeBSD core team member Robert Watson described the project as critical to the future of FreeBSD, "Bjoern's work will not only improve the maturity of our IPv6 implementation, but also motivate improvement of applications used in million of deployed FreeBSD and FreeBSD-derived systems." The project will also improve the quality and performance of FreeBSD's IPv6 stack.

Bjoern Zeeb is a consultant based in Germany and has been an active FreeBSD committer since 2004. He is currently also a member of the FreeBSD Security and Release Engineering teams, and was recently awarded the Itojun Service Award for his work on IPv6 in FreeBSD.

GEM, KMS, and DRI Support for Intel Drivers

The FreeBSD Foundation is pleased to announce that Konstantin Belousov has been awarded a grant to implement support of GEM, KMS, and DRI for Intel Drivers. This project is being co-sponsored by iXsystems.

The project is to implement GEM, port KMS, and write new DRI drivers for Intel Graphics, including the latest Sandy Bridge generation of integrated graphic units. The work should allow the latest Intel open-source driver to run on FreeBSD, expanding the range of hardware where FreeBSD is suitable for the desktop.

"The Foundation's sponsored project will allow me to spend much more time on this interesting work, and hopefully resolve the big issue for continuing use of FreeBSD on the desktop," said Konstantine.

"Adding support for GEM/KMS will allow both FreeBSD and PC-BSD to run with enhanced native graphic support on forthcoming advanced architectures with integrated, 3d accelerated graphical capabilities," says Matt Olander, Chief Technology Officer at iXsystems, Inc. "FreeBSD has long been dominant in the server market and this is one more step towards making FreeBSD a complete platform for netbooks, laptops, desktops, and servers. We are very pleased to be a part of this project."

Konstantine is a software developer, living in Kiev, Ukraine. He was given a src commit bit in 2006, and since then has spent most of his free time on the OS, making bug fixes and implementing things he considers interesting. He currently is also serving the project as release engineerand core team member.

2010 Project Announcements

Feed-Forward Clock Synchronization Algorithms

The FreeBSD Foundation is pleased to announce that Julien Ridoux and Darryl Veitch at the University of Melbourne have been awarded a grant to implement support of feed-forward clock synchronization algorithms.

The Network Time Protocol (NTP) is widely used for synchronization over the network and the ntpd daemon is the current reference synchronization algorithm. The system clock in FreeBSD is currently designed with ntpd in mind, leading to strong feedback coupling between the kernel and the synchronization daemon.

The RADclock is an example of an alternative class of synchronization algorithms based on feed-forward principles. This project will provide the core support for feed-forward algorithms, so that alternatives to ntpd can be developed and tested. The central motivation for this is the strong potential of such approaches for highly robust and accurate synchronization.

Beyond this, virtualization is one of the next major challenges faced by time keeping systems. The current feedback synchronization model is complex and introduces its own dynamics, an approach that is not suited to the requirements of virtualization. Feed-forward based synchronization offers a cleaner and simpler approach, which is capable of providing accurate time keeping over live migration of virtual machines.

This project will conclude in March 2011.

Five New TCP Congestion Control Algorithms

The FreeBSD Foundation is pleased to announce that Swinburne University of Technology's Centre for Advanced Internet Architectures has been awarded a grant to implement Five new TCP Congestion Control Algorithms in FreeBSD.

Correctly functioning congestion control (CC) is crucial to the efficient operation of the Internet and IP networks in general. CC dynamically balances a flow's throughput against the inferred impact on the network, lowering throughput to protect the network as required.

The FreeBSD operating system's TCP stack currently utilizes the defacto standard NewReno loss-based CC algorithm, which has known problems coping with many aspects of modern data networks like lossy or large bandwidth/delay paths. There is significant and ongoing work both in the research community and industry to address CC related problems, with a particular focus on TCP because of its ubiquitous deployment and use.

Swinburne University of Technology's ongoing work with FreeBSD's TCP stack and congestion control implementation has progressively matured. This project aims to refine our prototypes and integrate them into FreeBSD.

The project will conclude in January 2011

DAHDI FreeBSD driver port

Max Khon has been awarded a grant to finish the DAHDI FreeBSD driver port.

The purpose of DAHDI/FreeBSD project is to make it possible to use FreeBSD as a base system for software PBX solutions.

DAHDI (Digium/Asterisk Hardware Device Interface) is an open-source device driver framework and a set of HW drivers for E1/T1, ISDN digital and FXO/FXS analog cards (http://www.asterisk.org/dahdi/). Asterisk is one of the most popular open-source software PBX solutions (http://www.asterisk.org/).

The project includes porting DAHDI framework and HW drivers for E1/T1, FXO/FXS analog and ISDN digital cards to FreeBSD. This also includes TDMoE support, software and HW echo cancellation (Octasic, VPMADT032) and HW transcoding support (TC400B). The work is ongoing in the official DAHDI SVN repository with the close collaboration with DAHDI folks at Digium.

The project is nearing its completion: DAHDI framework and HW drivers telephony cards has been ported and tested. There are a number of success stories from early adopters who use E1/T1 and FXO/FXS cards on FreeBSD for several months.

This project will be completed in September 2010.

Resource Containers Project

Edward Tomasz Napierala has been awarded a grant to implement resource containers and a simple per-jail resource limits mechanism.

Unlike Solaris zones, the current implementation of FreeBSD Jails does not provide per-jail resource limits. As a result, users are often forced to replace jails with other virtualization mechanisms. The goal of this project is to create a single, unified framework for controlling resource utilisation, and to use that framework to implement per-jail resource limits. In the future, the same framework might be used to implement more sophisticated resource controls, such as Hierarchical Resource Limits, or to implement mechanisms similar to AIX WLM. It could also be used to provide precise resource usage accounting for administrative or billing purposes.

"It's great that the Foundation decided to fund this project", Edward noted. "It will make jail-based virtualization a much better choice in many scenarios, for example for Virtual Private Server providers."

This project will be completed December, 2010.

DTrace Userland Project

Rui Paulo has been awarded a grant to add DTrace userland support to FreeBSD.

DTrace is a general purpose and lightweight tracing framework that allows administrators, developers and users to investigate causes of system failure or performance bottlenecks. The FreeBSD operating system has had support for kernel-only DTrace since FreeBSD 8.0, but DTrace userland support was missing. Having userland support in DTrace allows inspection of userland software itself and its correlation with the kernel, thus allowing a much better picture of what exactly is going on behind the scenes.

This project will first concentrate on adding libproc support for symbol to address mapping, address to symbol mapping, breakpoint setup and the rtld interactions with DTrace. Next it will focus on DTrace process control, importing the pid provider and adapting it to FreeBSD and porting the userland statically defined probe provider (usdt). Finally it will bring in the plockstat provider.

"By having userland DTrace support, companies can make their products perform much better on FreeBSD due to the fact that they now have access to this amazing tool," said FreeBSD developer Rui Paulo. He also said, "When we mix the userland support with the kernel side DTrace support, we can also make FreeBSD a better operating system because we can investigate performance bottlenecks much easier."

The project should be completed by September 2010.

BSNMP Improvements Project

The FreeBSD Foundation is pleased to announce that Shteryana Shopova has been awarded a grant to make improvements to BSNMP.

This project includes several enhancements to the existing FreeBSD SNMP framework, including SNMPv3-compliant user authentication, packet encryption and view-based access control. In addition, the project also includes a new module that will allow full SNMP management and monitoring of the FreeBSD wireless networking stack. When the project is completed, FreeBSD should be the OS of choice when building open source-based embedded wireless appliances due to the advanced capabilities of its wireless network stack, and the light-weight, secure and complete management solution that bsnmpd(1) will provide out of the box. Existing FreeBSD installations that use bsnmpd(1) for monitoring will also benefit from the added security and finer-grained access-control to SNMP data.

"SNMP is the defacto standard for network monitoring," said Shteryana Shopova, FreeBSD developer. She also added, "SNMP is used everywhere - in network servers, switches, routers, firewalls, workstations, ip phones, printers, UPSs, all sorts of embedded appliances. I am happy to have the opportunity to work on several additions to bsnmpd(1) that have been requested by the FreeBSD community."

This project will be completed in October 2010.

FreeBSD Jail Based Virtualization Project

Bjoern A. Zeeb has been awarded a grant to improve FreeBSD's jail based virtualization infrastructure and to continue to work on the virtual network stack. His employer, CK Software GmbH is matching the Foundation's funding with hours.

FreeBSD has been well known for its jail based virtualization during the last decade. With the import of the virtual network stack, FreeBSD's operating system level virtualization has reached a new level.

This project includes cleanup of two years of import work and development and, more notably, brings the infrastructure for a network stack teardown. Cleanly shutting down a network stack in FreeBSD will be the major challenge in the virtualization area to get the new feature to production ready quality for the 9.x release lifecycle.

Further, the project includes generalization of the virtual network stack framework, factoring out common code. This will provide an infrastructure and will ease virtualization of further subsystems like SYSV/Posix IPC with minimal overhead. All further virtualized subsystems will immediately benefit from shared debugging facilities, an essential feature for early adopters of the new technology.

"Improved jail based virtualization support, that continues to be very lightweight and as easily manageable as classic jails, will be a killer feature for the next few years," said Bjoern A. Zeeb, FreeBSD developer. He also added, "It will allow people to partition their FreeBSD server, run simulations without racks of hardware, or provide thousands of virtual instances in hosting environments fairly easy and efficiently. While this follows the trend of green computing, it also adds to FreeBSD's virtualization portfolio with Xen or other more heavyweight hypervisor support, which can be mixed with jails as needed."

While work in this area will have to continue, the funding for this project will end mid-July 2010.

2009 Project Announcements

High Available Storage Project

Paweł Jakub Dawidek has been awarded a grant to implement storage replication software that will enable users to use the FreeBSD operating system for highly available configurations where data has to be shared across the cluster nodes. The project is partly being funded by OMCnet Internet Service GmbH and TransIP BV.

The software will allow for synchronous block-level replication of any storage media (GEOM providers, using FreeBSD nomenclature) over the TCP/IP network and for fast failure recovery. HAST will provide storage using GEOM infrastructure, which means it will be file system and application independent and could be combined with any existing GEOM class. In case of a master node failure, the cluster will be able to switch to the slave node, check and mount UFS file system or import ZFS pool and continue to work without missing a single bit of data.

"High-availability is the number one requirement for any serious use of any operating system," said Pawel Jakub Dawidek, FreeBSD Developer. "Highly available storage is one of the key components in such environments. I strongly believe there are many FreeBSD users that have been waiting a long time for this functionality. I'll do my best to deliver software that matches FreeBSD quality and that will satisfy the needs of our users."

Pawel has been an active FreeBSD committer since 2003. During this period, he has touched almost every part of the kernel. But, his main interest in FreeBSD is storage and security related topics. Pawel is the author of various GEOM classes (eli, mirror, gate, label, journal, hsec, etc.), geom(8) utility, various opencrypto improvements as well as port of the ZFS file system from OpenSolaris to FreeBSD.

The project will complete by February 2010.

Flattened Device Tree Project

Rafal Jaworowski and Semihalf has been awarded a grant to provide FreeBSD with support for the flattened device tree (FDT) technology. This project allows for describing hardware resources of a computer system and their dependencies in a platform-neutral and portable way.

The main consumers of this functionality are embedded systems whose hardware resources assignment cannot be probed or self-discovered. The FDT idea is inherited from Open Firmware IEEE 1275 device-tree notion (part of the regular Open Firmware implementation), and among other deployments is used as a basis for Power.org's embedded platform reference specification (ePAPR).

"Thanks to this project, embedded FreeBSD platforms will grow in a uniform and extensible way of representing hardware devices, compliant with industry standards (ePAPR, Open Firmware), independent of architecture and platform (portable across ARM, MIPS, PowerPC etc.)," said Rafal Jaworowski, FreeBSD Developer.

Semihalf is a privately owned company, based in Krakow, Poland. They specialize in embedded systems design and development, with expertise in both software and hardware. Among their portfolio are FreeBSD ports to high-end embedded processors (including multi-core) with a wide range of peripheral drivers (storage, networking, pattern matching, security engines etc.); most of this work is publicly available from the FreeBSD repository.

You can find out more about the project at http://wiki.freebsd.org/FlattenedDeviceTree.

This project will complete by February 2010.

New Console Driver

Ed Schouten has been awarded a grant to write a new console driver for the FreeBSD project. We are excited to support Ed in providing a more efficient and user friendly console driver.

This project will allow Ed to add an additional abstraction layer to the kernel. This new layer, the terminal layer will be a layer that sits between the TTY layer, the kernel console (cngetc, cnputc) and the actual console driver. Right now we have a terminal emulator (libteken) that is part of Syscons. This terminal emulator will be moved into this terminal layer.

The advantage of having such a layer, is that the console driver itself does not have to care about any TTY semantics, streams of bytes, processing escape sequences, etc. It will just receive a set of character drawing, filling and copying actions. This should also make it easier to implement Unicode.

"During this project I'm going to continue the work I did with the TTY layer, by developing a new console driver for the FreeBSD kernel," said Ed Schouten, FreeBSD Developer. "By moving towards a graphics mode console driver, it will be much easier to make the boot process look nice on desktop systems (i.e. PC-BSD). It will also make it possible to support the industry-standard Unicode character sets by default."

This project will be completed by the end of December.

Problem Reporting Prototype

Mark Linimon has been awarded a grant to prototype a new problem reporting system for the FreeBSD project. This project will allow Mark to define the features, look-and-feel, and architecture of a future replacement of the project's current GNATs based system. Once the prototype is complete, it will be used to garner input from the FreeBSD community before a production system is implemented.

"One of the most frequently requested improvements from the FreeBSD developer community is an improved bug tracking system," said Mark Linimon. He also added, "The design goals of this prototype are to incorporate such features as markedly improved workflow, better categorization, customizable email notifications, and redesigned web pages to make searching and browsing easier."

"Once the prototype is completed," Mark added, "it will be circulated amongst the developer community for feedback. I am happy to have the Foundation's support to work on this project."

"Problem reporting software is a critical tool for getting feedback from the FreeBSD user community, recording information about defects and missing features in the system, and making our volunteer developers productive," said Justin Gibbs, Founder of the FreeBSD Foundation. "Mark has used manpower and sheer will to overcome the deficiencies in the current problem reporting system, and to make it work for the project. But our GNATs isn't fully utilized because of missing features and a clumsy user interface. We're very excited to help address these problems in a core piece of the FreeBSD project's infrastructure."

This project will be completed by the end of June.

AVR32 Support

Arnar Mar Sig has been awarded a grant to develop AVR32 support for FreeBSD. AVR32 is a 32-bit RISC architecture targeted for low power high throughput embedded applications. The target platform is the NGW100 reference design board from Atmel.

"This work will advance the RISC support in FreeBSD and our capabilities in building embedded applications," said Sam Leffler, The FreeBSD Foundation, Director.

"I'm excited to be able to work on bringing FreeBSD to another architecture and pushing it farther into the embedded market," said Arnar Mar Sig, FreeBSD developer.

The project will be completed by August 2009.

Wireless Mesh Support

Rui Paulo will be implementing the forthcoming IEEE 802.11s wireless mesh standard for FreeBSD. Wireless mesh networks are expected to become widespread as routers and network appliances deploy them, allowing wireless networks to be built and extended dynamically. Support for the standard will allow FreeBSD consumers to take advantage of this new technology.

"As well as end-users, FreeBSD-based product vendors will benefit from access to mesh networking technology in building future versions of their products," said Robert Watson, president of the FreeBSD Foundation.

"I am thrilled to be bringing such an exciting and technically advanced feature to the FreeBSD operating system," said FreeBSD Developer Rui Paulo.

The project will be completed by July 2009.

2008 Project Announcements

Make removing disk devices with mounted filesystems on them safe

The project is to make FreeBSD tolerate the removal of active disk devices, such as when a USB flash device with a mounted filesystems is physically detached by a user. Currently the system may panic in this situation. The work involves adding proper reference counting to strategic portions of the kernel and modifying filesystems to properly handle "device lost" errors.

Edward Tomasz Napierala is the developer working on this project.

"We are very excited to be able to fund this project, which we know is of great interest to our users, especially in the desktop space," said Robert Watson, president of The FreeBSD Foundation.

Robert also said, "The removable USB disk causing a crash turns out to be our #1 reported bug."

"I am very happy to have the opportunity to work on this exciting project," said Edward Tomasz Napierala, FreeBSD developer. "It's just wrong when the system panics because you removed the pendrive!," he added.

The project will be completed by February 2009.

Improvements to the FreeBSD TCP Stack

The FreeBSD Foundation is very pleased to announce the next in a series of developer grants. This grant has been awarded to Lawrence Stewart and Swinburne University of Technology's Centre for Advanced Internet Architectures (CAIA) for improvements to the FreeBSD TCP stack. This three-part project will include implementing Appropriate Byte Counting (ABC) RFC3465 support, adapting and merging CAIA's Statistical Information for TCP Research (SIFTR) TCP analysis tool into FreeBSD, and making improvements to the TCP reassembly queue.

"These changes target both improved performance and improved quality of the FreeBSD TCP stack through feature enhancements and integrated testing," said Professor Grenville Armitage, CAIA's Director. He also added, "We use FreeBSD daily in our IP networking research testbeds and for our centre's various servers, so we're looking forward to contributing these TCP improvements to the FreeBSD community."

"Supporting the technology transfer of advanced systems research, such as CAIA's work on the FreeBSD network stack, is a critically important role for The FreeBSD Foundation to play," said Robert Watson, president of The FreeBSD Foundation.

The project will be completed by July 2009.

Network Stack Virtualization Project

The FreeBSD Foundation is pleased to announce continued funding of the network stack virtualization project, made possible by a grant from NLNet. The virtualized network stack will significantly enhance FreeBSD's jail functionality, allowing jails to have their own complete and locally administered network stacks, including firewalls, routing, and IPsec configurations. The Foundation will be sponsoring Bjoern Zeeb, a FreeBSD network developer, to enhance the existing prototype, now being merged into FreeBSD 8.x, as well as provide code review.