The VMS Shark

OpenVMS Notes: Linux

  1. The information presented here is intended for educational use by qualified computer technologists.
  2. The information presented here is provided free of charge, as-is, with no warranty of any kind.
  3. Is this text too small? You have two options:
    1. hold down the CTRL key while rolling the mouse wheel (zoom-in, zoom-out)
    2. use your keyboard like so:
      • hit: CTRL with "-" key to zoom smaller
      • hit: CTRL with "+" key to zoom larger
      • hit: CTRL with zero key to reset zoom
Edit: 2017-06-17
Executive Summary

Introduction (Linux on an OpenVMS information page?)


Okay so everyone reading this already knows that OpenVMS is an operating system which competes with UNIX and Linux so why did I include this topic as part of OpenVMS Notes?

some answers/reasons:

  1. We are currently running MariaDB-5.5-25 on OpenVMS and are experiencing shutdown-related problems associated with very large databases using the InnoDB Engine. Most self-support blogs claim these issues can be fixed by upgrading to MariaDB-10.0-xx which is not (yet) available on OpenVMS. So setting up a nearby Linux box with MariaDB-10.1-19 should do the trick (application software on the OpenVMS would just send database requests over to the Linux box via a private network. Easy-peasy!)
  2. Computer industry know-it-alls assert that every computer programmer should be familiar with at least five computer languages and/or scripting environments. A similar case could be made for familiarity with 3-4-5 operating systems. These additional skills should translate directly into increased job security and employability (Happy Wife = Happy Life).
  3. Linux is the fastest growing computer ecosystem with 50% of all the computer systems on the planet are already running some sort of Linux. Got an Android phone? Android is a stripped-down version of Linux.

Reality Checks

OpenVMS is just as fast on modern hardware as UNIX or Linux. Quick installation time, ease of use, and stability have convinced me that OpenVMS is the superior OS. On top of this, OpenVMS does a much better job managing virtual memory (read on)

Linux has been the plaything of academia for a decade or two now which means it Linux is more feature-rich than proprietary operating systems, but it is not friendly. What follows are a few examples of many.

p.s. See my VMS vs. UNIX page for technical details

Performance Issues (a very small summary)

Editing a file on Linux

note: other editors exist but these are the only two I encountered during recent Linux installations

Different Linux distros use different commands to do similar things

The only thing common with the various Linux distributions is the name "Linux". For example, numerous Linux distributions use a different tool to partition a hard-disk. For example, check out the following list of commands to initialize then mount a disk.

OS Details

Initializing then mounting a disk in Windows is mostly automatic

OpenVMS Initializing then mounting a disk in OpenVMS is done in two commands:
  • initialize the disk:
       initialize/struct=5  disk-name:  volume-label
  • mount the disk:
       mount  disk-name:  volume-label
Note: online help is targeted at non-experts. Type "help initialize" or "help mount" from DCL to see what I mean
Linux In Linux you must do the following (incomplete list):
  • use either fdisk or parted to partition the disk (and know why you would use one over the other; most Linux systems only support one of these commands)
  • use mkfs (then choose one of 50+ volume formats); I prefer mkfs.xfs for most Linux volumes but formats like vfat and NTFS are available for those people requiring compatibility with Windows
  • use xfs_admin to set the volume label
  • use mkdir /mnt/whatever     (to create a mount point)
  • use mount /dev/sda3 /mnt/whatever
  • edit /etc/fstab                      (to force an automatic mount during the next reboot)
  • caveat: newer Linux distros also support LVM (Logical Volume Manager) which can increase overall confusion.
Note: online help is meant for experts. Type "man mount" or "man umount" to see what I mean. 

comment: For those of us who have worked on systems initially set up by, or previously maintained by, the clueless, perhaps a less friendly software environment is desirable.

Software Updates (support)



The Platform Name Game: x86, x86-64, x64, ia64, etc.

Getting Linux for an HP Integrity rx2660

Linux IA64 distributions list by most recently published update

Gentoo Linux @ Wikipedia

Debian Linux @ Wikipedia

FreeBSD @ Wikipedia

SuSE @ Wikipedia

CentOS @wikipedia

Ease of Install (Easiest First)

  OS Type install
1 OpenVMS binary 100% 100% < 1 hour
  • while OpenVMS is not a version of Linux or Unix,
    it still occupies the top spot for ease of installation
2 SuSE binary 100% 100% 1-2 hours
  • a pc-based terminal emulator is required; a real VT monitor will not work
  • elilo setup was done for me including the boot manager entry (cool)
3 CentOS binary 100% 100% 1-2 hours
  • elilo setup was done for me including the boot manager entry (cool)
  • this is a very old offering from 2008 so did not offer a version of MariaDB
4 Debian binary 100% 95% 2-3 hours
  • installation failed in the final phase (elilo setup); I had to to it manually
5 FreeBSD binary 100% 90% 2-3 hours
  • appeared to install in under 30 minutes. But then I discovered ...
  • that the installer never bothered to create a boot partition.
  • you need to do a manual partitioning using gpart (very unfriendly)
  • you will need to format the partitions with newfs
  • no elilo-like tools exist so you will be setting up the boot partition manually
9 Gentoo source build 5% n/a > 7 hours
  • after the initial boot, the run-time environment quickly shifts to the VGA monitor
  • installation instructions were spotty so I learned a lot the hard way
  • not recommended for anyone other than experts and/or hackers
  • provided the greatest amount of fun combined with the greatest amount of frustration
  • When I finally got this working I was reminded of a line from the movie "This Island Earth" where the alien says "you have assembled an interocitor; a feat which few men are capable"

Gentoo comments, caveats, and gotchas


  1. Type very carefully. This command "tar --help" passes one switch to tar while this command "tar -help" passes four switches (h, e, l, p) and will just ignore anything it does not understand
  2. Lots of UNIX sites published their own Gentoo installation guides but you would be wise to ignore everything published before 2014 because that year Gentoo went through major changes
  3. Using "parted" to partition your disks
  4. The Gentoo handbooks I tried (x86, amd64, ia64) in 2016 all work properly but are not 100% accurate
  5. If you do not execute the "swapon /dev/sda2" command, tar will fail when it unpacks the stage3 tarball
  6. Do not modify file "make.conf" in the IA64 version. Just inserting "-march=native" will cause numerous errors
    1. I checked out gcc on other Gentoo distros including i486, i586 and i686 but none of them ever mention (in the help) using "-march=native" although writing a simple hello-world.c program then compiling with "-march=native" seems to work. But the output appeared to be the same as not using the switch at all
    2. The Gentoo installation manual seems to infer that switches "-march" and "-mtune" are synonyms but they are not. The first switch selects the CPU architecture (eg. i586) while the second switch selects a specific optimization within the specified architecture (eg. pentiumiii)
    3. The IA64 version of gcc in 2016 does not support a -march" switch because this compiler can only generate Itanium code. Inspecting verbose help tells us that switch "-mtune" can have only two values: "itanium1" or "itanium2" with the compiler defaulting to "itanium2".
      • if you are seeing a lot of build errors then try using switch "-mtune=itanium1"
      • HP appears to have stopped working on Linux source code (at least from what I can see in the comments area of the IA64 kernel). I can only assume that they worried that free Linux would hurt sales of their own proprietary UNIX product called HP-UX
  7. Many people skip chapter #3 (setting up the network) because it auto-configures via dhcp during the CD or DVD boot. However, you still must copy "/etc/resolv.conf" to the Gentoo hard drive before you execute "chroot". Why? After you execute "chroot" you will be isolated from the previous environment. Failure to do this will cause file retrieval failures when you execute "emerge-webrsync"
  8. The IA64 Handbook is missing this command in chapter #4
        mkfs.vfat /dev/sda1
    which is required before copying your boot loader in chapter #10. Do not forget to mount this volume before executing "elilo --efiboot" (or consider setting up the boot partition manually; that's what I did on Gentoo as well as Debian
  9. After you issue chroot I suggest you issue the passwd command for root. Failure to do this now will cause problems during your first boot in chapter #11
  10. On your first kernel build you would be wise to do an automatic build via command "genkernel all". This will produce a kernel similar to the one associated with the CD ROM (will auto-detect hardware but boot a little slower). Once everything works properly you could try "make menuconfig" on a subsequent build.
  11. The file elilo.efi found on the Gentoo hard-drive is corrupt so copy the file used by the CD or DVD
  12. Here are the contents of elilo.conf on the boot partition (worked on 2016-0-xx)
      append="initrd=initramdisk root=/dev/sda3"
    and here are the contents of neil.msg on the boot partition (just a simple text file)
        gentoo1  (gentoo with ram disk)
        gentoo2  (standalone)

Debian comments, caveats, gotchas, and gotchas

What's up with elilo on Linux distros?

Overview 2016

Installing CentOS-5 on an HP ProLiant DL360-G5

Installing CentOS-7 on an HP ProLiant ML370-G6

LVM (Logical Volume Manager)

Anyone who has moved to CentOS-7 will notice that the primary Linux partition has been mounted using LVM (Logical Volume Manager)


Installing CentOS-7 on an HP ProLiant DL385-G7

OpenVMS-Linux System Hybrid

as of this writing (2017.01.xx)

		+------------------------+	+--------------------------+
		| server : HPE rx2800-i2 |	| server : HP ML370-G6     |
		| OS     : OpenVMS-8.4   |	| OS     : CentOS-7        |
		| purpose: business s/w  |	| purpose: MariaDB-10.1.19 |
		| net-1  : TCP/IP        +------+ net-1  : TCP/IP          |
 private  ------+ net-2  : TCP/IP        |	+--------------------------+
 intranet	| net-3  : DECnet        +------> other OpenVMS systems
		| net-4  : DECnet        +------> other OpenVMS systems 

Real-world Linux Problems

1) We can not install or update software on one of our CentOS-7 platforms

First off, we have two Linux platforms; one for development and one for production. The recommended approach is to first install (or update) software on the development box. If testing reveals everything is working properly then we would repeat the procedure on the production box. This also keeps both platforms more-or-less in sync.

I wanted to install the tree utility so I logged onto the development box where I entered this command:

	sudo yum install tree

... which worked properly. Then I repeated this command on the production platform which failed with numerous errors associated with file /usr/libexec/urlgrabber-ext-down which is a python script. Investigating further (with commands like "yum history" then talking to the user indicated within) I found that python3 had been "yum installed" on the development platform but "manually installed" on the production platform. What was worse was this: you could not execute most yum commands including "yum check-update"

Investigating further, the first line of the working script contained this "#! /usr/bin/python2" sharp-bang hack while the first line of the broken script contained "#! /usr/bin/python" which means this second script was actually invoking python3 by default. So the solution here was to edit the file on the production platform then append the character "2" to the end of the first line.

Analysis: I am assuming that the dependency check associated with "yum install" is smart enough to install python3 but modify all scripts still dependent upon python2. This is probably how the urlgrabber-ext-grabber script on our development platform was already modified while the same script on our production box was not.

Recommended Books

How Linux Works: What Every Superuser Should Know - 2nd Edition (2015) Brian Ward

This book contains useful information I have never seen anywhere else. It is worth every penny.

Question: why is it that every really good computer book in my library was published by No Starch Press

External Links

Back to OpenVMS
 Back to Home
Neil Rieck
Kitchener - Waterloo - Cambridge, Ontario, Canada.