April 13, 2021
Gearheads in the audience know that there are two factors to a car’s performance – power and weight. Whatever increases the former or reduces the latter increases performance. The analogy might not translate perfectly to operating systems, but it’s not terrible. FreeBSD release 13 marks major progress in both levers of performance. Numerous improvements allow FreeBSD users to take advantage of ever faster hardware – the power component. Release 13 also rids itself of performance-sapping and largely unused legacy components and methods of working – not unlike removing a Camaro’s rear seats.
More Power
FreeBSD Contributor Kristof Provost reckons that release 13 is all about speed. You see it in projects like packet filter and if_bridge, where enhancements landing in 13 deliver several times improvements. According to Kristoff, this means FreeBSD can handle massive throughputs and keep up with all the modern hardware that you might use.
Likewise, John Baldwin and collaborators at Netflix and Chelsio may well have been channeling Jeremy Clarkson when they added the TLS (Transport Layer Security) offload capabilities to release 13. Moving the bulk encryption from user space to the kernel for kTLS, and to the NIC for NICTLS, boosts throughput significantly while reducing CPU utilization. This short animation and the Netflix Case Study provide more technical details on TLS offload.
Lightening the Load
Repeat FreeBSD Core Team Member Warner Losh describes a variety of “janitorial work” he and others put into release 13. Among other things, these efforts removed drivers for largely obsolete hardware. This matters because maintaining these drivers across new releases imposes a significant tax on the system and community.
In 13, gone too is the old GPL-licensed toolchain that supported some Tier-2 architectures. Release 13 is the first major FreeBSD release with a modern llvm toolchain that works the same across all supported hardware. This has been a long-term effort, with Clang for Tier-1 architectures available for years. Important in its own right, the toolchain migration to Clang/llvm opens the door to supporting RISC-V architectures, an important future platform.
For a community project like FreeBSD, no discussion of performance is complete without addressing the developer experience. Contributions are the literal lifeblood of open source, so whatever makes the process of contributing faster, ceteris paribus, improves the project. Concerned that the project’s continued reliance on Subversion for software revision and control created excessive friction, Core Team 10 chartered a Git Working Group to determine whether/how to move to Git. Release 13 marks the first major release since the transition to Git. Not only does Git accelerate the onboarding of new contributors, says Losh, as a distributed version control system, it also facilitates collaboration with FreeBSD committers and non-committers alike.
Not Invented Here? Not a Problem Here
FreeBSD has included ZFS in the base system for several years. When developer momentum shifted, FreeBSD was quick to ensure that its users could access all the latest features by adding OpenZFS support to Main. Thanks to efforts from iXSystems and many others, the ZFS implementation in FreeBSD switched to the new OpenZFS tree with FreeBSD connected directly to the upstream pipeline. And the FreeBSD Foundation is investing in OpenZFS to ensure it meets users’ needs. Last year, the Foundation sponsored Allan Jude to integrate Zstd compression support into OpenZFS.
For a complete list of what’s new in 13, please check out the release notes.
Take a New Look at FreeBSD
Covered in some depth in a recent Register article, the FreeBSD desktop environment continues to improve with driver support for most current laptops. Desktop-oriented takes on FreeBSD like GhostBSD and the forthcoming helloSystem make switching from Mac, Windows, and Linux easier than ever. And general getting started resources abound – this Fosslife article from the FreeBSD Foundation’s Anne Dickison makes a great trailhead to these resources.