FreeBSD 13.1
freebsd.org
freebsd.org
I'll be talking about this at BSDCan in a few weeks. (Virtual conference, so it's not too late to sign up!)
We use plenty of short-lived FreeBSD agents for our (AWS-hosted) CI builds, so a 2x speed up would be very welcome!
This section covers the boot loader, boot menu, and other boot-related changes.
Boot Loader Changes
UEFI boot is improved for amd64. The loader detects whether the loaded kernel can handle the in-place staging area (non-copying mode). The default is copy_staging auto. Auto-detection can be overridden, for example: with copy_staging enable, the loader will unconditionally copy the staging area to 2M, regardless of kernel capabilities. Also, the code to grow the staging area is more robust; for growth to occur, it’s no longer necessary to hand-tune and recompile the loader. (Sponsored by The FreeBSD Foundation)
boot1 and loader have been fixed on powerpc64le. 8a62b07bce7
Other Boot Changes
Performance improvements have been made to loader(8), nvme(4), random(4), rtsold(8), and x86 clock calibration, which collectively yield a significant speedup in system boot time. Configuration changes on the EC2 platform provide additional benefits, resulting in 13.1-RELEASE booting over twice as fast as 13.0-RELEASE. (Sponsored by https://www.patreon.com/cperciva)
EC2 images are now built by default to boot using UEFI instead of legacy BIOS. Note that UEFI is not supported by Xen-based EC2 instances or by "bare metal" EC2 instances. 65f22ccf8247 (Sponsored by https://www.patreon.com/cperciva)
Support was added for recording EC2 AMI Ids in the AWS Systems Manager Parameter Store. FreeBSD will be using the public prefix /aws/service/freebsd, resulting in parameter names which look like /aws/service/freebsd/amd64/base/ufs/13.1/RELEASE. 242d1c32e42c (Sponsored by https://www.patreon.com/cperciva)
> The -i flag is now added to rtsol(8) and rtsold(8) by default in /etc/defaults/rc.conf. a0fc5094bf4c
> ...
> The -i option has been added to rtsol(8) and rtsold(8) to disable the random delay between zero and one seconds, speeding up the boot process. 8056b73ea163
I'd love to hear more about how you're using FreeBSD/EC2; can you send me an email?
https://news.ycombinator.com/item?id=26051254#26051847
Anyways, thanks for all of your work :)
One of the nice surprises was spinning up a couple of VMs using bhyve instead of qemu or vbox. Worked first time.
Only one gripe - apparently really crap ext3/4 filesystem support. I still haven't managed to mount some important disks despite playing around with fusefs and all that. I'll crack it with time though.
# Load the kernel module
kldload ext2fs
# mount
mount -t ext2fs -o ro /dev/<device/partition> <mountpoint>
# Exmaples:
mount -t ext2fs -o ro /dev/ad1s1 /mnt/
# Or on a different partition scheme (p vs s):
mount -t ext2fs -o ro /dev/ada0p1 /mnt/
https://forums.freebsd.org/threads/howto-mount-ext4-without-...
Sarcastic correction: almost decent support for really crap ext3/4 filesystem
(As compared to either of UFS2 or ZFS)
Fun fact: ~12 years ago I was able to recover 80%+ of data from some failing ext3 drives just by mounting from FreeBSD with ext2fs kld and opportunistic copying — whereas any version of Linux I tried would crash immediately after [ro] mounting.
If you're a small business and want to build proprietary system, and don't have the money to shell out millions in licensing fees; FreeBSD is your system. It's the only way to beat mega corps and incumbents. FreeBSD keeps this asymmetry in check. Before someone comments about open source, there are reasons out of your hand to keep source code proprietary. For those applications, FreeBSD is a boon.
Thing is, usually those reasons don't actually exclude the usage of GPL despite someone saying they do. Google is the biggest offender here, they have outright lied about the terms of GPLv2/3 in order to have quick and easy excuses to avoid it.
The BSD’s are purists. Strong consistency on the file system/configs, strong design principles on keeping things simple.
I only recently tried BSD’s after being a long term Linux user. I don’t use them on the Desktop, so can’t comment about that. On headless servers, after the initial getting familiar period, I find them a joy to work with taking me back to when I first tried Linux using Slackware.
Anyway, if you read the release notes this release uses the new/recent linux KPI infrastructure to use the Linux wi-fi drivers and stack via a shim, so presumably this will take care of all your kernel-resident problems (userland support is still a question mark)! See man pages below:
> The iwlwifi(4) driver along with a LinuxKPI 802.11 compatibility layer was added to supplement iwm(4) for newer Intel Wireless chipsets. (Sponsored by The FreeBSD Foundation)
https://www.freebsd.org/cgi/man.cgi?query=iwlwifi&apropos=0&...
https://www.freebsd.org/cgi/man.cgi?query=iwm&apropos=0&sekt...
Just came to say, this is exactly what I do. Firewall/router/dhcp/etc is FreeBSD and it’s great, but for wifi I use purpose built commercial grade hardware at home (Aruba personally, but honestly Ubiquiti, Meraki, Ruckus, etc would all be comparable).
>FreeBSD isn't really the most suitable choice for a laptop, which should be the only place you need to deal with wi-fi
I don't find this attitude towards the situation productive. It's reasonable to want to have modern wifi speeds in 2022, and being dismissive of this when FreeBSD does in fact have support for running as a desktop OS is just odd to me.
That all said, I'm just gonna take the L and acknowledge that my comment on FreeBSD/802.11ac was badly constructed. If I could go back in time, I'd probably re-word it to be: what needs to happen to speed up 802.11ac support in FreeBSD? Is it simply a money thing to get the right people on it with fewer distractions? Is it testing infrastructure?
Basically, the incentives don't align because you're using FreeBSD in a way that most users/devs aren't. That's not to say that you're in the wrong (not one bit, in fact, you should be commended for your dedication) but just to highlight that there's a fundamental impedance mismatch between the needs of laptop FreeBSD users and the overall priorities of the community. It took an insane amount of time and effort to get Linux KPI going for graphics card support (something that affected both laptop and desktop users), you can infer from that the odds of getting something only for laptop use to become a priority.
That said, you should also look at the current release log as an indication of things to come. The effort to get Linux KPI going is very much a step in the right direction: whatever time/money/effort was going into porting or writing new drivers for wi-fi hardware can now be spent on doing things like improving the crypto and/or protocol support to get things like WPA3 and WiFi 6 going.
But the reason I highlighted the above section of the release notes is strictly because the bulk of the work to get 802.11ac support is purely in writing the drivers since it doesn't fundamentally change the requirements in the rest of the stack (no new crypto required, etc) so I don't see how highlighting that isn't already an answer to your question.
>Basically, the incentives don't align because you're using FreeBSD in a way that most users/devs aren't.
I view this as a chicken/egg issue at this point - there is no reason to use FreeBSD on a laptop (and push/fix the other issues) without modern wifi. This also handicaps more than just laptops - e.g, the Raspberry Pi.
>It took an insane amount of time and effort to get Linux KPI going for graphics card support (something that affected both laptop and desktop users), you can infer from that the odds of getting something only for laptop use to become a priority.
I'm definitely aware of this - the mismatched incentives are why I asked in my last comment if this is just a funding/money issue. I recall that the FreeBSD Foundation has done funding work around wifi updates, but if that's not enough I'd like to know.
e.g
>The shortage for a project of this magnitude and nature isn't going to be lack of hardware, it's going to be lack of time and the opportunity cost for the few that could hack on this to stop hacking away on something else.
When I ask if it's a money issue, I'm not asking if they need money to buy hardware - I'm asking if there's sufficient funding for software engineering time.
Anyway, I've enjoyed the back and forth - here's hoping FreeBSD gets it eventually. I still love the OS to this day, but when it falls behind on stuff like this it can be rough.
I'm aware of that project, though I appreciate the response nonetheless.
ZoL is still ironing out the remaining corruption bugs in these features, but the snapshot in FreeBSD 13.1 is a much more reliable option than the one that shipped with v13.
Note that users are not locked into the version that FreeBSD shipped with; you can actually installing rolling ZoL releases via ports/pkg and even use them for the system volume but that requires some reconfiguration (installing the port/pkg plus a minor conf file change to load the desired version of the ZFS kernel module) - but since most users don't do that, this should be a welcome upgrade.
https://openzfs.org/wiki/Main_Page
>>The OpenZFS project brings together developers from the Linux, FreeBSD, illumos, MacOS, and Windows platforms. OpenZFS is supported by a wide range of companies.
It's hard to imagine that my FreeBSD journey started with 3.1, and I'm glad to see it's still going strong (and why I keep donating to the project).
Such a joy to setup—so simple, so stable. Really happy to see that it keeps getting some love. :)
https://freebsdfoundation.org/blog/q1-2022-software-developm...
Lots of good stuff in the pipe, not just features like kernel WireGuard or improved WiFi but basic support stuff like improving/updating the Handbook.
(similar in concept to what various linux distros release, allowing for super slim servers OS)
https://github.com/michaeldexter/occambsd
But FreeBSD in itself is already as slim as ~possible (because no installed pkg's)
https://freebsdfoundation.org/wp-content/uploads/2022/03/Por...
Source: https://cgit.freebsd.org/src/tree/sys/modules/pf/Makefile?h=...
I wish FreeBSD had something at the OS-level like NixOS.
(yes I’m aware that nix packages exists)