4 ms·
I hesitate to call "the shit that keeps stuff older than a year working on that kernel" a tech debt. It's necessity in any general use OS. The stuff that can b
by adql 3y ago
I hesitate to call "the shit that keeps stuff older than a year working on that kernel" a tech debt. It's necessity in any general use OS.
The stuff that can be changed without breaking compatibility is, well, it was the developer's best idea at the time and some of them turned out to be good, some turned out to be bad.
Going "but on paper that idea would be better, let's make OS around it" rarely ends up being plain better. It's not one dimensional.
For example if your CPU scheduler makes all jobs run faster (less cache thrashing while keeping CPUs busy etc.) but is unfair, that might be great for people running batch jobs, but shit for desktop users.
Scheduler wasting cycles but making sure interactive tasks get the right level of priority might be improvement for desktop users but not for server use etc.
Or you figure out that the reason something was "unnecessarily complex", was actual necessary complexity that wasn't obvious at first.
Also Linux isn't exactly stranger to taking the whole bunch of code and replacing it with something better, I think we're at 3th firewall stack now (ipchains -> iptables -> nftables)
- gerdesj 3y agoThere was another one before ipchains - ipfw.
- throwaway914 3y agoSomething I would love to find is a practical/succinct guide on Linux kernel performance tuning. I'd love it to give examples of sysctl's you'd adjust for specific use cases like: - a real-time kernel - a single user mode kernel - an embedded device kernel (like an esp 32 or rpi) - general purpose desktop use (surely there are gems in here) - to use the linux kernel as a hypervisor hosting others - tuning the linux kernel for within a vm (guest to another hypervisor) - tuning for gaming performance I myself do not know enough about sysctls, and I'm sure it's a goldmine.