Unix is a bit of a mess, at least that's understandable because it's 'open'.
MS registry is a bit nutty, it should be refactored in some simple, clean way, which is apparently extremely difficult to do for big companies, especially those that consider 'backwards compatibility' to be 'everything'.
Thank god there are companies that still think about backwards compatibility and are not intent in breaking everything because there's a shiny new thing ... ahem ... "refactoring in some simple clean way"
'Backwards Focus Absolutism' means we live in a world of stupid cobwebs and terrible design. The Windows Registry is a hack, it was originally designed to do something mundane and simple. It just grew, like a virus.
It also means that until ~Windows 7/10 you could run even win3.1-era apps. And you didn't run into situations like "any 32-bit apps no longer work" or "any apps not updated in more than a year will be removed" as we've seen with Apple.
"If a change results in user programs breaking, it's a bug in the kernel. We never EVER blame the user programs. How hard can this be to understand?" - from his famous rant [1]
So Linux prioritizes backwards compat as well. It would be insane for any project relied on by half the computing world not to. MS just throwing out their registry and rewriting it would probably break a million programs and possibly break literal billions of people's computers in some way. Its a universal problem - the more dependants any piece of code has, the harder it is to change.
I think this is insane and narrow minded.
I suggest there should be 'eras' of version where things do change.
If they make OS changes, notify early, prepare basic materials, create 'auto-updaters' and allow a few years for change.
But it needs to be done.
https://www.ibm.com/docs/en/aix/7.1?topic=subsystem-device-c...
https://docstore.mik.ua/manuals/hp-ux/en/5992-4616/ch01s01.h...
The religious text files scattered everywhere on the FOSS clones?
The adoption of registry ideas by GNOME on gconf?
The configuration databases used by HP-UX and Aix?
The plists used by NeXTSTEP and macOS?
The settings per app used on Android (technically UNIX based at its Linux kernel)