I've always thought of distributions (whether they are BSD or Linux) as:
bootloader
kernel/initrd of some sort
/sbin/init
libc
shell / userspace tools
package manager
I think a lot of "noise" is made off of such slight distinction between these
Back on topic:
From the article
> Nope, no match — FreeBSD's performance on the Pi is still way better, even without overclocking
How? Like, it's the same hardware, the same processor executing instructions. The Linux kernel/Linux compiled applications are that much slower? That's surprising. I wonder if that could be fixed easily with some kind of config tweaks somewhere. That would strike me as "something is broken" if the performance isn't within 1-3% of each other Linux vs BSD
I find it hyperbolic/probably untrue to say "oh, I ran Linux on my RaspberryPi, it was so slow I couldn't use the web browser. I switch to FreeBSD and it was so much faster it was usable"
> “You can browse a modern web, have things scroll smoothly, watch videos and even play some 3D games like Quake with it“
So it sounds like the alleged difference in performance is subjective based on interactive use, not benchmark numbers. Just speculating here but I would guess this comes down to differences in CPU scheduling algorithms. Last I checked, Linux and FreeBSD used very different scheduling algorithms.
Obviously, if you run some computational benchmark the difference between operating systems should be minimal.
However, what was described in the linked article were the snappiness of an Internet browser and of a graphical desktop and the USB and audio performance.
Those may depend a lot on the operating system support, so they may vary noticeably between operating systems.
While I am using both Linux and FreeBSD on x86, I have not tried FreeBSD on Arm, mainly because it has official support only for a few SBCs. Because Linux on RaspberryPi felt quite slow, I would not be surprised if a FreeBSD desktop feels snappier.
In general, Linux has support for a much greater variety of hardware than FreeBSD, but among those kinds of devices that are supported by both it cannot be predicted which of the two operating systems will have a better performance for a certain application.
If you stay 100% within your own application and don't touch syscalls or libraries then yes they should perform identically (other than other processes using the CPU and I guess maybe default CPU speed settings). In practice, you're going to makes syscalls and use other libraries, which means that the kernel is an extremely important part of the overall performance picture and the design decisions that are baked into those libraries matters.
> But what about all that lackluster driver support? WiFi drivers still on the 802.11g standard and all? Surely you can't be serious about it when Linux offers all that support out of the box, right? Wrong, actually. For starters, the drivers provided for the Pi's hardware are often half-assed proprietary blobs... I no longer think FreeBSD is really at fault if the driver support for the hardware is not helpful to begin with.
I installed FreeBSD on a raspberry pi a few years ago, and I don’t think I ever got WiFi working. No FreeBSD is not “at fault” for not being popular enough on the desktop to receive proprietary drivers, but as a user it sure is frustrating to struggle to get such a basic function working
Look i use FreeBSD as my mainsystem (for Desktop, Laptop and Servers) and you are totally right, Wifi (max 2.5 mb/s) and not being able to regulate the fans on a GPU are it's biggest faults. I mean i can even play Elden Ring on FreeBSD (Wine) with a ps4 controller...for 4 minutes until my AMD-Card overheats...
I’m interested in this because lately I’ve been using an rpi4 with Surge XT, a great open source softsynth. The sound engine itself is not cpu bound in most scenarios. The pi can be brought to its knees with a lot of voices and effects but that is to be expected.
What baffles me is that it randomly drops a ton of UDP packages, fails to read/write disk and randomly experiences high load only to quiet down later. Basically it seems like it really sucks at i/o. Might there be a benefit to using FreeBSD in this scenario?
Whatever the OS, if you’re still using the internal SD card, upgrade to an SSD ASAP. The SD card has terrible random IO. When I switched, I saw routine tasks like “apt update” drop from a minute or so to a few seconds.
That’s with a high quality SD card, too. I don’t have it nearby at the moment, but it was one of the ones the RPi website recommended.
Commenting to something said within the linked article: 32-bit Devuan (with Trinity Desktop aka KDE3.5 on maintenance) is still available at http://exegnulinux.net/ with Devuan/Debian repos. I'm happily running that on a Core2 Duo laptop.
Not OP but I had a Late 2007 Core 2 Duo with 4G ram that could hold its own 3 years ago.
It was not comfortable but definitely usable (unlike a 2005 Imac G5 for example).
A 2013 4th gen i5 laptop with a SSD (major difference in trems of experience) and 8GB Ram remains totally usable for regular stuff (watching movies, Youtube, browsing the web, basic dev work)
The plastic body is generally what fails before everything else.
As long you have at least four cores, 4GB Ram, linux and above all a SSD you should be fine
Browsing is slow but not that unusable. firefox-esr is in the repos; I prefer palemoon but I'll take what I can get. Gnumeric is faster than LO; both are in the repos. The Broadcom blobs for that Gateway machine are sadly out of date, so I yanked the wifi module out entirely; ethernet works fine, though in most cases I use it landlocked. The editor I prefer (jstar) is TUI, so I mostly work out of xterms.
Use-cases? Remote and while-you-wait work, RS232 and ethernet test console. It's bigger than a netbook but it's what I've got, so I lug it around.
IIRC correctly from my Late 2007 Intel Core 2 Duo MacBook days, that cpu can handle a 64 bits OS (although in my case the EFI could not so you had to modify it in order to be able to boot a 64bits OS)
The laptop is a Gateway MX8711. I tried the Exe-Gnu 64bit live-USB and it refused to boot, so I shrugged and booted it into the 32bit flavor. Inherent or model-specific (or offended at only having 2G DRAM to play in), it wasn't worth my time to chase down why, not for an ancilliary machine.
I run a RaspberryPi 3 with FreeBSD 13 booting off an SD card and a USB SSD for storage [1]. Coincidentally today (1/7/2024) is its one year anniversary.
It runs a jail with my single user GoToSocial ActivityPub server [2] reasonably well with cloudflared [3] handling incoming traffic and acting as CDN to take some of the load. Originally it was only using an SD card, but there was too much IO contention so a USB-SSD adapter is used to offload the IO.
I choose FreeBSD over Linux since I have other Rpis with Linux already and wanted more experience with *BSD, jails, and ZFS. Unfortunately ZFS wasn't the best choice on an Rpi since it's more cpu intensive and switched back to UFS.
Overall it's been solid, multiple GTS updates and have it on my list to update to FreedBSD 14 but not really in a rush.
Oh puh, I never did benchmarks (on the rpi) but had the exact same impression...much, much faster, I use my rpi4 as a backup nas with nfs and ufs2 on the external drive, and the transfer speed was much faster than linux's, also it "feels" much faster to do anything...again I had not done any benchmarks on the rpi.
And I have not even touched "kern.sched.preempt_thresh" as this is not a desktop system.
What also impresses me is that you can load a FreeBSD system to 5x maxload (or much more) and it's still usable, with Linux you have horrible stuttering (on a desktop system).
I'm running 13.2 rel in an RPi3 using a 32GB SDCard. It was a hobby project at first. Now I'm running `freeradius3-mysql-3.2.3`, PHP-FPM + daloRadius (a simple web interface for freeradius), tailscale, nut, gstat_exporter, node_exporter, mysql-server (tuned to consume less memory) and consumes just 300 MB of RAM.
I would like to have a comparison with DietPi running the Pi, but so far with a few optimisations the performance has been great. Granted that the Radius server serves 2 ubiquity APs in a SOHO with a handful of WiFi connections and it's nowhere near a full-blown "campus" level deployment - that would require a huge mysql server.
However, even the specs for the freeradius server + SQL were something like 2GB IIRC, the combo runs fine.
In my experience across a wide range of hardware FreeBSD dramatically outperforms Linux when the concurrent processing load is high or there is significant memory pressure.
While Linux is way more popular because of hardware support, lxc/lxd/Docker and various user friendly features, FreeBSD performs considerably better in my experience for heavy processing workloads.
26 comments
[ 4.4 ms ] story [ 61.9 ms ] threadI've always thought of distributions (whether they are BSD or Linux) as:
bootloader
kernel/initrd of some sort
/sbin/init
libc
shell / userspace tools
package manager
I think a lot of "noise" is made off of such slight distinction between these
Back on topic:
From the article
> Nope, no match — FreeBSD's performance on the Pi is still way better, even without overclocking
How? Like, it's the same hardware, the same processor executing instructions. The Linux kernel/Linux compiled applications are that much slower? That's surprising. I wonder if that could be fixed easily with some kind of config tweaks somewhere. That would strike me as "something is broken" if the performance isn't within 1-3% of each other Linux vs BSD
I find it hyperbolic/probably untrue to say "oh, I ran Linux on my RaspberryPi, it was so slow I couldn't use the web browser. I switch to FreeBSD and it was so much faster it was usable"
So it sounds like the alleged difference in performance is subjective based on interactive use, not benchmark numbers. Just speculating here but I would guess this comes down to differences in CPU scheduling algorithms. Last I checked, Linux and FreeBSD used very different scheduling algorithms.
However, what was described in the linked article were the snappiness of an Internet browser and of a graphical desktop and the USB and audio performance.
Those may depend a lot on the operating system support, so they may vary noticeably between operating systems.
While I am using both Linux and FreeBSD on x86, I have not tried FreeBSD on Arm, mainly because it has official support only for a few SBCs. Because Linux on RaspberryPi felt quite slow, I would not be surprised if a FreeBSD desktop feels snappier.
In general, Linux has support for a much greater variety of hardware than FreeBSD, but among those kinds of devices that are supported by both it cannot be predicted which of the two operating systems will have a better performance for a certain application.
I installed FreeBSD on a raspberry pi a few years ago, and I don’t think I ever got WiFi working. No FreeBSD is not “at fault” for not being popular enough on the desktop to receive proprietary drivers, but as a user it sure is frustrating to struggle to get such a basic function working
What baffles me is that it randomly drops a ton of UDP packages, fails to read/write disk and randomly experiences high load only to quiet down later. Basically it seems like it really sucks at i/o. Might there be a benefit to using FreeBSD in this scenario?
That’s with a high quality SD card, too. I don’t have it nearby at the moment, but it was one of the ones the RPi website recommended.
A note for when you have problems: that’s the cause.
Name brand, high quality USB SSDs are the way to go.
It was not comfortable but definitely usable (unlike a 2005 Imac G5 for example).
A 2013 4th gen i5 laptop with a SSD (major difference in trems of experience) and 8GB Ram remains totally usable for regular stuff (watching movies, Youtube, browsing the web, basic dev work) The plastic body is generally what fails before everything else.
As long you have at least four cores, 4GB Ram, linux and above all a SSD you should be fine
Use-cases? Remote and while-you-wait work, RS232 and ethernet test console. It's bigger than a netbook but it's what I've got, so I lug it around.
I have a 2007 MacBook and it runs 64 but EndeavourOS no problem but I have 8 GB in it.
It runs a jail with my single user GoToSocial ActivityPub server [2] reasonably well with cloudflared [3] handling incoming traffic and acting as CDN to take some of the load. Originally it was only using an SD card, but there was too much IO contention so a USB-SSD adapter is used to offload the IO.
I choose FreeBSD over Linux since I have other Rpis with Linux already and wanted more experience with *BSD, jails, and ZFS. Unfortunately ZFS wasn't the best choice on an Rpi since it's more cpu intensive and switched back to UFS.
Overall it's been solid, multiple GTS updates and have it on my list to update to FreedBSD 14 but not really in a rush.
1. https://social.ecliptik.com/@micheal/statuses/01GP860MYM2CGH...
2. https://gotosocial.org/
3. https://github.com/cloudflare/cloudflared
And I have not even touched "kern.sched.preempt_thresh" as this is not a desktop system.
What also impresses me is that you can load a FreeBSD system to 5x maxload (or much more) and it's still usable, with Linux you have horrible stuttering (on a desktop system).
I would like to have a comparison with DietPi running the Pi, but so far with a few optimisations the performance has been great. Granted that the Radius server serves 2 ubiquity APs in a SOHO with a handful of WiFi connections and it's nowhere near a full-blown "campus" level deployment - that would require a huge mysql server.
However, even the specs for the freeradius server + SQL were something like 2GB IIRC, the combo runs fine.
While Linux is way more popular because of hardware support, lxc/lxd/Docker and various user friendly features, FreeBSD performs considerably better in my experience for heavy processing workloads.