2021. What an interesting year. With the world turned upside down by a pandemic that seemingly had its sights set on...
ITUGLIB: A uniquely valuable resource for your modern NonStop (Part 1)
In Part 1 of a 2 part series on ITUGLIB, the authors look at the history of ITUGLIB when it was little more than a spool of tape to where today, it’s a real library with support for multiple genres …
ITUGLIB
DanA Re-introduction
If you’ve been a long-time user of NonStop, there’s a good chance that you’ve heard of a utility library called ITUGLIB. You may have even used some of the packages in it at one time or another.
In case you haven’t heard, the library has been around in one form or another since the 1980s, back when the NonStop product line was owned by (and branded as) Tandem Computers. Early on, the library contents were shared via an archaic file transfer medium known as ‘reel-to-reel tape’. It has been available on the Internet, hosted on various platforms since around 1990.
The original NonStop applications were all Guardian based, so the original content was all Guardian-based, too. Membership in the users’ group ITUG (which is now part of Connect Worldwide) is required to access this content, since it was codified in the sharing agreements with the original authors, written prior to the concept of an ‘Open Source’ license.
After Compaq and then HP acquired the NonStop brand, and as OSS applications became more popular, HP approached ITUG and asked if the User Group could be the distribution mechanism for NonStop/OSS ports of Open Source packages. Due to the nature of the major Open Source licenses, they wanted to remain ‘hands off’ in the distribution of the library to assure that their own Intellectual Property was protected. ITUG jumped at the chance, and a second, Open Source ‘branch’ of the library was born. The original ‘Technical Library’, which is still Guardian-based, remained.
In 2010, HP and Connect recognized that as NonStop became more and more a platform that could leverage ‘Open’ development environments, it would be worthwhile to showcase the ability, and Connect needed a new way to host the library. HP (and now HPE) provided an NS2000 on loan to Connect, and the ITUGLIB Team of Connect build a website to contain it.
So today you’ll find both on the Connect website. You can download freely from the Open Source library, since the licenses allow (and even require) that. As for the legacy ‘Technical Library’ of Guardian contributions, you can browse them freely as well. However, to download them you have to be logged into the Connect Website as a member prior to accessing the library to be able to download. Most (but not all) include source code so that you can customize the package if needed.
Legacy Technical Library
Most of the packages on the Technical library are stand-alone applications. Many are operation support tools such as disk space management tools. A couple of the more popular tools are CMONDXX and OFFENDER.
CMONDXX is the last update to a venerable series of packages to act as a ‘CMON’ (or Command Monitor). TACL (and its antique predecessor COMINT) always communicate with a process named $CMON if it exists, and allow system managers to tweak what happens prior to logon, logoff, or starting processes. Other Guardian products (such as LISTNER) also interact with the CMON. Typically, this is used to load balance, restrict priorities, limit users to certain time windows, or other uses.
OFFENDER is a quick command line tool that allows a user to quickly see what’s busy on a particular system. Functionally, it is similar to the Linux ‘top’ command.
The current ITUGLIB Web interface doesn’t allow for interactive searching, but your browser ‘Find’ function is useful to search the list. If you have some time and are interested, just browse through it and be surprised!
Open Source Library
The Open Source Library contains hundreds of ports of popular open-source packages. Some contain programs to run standalone, like bash or vim. Some are libraries to be linked into your programs, like glib. Some packages have a mix of these, like curl, openssl, or openssh. You’ll also find a current port of the D-VCS package ‘git’, which we’ll be discussing below.
The bash package contains a port of the popular Linux ‘bash’ shell, with extensions to run on NonStop (such as define support). vim is a superset of the text editor ‘vi’ that ships with NonStop, which supports many enhancements such as color highlighting and scripting.
The glib package contains the C library routines that are also shipped with the gcc Gnu compilers. A large number of current open source packages rely on current versions of these.
curl is, in part, a command-line means of accessing common web protocols such as HTTP, HTTPS, SMTP, FTP, SSH to send or receive files. It also includes the libcurl archive library that allows applications to perform the same functionality. openssl is a very full-featured encryption library and command line tool that is used to implement not only SSL and TLS, but also a rich set of both symmetric and asymmetric encryption methods and protocols. It also supports typical PKI functions to maintain (and consume) digital certificates. openssh implements the popular SSH protocols, both as standalone client and server programs, as well as programmatically via library calls. It relies on the openssh package for key management tools.
You may find many packages that depend on other packages being installed, and these are noted on the web site.
ITUGLIB’s porting methodologies
As you’re probably aware, the Open Systems Services (OSS) environment running on a NonStop server is a ‘POSIX-Compliant’ set of command processors, files system, services, and libraries that allow for programs to be written once and built on multiple different hosts. While that is a laudable goal, in reality there are some things that prevent it from working as the original designers hoped. A NonStop server is a shared-nothing architecture, running processes with a single Kernel thread, with some specific security features that prevent everything in the POSIX world from working exactly the same. HPE has provided a tool, now delivered with each SUT, called ‘FLOSS’, which stands for ‘Freeware Library for OSS’. It is a combination of programs, libraries, and methodology that allows a developer to start from, for example, a Linux-based application and ‘tweak’ the source so that it runs pretty much the same as the original developer intended.
There are some languages, such as Java, that run applications without change. The library contains some other scripting languages, such as Python, Perl, PHP, and Ruby that have already been ported to handle many OS differences.
Many of the ports of C- or C++-based packages found in the Open Source library of ITUGLIB were modified using FLOSS where necessary, preferably with the fewest changes necessary. Some of those changes were done with conditional compilation, and have been submitted back to the Open Source package owners so that they are available to everyone. But whether or not that happened, the ported (and tested) packages are available for download from ITUGLIB, source and all.
Over the past couple of years, we’ve begun the process of attaching our own git repositories to the public sites where the packages are hosted, and monitoring them for regular releases. We’ve even used some Java-based open source packages to automate the fetch, build and testing process. Since we are all unpaid volunteers with other priorities, this has greatly improved the quality and timeliness of the available packages in ITUGLIB.
Coming in part 2:
Modernizing ITUGLIB using git – the ubiquitous Distributed Version Control System
Biography callout:
Bill Honaker is a consultant with XID, Software, Inc., serving the company as its Chief Technology Officer. He has over 37 years of NonStop experience as a Solution Architect, Performance Analyst, Systems Integrator, System Manager, Database Designer, and anything else our customers will pay us for. XID has been keeping its customers satisfied since 1989 by treating them as we would want to be treated.
Bill has been a volunteer with both ITUG and Connect since 1988, which partially explains his gray hair. In the past, he served as both editor and director for the Connection magazine, Treasurer in 1993 and 1994, Vice President in 1995, and as ITUG President in 1996. He currently serves as the President of the N2TUG Chapter of Connect, the moderator of the NonStop Open SIG, and the Lead of the ITUGLIB Engineering team. Bill has cared for the ITUGLIB for ITUG and Connect at the XID offices since 1990, in the days when copies were delivered to members on a big reel of magnetic tape.
Bill Honaker, ITUGLIB Engineering Team, XID Software, Inc., Euless, Texas, USA, http://www.xid.com
Randall Becker is a process and SCM guru with Nexbridge Inc. He has been on the NonStop since 1983 in various capacities including solution design, performance, SQL/MX migrations, and developer of a number of version control products.
Randall has also been a volunteer with ITUG and Connect since 1989, and was director of CTUG for over a decade. He has been instrumental in designing the automation and management processes for ITUGLIB and in defining the contribution procedures using git. Randall has also written for and spoken at various ITUG and Connect events over the years as well as for the Disaster Management community.