It must have been a busy week for the PR department at Raspberry Pi, with the launch of their latest single-board computer, the Pi 5. Alongside the new board comes something else, an updated Raspberry Pi OS version.
This is built from Debian 12 “Bookworm”, and supplants the previous “Bullseye” version. As well as the new OS base it comes with a pile of Pi-specific upgrades including an optimsied version of Mozilla Firefox. Probably most important is that henceforth (at least on 64-bit boards) its desktop will use the Wayland compositor rather than X11 to draw and manipulate windows. This is a development that has been in the works for a very long time — it must be almost a decade since the first Raspberry Pi blog entry about Wayland — so it’s welcome at last to see it.
The new tweaks as well as Wayland are supposed to deliver a much faster Pi experience, so we thought we’d break out the stopwatch and do some rough real-world tests. The bench 8GB Pi 4 here has a vanilla 64-bit Bullseye installed, so off we went to measure boot time, Chromium browser opening time, and Hackaday load time. It was time to download the new 64-bit Bookworm image and do the same. Have we just downloaded a power-up?
Both tests were done with an everyday boot, after the first-time OS set-up, and with all browser caches emptied. First up was a significant boost, with Bookworm booting in 37.14 seconds to Bullseye’s 53.5, but the Chromium opening was a little more disappointing. On Bullseye it took 7.15s, while Bookworm’s Chromium managed a more pedestrian 9.13s. The new Firefox takes only 7.95s to open. Both Chromium browsers load Hackaday in about 1.8s, while the new Firefox did the same job in a shade over 3s.
So allowing for our stopwatch reaction time and the ad-hoc nature of the test, this is a faster-booting OS, but the underlying hardware is still the limiting factor. We’re disappointed to see that there’s no update for the x86 version of the Raspberry Pi Desktop, and we hope they’ll be able to rectify this in the future.
Curiously, Netscape also took 3 seconds to load — on a 25 MHz machine 30 years ago.
Is there some fundamental rule that developers will add features and stop optimizing performance until the wait time is *just barely tolerable*?
Why is it that my 1 MHz Apple ][ could render a character to the screen in 30 milliseconds, but my 3 GHz i7 takes 200 ms? Same with mouse motions. Worse, it’s not even a consistent delay. Frustrating. And that’s with local apps. Web-based junk is even worse.
It doesn’t have to be this way. Yet we put up with it.
Your 1 mhz Apple didn’t have all sorts of stuff running in the background while your I7 does.
That said I agree, optimization is out the window with modern sw devs
Part of the reason is that there’s poor binary or library compatibility at the lower levels, so the layers and layers of abstraction are necessary for accessibility. It’s comparable to having to run a BASIC interpreter for cross-compatibility, and not cheat by using PEEK/POKE to access the hardware directly.
“Curiously, Netscape also took 3 seconds to load — on a 25 MHz machine 30 years ago.”
Browsers 30 years ago didn’t have 10% of the features that browsers now have.
“Why is it that my 1 MHz Apple ][ could render a character to the screen in 30 milliseconds, but my 3 GHz i7 takes 200 ms? Same with mouse motions. Worse, it’s not even a consistent delay. Frustrating. And that’s with local apps. Web-based junk is even worse.”
Is your Apple ][ running 30+ background/multitasking/threaded applications?
Try booting MSDOS on your 3GHz i7 and run the same tests (assuming your i7 can even start MSDOS in x86 real mode).
I guess what I am saying is that you can’t really compare older apps/hardware with current day apps/hardware.
>the features that browsers now have.
Do we need these features? The entire point is, with modern web applications the browser is now an entire operating system that takes gigabytes of memory and runs inefficient virtual machines that push data through two dozen abstraction layers, so you need a 3.5 GHz CPU to keep the user interface latency low enough to be tolerable.
I dont totally disagree with you but I guess that sandboxing is useful for security. Also try to remember the websites from the 2000s, the awful user interfaces using flash,… I guess the new features aren’t totally useless.
Part of the problem is the inclusion of old legacy stuff that still has to be there for everything to work, which bloats up the software in terms of memory footprint. The sandboxing though could be done at a lower level, independent of the browser, so the apps you use are just passed through the browser to the virtual machine instead of the virtual machine running on top of the browser.
to Dude:
basically, you look at the “old stuff” whereas jaros159 looks at the “new stuff”.
remember microsoft office, or even worse: libreoffice, its metoo sibling, blindly copying all the ridiculous stuff and idiocracies of the former.
and of course there is a xkcd about that:
https://xkcd.com/1172/
“Browsers 30 years ago didn’t have 10% of the features that browsers now have.”
Hardware 30 years ago didn’t have 10% of computing power that hardware have now (1000x faster “clock”, more efficient threading, additional instructions etc.).
Hardware 30 years ago didn’t have 10% of hardware, hardware have today (many CPU inside CPU).
Compilers 35 years ago were not as optimized as now.
We got lost at some point :)
For starters, 30 years ago your screen was 640x480x256, while now it’s at least 3840×1644×16777216.
61.65 times more pixels to manage.
Moore’s law (paraphrased):
The speed of computers doubles every 18 months.
Gate’s law:
The speed of software halves every 18 months.
I don’t see it. People have rediscovered optimization and make use of the GPU more, so software seems to be getting faster or else only very slightly slower. Not counting stuff with brand new applications like AI and Blockchain that use lots of power.
Yes, of course there is. I remember being impressed mouthing from a Z80 based machine with memory measured in K to a 486 with a 1 gigabyte hard drive.
Now you are looking at desktop machines with memory measured in gigabytes and storage in terabytes.
I still can’t type any faster.
Moving not mouthing… I blame autocorrect
I not so long ago resorted to Netscape Navigator on Win 10 to circumvent access to my NAS which another OS would no longer support access to.
Wayland is such an awful replacement for X11. Tools like xdo are completely broken, and basic things like being able to use cli with the clipboard no longer work. Gone too are fundamental things like network transparency with X11 forwarding.
“X tools don’t work on something that isn’t X”
I’m also not sure why a compositor should be responsible for network transparency. I understand that there’s utility in a system that’s grown over decades, but I don’t think something should be dismissed simply because it’s little more unix-ish in its philosophy about boundaries of utility.
Network transparency should be implemented in a layer that is lower level than the desktop/window manager or application.
This way any application can be ran in any UI remotely regardless if the author implemented such functionality or not.
Anything less is a HUGE regression which actually puts Linux below Windows in functionality.
WTF can’t Wayland people understand that???
To be fair, Linux was already behind everything from XP on in that getting sound with your remote display is very difficult in Linux. I was hoping for years that would change but instead it’s more like they decided to punch the deaf penguin’s eyes out making him blind too.
The X11 model made a lot of stuff generally Just Work, and you rarely had to ever think about it(except when xsession-errors filled up your disk). Everything was compatible since there was just the one implementation. Not the most elegant solution, but extremely practical and convenient.
1) https://superuser.com/questions/1189467/how-to-copy-text-to-the-clipboard-when-using-wayland
2) waypipe
When copy/paste require instructions the UI is a failure.
Did you learn xclip in your mother’s womb, we surely learn stuff.
Wayland isn’t X, maybe try taking a breath and realize you’re doing just about the same thing windows users do when switching to linux: “if it’s not the exact same thing, it’s bad”
Also, wl-clipboard is even easier, what are really on?
I’ve often wondered, if modern programs were written with the level of programming optimization used with people were concerned with every last bit and clock cycle, how much more information could be processed.
No doubt that becomes tricky on hardware that calculates instructions in a different order to which they are written, instead of just doing what’s been asked of it.
software would also cost $1000, take years to develop, have mostly CLI tools, and patches would take months.
when patches involves sending out floppy disks software tend to be written with a bit more care
The closer to the metal that you code the more efficient that you tend to be in my experience.
The less you have in the way of resources the more careful you are.
People who care more about perfecting the code than anything else don’t seem to care much about applied software. They seem like they’d prefer a low tech world where computers are mostly just used as a mental excercise.
Wayland cuts out a ton of dumb X11 IPC. It’ll make the system more *responsive* but it won’t necessarily make programs open faster or pages load quicker. If you want to measure the difference, check something like how long it takes to tab between windows, fullsize them, etc.
This is exciting! I run wayland on most of my machines (works better for me, easier multi-display support in lightweight distros), and every once in a while (very rarely nowadays) I come across something with a GUI written specifically for X. With how widespread Raspberry Pi OS is (and it looks like Gnome is doing this too!), I imagine many of these holdovers will either be ported to a more neutral rendering system or get forked to do so.
It’s so disappointing to see that the Raspberry Pi foundation, which was supposed to be all about education went with Wayland, basically just an optimized toy for playing games and watching videos that kills any more interesting functionality.
In what conceivable world is a cheap dev system running Wayland less educational than a cheap dev system running X11/Xorg?
Hey.. look at this cool thing I can make my computer do….
(is displaying remotely)
I wonder.. what else can I figure out how to get it to do…
Aww well.. Can’t do that anymore.
But sacrifices had to be made to get games to be faster!
Let’s go get educated in the latest shoot-em-up!
Except you can do that still, I’ve been using a Wayland system with three extra screens running over the network just today. You just need to use the appropriate tools.
Shannon – does that mean you have to write your own compositor? Or does it limit you to using one of the few desktop managers that actually implemented it themselves? (see what I wrote above about network transparency should be in a lower layer).
Also wondering.. can the display run another OS? Displaying X apps remotely on Windows right now….
If Wayland actually does have all that… what are these magic tools you speak of? Thanks!
Ok. I am absolutely shocked to see that Waypipe actually works in WLS. We recently upgraded to new PCs w/ Win11 at work and previously I used Cygwin which was definitely not going to run Waypipe. I assumed the same would be true with WLS.
Performance is way better than I am used to. Although it’s not really usable for me since it can only run Wayland apps but I won’t blame Wayland for that.
I guess if stuff starts going Wayland-only it won’t be the apocalypse it looked like it would be.
I may owe Wayland itself a little bit of an apology but I’m not really sorry to the devs as Googling how to actually do any of this always first brings up their very nasty FAQ and Youtube presentations stating that they basically just don’t care about remote users.
And then there was that announcement years back of RDP support.. which turned out to require grabbing a bunch of experimental code from Git and basically having the expertise of a low level graphics driver author yourself to use it.. then there was the discontinuation of that…
Now to answer the question.. how would one make a Wayland based terminal server….
Now my mind is blown.
I’m starting Weston through Waypipe, added -Y into the ssh parameters and I can run X apps over the same connection.
I’m playing with OpenSCAD right now and it feels faster than I am used to. Perhaps the magic is lz4 compression? I used -C with ssh but never even looked to see if I could pick a compression algorithm.
Ok.. so now that Waypipe is a thing maybe Wayland isn’t that bad….
Makes sense since it’s built to run on their toy computer used exclusively for badly emulating old video games.
The last I tried not only did Wayland shit on remote display but it wasn’t even possible to share one’s screen in an online meeting if using Wayland. Even though the same applications could do it just fine in X.
It’s like Wayland is for people that hate the internet or something. If you aren’t right there in person no display for you!
One can increase the boot time simply by booting from a USB 3.0 SSD (I use Samsung T5/T7s 500G) if that is a concern. Also helps application load time of course as well. With RPI-5 and the PCI-e M.2 SSD, should see even faster boot/load times.
To me the X11 vs Wayland stuff is moot as I normally run all my RPIs headless. SSH and SFTP is your friend. I see the RPIs as hobby automation project SBCs, not desktops. Even the ‘new’ RPI-5 I have pre-ordered will be run headless. My concern with the new spin is how to setup the networking interfaces remotely as they went to Network Manager now. A new learning experience I suppose after first boot.
I’m in much the same boat, and even putting off the upgrade to an RPi5 because my SBC requirements are so very low. I mean, it’s nice that it can be used as a desktop, but I never expect the performance to be particularly good. Handy in a pinch, and for some embedded applications, though.
The PCIe connection being made available on the new Pi, though…ooh, it’s tempting!
I can tell you from recent experience that NetworkManager will get out of your way, if you let it. LoL I tried diving in without reading the Arch Wiki, and ended up with an interesting condition, between NM and dnsmasq trying to configure a secondary NIC, at the same time. One of the “gotchas” is that you can write a dnsmasq.conf file, replace the original /etc/dnsmasq.conf with it, and NetworkManager will automatically use it, if you configure it to do so; no need to deal with dnsmasq “directly,” via services.
Yeah, I have two AMD Ryzen 5xxx desktops for any desktop work. So SBCs are just for automation and other fun projects. I’ve yet to need more than 1GB of RAM for ‘any’ of my projects. Heck I think even 512M would do. What excites me is actually the USB 3.0 ports. Each now has a dedicated USB controller in the RP1 chip. That should give top USB throughput even if both in use. Also should be able to handle power hungry devices (to a point) without gakking the board. I’d like to be about to hook up two USB 3.0 drives for example. With the RPI4, plugging in a portable 4TB HDD would cause reboots and such, so I couldn’t use it without resorting to a powered hub. Hopefully with the RPI-5 I’ll be able to… as long as I use the proper power plug (5V – 5A) . Crossing my fingers.
Thanks for sharing your NM experience. I have a spare RPI-4 and external USB SSD drive, so going to kick the wheels on the new PI OS with it this weekend. See how it goes.
To add, I usually setup the hardwire Ethernet port to a static IP for my internal network and just use DHCP for the wifi web/external network.
I setup an available RPI4 with the new PI OS 64bit bookworm. Had to resort to setting it up with keyboard/mouse/hdmi display rather than remotely. One thing out of the box is you have to first setup a username to use. There is no default ‘pi’ username. So how can you login remotely without first configuring a username??? I really don’t care for this … all in the name of security. Anyway, once username defined and the networks defined I could unplug the monitor/keyboard/mouse and login remotely. Back to normal. I still don’t see a problem with ‘pi’ as default username. First thing one does after first boot is setup a new password anyway… At least I do.
Fix for KiCad (with Xwayland) catastrophic slowdown when some of the windows are hidden is on the way: https://github.com/wxWidgets/wxWidgets/pull/23955
So, how do you add a new wifi network over a headless setup now?
I have an old HP laptop from 2007 wit 1GB of Ram, can’t install latest LinuxMint (requiring 64bit) would installing Debian Bookworm be possible?