2009 Project Announcements

High Available Storage Project

Pawel 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.