Re: Whizzy New Feature: Paged segmented memory

Richard B. Johnson (
Tue, 8 Jan 2002 09:14:22 -0500 (EST)

On Tue, 8 Jan 2002, Anthony DeRobertis wrote:

> jtv writes:
> > On Tue, Jan 08, 2002 at 02:17:14AM -0500, Anthony DeRobertis wrote:
> >>
> >> A nice thing about two stacks is that it can be a completely
> >> userspace thing. No need to involve the kernel at all; just gcc
> >> and friends.
> >
> > Doesn't it have ABI implications as well?
> On every architecture I'm familiar with. But that's a userland issue. I
> don't believe the kernel cares how userland uses its stacks.
> Change gcc. Recompile world. All should work, assuming your gcc changes are
> bug-free, no one made assumptions about stack layout, no one wrote assembly
> code, etc. [In other words, after 4 months of debugging you might get X
> running again...]
> >
> > If so, why not go all the way and have stacks grow upwards? :-)
> Some architectures have hardware assistance for downward growing stacks. One
> example is 68K. I think x86 does too. OTOH, I don't think PPC does, though I
> haven't read the Green Book recently.
> Actually, if I were to be implementing split-stack, I'd probably have one
> grow upward. Probably the data stack, because some architectures (68K, at
> least) force the address stack to grow downwards.
> Put an unmapped page between the two stacks, and all should be fine.

At least with Intel ix8*, even though one can create a discriptor for
a (backwards) stack, you would have a hard time using it. 'Push' op-codes
decrement the stack-pointer and 'pop' increments it regardless of
the characteristics of the stack-selector. I don't know if this is
a bug or a feature.

Dick Johnson

Penguin : Linux version 2.4.1 on an i686 machine (797.90 BogoMips).

I was going to compile a list of innovations that could be
attributed to Microsoft. Once I realized that Ctrl-Alt-Del
was handled in the BIOS, I found that there aren't any.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at