Skip Navigation

Energy efficiency of Linux compared to other, typically closed-source operating systems

I'm posting this as more of a "fun thought" than anything else.

It's generally considered a fact that Linux, along with many other open-source software projects, are more efficient than their propriety closed-source counterparts, specifically in terms of the code that they execute.

There are numerous reasons for this, but a large contributing factor is that open-source, generally speaking, incentivises developers to write better code.

Currently, in many instances, it can be argued that Linux is often less power-efficient than its closed-source counterparts, such as Windows and OSX. However, the reason for this lies not in the operating system itself, but rather the lack of certain built-in hardware support for Linux. Yes, it's possible to make Linux more power-efficient through configuring things differently, or optimizing certain features of your operating system, but it's not entirely uncommon to see posts from newer Linux laptop users reporting decreased battery life for these reasons.

Taking a step back from this, though, and looking at a hypothetical world where Linux, or possibly other open-source operating systems and software holds the majority market share globally, I find it to be an interesting thought: How much more power efficient would the world be as a whole?

Of course, computing does not account for the majority of electricity and energy consumption, and I'm not claiming that we'd see radical power usage changes across the world, I'm talking specifically in relation to computing. If hardware was built for Linux, and computers came pre-installed with optimizations and fixes targetted at their specific hardware, how much energy would we be saving on each year?

Nanny Cath watching her YouTube videos, or Jonny scrolling through his Instagram feed, would be doing so in a much more energy-efficient manner.

I suppose I'm not really arguing much, just posting as an interesting thought.

39 comments
  • Linux used to be terrible in terms of battery life. However, that has changed significantly.

  • Interesting thought indeed, but I highly doubt that difference is anything you could measure and there's a ton of contributing factors, like what kind of services are running on a given host. So, in order to get a reasonable comparison you should run multiple different software with pretty much identical usage patterns on both operating systems to get any kind of comparable results.

    Also, the hardware support plays a big part. A laptop with dual GPUs and a "perfect" support from drivers on Windows would absolutely wipe the floor with Linux which couldn't switch GPUs at the fly (I don't know how well that scenario is supported on linux today). Same with multicore-cpu's and their efficient usage, but I think on that the operating system plays a lot smaller role.

    However changes in hardware, like ARM CPUs, would make a huge difference globally, and at least traditionally that's the part where linux shines on compatibility and why Macs run on batteries for longer. But in the reality, if we could squeeze more of our CPU cycles globally to do stuff more efficiently we'd just throw more stuff on them and still consume more power.

    Back when cellphones (and other rechargeable things) became mainstream their chargers were so unefficient that unplugging them actually made sense, but today our USB-bricks consume next to nothing when they're idle so it doesn't really matter.

    • Yes, massively. At least with current data, I don't imagine it would even be possible to measure this on a large scale, especially given the variation in what a computer is actually trying to do. I think it's made even harder by the fact that software is often targetted at Windows or OSX rather than Linux, so even benchmarking software is near impossible unless you're writing software which is able to leverage the specific unique features of Linux which make it more opimized.

      • Linux, so even benchmarking software is near impossible unless you’re writing software which is able to leverage the specific unique features of Linux which make it more opimized.

        True. I have no doubt that you could set up a linux system to calculate pi to 10 million digits (or something similar) more power efficiently than windows-based system, but that would include compiling your own kernel leaving out everything unnecesary for that particular system, shutting down a ton of daemons which is commonly run on a typical desktop and so on and waste a ton more power on testing that you could never save. And that might not even be faster, just less power hungry, but no matter what that would be far far away from any real world scenario and instead be a competition to build a hardware and software to do that very spesific thing with as little power as possible.

    • At least with AMD on Wayland, gpu offloading works seamlessly. But I'm not sure if the GPU is actually powered off when I'm not using it; my use case is an egpu rather than a dual GPU laptop so I don't notice battery from it. I don't know what the situation is with Nvidia or xorg

  • I'm a big fan of the idea of efficient computing, and I think we'd see more power savings at the End Users based on hardware. I don't need an intel i9-nteen50 and a Geforce 4090 to mindlessly ingest videos or browse lemmy. In fact, I could get away with that using less power than my phone uses; we really should move to the ARM model of low power cores suitable for most tasks and performance cores that only turn on when necessary. Pair that with less bloatware and you're getting maximum performance per instruction run.

    SoCs also have the benefit of power efficient GPU and memory, while standardizing hardware so programmers can optimize to the platform again instead of getting lost in APIs and driver bloat.

    The only downside is the difficulty of upgrading hardware, but CPUs (and GPUs) are basically blackboxes to the End User already and no one complains about not being able to upgrade just the L1 cache (or vram).

    Imagine a future where most end user MOBOs are essentially just a socket for a socketed-SoC standard, some m.2 ports, and of course the PCI slots (with the usual hardwired ports for peripherals). Desktops/laptops would generate less waste heat, computers would use less electricity, graphical software developement would be less of a fustercluck (imagine the manhours saved), there'd be less e-waste (imagine not needing a new mobo for the new chipset if you want to upgrade your cpu after 5 years), you'd be able to upgrade laptop PUs.

    Of course the actual implementation of such a standard would necessarily get fuckered by competing interests and people who only want to see the numbers go up (both profit-wise and performance-wise) and we'd be back where we are now... But a gal can dream.

  • Couldn't you just compare the energy usage of Laptops or desktop PCs with native support running Linux compared to the energy usage when running Windows on them? I have a PC with an AMD GPU and CPU so my hardware is fully supported, I could actually test it. I think a laptop would be better to test on tho, since a desktop PC might not be trying to use as little power as possible in the first place.

    • You probably could, but reasonably there's not enough data out there to do this.

      Still, I'll mention that even with an AMD CPU and GPU, Linux does often lack support or configuration off-the-bat, to massively varying degrees. The well-known example of this is with Nvidia's propriety GPU drivers, which historically have been a massive issue, and will probably continue to be for a while even with Nvidia exposing more of its source code with its GPU drivers.

      The kind of support which I'm referring to, though, extends beyond this in many ways. One thing I didn't mention, for example, is software support for linux. Many linux ports fail to leverage the full potential of Linux, either because the developers don't know how to, or because they don't care to. I recently read a dev blog for Factorio relating to this issue. The developer spoke about a very specific optimization which can be applied to Linux when saving games, which, in short, allowed for games to be saved concurrently, improving performance. Using this feature requires programming specifically for linux. While Proton offers incredible gaming support on Linux today, this sort of thing is not something which Proton can magically make work on its own.

      The same sort of idea often extends out into other areas of software and hardware. Applications which have been directly ported to Linux without much consideration often fail to implement these sorts of additional features and optimizations.

      The issue of hardware is, indeed, slightly different. One key thing which is often overlooked by people when assessing this sort of thing is the optimizations and tweaks applied by the hardware manufacturers and vendors themselves. These tweaks are often highly specific to the hardware they're used for, and usually the vendors will only apply them to work with Windows, or the operating system which the laptop or computer ships with. Going back to the driver issue, the same thing applies. GPU manufacturers will often release high-quality drivers aimed specifically at Windows, offering optimizations which specifically benefit Windows. There's almost zero incentive for these companies to release the same, or on-par drivers for Linux, due to its smaller market share.

      What this means, is that a much larger amount of work needs to be done by the Linux community to create or improve drivers for specific hardware. Drivers which will work off-the-bat with Windows will not work at all with Linux, and companies which offer Linux alternatives for their drivers often invest significantly more time on their Windows-counterparts. This is only complicated by the fact that many hardware manufacturers keep their driver source-code highly secretive, so trying to program one or alter an existing one for linux is significantly more difficult.

      AMD, as you mentioned, is often much better than alternatives such as Nvidia when it comes to releasing these "secrets" or source code, which makes developing AMD drivers for Linux significantly easier, allowing driver developers to apply many more optimizations than they would otherwise be able to.

      In conclusion, then, the only way this can truly be fixed is if these companies choose to support Linux as much as they do Windows, which unfortunately won't truly happen until there's some sort of monetary incentive (ie Linux having a majority market share).

39 comments