A multi-user, multi-processing operating system cannot be implemented on hardware that does not support A multi-user, multi-processing operating system cannot be implemented on hardware that does not support


Address translation
DMA for disk transfer
At least two modes of CPU execution (privileged and non-privileged)
Demand paging




My attempt:

Somewhere it explain as : Address translation is needed to provide memory protection so that a given process does not interfere with another. 

We also need at least 2 modes of execution to ensure user processes share resources properly and OS maintains control. This is not required for a single user OS like early version of MS-DOS. 

Demand paging and DMA enhances the performances- not a strict necessity. 


  
    Can you explain it in a formal way, please?
None of the above.

As you noted, DMA and demand paging can be useful features but are not necessary to support multiple users and multiprocessing.

Address translation is not necessary even for memory protection. Memory protection can be separated from address translation via a protection lookaside buffer or memory protection unit.

Providing a distinct privileged operating mode in the processor is not necessary for a multiuser system. In theory, provable trust of software can provide protection against misuse by users. Another alternative is capability systems; one can use non-forgeable fat pointers to provide resource protection.