[Info-vax] OT: news from the trenches (re: Solaris)

Stephen Hoffman seaohveh at hoffmanlabs.invalid
Fri Mar 13 17:31:18 EDT 2015


On 2015-03-13 20:39:41 +0000, JF Mezei said:

> On 15-03-13 10:04, lists at openmailbox.org wrote:
> 
>> 64 bit support was and is a disaster. 32 bit and 64 bit code can't coexist.
> 
> If that is the case, how did Apple manage to progressively make OS-X go
> from 32 to 64 bits ?  There was a time where much of the OS was still 32
> bits but allowed apps to be 64 bits and vice versa for more recent times.

The first 64-bit transitional support in OS X was back around 10.3, 
with the PPC gear.

Here is a technical discussion of the 64-bit OS X transition with more 
recent OS X and for x86-64 systems, written for application 
programmers:  
<https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/64bitPorting/intro/intro.html> 


With OS X, applications are either compiled as 32-bit or as 64-bit, and 
AFAIK you can't mix the two within the same application.

This mixing may be what lists is alluding to with the most recent 
claims, but I'd seriously doubt it'd a factor with executing OpenVMS 
code on x86-64.  This as OpenVMS application and system code has been 
running on 64-bit processors for more than twenty years, and also 
because the OpenVMS x86-64 port inherently does not have any existing 
legacy x86-32 32-bit executable user code involved anywhere.  So... 
maybe the old 32-bit modes are interesting to some, but very likely 
moot for OpenVMS.

With recent OS X versions, you cannot load certain 32-bit constructs.  
Specifically, kernel code.  With OS X 10.8, support for these existing 
32-bit kernel pieces was ended; the older pieces cannot be loaded.

This deprecation is entirely analogous to an OpenVMS major release, 
when rebuilding user code linked against the OpenVMS kernel can be 
required.

As for 32-bit source code — as distinguished from the 32-bit run-time 
environment — VSI will have to figure out if they can continue to do 
what OpenVMS on Alpha and Itanium did, and sign-extend the legacy 
32-bit code out into 64-bit at run-time.    I expect that'll be pretty 
obvious.   Whether VSI might then decide to reverse the current source 
code practices and work toward uncluttered and native 64-bit support at 
the source-code level and to particularly make the support for the old 
32-bit source code constructs into the cluttered within the source code 
and build procedures and otherwise delimit the old code within pragmas 
or non-default compiler switches, now that is a separate question.   
(I'd expect the former here, but would hope for the latter.  Look 
forward.  Not backward.  But I digress.)

Outside of whatever mode the x86-64 chip powers up into, I wouldn't 
expect VSI to particularly look at implementing the older 32-bit or 
16-bit x86 operating modes during their port — and VSI will probably 
just sign-extend existing 32-bit code to 64-bit, like OpenVMS does now 
— but that's fodder for another day.


-- 
Pure Personal Opinion | HoffmanLabs LLC




More information about the Info-vax mailing list