News: 1764932467

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

FreeBSD 15 trims legacy fat and revamps how OS is built

(2025/12/05)


The latest release of FreeBSD contains a lot of crucial under-the-hood changes – and drops 32-bit support on both x86 and POWER, although ARM-v7 survives.

[1]FreeBSD 15.0-RELEASE arrived this week, the latest release of the Unix world's leading alternative to Linux. As well as numerous bug fixes and upgrades to many of its components, the major changes in this version are reductions in the number of platforms the OS supports, and in how it's built and how its component software is packaged.

FreeBSD 15 has significantly reduced support for 32-bit platforms. Compared to [2]FreeBSD 14 in 2023 , there are no longer builds for x86-32, POWER, or ARM-v6. As the [3]release notes put it:

The venerable 32-bit hardware platforms i386, armv6, and 32-bit powerpc have been retired. 32-bit application support lives on via the 32-bit compatibility mode in their respective 64-bit platforms. The armv7 platform remains as the last supported 32-bit platform. We thank them for their service.

Now FreeBSD supports five CPU architectures – two Tier-1 platforms, x86-64 and AArch64, and three Tier-2 platforms, armv7 and up, powerpc64le , and riscv64 .

[4]

FreeBSD has its own native desktop environment, the Windows-like Lumina

Arguably, it's time. AMD's first 64-bit chips [5]started shipping 22 years ago . Intel launched the [6]original x86 chip, the 8086 in 1978. These days, 64-bit is nearly as old as the entire Intel 80x86 platform was when the 64-bit versions first appeared. In comparison, a few months ago, [7]Debian 13 also dropped its x86-32 edition – six years after Canonical launched its first x86-64-only distro, [8]Ubuntu 19.10 .

Another significant change is that this is the first version built under the new [9]pkgbase system, although it's still experimental and optional for now. If you opt for a pkgbase installation, then the core OS itself is installed from multiple separate software packages, meaning that the whole system can be updated using the package manager.

[10]

Over in the Linux world, this is the norm, but Linux is a very different beast. All the components of Linux distributions are developed and maintained by different teams. The kernel is a separate project from the init system, and both are separate projects from the core command-line OS (much of which is from the GNU Project in most distros), which are entirely independent from the packaging system, and the desktops, and the shells, and so on. That's why Linux exists in the form of distributions. The distributor chooses from a variety of components, and puts together something they like from all the disparate pieces. It's something like assembling a unique model from a hundred different kits.

[11]

[12]

FreeBSD, like the other BSDs and indeed most other OSes, is constructed very differently. The core OS is a single integrated whole. All its components are built from a single codebase managed by a single team. The classic way to install a BSD is to install several distribution sets, including the base OS image as a single unit. This gives you a complete working OS, to which you can add whatever software you need on top using the package manager. This works perfectly well, but the downside is that it forces you to update the OS in two separate operations, using one tool to update the core OS, and a different tool to update the installed applications. As we recently discovered for ourselves trying to update NetBSD 10.0 to 10.1, if you don't update the kernel, the userland, and the apps in precisely the correct sequence, the result is mismatched parts that won't work together – and a broken OS. (We have since learned – too late – that the correct method is, apparently, to boot from an installation medium and use that to do an in-place upgrade.)

The BSD base-system-plus-apps model works, but it does have drawbacks. One example is that it's difficult to remove components from the base image, which makes it difficult to cut down the OS for a minimal installation – such as an embedded system or a lightweight VM. (As an [13]example , the [14]GNU groff typesetting tool is part of the base image, and few people need that in 2025.) Having the whole thing constructed from packages facilitates this.

[15]

FreeBSD has a tool for automating package building called the [16]Poudriere build system , but this couldn't build the base OS. It will be much more capable used with the pkgbase system. There's still an option in FreeBSD 15 to install the monolithic base system, and also a [17]pkgbasify command to convert that layout into the newer componentized one.

The change is controversial in some places. Prolific BSD blogger Vermaden wrote a [18]long piece about it after finding that the command to remove all packages – pkg delete -af , which was safe in earlier releases – destroyed the entire OS, for which he [19]filed a bug . The Reg FOSS desk spoke to an OpenBSD developer recently, who thought the change was rash and profoundly counter to established BSD practice.

Even with such views, though, the older FreeBSD construction model is very different from how a Linux distro is assembled and maintained. These days, the majority of Unix tech folks are familiar with Linux first, and everything else a distant second.

[20]

The plan is that by FreeBSD 16, [21]scheduled for December 2027 , the restructure will be complete, the old distribution sets will be removed, and the current [22]freebsd-update command and its associated infrastructure can be turned off.

Another significant change is [23]reproducible builds , a milestone the project [24]reached in late October . This change is part of a [25]multi-project initiative toward ensuring deterministic compilation: to be able to demonstrate that a certain set of source files and compilation directives is guaranteed to produce identical binaries, as a countermeasure against compromised code. A handy side-effect is that building the whole OS, including installation media images, no longer needs root access.

There are of course other new features. Lots of drivers and subsystems have been updated, and this release has better power management, including suspend and resume. There's improved wireless networking, with support for more Wi-Fi chipsets and faster wireless standards, plus updated graphics drivers. The [26]Hardware Notes document has an extensive list including what standards are supported on what devices. The release announcement calls out the inclusion of [27]OpenZFS 2.4.0-rc4 , [28]OpenSSL 3.5.4 , and [29]OpenSSH 10.0 p2 , and notes the inclusion of some new quantum-resistant encryption systems. A new [30]inotify subsystem , compatible with the [31]Linux equivalent , allows the OS to watch folders for any changes. This is very useful for tools like malware scanners and file system indexers.

[32]

Both the latest Firefox and a recent version of GNOME Web are in the repositories, covering most bases

A feature that didn't make it was one we [33]wrote about earlier this year – the plan for the installation program to offer the option of installing a system with a graphical login session. This is something FreeBSD's smaller siblings, NetBSD and OpenBSD, both do without difficulty.

[34]FreeBSD Project isn't ready to let AI commit code just yet

[35]GhostBSD 25.02 adds 'Gershwin' desktop for a Mac-like twist

[36]FreeBSD 15 installer to offer minimal KDE desktop

[37]From PlayStation to routers, you've probably been using FreeBSD without knowing it

We installed version 15.0 in a VirtualBox VM. As we've been learning our way around it since [38]FreeBSD 13.1 a few years ago , we have a better idea of what it expects now. We configured the VM with UEFI instead of its default BIOS, as this works better with FreeBSD's default ZFS-on-GPT disk setup.

We manually added the desktop-installer script, just like in previous versions, then ran it. It detected that it was running inside VirtualBox and offered to install the guest extensions automatically, which is impressive. It offers 12 environments as well as a roll-your-own option:

1.. No desktop software (I'll install my own later)

2.. CDE (Retro 1990's)

3.. Cinnamon Desktop (Gnome 3 derivative)

4.. Fluxbox Lightweight Window Manager

5.. Gnome Desktop (Feature-rich and resource-intensive)

6.. Gnome Lite Desktop

7.. IceWM Lightweight Window Manager

8.. KDE Desktop (Feature-rich and resource-intensive)

9.. Lumina Lightweight Desktop

10.. LXDE Lightweight Desktop (Replaced by LXQT, but still maintained)

11.. LXQT Lightweight Desktop

12.. MATE Desktop (Gnome 2 Derivative)

13.. WindowMaker Lightweight Window Manager

14.. XFCE4 Lightweight Desktop

15.. Custom (enter your own category/port and session command)

The capitalization, spacing, summaries, and punctuation are direct from the program itself – although we can't really fault the descriptions.

We were pleasantly surprised to see CDE in the list, so we tried it. It installed version 2.5.2, rather than the [39]very latest 2.5.3 – understandable as it only came out a week ago — but we couldn't find a way to launch it. However, the originally FreeBSD-native [40]Lumina desktop worked perfectly. Although there hasn't been a new release since [41]version 1.6.1 in 2021 , it's improved considerably compared to the [42]last time we saw it . On FreeBSD 15, Lumina now includes a file manager, text editor, PDF viewer, and most of the other components you'd expect. In general, we found FreeBSD 15 easier and less complicated to work with than either of the previous major releases.

It should be easier on servers too. The new OCI container support in FreeBSD 14.2, which we [43]wrote about a year ago , is more mature now. FreeBSD has its own version of [44]Podman , and you can [45]run Linux containers on FreeBSD. This means you can use [46]Docker commands and tools , which are familiar to many more developers than FreeBSD's native Jail system.

FreeBSD has its own place in servers and the public cloud, but it's getting easier to run it as a desktop OS as well. It can run all the main Linux desktops, including GNOME on Wayland. There's no systemd here, and never will be – and no Flatpak or Snap either, for that matter.

Even compared to Debian, it's a considerably more Spartan environment. There's no native version of Chrome (although there is a [47]port of Chromium ) and no Electron apps, which means no VSCode, Slack, Discord, or anything. There's no native version of Steam either, but there's a [48]launcher for the Linux version .

For some people, these absences will be deal-breakers, but for others, they may sound like a positive advantage. You do get Firefox – at the time of writing, the very latest version 145.0.2. For anything that doesn't work right in Firefox, you can install GNOME Web, still known here as Epiphany. FreeBSD 15 includes version 47.7 of this WebKit-based browser.

It's not the most lightweight OS. Although the root partition only contained 5.3 GB of files, by default, the user's home directories are installed in separate ZFS datasets. In an 8 GB VM, FreeBSD used a non-trivial 1.8 GB of RAM. In our experience, dual-booting any of the BSDs is not a simple task, so if you want to try it, we suggest dedicating a whole drive to it. That said, we found version 15 easier to install than ever. Good news for the curious, although possibly bad news for GhostBSD – but that still has a considerable edge. You may find that you like it. Some people certainly do. Late last month, we enjoyed reading this [49]Love Letter to FreeBSD . ®

Get our [50]Tech Resources



[1] https://www.freebsd.org/releases/15.0R/announce/

[2] https://www.theregister.com/2023/10/24/freebsd_14_rc2/

[3] https://www.freebsd.org/releases/15.0R/relnotes/

[4] https://regmedia.co.uk/2025/12/03/freebsd-15-lumina.jpg

[5] https://www.theregister.com/2003/04/22/amd_launches_opteron/

[6] https://www.theregister.com/2012/11/12/slideshow_a_history_of_intel_x86_in_20_cpus/

[7] https://www.theregister.com/2025/08/12/debian_13_trixie_released/

[8] https://www.theregister.com/2019/10/17/canonical_releases_ubuntu_1910_eoan_ermine/

[9] http://wiki.freebsd.org/action/show/pkgbase

[10] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2aTMPpVep7AKPD7pP5gcQAQAAAAw&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[11] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aTMPpVep7AKPD7pP5gcQAQAAAAw&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[12] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aTMPpVep7AKPD7pP5gcQAQAAAAw&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[13] https://forums.FreeBSD.org/threads/what-is-pkgbase.68325/post-407332

[14] https://www.gnu.org/software/groff/groff.html

[15] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aTMPpVep7AKPD7pP5gcQAQAAAAw&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[16] https://www.digitalocean.com/community/tutorials/how-to-set-up-a-poudriere-build-system-to-create-packages-for-your-freebsd-servers

[17] https://github.com/FreeBSDFoundation/pkgbasify

[18] https://vermaden.wordpress.com/2025/10/20/brave-new-pkgbase-world/

[19] https://github.com/freebsd/pkg/issues/2485

[20] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aTMPpVep7AKPD7pP5gcQAQAAAAw&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[21] https://www.freebsd.org/releng/

[22] https://man.freebsd.org/cgi/man.cgi?freebsd-update

[23] https://wiki.freebsd.org/ReproducibleBuilds

[24] https://freebsdfoundation.org/blog/freebsd-now-builds-reproducibly-and-without-root-privilege/

[25] https://reproducible-builds.org/

[26] https://www.freebsd.org/releases/15.0R/hardware/

[27] https://github.com/openzfs/zfs/releases/tag/zfs-2.4.0-rc4

[28] https://github.com/openssl/openssl/releases/tag/openssl-3.5.4

[29] https://www.openssh.org/txt/release-10.0

[30] https://man.freebsd.org/cgi/man.cgi?query=inotify

[31] https://man7.org/linux/man-pages/man7/inotify.7.html

[32] https://regmedia.co.uk/2025/12/03/freebsd-15-web.jpg

[33] https://www.theregister.com/2025/07/25/freebsd_15_installer_offers_kde/

[34] https://www.theregister.com/2025/09/03/freebsd_project_update_no_ai/

[35] https://www.theregister.com/2025/08/27/ghostbsd_2502/

[36] https://www.theregister.com/2025/07/25/freebsd_15_installer_offers_kde/

[37] https://www.theregister.com/2025/04/28/freebsd_foundation_25/

[38] https://www.theregister.com/2022/05/20/freebsd_131/

[39] https://www.theregister.com/2025/11/28/kde_6_8_wayland_only/

[40] https://lumina-desktop.org/

[41] https://github.com/lumina-desktop/lumina/releases/tag/v1.6.2

[42] https://www.theregister.com/2023/01/06/dragonfly_bsd_6_4/

[43] https://www.theregister.com/2024/12/05/freebsd_142/

[44] https://podman.io/

[45] https://freebsdfoundation.org/blog/oci-containers-on-freebsd/

[46] https://podman-desktop.io/docs/migrating-from-docker/managing-docker-compatibility

[47] https://wiki.freebsd.org/Chromium

[48] https://github.com/shkhln/linuxulator-steam-utils

[49] https://www.tara.sh/posts/2025/2025-11-25_freebsd_letter/

[50] https://whitepapers.theregister.com/



williamyf

FreeBSD was the first Unix I installed in a machine that belonged to me, in late 1995. Sadly, the GUI could not handle the S3Trio32 graphics in said computer, so, no desktop for me, so no ATM Network simulator for my thesis, so, goodbye, but good memories nonetheless.

Eric 9001

It's extremely sad that the register recklessly furthers the popular confusion that the GNU OS, with or without Linux added is called "Linux" - even though Linux is only and will only ever be a kernel.

>The kernel is a separate project from the init system, and both are separate projects from the core command-line OS (much of which is from the GNU Project in most distros)

You can have GNU shepherd as the init - but generally, many other nonGNU packages, more important that Linux, are included as well (Linux being included is optional - you can use Hurd, or some BSD kernel instead and the feel of GNU doesn't change in the slightest - the main differences would be hardware support and performance).

While GNU offers a command line (GNU Bash), GNU is a set of libraries and programs (many of which have GUIs) and kernels, that give you everything you need to use a computer in freedom.

Meanwhile, all Linux provides is a kernel that doesn't even operate on its own, that doesn't grant freedom either.

All OS's that use the kernel, Linux need GNU and therefore "most distros" is incorrect - it's all distros.

After all, you cannot even compile Linux without GNU - just look at Documentation/process/changes.rst in the Linux source code;

====================== =============== ========================================

Program Minimal version Command to check the version

====================== =============== ========================================

GNU C 5.1 gcc --version

Clang/LLVM (optional) 13.0.1 clang --version

Rust (optional) 1.78.0 rustc --version

bindgen (optional) 0.65.1 bindgen --version

GNU make 4.0 make --version

bash 4.2 bash --version

binutils 2.25 ld -v

flex 2.5.35 flex --version

bison 2.0 bison --version

pahole 1.16 pahole --version

util-linux 2.10o mount --version

kmod 13 depmod -V

e2fsprogs 1.41.4 e2fsck -V

jfsutils 1.1.3 fsck.jfs -V

reiserfsprogs 3.6.3 reiserfsck -V

xfsprogs 2.6.0 xfs_db -V

squashfs-tools 4.0 mksquashfs -version

btrfs-progs 0.18 btrfs --version

pcmciautils 004 pccardctl -V

quota-tools 3.09 quota -V

PPP 2.4.0 pppd --version

nfs-utils 1.0.5 showmount --version

procps 3.2.0 ps --version

udev 081 udevd --version

grub 0.93 grub --version || grub-install --version

mcelog 0.6 mcelog --version

iptables 1.4.2 iptables -V

openssl & libcrypto 1.0.0 openssl version

bc 1.06.95 bc --version

Sphinx\ [#f1]_ 2.4.4 sphinx-build --version

cpio any cpio --version

GNU tar 1.28 tar --version

gtags (optional) 6.6.5 gtags --version

mkimage (optional) 2017.01 mkimage --version

Python (optional) 3.5.x python3 --version

GNU AWK (optional) 5.1.0 gawk --version

====================== =============== ========================================

That's right, you need GCC, make, bash, GNU binutils, GNU bison, GNU GRUB (optional), GNU bc, GNU cpio, tar and awk and all the other dependencies depend on GNU as well.

that one in the corner

My granny is wondering, are you free next weekend to teach her how to suck eggs?

ChoHag

I'd just like to interject for a moment. What you're referring to is well known, uninteresting and entirely beside the point. Regardless of Stallman's opinion it's called Linux now and many of its distributions have no or minimal connection to GNU's poorly written crapware.

Zolko

@ Eric 9001 : you should have used the "Pedantic" icon

Linux need GNU and therefore "most distros" is incorrect - it's all distros

wrong : you can make a Linux computer with busybox and no GNU component

PS : is it my browser or did El Reg change the default font ? It's much thinner, less readable

Anonymous Coward

PS : is it my browser or did El Reg change the default font ? It's much thinner, less readable

Codezempic?

LBJsPNS

BARK BARK BARK BARK

graemep

> All OS's that use the kernel, Linux need GNU and therefore "most distros" is incorrect - it's all distros.

So what? lots of software is built using make and Bash. You also need Python etc. and lots of other stuff to compile Linux.

> All OS's that use the kernel, Linux need GNU and therefore "most distros" is incorrect - it's all distros.

Its correct. Alpine and some other distros use busybox instead of GNU utils. Chimera Linux uses BSD utilities.

> Linux being included is optional - you can use Hurd, or some BSD kernel instead and the feel of GNU doesn't change in the slightest

I would say having significantly worse hardware support changes the feel quite significantly. So does having a different range of non-GNU utilities, and anything else that relies on compatible syscalls.

There are differences between BSD and GNU utilities and I generally prefer the GNU ones - but its not a huge difference. Even the lightweight busybox versions do not make a huge difference most of the time.

Memory usage

Rich 2

“FreeBSD used a non-trivial 1.8 GB of RAM”

Are you sure the OS is using that much? By default, ZFS will eat any spare memory and use it as cache which tends to make the memory usage look really bad. When in reality, it’s not - it’s just ZFS using otherwise unused memory

But I would be surprised if you didn’t already know this

Groff

keithpeter

"As an example, the GNU groff typesetting tool is part of the base image, and few people need that in 2025."

Unless I'm misunderstanding something here, don't you need a basic install of groff with the man macros to be able to render a man page? Unless you have OpenBSD's mandoc installed.

Linux: Debian and downstream distros tend to install a cut-down groff with just what you need to display a man page, so we are talking 10s of Mbytes. I imagine some lean embedded system type application or a bare bones server could do without.

Icon: useful review.

It's a lot of fun being alive ... I wonder if my bed is made?!?