[sqlite] POSIX and MMU (was Re: out of the void: xDlSym)
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)
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)
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)
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)
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