The OS design was barely there, which made it easy to understand and hack. But the GUI had a lot to recommend it.
e.g. both Windows and Mac OS came to the same "icon bar" design that RISC OS had in 1990. It had "magic" application directories for self-contained installation from floppies & downloads. It had a pretty nice vector drawing engine built in, sprite plotters etc. The OS was documented really comprehensively in a £80 set of programmers reference manuals. They wrote a really clear style guide, and (eventually) a well-understood higher-level GUI toolkit which produced great results with little code.
The most heinous part os the OS was the lack of shared libraries in userspace. If you wanted to share code between apps, you wrote it as a kernel extension module and made up new system calls! So this very common facility became a risky, advanced topic for programmers. (also because BASIC + assembler were free, and the C compiler was not, loads of popular libraries were hand-written in assembler).
Though to be fair, it was a similar situation with DOS TSRs (Terminate & Stay Resident) filling in interrupt vectors or hooking existing DOS ones for extra functionality; DOS extenders for memory most notably, but things like audio drivers, CD support etc.
e.g. both Windows and Mac OS came to the same "icon bar" design that RISC OS had in 1990. It had "magic" application directories for self-contained installation from floppies & downloads. It had a pretty nice vector drawing engine built in, sprite plotters etc. The OS was documented really comprehensively in a £80 set of programmers reference manuals. They wrote a really clear style guide, and (eventually) a well-understood higher-level GUI toolkit which produced great results with little code.
The most heinous part os the OS was the lack of shared libraries in userspace. If you wanted to share code between apps, you wrote it as a kernel extension module and made up new system calls! So this very common facility became a risky, advanced topic for programmers. (also because BASIC + assembler were free, and the C compiler was not, loads of popular libraries were hand-written in assembler).