Memory protection requires hardware support that the early microcomputers didn't have. On the early machines you could read/write to anywhere in memory.

On Intel hardware, for example, the 286 supported protected mode, but it wasn't until the 386 in 1985 that it was useful. https://en.wikipedia.org/wiki/Protected_mode#The_286 .

You can see that with OS/2. The early version supported the 286, which meant only one DOS program could run at a time. OS/2 2.0 in 1992 used the 386's protected mode, which allowed better support for multi-user DOS.

You'll note that Linux started on a 386, which unlike earlier processors had an MMU which supported paging.

Even on the 386 there were issues, as Wikipedia's OS/2 entry points out:

> OS/2 always allowed DOS programs the possibility of masking real hardware interrupts, so any DOS program could deadlock the machine in this way ... Later, release 3.0 leveraged the enhancements of newer Intel 80486 and Intel Pentium processors—the Virtual Interrupt Flag (VIF), which was part of the Virtual Mode Extensions (VME)—to solve this problem.

A lot of programs were written with single-user DOS in mind, and didn't follow practices like https://en.wikipedia.org/wiki/DOS_Protected_Mode_Interface that made it possible run in protected mode. "Mainstream" DOS user's won't switch to another OS if important programs don't run on that OS.

With that in mind, let's examine what "commercial Unix" means.

Xenix was commercial Unix from the 1980s, available for microprocessors. As its Wikipedia page points out:

> Microsoft said the difficulty in porting to the various 8086 and Z8000-based machines had been the lack of a standardized memory management unit and protection facilities. Hardware manufacturers compensated by designing their own hardware, but the ensuing complexity made it "extremely difficult if not impossible for the very small manufacturer to develop a computer capable of supporting a system such as XENIX from scratch," and "the XENIX kernel must be custom-tailored to each new hardware environment."

As I recall, you could get Xenix for hardware without memory protection hardware but an errant program could bring down the whole system.

Apple also distributed a Unix - A/UX - starting in 1988. It too required special hardware: "select models of 68k-based Macintosh with an FPU and a paged memory management unit" quoting its Wikipedia entry. Continuing, "Compared to contemporary workstations from other Unix vendors, however, the Macintosh hardware lacks features such as demand paging. The first two versions A/UX consequently suffer from poor performance, ... blaming not the software but the incomplete Unix optimization found in Apple's hardware"

(1988 is also when NeXT came out, using similar hardware; a Motorola 68030 CPU and 68882 floating-point coprocessor.)

My interpretation, therefore, is that 1) early microcomputers didn't have the expensive features of their minicomputer/mainframe cousins, 2) but they were cheap, which is why "mainstream" used them, 3) leading to an installed base of software which a expected single-process/single-user/no memory protection environment, 4) that couldn't be virtualized well until the 1990s, 5) and people didn't find those features useful enough to switch to another OS/platform with those features, like Xenix or A/UX.