The third quarter of 2021 was quite active in lots of different areas, so the report covers a bunch of interesting work including but not limited to boot performance, compile-time analysis, hole-punching support, various drivers, ZFS raidz expansion, an update to the sound mixer, and many more. FreeBSD’s status reports are a great way to keep up to speed with the project’s progress.
I’ve been a NetBSD developer for three years and it’s been my primary operating system for a long time too – on everything: routers, laptops, Raspberry Pis, PowerPC mac minis, Vortex86 embedded boards, and servers. I’ve recently been using FreeBSD a lot at work. We have a lot of servers and embedded boards running it, and I was given the option of installing anything I wanted on my workstation. I chose FreeBSD to maintain a separation of BSDs between my work and home life 😉 I thought I’d write a little bit about some differences that stand out to me. Since everyone that knows me well knows that typical use cases like web hosting aren’t really my jam, and I’m more of an embedded, audio, and graphics person, maybe I can offer a more uncommon perspective. It’s always nice to read perspectives like this.
The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 13.0-RELEASE. This is the first release of the stable/13 branch. The announcement and release notes contain more information.
FreeBSD will promote arm64 to a Tier 1 architecture in FreeBSD 13. This means we will provide release images, binary packages, and security and errata updates. While we anticipate there will be minor issues with this first release, we believe the port is mature enough that they can be resolved during the life of FreeBSD 13. Maybe not massively relevant right now, but with Arm making its way into both servers and desktops, this is some good future-proofing for FreeBSD.
Steam is a gaming platform that sells and manages games on Windows and Linux. Since FreeBSD has some pretty good Linux emulation, it is possible – with some footnotes – to run Linux Steam Games on FreeBSD. This was already possible in 2016 but the tooling keeps being updated, so let’s take a look at how things work. This is really interesting. Wine’s and Valve’s efforts are paying off in so many unforeseen ways.
With the release of FreeBSD 13.0 on the horizon, I wanted to see how it shapes up on my Lenovo T450 laptop. Previous major releases on this laptop, using it as a workstation, felt very rough around the edges but with 13, it feels like the developers got it right. It would be good for the desktop Linux world if FreeBSD managed to become even a little bit more mainstream among desktop users. Linux pretty much has the open source desktop world all to itself, and some competition would be very welcome.
This morning, WireGuard founding developer Jason Donenfeld announced a working, in-kernel implementation of his WireGuard VPN protocol for the FreeBSD 13 kernel. This is great news for BSD folks—and users of BSD-based routing appliances and distros such as pfSense and opnSense. Not something I personally use, but good news for those that do.
I normally deal with Linux machines. Linux is what I know and it’s what I’ve been using since I was in college. A friend of mine has been coaxing me into trying out FreeBSD, and I decided to try it out and see what it’s like. Here’s some details about my experience and what I’ve learned. Exactly what it says on the tin – and may I just say that the design and colour scheme of the website in question is extremely pleasant to the eyes.
This quarter had quite a lot of work done, including but certainly not limited to, in areas relating to everything from multiple architectures such as x86, aarch64, riscv, and ppc64 for both base and ports, over kernel changes such as vectored aio, routing lookups and multipathing, an alternative random(4) implementation, zstd integration for kernel dumps, log compression, zfs and preparations for pkg(8), along with wifi changes, changes to the toolchain like the new elfctl utility, and all the way to big changes like the git migration and moving the documentation from DocBook to Hugo/AsciiDoctor, as well as many other things too numerous to mention in an introduction. The best way to keep up with FreeBSD development from an outsider’s perspective. FreeBSD is on my radar for the UltraSPARC server-as-a-workstation project – a reader has donated a SunFire V245 that’s currently in shipping to me – so I’m trying to be a bit more in tune than I usually am with the world of FreeBSD.
On modern Unix-like systems such as FreeBSD, “swapping” refers to the activity of paging out the contents of memory to a disk and then paging it back in on demand. The page-out activity occurs in response to a lack of free memory in the system: the kernel tries to identify pages of memory that probably will not be accessed in the near future, and copies their contents to a disk for safekeeping until they are needed again. When an application attempts to access memory that has been swapped out, it blocks while the kernel fetches that saved memory from the swap disk, and then resumes execution as if nothing had happened. In 2021, cheap SSDs have become commonplace and have performance characteristics much better suited to swapping, so it seems worthwhile to revisit how swapping works in FreeBSD, and try to provide some insight into frequently raised issues. Some light reading for the weekend.
The FreeBSD Desktop series are about creating efficient desktop environment on the FreeBSD system. Why such series? Because telling someone who wants FreeBSD desktop to buy Mac instead is like telling someone who wants Linux desktop to buy Windows because it has WSL (Windows Subsystem for Linux) inside. This is one hell of a detailed and long series of articles – 21 of them. I’m not very well-versed in the world of BSD, and this series is making me want to give the world thing a go – just to learn and expand my horizons.
FreeBSD 12.2 has been released. Changes include updates for the wireless stack for better 802.11n and 802.11ac support, the latest versions of OpenSSL and OpenSSH, and much more. On top of the changes comes an announcement in the release notes of a change for the i386 versions of FreeBSD, starting with FreeBSD 13.0. Starting with FreeBSD-13.0, the default CPUTYPE for the i386 architecture will change from 486 to 686. This means that, by default, binaries produced will require a 686-class CPU, including but not limited to binaries provided by the FreeBSD Release Engineering team. FreeBSD 13.0 will continue to support older CPUs, however users needing this functionality will need to build their own releases for official support. This won’t affect most users, but people with very specific needs should take note.
The FreeBSD project has published its latest quarterly report, and there’s some good changes and improvements in there. First, there’s the project to allow FreeBSD to be built on non-FreeBSD hosts – Linux and macOS specifically. This project has made major headway. As of September 2020 it should be possible to use the buildworld and buildkernel make targets to build a fully-functional FreeBSD installation on macOS and Linux hosts. We use this in our continuous integration system to build and test CheriBSD disk images for multiple architectures. I have also committed a GitHub Actions configuration upstream that takes approximately 10 minutes to build an amd64 kernel. This will ensure that changes that break crossbuilding from Linux/macOS can be detected easily. Another major improvement is experimental support for little-endian PowerPC. Note, however, that this does not mean big-endian support is going away or being deprecated. As of r366063, experimental support for little-endian PowerPC64, (PowerPC64LE) is available in -CURRENT for POWER8 and POWER9 machines. There’s a lot more stuff to cover, so head on over and read the whole report for all the details.
Following ongoing work for over a year on moving to OpenZFS for FreeBSD’s ZFS file-system support, FreeBSD HEAD overnight has imported the OpenZFS code-base. ZFS – almost another casualty of Larry Ellison. I’m damn glad it’s managed to live on.
I am happy to announce the availability of GhostBSD 20.08.04. This release comes with kernel, OS and software application updates. We updated the MATE desktop to 1.24.0. A new interesting feature is the boot environment backup before updates. GhostBSD is one of the few desktop-oriented BSD ‘distributions’, and it’s based on FreeBSD.
Yes, it’s been a while since I posted here and yes, it’s been a while since I was actively working on FreeBSD’s wireless stack. Life’s been… Well, life. I started the ath10k port in 2015. I wasn’t expecting it to take 5 years, but here we are. My life has changed quite a lot since 2015 and a lot of the things I was doing in 2015 just stopped being fun for a while. But the stars have aligned and it’s fun again, so here I am. It’s always good when a good hacker gets back to what they do best after life has thrown them a curve ball.
The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 11.4-RELEASE. This is the fifth and final release of the stable/11 branch. Read the announcement for more information.
As mentioned previously, because FreeBSD is a real multi-purpose operating system with many different use cases, FreeBSD is very flexible and tuneable. Whether you want to run FreeBSD on your desktop computer or on your server, it provides many tuneable options that enables you to make it very performant. The options set out-of-the box may not suit your needs exactly, but then FreeBSD provides lots of documentation on how to get it to work as you need, and it provides a very helpful community with many people who has experience in dealing with many different situations and problems. I believe it is important to understand that FreeBSD is not like a GNU/Linux distribution. FreeBSD is an operating system made by developers who are also system administrators. This means that FreeBSD is supposed to be run by system administrators who understands how the system works. You cannot simply jump from something like Ubuntu, Fedora or OpenSUSE and then expect that you get the same experience on FreeBSD (I and a lot of other people would be extremely sad if that were the case). The BSDs just aren’t my thing. I’m not a developer, and I’m not a system administrator. Over the past six months or so, I’ve moved all my machines and all my workflows over to Linux – my laptop, my main PC (used for everything that isn’t translating), and my office PC (for my translation work), and I couldn’t be happier (in the interest of full disclosure, I do keep Windows around on my main PC for possible future Windows-only games, and I have a Windows 10 virtual machine on my office PC for some Windows-specific translation software I need to keep around). As I was planning this careful migration, I never once considered using any of the BSDs. For the simpler, almost exclusively desktop oriented work that I do, BSD just doesn’t seem like the right tool for the job – and that’s okay, I’m not the target audience – and I suspect there are many people like me. I think the BSDs are stronger for not trying to be everything to all people, and this more focused development seems to be exactly why someone chooses BSD over Linux. And I see no reason why anybody should want to change that.
The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 12.1-RELEASE. This is the second release of the stable/12 branch. Some of the highlights: • BearSSL has been imported to the base system.• The clang, llvm, lld, lldb, compiler-rt utilities and libc++ have been updated to version 8.0.1.• OpenSSL has been updated to version 1.1.1d.• Several userland utility updates. The full release notes has all the details about this new release, and you can download it from the usual place for amd64, i386, powerpc, powerpc64, powerpcspe, sparc64, armv6, armv7, and aarch64.
It was recently decided that FreeBSD’s ZFS file-system support would be re-based atop ZFS On Linux. That new “ZFS On BSD” implementation based on ZOL continues moving along and it’s now easier to test thanks to iX Systems and their TrueOS platform. With the ZFS On Linux code-base being more actively maintained and improved upon than the OpenZFS support within the Illumos kernel, FreeBSD developers are working on merging their “ZOB” changes with ZOL. Interesting to see that the Linux implementation sees more active development than the original one – although not entirely surprising.