[Info-vax] OpenVMS x86-64 and RDB and DB's in general on OpenVMS
Jan-Erik Soderholm
jan-erik.soderholm at telia.com
Tue Jun 30 18:47:26 EDT 2015
David Froble skrev den 2015-07-01 00:31:
> Jan-Erik Soderholm wrote:
>> JF Mezei skrev den 2015-06-30 21:12:
>>> On 15-06-30 09:08, clairgrant71 at gmail.com wrote:
>>>
>>>> Porting Oracle and Rdb to VMS are both huge, but very different,
>>>> undertakings.
>>>
>>>
>>> On the one hand, one is told that for most ports, it is just a matter of
>>> recompiling. (I realise there is the cost/trouble of testing/validating
>>> etc).
>>>
>>> What sort of system features would Oracle and RDB use which are
>>> architecture specific and require much work to port from one 64 bit
>>> architecture to another on the same opertating system ?
>>
>> The specific architecture in itself!
>>
>> Today Rdb produces IA64 machine code on the fly (and before that
>> VAX and Alpha naitive machine code), and that will need to be
>> ported to X86 machine code. The same for the pre-compilers that
>> also compiles the SQL EXEC, END EXEC sections into machine code.
>
> This leads me to ask whether some people made some bad decisions in the
> past ....
>
> But, I really don't know what I'm talking about, so I'd ask first, what is
> meant by "machine code"?
The same code as any asemmbler or compiler produces. The native
instructions understood by the CPU. What else is "machine code"?
A Macro32 file is not Machine code. It was close on the VAX, but
is far from it (not at all, actualy) on Alpha and IA64.
If anyone has issues understadning the concept of machine code,
thre is a good Wikipåedia page about it:
https://en.wikipedia.org/wiki/Machine_code
> On the VAX is this just Macro-32?
No, on the VAX it is/was VAX machine code.
> If so, then
> I'm not sure why that was ever changed, since Macro-32 is supported on
> Alpha and the itanic, and in the future on x86.
VAX machine code has never been supported on anything else then VAX.
Alpha and IA64 has *compilers* to compile Macro32 source code
into Alpha and IA64 machine code.
> Then again, "machine code"
> could be something that can be executed without a compile/assemble and link.
Of course, it is absolutely out of the question that Rdb should call
some external MACRO32 compiler at runtime! Rdb writes machine code
to specific memory segments and then calls that code directly.
Rdb has a few microsecond to create the code on the fly. Note that in
the case of pre-compilers this is done at compile-time, but for
any SQL's run dynamicly (SQL-prompt, ODBC clients or calls using
dynamic SQL in your local applications), this is done at run-time.
Again, this *is* described in the documents I linked to.
Is it that hard to open a PDF and do some homework? :-)
The links area still below.
Norm's document is very interesting from a technical perspective.
Second link, rdb_interp_compile.pdf
Jan-Erik.
>
>> There is also a need for a supported X86 version of BLISS. The
>> lack of that made the "Rdb8 for NT" to be canceled. That is
>> probably also need for VMS in itself, anyway... :-)
>>
>> Here are two documents that talkes about the port to Itanium.
>>
>> http://download.oracle.com/otndocs/products/rdb/pdf/rdbtf05_itaniumport.pdf
>>
>> http://h71000.www7.hp.com/openvms/journal/v14/rdb_interp_compile.pdf
>>
>>
More information about the Info-vax
mailing list