On Sat, 16 Jan 2016 14:21:26 -0700 Scott Robison <scott at casaderobison.com> wrote:
> > Huh. An example of which is the "medium model" of the Intel 8086: > > 20-bit code pointers and 16-bit data pointers. A machine for which > > C compilers existed, and on which no Posix system will ever run > > (because it lacks an MMU). Thanks for that. > > > > Sorry for the OT diversion, but I'm just curious as I don't have > historical POSIX standards for reference. Does POSIX really *require* > an MMU? Certainly Unix like systems were written for 8086 class > computers, but given that POSIX was first standardized in 1988 I'm > just curious as to whether or not an MMU is a requirement or just > really nice to have. AFAIK Posix makes no statement regarding hardware. And Posix systems do run on "machines" today without an MMU, if you count bochs as a "machine" and disregard the MMU supplied by the underlying hardware. Posix requires process separation, which is most efficiently implemented in hardware, and was definitely needed back in the days of 4.77 MHz processors. Xenix ran on the 8086, to be sure. As best I remember, though, the Xenix that run on a stock IBM PC was single-threaded: no fork(2). Sorry, no links; the www can be skimpy on pre-1990 arcania. Apparently there were real multitasking versions of Unix running on the 8086, where the motherboard included some form of MMU. I'm sure they performed like dancing bears. --jkl