ELI5 - why do computers/operating systems become slow?

TL;DR
Question:- why is it that operating systems doing the same basic task become heavier for the hardware as time goes on?

This is not targeted at FreeBSD or any specific operating system (although I may use specific operating systems for examples here)

Scenario:-
Recently I bought an Apple Mac Pro, I think it's a version 3.1. It has 8GB of DDR2 667MHz frequency RAM, and two quad-core processors. NVIDIA Geforce GT 120 512MB graphics card. Back in its day (what, 2007 maybe?) quite the powerful and pricey machine. I paid $50 for it. Looking at the numbers used for marketing above, it doesn't dazzle as much as the 960-core integrated whatever-chips of today. Anyway, I have it dual-booting at the moment. Mac OS El Capitan, and Linux (the current beta version of Fedora, to be specific) [for the dogmatic among us, I have three other machines which run exclusively FreeBSD as a desktop].

Mac OS is on a spinning rust hard disk, and Linux is on an SSD (because SSDs "solve everything" I say sceptically)

More recent Mac OS versions refuse to install at all (understandable given corporate and all that...) but the Linux installation is slow to the point of unusable. Booting up and loading Firefox to watch a YouTube video or something takes a good 10 minutes before you are even looking at the Youtube home screen.

I'm not concerned about it at all because I understand I've paid $50 for a computer and it's pretty awesome, but considering the sheer difference in performance, and considering what a machine like this did back when it was current (probably 3D animation, or music production, or photo editing), for it now to be virtually unable to run a youtube video on 480p using a current generation operating system and browser raises some questions in my mind. What causes this obsolescence? I have some ideas for what it might be, but I think this is the naive cynic in me talking, so I'm curious on lower level understanding and thoughts.

Thank you for your time and consideration.
 
Basically two things:

1. Just more features. A browser is a good example for that. Browsers got tons of new features over the years. They became complete "application platforms" quite a while ago (so nowadays, a browser needs e.g. a JavaScript engine that can efficiently run TONS of JavaScript code, of course only on "somewhat" modern hardware, it's virtually impossible without quite a lot of RAM and at least a few CPU cores...), they now reached a state where games, emulators, video-conferencing apps etc running in browsers is kind of a "normal thing". Looking at codebase size and build times of e.g. Chromium, it's a multiple of the whole FreeBSD system by now...

2. More abstractions, more layers of it. This can be both a good and a bad thing. It's a good thing when it improves software quality (and it has the potential to do so). It's "maybe" a good thing when it just speeds up software development (and yep, there's this saying "hardware is cheap", which is meant compared to the cost of software development). It's a bad thing when it is used completely mindlessly, and unfortunately you see this quite often as well ... projects pulling in HUGE frameworks "just because". (Maybe because the devs knew them well and were too lazy to think about solutions better suited for the problem at hand ...)
 
I'd say zirias@ outlined the most "common" points. However, there are other factors of which I'd like to mention one: Security mitigations

If it turns out that a piece of hardware has a bug or a design flaw which can be used as an attack vector, software behavior needs to be adapted to mitigate for that whenever possible. Depending the scenario, this can easily result in double-digit percent performance penalties.
Probably the most widely known of these: Spectre and Meltdown
But the list is much longer.
 
Yeah, suspected as such on the above points. "Just-in-time" compilation is a very big thing these days, and that ranges from .NET applications, to Angular frontends.

It seems there is no alternative for people who just want to use regular websites (such as this forum) in terms of a browser - if you want full support, it seems to be just Firefox (which won't run on this hardware at all...) and Chrome (where only an older version will run with a constant banner saying you get no updates) unless there's any other alternatives that I'm not aware of?

Got to be quite a lot of metal going to scrap just because you can't get updates due to a security vulnerability with a framework that I'll never use, but that's hardly a new issue.
 
Lots can be said about this subject, but maybe some of it is because todays engineers wouldn't understand how to cram a real system into 4KByte of RAM using a ROM BASIC interpetter and stuffing subroutines of machine code into arrays or string space.
 
Since we're already going off-topic: I'm currently working on a custom embedded Linux board. The PCB features a Cortex-A5 and 128MB of RAM. As an embedded dude, 128MB RAM is considered a sh*t ton of RAM. Guess what: systemd doesn't work out-of-the-box with 128MB of RAM. Go figure.
 
but the Linux installation is slow to the point of unusable. Booting up and loading Firefox to watch a YouTube video or something takes a good 10 minutes before you are even looking at the Youtube home screen.
Just out of curiosity, what kind of hardware (processor and RAM) are we talking about?
Even my 15-year-old Toshiba laptop with a 1.6 GHz dual-core and 2 GiB of RAM is faster.
 
Since we're already going off-topic: I'm currently working on a custom embedded Linux board. The PCB features a Cortex-A5 and 128MB of RAM. As an embedded dude, 128MB RAM is considered a sh*t ton of RAM. Guess what: systemd doesn't work out-of-the-box with 128MB of RAM. Go figure.

It should be fine if you are using a linux distro designed for embedded systems. Start reading up on yocto. LOL
128Mbyte really isn't as much as you'd think in the ARM embedded world of late. I can't remember last time I had to do an embedded ARM board with only 128MB.
 
It should be fine if you are using a linux distro designed for embedded systems. Start reading up on yocto. LOL
128Mbyte really isn't as much as you'd think in the ARM embedded world of late. I can't remember last time I had to do an embedded ARM board with only 128MB.
This is an OE (yocto) based build. Don't worry.
 
Just out of curiosity, what kind of hardware (processor and RAM) are we talking about?
Even my 15-year-old Toshiba laptop with a 1.6 GHz dual-core and 2 GiB of RAM is faster.

What software is your laptop running? Have you optimised it in any way?
 

What software is your laptop running? Have you optimised it in any way?
Just default Pop!_OS Linux / Windows 10, installed on a Kingston SSDNow V300 120GB (10 years old SATA SSD).
It's also rather slow, but 3-5 Minutes is all it needs to boot and open Firefox (except if Windows decides to install updates)
 
Just default Pop!_OS Linux / Windows 10, installed on a Kingston SSDNow V300 120GB (10 years old SATA SSD).
It's also rather slow, but 3-5 Minutes is all it needs to boot and open Firefox (except if Windows decides to install updates)
Ah I see, Windows 10 seems to be pretty efficient and tolerant of older hardware, I reckon it would probably run decently on this machine, but I don't fancy paying the activation costs. I also have a Macbook Pro (version 1.1) which is a Core 2 Duo, the only operating system that it will seem to boot is Windows 10 (due to it being EFI32 despite the 64-bit architecture) - soon overheats though (throttles clock speed back to 700Mhz), due to using the VESA driver, as Windows 10 drivers for the ATI Radeon X1000 don't exist, and the Vista drivers refuse to install.

I haven't used Pop! yet, I'm a long-time Debian user. I used Fedora Core 6 when it came out and hated it, so I've been using Fedora 38 lately because why harbour prejudices. It's decent enough, aside from being resource-heavy.
 
Conspiracy theory implies that Windows (Microsoft) inserts NOP cycle(s) in the kernel as the installed date gets older to force an upgrade.

There is a nice script out in Windows land that strips out the bloat from Win10.
Use carefully, as it can uninstall the Windows Store, etc, and break things.
Make a System Image backup, etc before running.
 
Conspiracy theory implies that Windows (Microsoft) inserts NOP cycle(s) in the kernel as the installed date gets older to force an upgrade.

There is a nice script out in Windows land that strips out the bloat from Win10.
Use carefully, as it can uninstall the Windows Store, etc, and break things.
Make a System Image backup, etc before running.
I only use Windows in earnest on my work PC, and that's only a few months old anyway so no issue there.

In my horde of dilapidated worn-out older hardware, some of the newer (DDR3 generation) machines struggle to run FreeBSD with Firefox on YouTube without becoming so hot that it becomes uncomfortable to hold, which we've guessed is likely due to the slightly less efficient graphics drivers for the cards that they use, so, you know, if there's a conspiracy, time for some introspection ;):p
 
I heard that the google start page pulls in more data that the original doom install media. That may explain some things.
An awful lot of javascript, with frameworks, with whatever underlying code is needed (boost, whatever). There is too much code to run. Is it worth it?
 
Maybe because I always have new machines and over-config them with as much hardware as possible, but none of my machines are slow. Even my Windows 11 gaming box boots in seconds from power off. I know not everyone has brand new hardware so is not in this situation. Open source operating systems are I believe ideal for older hardware but there limits: at some point it's time to move on. It is a bit sad though that computer equipment continues to live way past its "prime" and normally gets discarded, especially when it is still useful.

For me, I do appreciate nostalgia but I want fast and I want modern.
 
I only use FreeBSD for non-desktop environments, such as an ESXi VM for DNS, and XigmaNAS for network attached storage.
FBSD runs great in this situations, and no heat generation.
It loafs on the DNS VM, and really loafs on a big Xeon/ECC/ZFS2 SuperMicro platform for the NAS.
I'm just a noob with FBSD, but I see zero reason to try and force it to work as a GUI desktop environment.
 
It could be the growth in Moore's Law to be 'filled up + 1' by software developers. Especially in GUI, programs tend to leave UNIX Philosophy. Even basic peripherials like mice and keyboards nowadays come their own software, and people install it.

Best demonstration for me is Adobe Reader, although I only use it on my W10 bosstop. It neglects the system wide window manager and things like cursors and cursor changes, dialogs, buttons, etc. The code of the program gives the same 'user experience' on every OS/platform, probably due to 'one code to rule them all'. That means you always have tons of unusable code for your machine that has to be processed even doing simple tasks. Attractive consumer selling point, lazy programmers, greedy corps.

The other thing are those 'Swiss Army knife' programs like Firefox. It can do almost anything, but at a huge cost and three updates a week.

One of the nice things of my Mac Classic back in the nineties was, that all basic things came out of the Mac Toolbox. The toolbox defined everything needed like dialogs, icons, buttons, menus, windows, basic operations. The only thing a program had to do is call the right things from the toolbox. With 8Mhz it was blazingly fast and programs were very small (45kb for MacWrite or so, all my programs fitted on ONE 1.4Mb floppy disk).

Security is an issue, but as a non-programmer I think that more code and complexity adds more attack vectors.

That is why I like FreeBSD so much: I can choose programs that just do one thing. Software that overrides my window manager are to be deleted immediately. That keeps my machine very fast and stable. On the hardware side I only use peripherials that can do with the base OS. So no Nvidia for me, and tested my Keychron keyboard in the store to be sure it worked out of the FBSD-box (and it does!).

Simplicity is key. A Willys Jeep is faster in the terrain and easier to maintain than a Hummer.
 
So no Nvidia for me
Huh? One of the nicest things is that Nvidia officially provides FreeBSD support/drivers. You can literally download FreeBSD drivers from their website. All of my desktop machines are running Nvidia GPUs and I have yet to encounter a single issue (other than missing CUDA support).
 
That is why I like FreeBSD so much: I can choose programs that just do one thing. Software that overrides my window manager are to be deleted immediately.
Out of curiosity, which browser do you use?

USB Keyboards and mice follow a protocol, so I don't know how they wouldn't work. I don't think I've seen model-specific drivers for a keyboard or conventional mouse for about fifteen years.
 
mostly because hardware got cheap and consumers put up with the crap the industry was shovelling at them
today we have printer drivers larger than windows 95 and video drivers larger than nt 4
windows xp ran pretty well in 256MB of ram which is half what a pi zero has
my first office freebsd server which replaced nt4 had 64mb ram and ran mysql, apache, sendmail, pop3, samba without any problem
it served about 10 people
 
mostly because hardware got cheap and consumers put up with the crap the industry was shovelling at them
today we have printer drivers larger than windows 95 and video drivers larger than nt 4
windows xp ran pretty well in 256MB of ram which is half what a pi zero has
my first office freebsd server which replaced nt4 had 64mb ram and ran mysql, apache, sendmail, pop3, samba without any problem
it served about 10 people
This is why I have a lot of hope for KolibriOS. I just wish they had ssl support.

EDIT: I should have said for my oldest hardware. I really want to use KolibriOS. But I use OpenBSD at the moment. 😃
 
Huh? One of the nicest things is that Nvidia officially provides FreeBSD support/drivers.

My hestitation might come from before I changed to FreeBSD or just when I started using it about 2019(?). The Nvidia was a PITA for me, so I decided not to use it anymore.
 
Back
Top