Porting OpenSource to OpenVMS

Porting open source (UNIX) software to OpenVMS
Preface
OpenVMS and Open source both started using the Open prefix some time ago. Before that, all we had were a lot of operating systems, one of which was VAX VMS. Each operating system came with its own possibilities, strong and weak points. If you wanted a application to run on your computer you would buy or build the application yourself for your computer. The efforts needed to get the thing going, were often so great that people sought methods to make the process of implementing applications on a different platform (so called porting) easier. Especially software meant to be implemented on many different platforms and software developed for platforms not yet known had to take measures to make implementations as easy as possible. Conformation to open or industry standards helped a lot. If software was delivered including the sources so the client could modify the software to suit his (changing) needs with the obligation to make his changes available to other users of this software the term open source software comes to mind. Although open source software and open standards are strictly speaking not necessarily related, they are often mentioned in one breath, because people benefit the most if both are optimally available: easy (and thus cheap) deployment of applications. The open in OpenVMS just means that people can rely on the conformation to open standards in the OpenVMS operating system. OpenVMS is available not only on VAX hardware but also on Alpha and since 2004 also on industry standard IA64 hardware.
Purpose
This guide will explain how to port opensource software to OpenVMS using the features introduced in the DII COE releases of OpenVMS (7.2-6C1 & 7.2-6C2).The guide does not specifically target these versions of OpenVMS but the first public versions of OpenVMS with some of these new UNIX features. To be more specific, OpenVMS versions 7.3 7.3- 1, 7.3-2 and up. The latest OpenVMS version (OpenVMS 8.4) has the most of these new features.Because the development of the porting tooling is progressing fast and more portability features will be added to OpenVMS in the future, we will regularly update this guide. Many open source projects use UNIX shell scripts to build and install. We will be looking on how to do the same thing on OpenVMS using the UNIX commands and utilities provided by the GNV kit.We will not look at porting open source software to older versions of OpenVMS, although some of these older versions are still supported. Porting to these older versions of OpenVMS can be done, but it is considerably more difficult.
Intended audience Basically everybody with interest in open source software. If everything was perfect this would be the only requirement, but alas, things are not perfect. In the current versions of open source software OpenVMS is seldom recognized or considered as a target platform. We think (and hope) this will change soon. In the meanwhile porters will benefit from some programming experience. C and/or C++ experience on OpenVMS or UNIX systems is a big pre. Other languages often used in open source world are bash, make and perl. System management experience is more a requirement because porting may require making adaptations to the porting environment on OpenVMS.
Acknowledgments
We would like to thank all the people who contributed in any form to this guide. There are many people who contributed material, thoughts or inside information. Without their contributions this guide wouldn't be as useful l as it is now.
Part I Open source, Unix and OpenVMS
Open source versus propriety software
This guide will not start with a in depth philosophic discussion about the difference between Open source, Freeware, shareware and propriety software. Instead we prefer to follow the definitions given in the following publication:
Title: The BUSINESS and ECONOMICS of LINUX and OPEN SOURCE
Written by: Martin Fink
Printed by: Prentice Hall
ISBN: 0-13-047677-3
These definitions and the legal implications the various license agreements have, are for our purpose not relevant. We will concentrate on the technical aspects of the process of the port of open source software to OpenVMS.
Unix, Linux, Open Unix standard
As the majority of the open source software originates from a form of UNIX, we will have to know the characteristics of this type of platform and the differences between these platform and the target platform: OpenVMS. This is simpler said as done, as there are as many different implementations of UNIX as there are suppliers of hardware and operating system software. Starting in the early days of UNIX, when the universities not only had access to UNIX, but also had access to the source of the operating system, different solutions to common problems emerged. This resulted in a family of related operating systems commonly known as UNIX. Ownership of the UNIX brand name passed hands and the situation became rather confusing. Who had the one and only UNIX? So, people started to define standards (alas not one standard...) by which a "real" UNIX could be recognized. At <reference> is a comparison between the following UNIX standards with the OpenVMS features: XSI, POSIX Base, Unix 98, Unix 95, P96 P92, C99, C89, SVID3, BSD, LSB 1.3
LINUX is a very popular UNIX like operating system, available in many different distributions, each with slightly different characteristics.Making software for such a divers environment was a nightmare. But very inventive software developers found a solution. The solution was two fold:
* Define and enforce a minimum set of features through standardization, much like the RFC's for TCP/IP.
* Automate the build process by using a set of tools capable of finding and reacting (adapting) to differences between platforms. This led to the development of autoconf, automake and libtool. These tools are also known as the GNU autotools environment (http://sources.redhat.com/autobook/)
OpenVMS, open standards
OpenVMS on the other hand is a propriety operating system owned and maintained by HP. There are a few initiatives to make OpenVMS clones (for instance freeVMS (http://www.freevms.net)), but in this guide we will concentrate on the OpenVMS operating system from HP. As stated in the SPD (software product description) OpenVMS conforms itself to a set of Open Standards. open standards means in this respect that a standardization organization is responsible for the exact text of a standard. Full conformation to this standard means in our opinion that a product will be adapted to the standard if a difference is found, not the other way around (adapting the standard to the behavior of a product, as is mostly the case with so-called industry-standards). The open standards that are most interesting for open source to OpenVMS porters are:
* Distributed Computing Environment (DCE) Support
* Support for OSF/Motif and X Window System Standards (X11R6 server and X11R5 client)
* ANSI X3.4-1986: American Standard Code for Information Interchange
* ANSI X3.41-1974: Code Extension Techniques for Use with 7-bit ASCII
* FIPS 1-2: Code for Information Interchange, Its Representations, Subsets, and Extensions
* ISO 646: ISO 7-bit Coded Character Set for Information Exchange
* ISO 2022: Code Extension Techniques for Use with ISO 646
* ISO 3307: Representations of Time of the Day
* ISO 4873: 8-Bit Code for Information Interchange - Structure and Rules for Implementation
* ISO 9660: Information Processing - Volume and file structure of CD-ROM for information exchange
Open source on OpenVMS
The question here is not, can we have open source software on OpenVMS, because you're already using some open source software. CDSA is an open source security framework that is now used on OpenVMS. You cannot install current releases of OpenVMS without it. There are two CDSA add-ons, SSL and Kerberos. Both are open source. In the TCP/IP package you'll find BIND and DHCP from the Internet Software Consortium. And what about the SMTP, POP, IMAP, SSH.... These are just some packages that are part of the standard OpenVMS distribution. But there's more, there's Apache, Mozilla, Samba, MySQL, Tomcat, Perl, Python. Then there's the business rationale of open source. Why should you, or your company use open source software. This is not as simple as many people think. The fact that open source is free does not necessarily mean that it is cheaper to run for you or your company. Because of the complexity of the subject we would like to point you to a good book on the subject:
Title: The BUSINESS and ECONOMICS of LINUX and OPEN SOURCE
Written by: Martin Fink
Printed by: Prentice Hall
ISBN: 0-13-047677-3
OpenVMS-UNIX differences
The best way to compare UNIX and OpenVMS is probably by way of a table with a side by side comparison of the interesting aspects. <reference> is such a table.This is but a partial list. It is probably best to point you to some good books on the subject. From John Wisniewski, who was the driving force behind the OpenVMS Hobbyist program, is the excellent book:
Title: Linux and OpenVMS Interoperability
Written by: John Wisniewski
Printed by: Digital Press
ISBN: 1-55558-267-2
The following book is written to make life easier for OpenVMS literate people new to the UNIX environment:
Title: UNIX for VMS Users
Written by: Philip E. Bourne
Printed by: Digital Press
ISBN: 1-55558-034-3
 
< Prev   Next >