- Linux is a patchwork of SW, written in a variety of programming languages, using a variety of libraries, some of which having the same functionality. There is duplication, misalignment, legacy.
- MacOS is developed by a single company. It is much more integrated and coherent.
Same for the CPU:
- x86 accesses memory through an external bus. The ability to install a third party GPU requires an external bus, with a standardized protocol, bus width, etc. This is bound to lag behind state of the art
- Apple chips have on die memory, GPU (actually same package but not same die). Higher speeds, optimization, evading from standardized protocols: all this is possible.
This has an impact on kernel/drivers/compilers:
- x86: so many platforms, CPU versions, protocol revisions to support. Often with limited documentation. This wastes hell a lot of engineering time!
- Apple: limited number of HW platforms to support, full access to internals.