Browse Prior Art Database

Integrating 64-bit C/C++ Applications With Existing 31-bit Programs

IP.com Disclosure Number: IPCOM000016458D
Original Publication Date: 2003-Jun-23
Included in the Prior Art Database: 2003-Jun-23
Document File: 3 page(s) / 48K

Publishing Venue

IBM

Abstract

This invention enables a general and flexible operating system support for integrating 64-bit C/C++ applications with existing 31-bit ASM/PLX programs.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 46% of the total text.

Page 1 of 3

Integrating 64-bit C/C++ Applications With Existing 31-bit Programs

  As the computing demand increases, the operating system throughput, performance and capacity drive the computer hardware revolution to have higher computing bandwidth including the data addressability. What used to be 32-bit addressability is not good enough, large application server and data intensive analysis program push over the 32-bit addressability limit. Every worthy operating systems have implemented 64-bit support to address the demand for greater than 32-bit data addressability. However, there is also a demarcation between 32-bit and 64-bit processes. All operating system including z/OS do not support mixed 64-bit and 32-bit C/C++ programs within a single process.

Having a 64-bit C/C++ application environment does not implies that all applications will be transformed to 64-bit right away. In fact, for z/OS, the expectation is that the 31-bit to 64-bit application migration will be gradual and on a need basis. With that said, most of the 64-bit applications will need to have some ways and means to access their existing 31-bit ASM/PLX programs for specific functions. In addition, the z/OS operating system code itself also need to have an intelligent design in order to support the 64-bit and 31-bit functional integration. New invention is required to solve the 64-bit and 31-bit integration from both the system layer and the application layer. The invention to solve this problem is two-fold:

- exploit the zSeries unique hardware features to solve the system layer integration problem.

- design an integrated operating system support from compiler, runtime layer, and system layer to slove the application layer integration problem. System layer integration - In this disclosure, the system layer we are discussing here is the USS (Unix System Services) layer. Other z/OS system layer functions may employ similar but not exactly the same technology to provide 64-bit and 31-bit integration. The USS layer is the foundation for the 64-bit C/C++ Language Environment(LE) runtime support. It is this system layer integration design that facilitates the 64-bit and 31-bit application layer integration. The LE runtime library implementation employs the C/C++ application paradigm much like other 64-bit platforms - building two separate runtime libraries, one for 64-bit environment and one for 31-bit environment. Like some of the other 64-bit operating systems, z/OS 64-bit C/C++ environment does not imply that the system layer is 100% running 64-bit mode. In fact, an unique system design allows for most of the operating system code to remain running in 31-bit mode while providing 64-bit C/C++ application support. The USS system component runs mostly in 31-bit mode and takes advantage of the zSeries hardware architecture capability of being able to tell what addressing mode a particular caller is running on. USS makes use of the zSeries hardware instructions to switch addressing...