[Info-vax] VAX vs. MV/8000 [was Re: Hard links on VMS ODS5 disks]
Johnny Billquist
bqt at softjar.se
Tue Aug 29 09:58:13 EDT 2023
On 2023-08-28 16:59, Dan Cross wrote:
> In article <uci441$lgj$2 at news.misty.com>,
> Johnny Billquist <bqt at softjar.se> wrote:
>> On 2023-08-28 13:15, John Dallman wrote:
>>> In article <ucgkbf$1bupe$2 at dont-email.me>, arne at vajhoej.dk (Arne Vajhøj)
>>> wrote:
>>>
>>>> On 8/27/2023 8:45 AM, Dan Cross wrote:
>>>>> Ah, this is precisely what x86 does, again underscoring how it
>>>>> is different from the approach that DEC chose with PDP-11
>>>>> compatibility on the VAX.
>>>>
>>>> That is not how x86-64 work.
>>>>
>>>> You cannot mix code.
>>>>
>>>> A 64 bit program cannot use 32 bit libraries.
>>>>
>>>> The build will detect it and reject it. But if that check was
>>>> disabled then the result would be almost guaranteed to crash.
>>>
>>> Dan is distinguishing between what the x86-64 hardware can do, and what
>>> the commonly-used operating systems support.
>>>
>>> None of Linux, macOS and Windows support calling libraries built for the
>>> x86-32 versions of the respective operating systems from programs built
>>> for the x86-64 versions of the operating systems. You're quite right
>>> about that.
>>
>> [...]
>>
>> I've tried to stay out, and don't want to get too deep in.
>> But in a sense, my question/issue would be: Can you take a binary for
>> x86 and run it without any "mode bit", or anything else, on an x86-64
>> and it works?
>
> Provided you set up segmentation correctly, those binaries will
> run just fine. You simply execute it in a 32-bit code segment,
> with 32-bit data segments. Is a "mode" bit involved? Kinda
> sorta, but that's an implementation detail. Usually the OS does
> this for you; the user program doesn't care.
Which is equally true for the PDP-11 mode bit on the VAX. ;-)
User programs just run. The OS is handling all the details on how to
actually get the machine in the correct state.
> But this is a strawman argument that is, again, besides the
> point I was making. I never said you don't have to take care
> when running 32-bit binaries on a 64-bit system, nor did I say
> that _every_ instruction is compatible between 32-bit and 64-bit
> x86.
Oh, I agree that we're splitting hairs. But I do think DG went a bit
further than AMD did, with the goal of being able to basically just move
the binaries over and run them. Hence the two stacks, and all that ugliness.
Yes, the OS might still need to set some things up, but I don't think
it's completely comparable what DG did with what AMD did, just as it
isn't the same as what DEC did.
And with all that said, I do think DG made a bad choice. AMD basically
did a good choice (or better, at least - anything involving the x86 is
inherently bad... ;-) ).
No need to comment on the rest you wrote. I'm not disagreeing.
Johnny
More information about the Info-vax
mailing list