March 15, 2022

Written as part of the FreeBSD Project’s 4th Quarter 2021 Status Report, check out the highlights of what we did to help FreeBSD last quarter:

Fundraising Efforts

We did it! We met our 2021 fundraising goal by raising $1,281,437!! On behalf of the Foundation, I want to thank you for your financial support last year, that will help us continue and increase our support for FreeBSD in 2022. In addition, folks are already sending us their 2022 contributions, which is incredibly heartwarming! We’ll start updating the fundraising meter for 2022 by the end of January.

In this Quarterly Status report you’ll read about many of the areas we funded in Q4 to improve FreeBSD and advocate for the Project (the two main areas we spend money on). Check out reports on the externally funded projects like LLDB support, Raid-Z Expansion, WireGuard, and wifi, as well as, internally supported work like improved security, tier-1 architecture support, and providing online opportunities to connect and educate the community.

If you want to help us continue our efforts, please consider making a donation towards our 2022 fundraising campaign! https://www.FreeBSDFoundation.org/donate/.

We also have a Partnership Program for larger commercial donors. You can read about it at https://www.FreeBSDFoundation.org/FreeBSD-foundation-partnership-program/.

OS Improvements

During the fourth quarter, Foundation staff and grant recipients committed 472 src tree changes, 98 ports tree changes, and 11 doc tree changes. This represents 41%, 41%, and 13% of src, ports, and doc commits identifying a sponsor.

You can read about Foundation-sponsored projects in individual quarterly report entries:

  • The AVX bug on amd64
  • Crypto changes for WireGurard
  • Intel Wireless driver support
  • LLDB Debugger Improvements
  • Base System OpenSSH Update
  • sched_getcpu(2), membarrier(2), and rseq(2) syscalls
  • VDSO on amd64

Here is a small sample of other base system improvements from Foundation developers this quarter that do not have separate report entries.

Some programs adjust their behavior depending on which name was used for execution. For these programs, it is often important to have a consistent name in argv[0], sysctl kern.proc.pathname, auxv AT_EXECPATH, and any procfs file symlink. Before this work, all listed kernel interfaces tried to calculate some name for the text vnode and returned the result. If the executed binary has more than one hardlink, the returned names were arbitrarily chosen from the list of valid names for the file. After work completed this quarter by Foundation developer Konstantin Belousov, the system now holds the parent directory and the name of the text file for the running image. This is used to reconstruct the correct name of the text file when requested.

swapon/swapoff, file swapping

After work to fix asserts for character device vnode locking, there was a report that swap on file code broke the VFS locking protocol. Some other regressions in the swap on file were also identified. For instance, on shutdown, filesystems were unmounted before swapoff, which makes swapoff panic on page-in. These bugs were fixed and a swapoff(2) feature was added to avoid some very conservative estimations for protection against memory and swap space shortages.

fcntl(F_KINFO)

Application developers often request an interface to return the file path for an open file descriptor. Our only useful facility for this was kern.proc.filedesc sysctl, which is somewhat usable, but incurs too high of an overhead when a process has many open files. A fcntl(F_KINFO) interface was added, which returns a struct kinfo_file just for the specified file descriptor. Among other useful data, kinfo_file provides the calculated path, when available.

Continuous Integration and Quality Assurance

The Foundation provides a full-time staff member and funds projects to improve continuous integration, automated testing, and overall quality assurance efforts for the FreeBSD project.

Supporting FreeBSD Infrastructure

The Foundation provides hardware and support for the Project. In the fourth quarter of 2021, we began searching for a new Australian mirror server. At the time of writing, the server is purchased, but with delays obtaining components and shipping, it may not be active until the second or third quarter of 2022. Better and faster access to our sites for the Australian FreeBSD community is coming.

FreeBSD Advocacy and Education

Much of our effort is dedicated to Project advocacy. This may involve highlighting interesting FreeBSD work, producing literature, attending events, or giving presentations. The goal of the literature we produce is to teach people FreeBSD basics and help make their path to adoption or contribution easier. Other than attending and presenting at events, we encourage and help community members run their own FreeBSD events, give presentations, or staff FreeBSD tables.

The FreeBSD Foundation sponsors many conferences, events, and summits around the globe. These events can be BSD-related, open source, or technology events geared towards underrepresented groups. We support the FreeBSD-focused events to help provide a venue for sharing knowledge, working together on projects, and facilitating collaboration between developers and commercial users. This all helps provide a healthy ecosystem. We support the non-FreeBSD events to promote and raise awareness of FreeBSD, to increase the use of FreeBSD in different applications, and to recruit more contributors to the Project. We are continuing to attend virtual events and held a virtual vendor summit this past November.

Check out some of the advocacy and education work we did last quarter:

We help educate the world about FreeBSD by publishing the professionally produced FreeBSD Journal. As we mentioned previously, the FreeBSD Journal is now a free publication. Find out more and access the latest issues at https://www.FreeBSDfoundation.org/journal/.

You can find out more about events we attended and upcoming events at https://www.FreeBSDfoundation.org/news-and-events/.

Legal/FreeBSD IP

The Foundation owns the FreeBSD trademarks, and it is our responsibility to protect them. We also provide legal support for the core team to investigate questions that arise.

Go to https://www.FreeBSDFoundation.org to find more about how we support FreeBSD and how we can help you!