Yes, it's a part of the problem, but an advantage at the same time.
Back in the 80s, when I bought my first computer, every company had their own set of parts and shipped them as a complete system. The Homecomputer. It was impossible, to exchange parts.
Then came the firs PC and together with it's operating system MS-DOS things changed a bit. Graphic boars for example became exchangeable. And harddisks, memory chips.... First mainly, so the companies could offer different parts (CGA graphics, Hercules, VGA and so on). People could Upgrade their hardware. Nearly a kind of revolution. So there was a standard interface for hardware, allowing other companies to produce cheaper & better parts to fit in.
So far that's good. Nowadays I can decide which part to buy and put in the machine. One reason, why prices dropped and quality became better year by year.
Disadvantage: The Operating system must know how to handle this hardware. It needs driver software and complex interfaces to handle a very large amount of different hardware. It must allow "alien" pieces of code (the driver) to access core parts of the os. Like memory handling for example. A harddisk together with it's driver software can only be fast, if it can move data from the disk into memory directly, without having to ask the os about permission for every single byte. Same for grafik boards. But then if the driver is written buggy, the os has no chance to do anything about it like it could if it had full controll over the system.
_________________
Deep into that darkness peering, long I stood there wondering, fearing,
Doubting, dreaming dreams no mortal ever dared to dream before (E.A.Poe)