[sqlite] POSIX and MMU (was Re: out of the void: xDlSym)

2016-01-17 Thread Howard Chu
Scott Robison wrote:
> On Sat, Jan 16, 2016 at 1:58 PM, James K. Lowden 
> wrote:
>
>> On Fri, 15 Jan 2016 21:41:41 -0500
>> Richard Damon  wrote:
>>
>>> there are machines where it doesn't work (you just need a larger
>>> program space than data space).
>>
>> 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.

ST-Minix ran on MC68000 - no MMU. POSIX API only defines a programming model, 
it doesn't mandate how it gets implemented under the covers.

An MMU *can* make some things easier, but we had fork/exec etc. even without it.

-- 
   -- Howard Chu
   CTO, Symas Corp.   http://www.symas.com
   Director, Highland Sun http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/


[sqlite] POSIX and MMU (was Re: out of the void: xDlSym)

2016-01-17 Thread Scott Robison
On Sun, Jan 17, 2016 at 1:33 PM, Howard Chu  wrote:

> Scott Robison wrote:
>
>> 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.
>>
>
> ST-Minix ran on MC68000 - no MMU. POSIX API only defines a programming
> model, it doesn't mandate how it gets implemented under the covers.
>
> An MMU *can* make some things easier, but we had fork/exec etc. even
> without it.


That's what I thought, but haven't spent enough time with it (from a
standards document perspective) to have certain knowledge.

Thanks.

-- 
Scott Robison


[sqlite] POSIX and MMU (was Re: out of the void: xDlSym)

2016-01-17 Thread Scott Robison
On Sun, Jan 17, 2016 at 10:09 AM, James K. Lowden 
wrote:

> On Sat, 16 Jan 2016 14:21:26 -0700
> Scott Robison  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.
>

No, I was thinking actual real hardware. If including virtual machines I'd
have to consider a virtual MMU to be an MMU.


> 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.
>

Indeed it can be skimpy, hence my asking. I was hoping you might have
information I was unable to find.

Obviously Unix and Xenix and anything that was released prior to 1988 was
not written with Posix conformance in mind. I was mainly curious if it
legally required an MMU (per the standard).

Thanks!

-- 
Scott Robison


[sqlite] POSIX and MMU (was Re: out of the void: xDlSym)

2016-01-17 Thread James K. Lowden
On Sat, 16 Jan 2016 14:21:26 -0700
Scott Robison  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



[sqlite] POSIX and MMU (was Re: out of the void: xDlSym)

2016-01-16 Thread Scott Robison
On Sat, Jan 16, 2016 at 1:58 PM, James K. Lowden 
wrote:

> On Fri, 15 Jan 2016 21:41:41 -0500
> Richard Damon  wrote:
>
> > there are machines where it doesn't work (you just need a larger
> > program space than data space).
>
> 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.

-- 
Scott Robison